Tito Latini | 27 Mar 19:38 2015

Snd: region's peak_envs not updated after editing

Hello, you can see this bug with the follow steps:

  - make a region, no too short otherwise `peak_env_usable' returns
    "false" and the waveform is correct

  - edit the created region

  - from Regions view, move the slider to right. During the sliding,
    when `peak_env_usable' returns "true" in snd-chn.c:1797, it starts
    to display the old waveform.

The attached patch is a possible solution.
diff -ur snd-15~/snd-region.c snd-15/snd-region.c
--- snd-15~/snd-region.c	2015-03-27 19:33:23.042250004 +0100
+++ snd-15/snd-region.c	2015-03-27 19:33:29.200172589 +0100
 <at>  <at>  -1246,9 +1246,13  <at>  <at> 

   for (i = 0; i < sp->nchans; i++)
+      chan_info *cp;
       mus_float_t val;
       val = channel_maxamp(sp->chans[i], AT_CURRENT_EDIT_POSITION);
       if (val > r->maxamp) r->maxamp = val;
+      if ((cp = sp->chans[i]))
+        r->peak_envs[i] = copy_peak_env_info(cp->edits[0]->peak_env, false);

(Continue reading)

Bill Schottstaedt | 24 Mar 16:44 2015

ccrma history

Andrew J Nelson's book about ccrma is available now:
"The Sound of Innovation: Stanford and the Computer
Music Revolution", about $30 at Amazon.  I certainly
enjoyed reading it, but I'm biased.  It's hard to believe
it was 46 years ago that I wandered into the Bay Area.
James Hearon | 22 Mar 20:32 2015

gtk mapped without transient parent

On f21 I'm getting an error thru the Grace editor.    Wondering if anyone else has this problem and might know the problem?  I did grep a bit and GTK part seems throughout Sndlib in CM, but I can't be sure that's the issue.

Save File:
GtkDialog mapped without a transient parent...File not saved.

On f21 I have a gtk2 and dev files, and a gtk3 with dev files.  I tried rebuilding Grace, but the problem persists.

Cmdist mailing list
Tito Latini | 20 Mar 11:54 2015

s7 (current) doesn't compile with GNU multiprecision arithmetic

Hi, attached a patch to fix a recent typo.

(please pardon me if it is not correct to report/fix recent changes)
diff -ur snd-15~/s7.c snd-15/s7.c
--- snd-15~/s7.c	2015-03-18 22:57:54.000000000 +0100
+++ snd-15/s7.c	2015-03-20 11:25:37.816183045 +0100
 <at>  <at>  -17380,7 +17380,7  <at>  <at> 
 	s7_pointer x;

 	NEW_CELL(sc, x, T_BIG_REAL);
-	add_bigreal(x);
+	add_bigreal(sc, x);
 	mpc_real(big_real(x), big_complex(p), GMP_RNDN);

 <at>  <at>  -17426,7 +17426,7  <at>  <at> 
 	s7_pointer x;
 	NEW_CELL(sc, x, T_BIG_REAL);
-	add_bigreal(x);
+	add_bigreal(sc, x);
 	mpc_imag(big_real(x), big_complex(p), GMP_RNDN);

Cmdist mailing list
James Hearon | 1 Mar 00:08 2015


> Date: Sat, 28 Feb 2015 11:51:43 -0800
> From: "Bill Schottstaedt" <bil <at> ccrma.Stanford.EDU>
> Subject: Re: [CM] analog-filter.scm
> To: James Hearon <j_hearon-PkbjNfxxIARBDgjK7y7TUQ@public.gmane.org>, "cmdist-Q5CBQdYaXkD3fQ9qLvQP4Q@public.gmane.orgnford.EDU"
> <cmdist-Q5CBQdYaXkCY9Qp+Rujo2eW1CriLhL8O@public.gmane.org>
> Message-ID: <20150228195009.M14338-Q5CBQdYaXkCY9Qp+Rujo2eW1CriLhL8O@public.gmane.org>
> Content-Type: text/plain; charset=iso-8859-1
> They're in mus-config.h. SNDLIB_CONFIG_path is very obsolete --
> it has no effect on anything. I tried fc21 with all those settings
> and it worked fine. I don't know what the problem is.

Thanks Bill.  I tried this and it seems working now.

./configure  --with-s7 --with-gsl --with-motif --with-alsa CFLAGS=HAVE_COMPLEX_NUMBERS CFLAGS=HAVE_COMPLEX_TRIG CFLAGS="-I/usr/include/linux/param.h" SNDLIB_CONFIG_path=/opt/sndlib

(load "/opt/snd-15.4/analog-filter.scm")

(define (filter-sweep flt)
  (let ((phase 0.0)
    (freq 0.0)
    (incr (/ (* 2 pi) 144000.0))
        (samps (seconds->samples 0.5)))
    (do ((i 0 (+ i 1)))
    ((= i samps))
      (let ((sval (* .8 (sin phase))))
    (set! phase (+ phase freq))
    (set! freq (+ freq incr))
    (outa i (flt sval))
    (outb i (flt sval))  ))))

(with-sound (:output "test.wav" :srate 48000 :channels 2
                     :header-type  mus-riff)
  ;(filter-sweep (make-butterworth-lowpass 8 .1))
  (filter-sweep (make-bessel-lowpass 8 .2))
  ;(filter-sweep (make-chebyshev-lowpass 8 .1))
  ;(filter-sweep (make-inverse-chebyshev-lowpass 8 .1))
  ;(filter-sweep (make-elliptic-lowpass 8 .01))

Cmdist mailing list
James Hearon | 28 Feb 18:56 2015


> Message: 3
> Date: Fri, 27 Feb 2015 10:49:33 -0800
> From: "Bill Schottstaedt" <bil-Q5CBQdYaXkCY9Qp+Rujo2eW1CriLhL8O@public.gmane.org>
> Subject: Re: [CM] analog-filter.scm
> To: James Hearon <j_hearon-PkbjNfxxIARBDgjK7y7TUQ@public.gmane.org>, "cmdist-Q5CBQdYaXkCY9Qp+Rujo2eW1CriLhL8O@public.gmane.org"
> <cmdist-Q5CBQdYaXkCY9Qp+Rujo2eW1CriLhL8O@public.gmane.org>
> Message-ID: <20150227184704.M76841-Q5CBQdYaXkCY9Qp+Rujo2eW1CriLhL8O@public.gmane.org>
> Content-Type: text/plain; charset=iso-8859-1
> in s7, which means it can't work in Windows, c++, or FreeBSD.
> If you aren't in that group, I need to know how you built Snd,
> and what those flags are. gsl-roots is used in the Bessel filter
> section, but is not related to the gsl Bessel function stuff.

Thanks for the info.  I've built Snd-15.4 on f21, and not seeing anything about HAVE_COMPLEX_NUMBERS or HAVE_COMPLEX_TRIG from the build output.  Is that something I need to add when running make or gcc?

[jhearon <at> localhost snd-15.4]$ ./configure --with-s7 --with-gsl --with-motif --with-alsa SNDLIB_CONFIG_path=/opt/sndlib
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for a BSD-compatible install... /usr/bin/install -c
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking whether byte ordering is bigendian... no
checking size of void *... 8
checking for pkg-config... /usr/bin/pkg-config
checking for fftw3... yes
checking for gsl... yes
checking for X... libraries , headers
checking for gethostbyname... yes
checking for connect... yes
checking for remove... yes
checking for shmat... yes
checking for IceConnectionNumber in -lICE... yes
checking for oggdec... /usr/bin/oggdec
checking for oggenc... /usr/bin/oggenc
checking for mpg123... no
checking for mpg321... no
checking for speexdec... no
checking for speexenc... no
checking for flac... no
checking for timidity... no
checking for ttaenc... no
checking for wavpack... /usr/bin/wavpack
checking for wvunpack... /usr/bin/wvunpack
checking for audio system... ALSA
configure: creating ./config.status
config.status: creating makefile
config.status: creating mus-config.h
config.status: mus-config.h is unchanged

  Options selected
  Snd version ...........: 15.4
  CFLAGS ................: -O2 -I. -g -O2
  LDFLAGS ...............: -Wl,-export-dynamic
  LIBS...................:  -lm -ldl
  prefix.................: /usr/local
  extension language.....: s7
  audio system...........: ALSA
  graphics toolkit.......: Motif
  optional libraries.....: fftw3 gsl
  random features........:
  environs...............: x86_64-unknown-linux-gnu gcc

[jhearon <at> localhost snd-15.4]$ make
gcc -c -DSCRIPTS_DIR=\"/usr/local/share/snd\"   -O2 -I. -g -O2      s7.c
gcc -c -DSCRIPTS_DIR=\"/usr/local/share/snd\"   -O2 -I. -g -O2      headers.c
gcc -c -DSCRIPTS_DIR=\"/usr/local/share/snd\"   -O2 -I. -g -O2      audio.c
gcc -c -DSCRIPTS_DIR=\"/usr/local/share/snd\"   -O2 -I. -g -O2      io.c
gcc -c -DSCRIPTS_DIR=\"/usr/local/share/snd\"   -O2 -I. -g -O2      sound.c
gcc -c -DSCRIPTS_DIR=\"/usr/local/share/snd\"   -O2 -I. -g -O2      clm.c
gcc -c -DSCRIPTS_DIR=\"/usr/local/share/snd\"   -O2 -I. -g -O2      xen.c
gcc -c -DSCRIPTS_DIR=\"/usr/local/share/snd\"   -O2 -I. -g -O2      vct.c
gcc -c -DSCRIPTS_DIR=\"/usr/local/share/snd\"   -O2 -I. -g -O2      sndlib2xen.c
gcc -c -DSCRIPTS_DIR=\"/usr/local/share/snd\"   -O2 -I. -g -O2      clm2xen.c
gcc -c -DSCRIPTS_DIR=\"/usr/local/share/snd\"   -O2 -I. -g -O2      snd-io.c
gcc -c -DSCRIPTS_DIR=\"/usr/local/share/snd\"   -O2 -I. -g -O2      snd-utils.c
gcc -c -DSCRIPTS_DIR=\"/usr/local/share/snd\"   -O2 -I. -g -O2      snd-listener.c
gcc -c -DSCRIPTS_DIR=\"/usr/local/share/snd\"   -O2 -I. -g -O2      snd-completion.c
gcc -c -DSCRIPTS_DIR=\"/usr/local/share/snd\"   -O2 -I. -g -O2      snd-menu.c
gcc -c -DSCRIPTS_DIR=\"/usr/local/share/snd\"   -O2 -I. -g -O2      snd-axis.c
gcc -c -DSCRIPTS_DIR=\"/usr/local/share/snd\"   -O2 -I. -g -O2      snd-data.c
gcc -c -DSCRIPTS_DIR=\"/usr/local/share/snd\"   -O2 -I. -g -O2      snd-fft.c
gcc -c -DSCRIPTS_DIR=\"/usr/local/share/snd\"   -O2 -I. -g -O2      snd-marks.c
gcc -c -DSCRIPTS_DIR=\"/usr/local/share/snd\"   -O2 -I. -g -O2      snd-file.c
gcc -c -DSCRIPTS_DIR=\"/usr/local/share/snd\"   -O2 -I. -g -O2      snd-edits.c
gcc -c -DSCRIPTS_DIR=\"/usr/local/share/snd\"   -O2 -I. -g -O2      snd-chn.c
gcc -c -DSCRIPTS_DIR=\"/usr/local/share/snd\"   -O2 -I. -g -O2      snd-dac.c
gcc -c -DSCRIPTS_DIR=\"/usr/local/share/snd\"   -O2 -I. -g -O2      snd-region.c
gcc -c -DSCRIPTS_DIR=\"/usr/local/share/snd\"   -O2 -I. -g -O2      snd-select.c
gcc -c -DSCRIPTS_DIR=\"/usr/local/share/snd\"   -O2 -I. -g -O2      snd-find.c
gcc -c -DSCRIPTS_DIR=\"/usr/local/share/snd\"   -O2 -I. -g -O2      snd-snd.c
gcc -c -DSCRIPTS_DIR=\"/usr/local/share/snd\"   -O2 -I. -g -O2      snd-help.c
gcc -c -DSCRIPTS_DIR=\"/usr/local/share/snd\"   -O2 -I. -g -O2      snd-main.c
gcc -c -DSCRIPTS_DIR=\"/usr/local/share/snd\"   -O2 -I. -g -O2      snd-print.c
gcc -c -DSCRIPTS_DIR=\"/usr/local/share/snd\"   -O2 -I. -g -O2      snd-trans.c
gcc -c -DSCRIPTS_DIR=\"/usr/local/share/snd\"   -O2 -I. -g -O2      snd-mix.c
gcc -c -DSCRIPTS_DIR=\"/usr/local/share/snd\"   -O2 -I. -g -O2      snd.c
gcc -c -DSCRIPTS_DIR=\"/usr/local/share/snd\"   -O2 -I. -g -O2      snd-env.c
gcc -c -DSCRIPTS_DIR=\"/usr/local/share/snd\"   -O2 -I. -g -O2      snd-xen.c
gcc -c -DSCRIPTS_DIR=\"/usr/local/share/snd\"   -O2 -I. -g -O2      snd-ladspa.c
gcc -c -DSCRIPTS_DIR=\"/usr/local/share/snd\"   -O2 -I. -g -O2      snd-kbd.c
gcc -c -DSCRIPTS_DIR=\"/usr/local/share/snd\"   -O2 -I. -g -O2      snd-sig.c
gcc -c -DSCRIPTS_DIR=\"/usr/local/share/snd\"   -O2 -I. -g -O2      snd-draw.c
gcc -c -DSCRIPTS_DIR=\"/usr/local/share/snd\"   -O2 -I. -g -O2      snd-gxbitmaps.c
gcc -c -DSCRIPTS_DIR=\"/usr/local/share/snd\"   -O2 -I. -g -O2      snd-gxcolormaps.c
gcc -c -DSCRIPTS_DIR=\"/usr/local/share/snd\"   -O2 -I. -g -O2      snd-motif.c
gcc -c -DSCRIPTS_DIR=\"/usr/local/share/snd\"   -O2 -I. -g -O2      xm.c
gcc -Wl,-export-dynamic -O2 -I. -g -O2 s7.o headers.o audio.o io.o sound.o clm.o xen.o vct.o sndlib2xen.o clm2xen.o snd-io.o snd-utils.o snd-listener.o snd-completion.o snd-menu.o snd-axis.o snd-data.o snd-fft.o snd-marks.o snd-file.o snd-edits.o snd-chn.o snd-dac.o snd-region.o snd-select.o snd-find.o snd-snd.o snd-help.o snd-main.o snd-print.o snd-trans.o snd-mix.o snd.o snd-env.o snd-xen.o snd-ladspa.o snd-kbd.o snd-sig.o snd-draw.o snd-gxbitmaps.o snd-gxcolormaps.o snd-motif.o xm.o  -o snd   -lSM -lICE -lXm -lXt -lX11  -lXext -lSM -lICE -lXft -lXpm   -lasound -lfftw3  -lgsl -lgslcblas -lm   -lm -ldl

Cmdist mailing list
James Hearon | 27 Feb 19:11 2015


Using Snd and getting unbound variable error on analog-filter.scm for line 309 gsl-roots.

I configured Snd --with-gsl, and have gsl and gsl-devel on my machine.  I also compiled a simple
exampl.c in gsl using bessel functions and it compiles and runs o.k.

I'm wondering what might be going wrong or why it's not able to get to gsl?


Cmdist mailing list
Bill Schottstaedt | 27 Feb 17:42 2015

Snd 15.4

Snd 15.4

before-save-as-hook arg order changed, also new-sound, save-region, save-selection, save-sound-as

deprecated output-name-hook, info-popup-hook, peak-env-hook, start-hook

changed s7_new_type_x args

mus-audio* deprecated (these haven't worked at all for a long time)
mus_set_name (and mus-set-name) deprecated

in CLM, Juan Reyes added sbcl support for gnuplot in dlocsig.lisp

checked: sbcl 1.2.8, gtk 3.15.5|7|8|9

Thanks!: Mike Scholz, Juan Reyes, Anders Vinjar, Michel Dutat
Richard Wentk | 12 Feb 14:10 2015

Loop bug?

I’m working through the examples using the Mac App Store version of Grace. 

This example in midioutput.scm produces an unbound variable error for ‘chord':

(loop with chord = (transpose (pick '(0 3 7)
                                    '(0 4 7)
                                    '(0 3 7 10)
                                    '(0 4 7 10)
                                    '(0 4 7 11))
                              (between 48 80))
      for k in chord
      do (mp:midi :key k))

A simplified version does the same thing for q:

(loop with q = '(1 2 3) for i in q do (print i))

Is this a bug, or am I missing something obvious? AFAICT the code is valid in Scheme and should work...

The equivalent SAL example works fine.



Cmdist mailing list
Cmdist <at> ccrma.stanford.edu
Jason Ripley | 12 Feb 03:46 2015

s7 - howto use s7_define_function_star in a C++ project.


I am trying to use s7_define_function_star in C++ to create a c-side define.  I am not having any luck though.  I am getting nonsense values back.

Is there a sample project that does this?  I grepped through CM and didn't find any references to s7_define_function_star in the *.cpp files.

Thank you for any information,
Cmdist mailing list
anders.vinjar | 11 Feb 13:25 2015

snd: x-zoom and :track-and-return cursor

Hi Bill.  I'm getting some issues w. snd (latest from ccrma-ftp)

trying to do:

(set! (with-tracking-cursor) :track-and-return)
  (set! (cursor) 80000)
  (let ((here (cursor)))
    (play :start (cursor))
    (format #f "here: ~A there: ~A " here (cursor))))

and stopping playback from the sound-graph (ie. C-g or C-t), makes snd
jump back to 0, whereas i'd expect it go back to 4200.

The output of the above is:
"here: 80000 there: 0 "

Another issue:

  (set! (zoom-focus-style) zoom-focus-middle)
  (set! (x-zoom-slider) (* (x-zoom-slider) 1.1))

seems to leave to zoom-focus at the left edge of the window, even if im
in the middle of a sound somewhere.

When moving the control-panel zoom-slider it behaves as expected
(ie. middle-centered).