[SCM] snd/master: Generated upstream-changelog

umlaeute at users.alioth.debian.org umlaeute at users.alioth.debian.org
Mon Aug 8 12:42:43 UTC 2016


The following commit has been merged in the master branch:
commit c5002fe83f97b01994b276e9e5fc7d171a05b5cf
Author: IOhannes m zmölnig <zmoelnig at iem.at>
Date:   Thu Aug 4 10:09:22 2016 +0200

    Generated upstream-changelog
    
    using something like the following:
    
    rsync the snd repository (CVS!) from sourceforge.
    
    convert it to git:
    $ git cvsimport -v -a -k -d snd -C cvs-snd cvs-snd
    
    checkout each revision of NEWS (stripping away trailing whitespace and
    adding missing-newline-at-EOF) and append them:
    $ cd cvs-snd
    $ git log --format=%H NEWS | while read commit; do \
       git checkout $commit \
       echo "===============================================================================" \
       echo \
       sed -e 's| *$||' -e '$a\' NEWS \
       echo \
    done > ../NEWS.full

diff --git a/debian/upstream-changelog b/debian/upstream-changelog
new file mode 100644
index 0000000..dc48b5f
--- /dev/null
+++ b/debian/upstream-changelog
@@ -0,0 +1,8997 @@
+Snd 16.6.
+
+added snd-lint.scm (Snd extensions for lint)
+
+s7's symbol function now takes any number of string args
+  these are all concatenated to form the new symbol name
+s7's make-vector no longer takes an optional fourth argument.
+
+checked: gtk 3.21.2, sbcl 1.3.6, Fedora 24
+
+Thanks!: Joe Python, Tito Latini.
+
+===============================================================================
+
+Snd 16.5
+
+Kjetil Matheussen added the --with-webserver configuration flag to Snd, and
+  made all the supporting changes.
+
+Daniel Hensel sent instructions to build Snd in OSX -- see README.Snd.
+
+ttaenc removed: it appears to be dead (no movement in 10 years), or infected.
+
+changed spectr.scm to export only *spectr*, rgb.scm *rgb*.
+
+checked: sbcl 1.3.4|5, gtk 3.20.2|3 3.21.1, gsl 2.1
+
+Thanks!: Greg Santucci, Daniel Lopez, Kjetil Matheussen, Daniel Hensel
+
+===============================================================================
+
+Snd 16.4:
+
+added stdin-prompt
+added s7/s7webserver directory to Snd
+
+checked: gtk 3.19.10|11, gtk 3.20.0|1, sbcl 1.3.3
+
+Thanks!: Kjetil Matheussen, Mike Scholz, James Hearon, Arthur Green,
+         pbatch, Daniel Lopez, Greg Santucci.
+
+
+===============================================================================
+
+Snd 16.3
+
+added s7 profiler if WITH_PROFILE is set, profile.scm.
+moved multiple-value-set! macro to stuff.scm
+port-line-number is settable (for fancy #readers)
+*cload-directory* (a string) for cload output files (default is "")
+removed quasiquoted vector support (it was disabled by default)
+
+checked: gtk 3.19.7|8|9, sbcl 1.3.2
+
+Thanks!: Kjetil Matheussen, Nando, IOhannes m zmölnig, Mike Scholz.
+
+===============================================================================
+
+Snd 16.2:
+
+owlet error-history field if WITH_HISTORY=1, (*s7* 'history-size) sets its size
+added *read-error-hook*
+removed s7_eval_form, changed s7_eval to take its place
+s7_eval_c_string takes only one statement now (use begin to handle multiple statements)
+added s7_load_with_environment
+
+checked: gtk 3.19.4|5, ruby 2.4
+
+Thanks!: Kjetil Matheussen, Anders Vinjar, Tito Latini, Mike Scholz.
+
+
+===============================================================================
+
+Snd 16.1:
+
+most of my time went into lint.scm, but the harder I work
+on it, the longer my TODO list.
+
+s7: :key and :optional removed.
+
+checked: gtk 3.19.1|2|3, sbcl 1.3.0, GSL 2.0
+
+Thanks!: Norman Gray
+
+
+===============================================================================
+
+Snd 16.0:
+
+in s7, the d,f,s,l exponents are now disabled by default (use e,E,@)
+       hash-table-size -> length
+       append is generic
+       make-random-state -> random-state
+
+checked: gtk 3.18.0|1|2, FC 23, OSX 10.11, sbcl 1.2.16
+
+Thanks!: Greg Santucci, Tito Latini
+
+
+===============================================================================
+
+Snd 15.9:
+
+procedure-signature, c-object?, proper-list?, float?
+list? is now "pair or null" -- use proper-list? for R5RS list?
+(*s7* 'float-format-precision)
+libutf8proc.scm (bindings for the utf8proc library)
+The clm optimizer revision is about 2/3 done
+
+checked: sbcl 1.2.14|15, gtk 3.17.6|7|8
+
+Thanks!: Greg Santucci, Caio Giovaneti de Barros, Carlos Carrasco
+
+===============================================================================
+
+Snd 15.8:
+
+changed make-iterator with a closure argument -- the closure
+  is now called without any arguments, and the it should
+  contain a variable named 'iterator? with a non-false value.
+
+s7 now calls setlocale(LC_NUMERIC, "C") at startup.
+
+What used to be called the run macro (clm optimizer) has been
+  completely rewritten for about the sixth time; many changes
+  in s7.h, etc.
+
+  1990: CL version (from Mus10 from MusicN)
+  1993: CL + FFI
+  1994: CL->C
+  2002: Guile+Snd run macro
+  2008: s7+sndlib
+  2015: This time for sure!
+
+  This change is about 1/3 complete, so view this version of
+  Snd with grave suspicion.
+
+checked: gtk 3.17.4|5, sbcl 1.2.13
+
+Thanks!: Anders Vinjar, Tito Latini, Greg Santucci, Mike Scholz
+
+===============================================================================
+
+Snd 15.8:
+
+changed make-iterator with a closure argument -- the closure
+  is now called without any arguments, and the it should
+  contain a variable named 'iterator? with a non-false value.
+
+s7 now calls setlocale(LC_NUMERIC, "C") at startup.
+
+What used to be called the run macro (clm optimizer) has been
+  completely rewritten for about the sixth time; many changes
+  in s7.h, etc.
+
+  1990: CL version (from Mus10 from MusicN)
+  1993: CL + FFI
+  1994: CL->C
+  2002: Guile+Snd run macro
+  2008: s7+sndlib
+  2015: This time for sure!
+
+  This change is about 1/3 complete, so view this version of
+  Snd with grave suspicion.
+
+The Snd CVS site at Sourceforge has been offline for about two
+  weeks ("storage fault"), and Sourceforge itself is up for sale.
+  I'll update the files there as soon as it comes online (Aug-3 is
+  the current prediction).
+
+checked: gtk 3.17.4|5, sbcl 1.2.13
+
+Thanks!: Anders Vinjar, Tito Latini, Greg Santucci, Mike Scholz
+
+===============================================================================
+
+Snd 15.7:
+
+added CM_patterns.scm thanks to Rick and Anders
+
+removed s7 ~<~> format directive
+changed bytevector* to byte-vector* (r7rs.scm has definitions of the old forms)
+added hash-table-function
+
+checked: gtk 3.17.2|3, sbcl 1.2.12
+
+Thanks!:  Tito Latini, Kjetil Matheussen, Anders Vinjar
+
+
+
+===============================================================================
+
+Snd 15.6:
+
+add int-vector? int-vector make-int-vector
+
+changed s7_copy arg interpretation (it's now a normal s7_function).
+
+checked: gtk 3.16.1|2 3.17.1, FC 22 (gcc 5), Ruby 2.2, sbcl 1.2.11
+
+Thanks!: Tito Latini (found and fixed many bugs),
+         Donny Ward (MS Visual Studio 2013)
+
+===============================================================================
+
+Snd 15.5:
+
+repl.scm to replace use of readline in various cases.  The main one is
+  Snd without a GUI.  In this case, you need to tell Snd where to find
+  repl.scm.  In my ~/.snd_s7 file, I have:
+
+  (set! *load-path* (cons "/home/bil/cl" *load-path*))
+
+  I think you can build this into Snd by using the SCRIPTS_DIR flag
+  in the makefile.
+
+
+checked: sbcl 1.2.9|10, gtk 3.15.10|11|12, 3.16.0
+
+Thanks!: Mike Scholz, Tito Latini
+
+===============================================================================
+
+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
+
+===============================================================================
+
+Snd 15.3
+
+procedure-documentation no longer refers to an optional string that happens
+  to be the first thing in a procedure body, but to the value of a variable
+  named 'documentation' in the procedure's environment.
+
+procedure-arity is deprecated, s7_procedure_arity replaced by s7_arity.
+  procedure-name is deprecated. data-format removed (see snd15.scm).
+
+format has another control directive: ~N or ~n which gets a numeric argument
+  from the argument list: (format #f "~nD" 20 123)
+
+with-sound argument order changed slightly. It is now: output channels srate.
+  Ideally, other Snd functions like new-sound would follow the same argument
+  order -- let me know if this change would cause you problems.
+
+float-vector-equal? -- relative difference of two float-vectors.
+
+make-iterator, iterate, iterator? -- replace make-hash-table-iterator and
+  hash-table-iterator? These are generic functions to traverse sequences.
+
+if (*s7* 'safety) > 1, optimization is turned off
+(*s7* 'maximum-stack-size) is now (*s7* 'max-stack-size)
+(*s7* 'print-length) replaces *vector-print-length*
+(*s7* 'bignum-precision) replaces *bignum-precision*
+(*s7* 'stacktrace-defaults) replaces *stacktrace*
+
+checked: sbcl 1.2.7, gtk 3.15.4
+
+
+
+===============================================================================
+
+Snd 15.2
+
+Mike Scholz fixed bugs in clm and the NetBSD audio code, and updated many of the scripts.
+Anders Vinjar added lispworks code for gnuplot in dlocsig.lisp.
+
+all the motif stuff (xm.c, snd-motif.scm etc) has moved to the *motif* environment,
+  OpenGL (gl.c, snd-gl.scm) to *gl*, and gtk (xg.c, snd-gtk.scm etc) to *gtk*.
+
+mus-copy (or copy) copies a generator.
+added snd15.scm (old vct names)
+
+checked: gtk 3.15.2|3, FC 21, sbcl 1.2.6
+
+Thanks!: Mike Scholz, Matti Koskinen, Kjetil Matheussen, Anders Vinjar, Tito Latini
+
+===============================================================================
+
+Snd 15.1.
+
+Juan Reyes donated his Leslie instrument, rotates, in leslie.cms
+  and leslie.ins (in clm).
+
+s7 now has a s7webserver directory containing Kjetil Matheussen's
+  s7 web repl.
+
+Mike Scholz updated the Forth and Ruby scripts.
+
+checked: sbcl 1.2.4|5, gtk 3.14.0|1|2|3|4, 3.15.0|1
+
+Thanks!: Kjetil Matheussen, Juan Reyes, Mike Scholz.
+
+===============================================================================
+
+Snd 15.1.
+
+Juan Reyes donated his Leslie instrument, rotates, in leslie.cms
+  and leslie.ins (in clm).
+
+s7 now has a s7webserver directory containing Kjetil Matheussen's
+  s7 web repl.
+
+Mike Scholz updated some of the Forth and Ruby scripts.
+
+checked: sbcl 1.2.4|5, gtk 3.14.0|1|2|3|4, 3.15.0|1
+
+Thanks!: Kjetil Matheussen, Juan Reyes, Mike Scholz.
+
+===============================================================================
+
+Snd 15.0:
+
+clm and snd: Juan Reyes provided his banded waveguide instrument,
+  bandedwg.ins and bandedwg.cms, and a Tibetan bowl: bowl.ins
+  and bowl.cms.
+
+s7: *s7* is an environment holding various curiousities.
+    moved *gc-stats*, *safety*, and *maximum-stack-size* into *s7*
+    added cutlet to remove a binding from an environment
+
+checked: gtk 3.13.7|8|9, sbcl 1.2.3
+
+Thanks!: Juan Reyes
+
+===============================================================================
+
+Snd 14.9:
+
+s7: symbol-access is now just the set accessor function (not a list), and it is
+      local to an environment.  See reactive-let et al in stuff.scm.
+
+    define and friends now return the value, not the symbol (like set!).
+
+    added mockery.scm.
+
+    added hash-table* (unconsed args):
+        (hash-table '(a . 1) '(b . 2))
+        (hash-table* 'a 1 'b 2)
+
+    "let" replaces the "environment" terms
+    make-procedure-with-setter is now dilambda
+
+        new name       old name
+
+        let?         environment?
+        rootlet      global-environment
+        unlet        initial-environment
+        with-let     with-environment
+        outlet       outer-environment
+        sublet       augment-environment
+        varlet       augment-environment!
+        curlet       current-environment
+        owlet        error-environment
+        funclet      procedure-environment
+        let->list    environment->list
+        openlet      open-environment
+        openlet?     open-environment?
+        coverlet     close-environment
+        let-ref      environment-ref
+        let-set!     environment-set!
+        inlet        environment and environment*
+
+        dilambda     make-procedure-with-setter
+        dilambda?    procedure-with-setter?
+
+
+Snd: edit-position can't be a function
+     mus-sound-path and *mus-sound-path*
+     *default-output-data-format* is now *default-output-sample-type*
+     default-output-data-format is replaced by default-output-sample-type
+     similarly, data-format, mus-sound-data-format, mus-data-format->string and mus-data-format-name
+
+checked: gtk 3.13.4|5|6, FreeBSD 10, sbcl 1.2.2.
+
+Thanks!: Francis Derive, Anders Vinjar
+
+===============================================================================
+
+Snd 14.8:
+
+s7: symbol-table function now returns a list of all known symbols.
+    require added
+    removed unoptimize and reader-expand
+    Display macro in stuff.scm
+    added ~< expr ~> in format as a sort of "here-string" escape -- any s7 code in
+      the brackets is evaluated in the current environment, and the result
+      is inserted at that point in the output string (using object->string if
+      the result is not a string). This is similar to {var} or $var in various
+      shell languages.
+    also added ~| as a smarter ~^
+    for all output functions, #f as port means no output (/dev/null in effect)
+
+Snd: the numbering for dialog-widgets has changed -- the unused entries were removed.
+
+checked: sbcl 1.2.1, gtk 3.13.3
+
+Thanks!: Greg Santucci
+
+
+===============================================================================
+
+Snd 14.7.
+
+s7: sort! now operates in-place on lists (it used to copy the list).
+    sort! also accepts bytevectors (for r7rs), and as a by-product, strings.
+    string-up|downcase built-in (for r7rs).
+    stuff.scm.
+    cyclic-sequences.
+    hash-table-entries.
+
+Snd: removed defvar (use define-envelope), and multiply-arrays (missed earlier)
+
+checked: sbcl 1.1.18|1.2.0, gtk 3.13.1|2
+
+Thanks!: Mike Scholz, David Lowenfels, Corey Mwamba
+
+===============================================================================
+
+Snd 14.6
+
+s7: gensym? environment*
+
+clm: even|odd-weight|multiple (new built-in functions).
+     moving-norm (new generator).
+
+   deprecate frame and mixer generators -- use float vectors instead.
+
+   finally deprecate sound-data objects -- this includes a bunch of
+      functions such as dac-hook, mus-sound-read, etc.
+
+   "frample" replaces "frame" wherever "frame" refers to
+      a set of samples that represent a single sampling instant
+      (also known as a "sample frame").  So, the generator once
+      known as "file->frame" is now "file->frample".
+
+    mus-mix -> mus-file-mix,
+    mus-mix-with-envs -> mus-file-mix-with-envs.
+
+CL clm: bumped version number to 5 (I'll leave clm-4.tar.gz
+    for future generations to marvel at).  The new CL clm
+    does not have frames or mixers, and has file->frample
+    and frample->file in place of file->frame and frame->file.
+    Also sound-frames -> sound-framples and so on.
+
+cast into outer darkness:
+    continue-float-vector->file
+    continue-frame->file
+    dac-hook
+    file->float-vector
+    file->float-vector?
+    file->frame
+    file->frame?
+    float-vector->file
+    float-vector->file?
+    float-vector-mix
+    frame
+    frame*
+    frame+
+    frame->file
+    frame->file?
+    frame->frame
+    frame->list
+    frame->sample
+    frame-ref
+    frame-set!
+    frame?
+    frames
+    make-file->float-vector
+    make-file->frame
+    make-float-vector->file
+    make-frame
+    make-frame!
+    make-frame->file
+    make-level-meter
+    make-mixer
+    make-mixer!
+    make-scalar-mixer
+    make-sound-data
+    mixer
+    mixer*
+    mixer+
+    mixer-ref
+    mixer-set!
+    mixer?
+    mus-sound-frames
+    mus-sound-close-input
+    mus-sound-close-output
+    mus-sound-open-input
+    mus-sound-open-output
+    mus-sound-read
+    mus-sound-reopen-output
+    mus-sound-seek-frame
+    mus-sound-write
+    region-frames
+    sample->frame
+    save-mixes
+    selection-frames
+    sound-data*
+    sound-data+
+    sound-data-add!
+    sound-data-chans
+    sound-data-copy
+    sound-data-fill!
+    sound-data-length
+    sound-data-maxamp
+    sound-data-multiply!
+    sound-data-offset!
+    sound-data-peak
+    sound-data-ref
+    sound-data-reverse!
+    sound-data-scale!
+    sound-data-set!
+    sound-data?
+    stop-dac-hook
+    transform-frames
+    with-level-meters
+(some backwards compatible replacements are in snd14.scm)
+
+
+Some notes on updating:
+  the main instruments that changed are expandn, freeverb, and fullmix
+
+  mixer -> 1-dim array of floats, size: chans * chans
+  frame -> same, size: chans
+  sound-data -> 2 dim array of floats, size: '(chans samples-per-chan)
+  array of floats = float-vector in scheme, double-array in CL, vct elsewhere
+
+  "frame" -> "frample" in most cases, including mus-file-mix arg names
+  envs arg to mus-file-mix-with-envs has same layout as matrix arg
+  frample->frample arg order is '(matrix in-vector out-vector)
+  most mus-sound-read|write cases can be replaced by array->file and file->array
+
+
+checked: gtk 3.11.9|12.0|1, sbcl 1.1.17
+
+Thanks!: Mike Scholz.
+
+
+
+
+===============================================================================
+
+Snd 14.6
+
+s7: gensym? environment*
+
+clm: even|odd-weight|multiple (new built-in functions).
+     moving-norm (new generator).
+
+   deprecate frame and mixer generators -- use float vectors instead.
+
+   finally deprecate sound-data objects -- this includes a bunch of
+      functions such as dac-hook, mus-sound-read, etc.
+
+   "frample" replaces "frame" wherever "frame" refers to
+      a set of samples that represent a single sampling instant
+      (also known as a "sample frame").  So, the generator once
+      known as "file->frame" is now "file->frample".
+
+    mus-mix -> mus-file-mix,
+    mus-mix-with-envs -> mus-file-mix-with-envs.
+
+CL clm: bumped version number to 5 (I'll leave clm-4.tar.gz
+    for future generations to marvel at).  The new CL clm
+    does not have frames or mixers, and has file->frample
+    and frample->file in place of file->frame and frame->file.
+    Also sound-frames -> sound-framples and so on.
+
+cast into outer darkness:
+    selection-frames make-frame make-frame! make-frame->file
+    make-mixer make-mixer! file->frame file->frame? sound-data sound-data*
+    sound-data+ sound-data-add! sound-data-chans sound-data-copy
+    sound-data-fill! sound-data-length sound-data-maxamp sound-data-multiply!
+    sound-data-offset! sound-data-peak sound-data-ref sound-data-reverse!
+    sound-data-scale! sound-data-set! sound-data? make-scalar-mixer
+    make-sound-data frame frame* frame+ frame->file frame->file?
+    frame->frame frame->list frame->sample frame-ref frame-set! frame?
+    frames frames frames stop-dac-hook continue-frame->file
+    transform-frames mixer mixer* mixer+ mixer-ref region-frames
+    mixer-set! mixer? mixers dac-hook sample->frame save-mixes
+    with-level-meters mus-sound-frames mus-sound-seek-frame
+    make-file->frame make-level-meter float-vector->file file->float-vector
+    float-vector-mix make-float-vector->file make-file->float-vector
+    float-vector->file? file->float-vector? continue-float-vector->file
+
+
+checked: gtk 3.11.9|12.0|1, sbcl 1.1.17
+
+Thanks!: Mike Scholz.
+
+
+
+Some notes on updating:
+  the main instruments that changed are expandn, freeverb, and fullmix
+
+  mixer -> 1-dim array of floats, size: chans * chans
+  frame -> same, size: chans
+  sound-data -> 2 dim array of floats, size: '(chans samples-per-chan)
+  array of floats = float-vector in scheme, double-array in CL
+
+  "frame" -> "frample" in most cases, including mus-file-mix arg names
+  envs arg to mus-file-mix-with-envs has same layout as matrix arg
+  frample->frample arg order is '(matrix in-vector out-vector)
+  most mus-sound-read|write cases can be replaced by array->file and file->array
+
+
+===============================================================================
+
+Snd 14.6
+
+s7: gensym? environment*
+
+clm: even|odd-weight|multiple (new built-in functions).
+     moving-norm (new generator).
+
+   deprecate frame and mixer generators -- use float vectors instead.
+
+   finally deprecate sound-data objects -- this includes a bunch of
+      functions such as dac-hook, mus-sound-read, etc.
+
+   "frample" replaces "frame" wherever "frame" refers to
+      a set of samples that represent a single sampling instant
+      (also known as a "sample frame").  So, the generator once
+      known as "file->frame" is now "file->frample".
+
+    mus-mix -> mus-file-mix,
+    mus-mix-with-envs -> mus-file-mix-with-envs.
+
+CL clm: bumped version number to 5 (I'll leave clm-4.tar.gz
+    for future generations to marvel at).  The new CL clm
+    does not have frames or mixers, and has file->frample
+    and frample->file in place of file->frame and frame->file.
+    Also sound-frames -> sound-framples and so on.
+
+cast into outer darkness:
+    selection-frames make-frame make-frame! make-frame->file
+    make-mixer make-mixer! file->frame file->frame? sound-data sound-data*
+    sound-data+ sound-data-add! sound-data-chans sound-data-copy
+    sound-data-fill! sound-data-length sound-data-maxamp sound-data-multiply!
+    sound-data-offset! sound-data-peak sound-data-ref sound-data-reverse!
+    sound-data-scale! sound-data-set! sound-data? make-scalar-mixer
+    make-sound-data frame frame* frame+ frame->file frame->file?
+    frame->frame frame->list frame->sample frame-ref frame-set! frame?
+    frames frames frames stop-dac-hook continue-frame->file
+    transform-frames mixer mixer* mixer+ mixer-ref region-frames
+    mixer-set! mixer? mixers dac-hook sample->frame save-mixes
+    with-level-meters mus-sound-frames mus-sound-seek-frame
+    make-file->frame make-level-meter float-vector->file file->float-vector
+    float-vector-mix make-float-vector->file make-file->float-vector
+    float-vector->file? file->float-vector? continue-float-vector->file
+
+
+checked: gtk 3.11.9|12.0|1, sbcl 1.1.17
+
+Thanks!: Mike Scholz.
+
+
+
+===============================================================================
+
+Snd 14.6
+
+s7: gensym? environment*
+
+clm: even|odd-weight|multiple (new built-in functions).
+     moving-norm (new generator).
+
+   deprecate frame and mixer generators -- use float vectors instead.
+
+   finally deprecate sound-data objects -- this includes a bunch of
+      functions such as dac-hook, mus-sound-read, etc.
+
+   "frample" replaces "frame" wherever "frame" refers to
+      a set of samples that represent a single sampling instant
+      (also known as a "sample frame").  So, the generator once
+      known as "file->frame" is now "file->frample".
+
+    mus-mix -> mus-file-mix,
+    mus-mix-with-envs -> mus-file-mix-with-envs.
+
+cast into outer darkness:
+    selection-frames make-frame make-frame! make-frame->file
+    make-mixer make-mixer! file->frame file->frame? sound-data sound-data*
+    sound-data+ sound-data-add! sound-data-chans sound-data-copy
+    sound-data-fill! sound-data-length sound-data-maxamp sound-data-multiply!
+    sound-data-offset! sound-data-peak sound-data-ref sound-data-reverse!
+    sound-data-scale! sound-data-set! sound-data? make-scalar-mixer
+    make-sound-data frame frame* frame+ frame->file frame->file?
+    frame->frame frame->list frame->sample frame-ref frame-set! frame?
+    frames frames frames stop-dac-hook continue-frame->file
+    transform-frames mixer mixer* mixer+ mixer-ref region-frames
+    mixer-set! mixer? mixers dac-hook sample->frame save-mixes
+    with-level-meters mus-sound-frames mus-sound-seek-frame
+    make-file->frame make-level-meter float-vector->file file->float-vector
+    float-vector-mix make-float-vector->file make-file->float-vector
+    float-vector->file? file->float-vector? continue-float-vector->file
+
+
+checked: gtk 3.11.9|12.0|1, sbcl 1.1.17
+
+Thanks!: Mike Scholz.
+
+
+
+===============================================================================
+
+Snd 14.6
+
+s7: gensym? environment*
+
+clm: even|odd-weight|multiple (new built-in functions).
+     moving-norm (new generator).
+
+   deprecate frame and mixer generators -- use float vectors instead.
+
+   finally deprecate sound-data objects -- this includes a bunch of
+      functions such as dac-hook, mus-sound-read, etc.
+
+   "frample" replaces "frame" wherever "frame" refers to
+      a set of samples that represent a single sampling instant
+      (also known as a "sample frame").  So, the generator once
+      known as "file->frame" is now "file->frample".
+
+    mus-mix -> mus-file-mix,
+    mus-mix-with-envs -> mus-file-mix-with-envs.
+
+cast into outer darkness:
+    selection-frames make-frame make-frame! make-frame->file
+    make-mixer make-mixer! file->frame file->frame? sound-data sound-data*
+    sound-data+ sound-data-add! sound-data-chans sound-data-copy
+    sound-data-fill! sound-data-length sound-data-maxamp sound-data-multiply!
+    sound-data-offset! sound-data-peak sound-data-ref sound-data-reverse!
+    sound-data-scale! sound-data-set! sound-data? make-scalar-mixer
+    make-sound-data frame frame* frame+ frame->file frame->file?
+    frame->frame frame->list frame->sample frame-ref frame-set! frame?
+    frames frames frames stop-dac-hook continue-frame->file
+    transform-frames mixer mixer* mixer+ mixer-ref region-frames
+    mixer-set! mixer? mixers dac-hook sample->frame save-mixes
+    with-level-meters mus-sound-frames mus-sound-seek-frame
+    make-file->frame make-level-meter
+
+
+checked: gtk 3.11.9|12.0|1, sbcl 1.1.17
+
+Thanks!: Mike Scholz.
+
+
+
+===============================================================================
+
+Snd 14.6
+
+s7: gensym? environment*
+
+clm: even|odd-weight|multiple (new built-in functions).
+
+   deprecate frame and mixer generators -- use float vectors instead.
+
+   finally deprecate sound-data objects -- this includes a bunch of
+      functions such as dac-hook, mus-sound-read, etc.
+
+   "frample" replaces "frame" wherever "frame" refers to
+      a set of samples that represent a single sampling instant
+      (also known as a "sample frame").  So, the generator once
+      known as "file->frame" is now "file->frample".
+
+    mus-mix -> mus-file-mix,
+    mus-mix-with-envs -> mus-file-mix-with-envs.
+
+cast into outer darkness:
+    selection-frames make-frame make-frame! make-frame->file
+    make-mixer make-mixer! file->frame file->frame? sound-data sound-data*
+    sound-data+ sound-data-add! sound-data-chans sound-data-copy
+    sound-data-fill! sound-data-length sound-data-maxamp sound-data-multiply!
+    sound-data-offset! sound-data-peak sound-data-ref sound-data-reverse!
+    sound-data-scale! sound-data-set! sound-data? make-scalar-mixer
+    make-sound-data frame frame* frame+ frame->file frame->file?
+    frame->frame frame->list frame->sample frame-ref frame-set! frame?
+    frames frames frames stop-dac-hook continue-frame->file
+    transform-frames mixer mixer* mixer+ mixer-ref region-frames
+    mixer-set! mixer? mixers dac-hook sample->frame save-mixes
+    with-level-meters mus-sound-frames mus-sound-seek-frame
+    make-file->frame make-level-meter
+
+
+checked: gtk 3.11.9|12.0|1, sbcl 1.1.17
+
+Thanks!: Mike Scholz.
+
+
+
+===============================================================================
+
+Snd 14.6
+
+s7: gensym? environment*
+
+clm: even|odd-weight|multiple (new built-in functions).
+
+   deprecate frame and mixer generators -- use float vectors instead.
+
+   finally deprecate sound-data objects -- this includes a bunch of
+      functions such as dac-hook, mus-sound-read, etc.
+
+   "frample" replaces "frame" wherever "frame" refers to
+      a set of samples that represent a single sampling instant
+      (also known as a "sample frame").  So, the generator once
+      known as "file->frame" is now "file->frample".
+
+    mus-mix -> mus-file-mix,
+    mus-mix-with-envs -> mus-file-mix-with-envs.
+
+cast into outer darkness:
+    selection-frames make-frame make-frame! make-frame->file
+    make-mixer make-mixer! file->frame file->frame? sound-data sound-data*
+    sound-data+ sound-data-add! sound-data-chans sound-data-copy
+    sound-data-fill! sound-data-length sound-data-maxamp sound-data-multiply!
+    sound-data-offset! sound-data-peak sound-data-ref sound-data-reverse!
+    sound-data-scale! sound-data-set! sound-data? make-scalar-mixer
+    make-sound-data frame frame* frame+ frame->file frame->file?
+    frame->frame frame->list frame->sample frame-ref frame-set! frame?
+    frames frames frames stop-dac-hook continue-frame->file
+    transform-frames mixer mixer* mixer+ mixer-ref region-frames
+    mixer-set! mixer? mixers dac-hooksample->frame save-mixes
+    with-level-meters mus-sound-frames mus-sound-seek-frame
+    make-file->frame make-level-meter
+
+
+checked: gtk 3.11.9|12.0|1, sbcl 1.1.17
+
+Thanks!: Mike Scholz.
+
+
+
+===============================================================================
+
+Snd 14.5:
+
+CLM: Lispworks port thanks to Anders Vinjar.
+
+many internal changes (13 Mbytes in the changelog),
+  but none visible, I hope.
+
+checked: gtk 3.11.6|7|8, sbcl-1.1.16
+
+Thanks!: Rick, Anders, Tito Latini.
+
+
+===============================================================================
+
+Snd 14.4:
+
+Mike Scholz updated sndins.c.
+
+s7: changed lambda* arg handling slightly to mimic CL.
+    added when and unless (for r7rs; these were macros).
+
+CLM: Frank Zalkow donated lw-all.lisp.
+
+checked: gtk 3.11.4|5, sbcl 1.1.15.
+
+Thanks!: Rick, Mike, Frank Zalkow, James Hearon.
+
+
+Just a progress report, some timings:
+
+  version     12.x  13.0  14.4
+
+  snd-test     359   275  39.7  (no gui)
+  s7test      1721  1358   974  (hard to optimize)
+  make-index 44300  3291  1382  (hooray for char-position)
+  t455|6       265    89   5.2  (the s7.html torture tester)
+  t502          90    43  13.6  (pure clm)
+  bench      42736  8752  3447  (the standard Gabriel tests)
+  lat          229    63  30.4  (old-style academistry)
+
+These are callgrind numbers.  Currently if you're running the
+gtk Snd, nearly all the time is going to gtk and cairo.
+
+
+
+===============================================================================
+
+Snd 14.4:
+
+Mike Scholz updated sndins.c.
+
+s7: changed lambda* arg handling slightly to mimic CL.
+    added when and unless (for r7rs; these were macros).
+
+CLM: Frank Zalkow donated lw-all.lisp.
+
+checked: gtk 3.11.4|5, sbcl 1.1.15.
+
+Thanks!: Rick, Mike, Frank Zalkow, James Hearon.
+
+
+Just a progress report, some timings:
+
+  version     12.x  13.0  14.4
+
+  snd-test     359   275  39.7  (no gui)
+  s7test      1721  1358   974  (hard to optimize)
+  make-index 44300  3291  1382  (hooray for char-position)
+  t455|6       265    89   5.2  (the s7.html torture tester)
+  t502          90    43  13.6  (pure clm)
+  bench      42736  8752  3447  (the standard Gabriel tests)
+  lat          229    63  30.4  (bad-old-style academistry)
+
+These are callgrind numbers.  Currently if you're running the
+gtk Snd, nearly all the time is going to gtk and cairo (mainly,
+I think, to their allocation functions).
+
+
+===============================================================================
+
+Snd 14.3
+read-sample-with-direction
+make-float-vector
+mus-set-formant-frequency
+make-polywave additional args xcoeffs ycoeffs
+mus_file_read* changed and mus-sound-read
+mus-sound-preload
+checked: sbcl-1.1.14, FC 20
+Thanks!: Mike Scholz, Dave Phillips.
+
+===============================================================================
+
+Snd 14.2:
+
+added *show-indices* etc (the old procedure-with-setter globals
+  can now be accessed as normal variables -- there are about
+  200 of them).
+
+with-tracking-cursor changed again! (added :track-and-stay to
+  make the cursor stay where the play stops).
+
+removed (obsolete) trap-segfault.
+
+s7: bignum-precision is now a variable: *bignum-precision*.
+    added *maximum-stack-size* to catch infinite recursion.
+
+checked: gtk 3.10.2|11.0|2, OSX 10.9, sbcl 1.1.13
+
+Thanks!: Ray Rashif, Robert Komar
+
+===============================================================================
+
+Snd 14.1:
+
+removed frame.scm and mixer.scm (frames and mixers have been replaced
+  by float-vectors in s7-clm).
+
+checked: gtk 3.9.16, 3.10.0|1, sbcl 1.1.12.
+
+Thanks!: Mike Scholz.
+
+===============================================================================
+
+Snd 14.1:
+
+mostly bug fixes.
+
+checked: gtk 3.9.16, 3.10.0, sbcl 1.1.12.
+
+Thanks!: Mike Scholz.
+
+===============================================================================
+
+Snd 14.0
+
+added --with-readline to the configure script
+
+in s7: make-shared-vector, homogenous int and float vectors
+         sound-data and vct (the types) are now just synonyms for vector
+         (this is step 3 of the guile->s7 plan from 2008)
+         dac-hook data is now a list of float vectors
+
+       ~W in format, :readable as third arg of object->string
+         write.scm: pretty-print, checkpoint (removed pretty-print.scm).
+
+       WITH_MAIN compiler flag to include a main program in s7.c (a REPL).
+
+       libc.scm (bindings to most of libc)
+       libgsl.scm (bindings for some of GSL)
+
+       reader-expand and reader-cond -- read-time choices (#+ analogs)
+
+removed oscope.scm and sound-data->sound-data
+removed kmenu.scm (obsolete)
+
+Checked: gtk 3.9.12|14, sbcl 1.1.11
+
+Thanks!:  Rick Taube, James Hearon
+
+===============================================================================
+
+Snd 13.9:
+
+sndlib now can be built by premake4, thanks to Rick.
+
+added --with-audio switch to sndlib configure script.
+  innumerable other changes to the configure stuff in snd, sndlib, libxm, clm.
+  old switch --with-no-gui is now --without-gui.
+  removed --with-just-gl, --enable-readline, snd-as-widget,
+          --with-motif-prefix and --with-ruby-prefix.
+  Gtk is now the default GUI toolkit, not Motif.
+
+  added make-config-pc.rb to Snd/tools, sndlib, libxm
+    this is a script Mike Scholz wrote to create a ruby.pc file if
+    your Ruby package omitted it by mistake.
+
+  cload.scm: changed define-c-function to c-define.
+  added libm.scm to dynamically load the math library functions.
+        libgdbm.scm to load the gdbm library.
+        libdl.scm for libdl.
+        tools/gdb-s7.scm: some unfinished gdb hackery.
+
+removed trap-segfault.
+
+ported Snd to OpenIndiana (solaris).
+
+checked: gtk 3.9.6|8|10, sbcl 1.1.9|10, gl2ps 1.3.8, Linux Mint 15 (Debian),
+	 gsl 1.16.
+
+Thanks!: Nando, Rick, Mike, Orm Finnendahl.
+
+===============================================================================
+
+Snd 13.8.
+
+s7: added autoload (actually moved it from Snd to s7).
+    ffitest.c
+
+
+Snd: listener-colorized, syntax highlighting in glistener.
+     colorizer-colors.
+
+     removed the view files dialog from the gtk version, including all the
+       related extension language functions, and view-files-select-hook.
+
+     The various file open/save dialogs now (sigh) use gtk's filechooser.
+
+     the file-sorter functions now apply only to the Motif case.
+
+
+cmn: Lispworks port thanks to Anders Vinjar.
+clm: sbcl bugfix thanks to Michael Edwards.
+
+checked: gtk 3.9.2, sbcl 1.1.8, openbsd 5.3 and FC 19 (via VirtualBox)
+
+Thanks!: Victor Gerasimov, Mike Scholz, Anders Vinjar, Michael Edwards, Rick Taube.
+
+===============================================================================
+
+Snd 13.7.
+
+s7: r7rs changes: flush-output-port, vector-append, read|write-string,
+       boolean=?, symbol=?, exit, emergency-exit.
+       added destination/start/end args to copy.
+
+Snd: new gtk listener, split out as glistener.c/h,
+       tests in tools/gcall.c and tools/gtest.scm.
+
+checked: sbcl 1.1.7, gtk 3.9.0
+
+Thanks!: Nando, Jason Ripley, James Hearon
+
+===============================================================================
+
+Snd 13.6
+
+added environment-ref|set!
+      char-position and string-position (moved from Snd to s7)
+      make-formant-bank and formant-bank? (and changed formant-bank again)
+      comb-bank, all-pass-bank, and filtered-comb-bank generators
+      one-pole-all-pass generator moved to C
+      envelope-interp, rxyk!cos, and rxyk!sin moved to C
+      yet another version of oscil-bank
+
+removed mus-file-prescaler and mus-prescaler  -- these no longer serve any purpose.
+
+checked: gtk 3.7.14, 3.8.0|1, sbcl 1.1.6.
+
+Thanks!: Michael Edwards, Mike Scholz
+
+
+===============================================================================
+
+Snd 13.6
+
+added environment-ref|set!
+      char-position and string-position (moved from Snd to s7)
+      make-formant-bank and formant-bank? (and changed formant-bank again)
+      comb-bank, all-pass-bank, and filtered-comb-bank generators
+      one-pole-all-pass generator moved to C
+      envelope-interp, rxyk!cos, and rxyk!sin moved to C
+      yet another version of oscil-bank
+
+removed mus-file-prescaler and mus-prescaler  -- these no longer serve any purpose.
+
+checked: gtk 3.7.14, 3.8.0|1, sbcl 1.1.6
+
+Thanks!: Michael Edwards, Mike Scholz
+
+
+===============================================================================
+
+Snd 13.5
+
+moving-max is now built-in.
+added vct-min and vct-max.
+
+checked: sbcl 1.1.5, ruby 2.0.0, gtk 3.7.12
+
+Thanks!: Mike and Fernando.
+
+
+===============================================================================
+
+Snd 13.4
+
+Fernando added 3rd order ambisonics support in dlocsig.scm.
+
+clm+s7 is finally up to speed -- I think it is as fast as
+  the old run macro version.  This took about twice as long
+  as I expected.
+
+checked: gmp 5.1.0, sbcl 1.1.3|4, FC18 (gcc 4.7.2).
+
+
+
+
+===============================================================================
+
+Snd 13.3
+
+Adam Sampson added DESTDIR support to the makefile.
+removed rtio.scm.
+removed all the clm safety stuff (*clm-ouput-safety*, mus-safety etc).
+as always, Mike Scholz and I have made a bazillion incremental improvements!
+
+Checked: sbcl 1.1.1|2, cmucl 20d, gtk 3.7.2|4, fftw 3.3.3
+
+
+
+===============================================================================
+
+Snd 13.3
+
+Adam Sampson added DESTDIR support to the makefile.
+
+removed rtio.scm.
+removed all the clm safety stuff (*clm-ouput-safety*, mus-safety etc).
+
+Checked: sbcl 1.1.1|2, cmucl 20d, gtk 3.7.2|4, fftw 3.3.3
+
+Thanks!: Mike, Adam Sampson.
+
+
+===============================================================================
+
+Snd 13.2
+
+named let*.
+
+deprecated clm-print (snd13.scm has a replacement).
+
+checked: fftw 3.3.2, gtk 3.6.0|1 3.7.0, sbcl 1.1.0
+
+Thanks!: Rick, Mike.
+
+
+
+===============================================================================
+
+Snd 13.1:
+
+cload.scm to automatically link in a C function from a C shared library
+  this file and lint.scm are now also included in the s7 tarball.
+symbol->dynamic-value
+
+checked: gtk 3.5.12|14|16|18, clang 3.1, mpc 1.0.1
+
+Thanks!:  Fernando, Mike, Rick, Anders Vinjar.
+
+
+
+===============================================================================
+
+Snd 13.0:
+
+Mike Scholz fixed up the sndins directory.
+
+Matti Koskinen got s7 working in uclinux on the blackfin processor.
+
+removed run.c and the run macro (34000 lines!).
+
+removed ptree-channel, max-virtual-ptrees, optimization,
+  optimization-hook, add-clm-field, declare, and all the scheme
+  functions that depended on these.
+
+deprecated vct-map! and removed it from the Snd files.
+
+added Save icon to the toolbars
+
+moved the clm/clm2xen struct declarations out of the header files,
+  and added accessor functions.  (Bumped clm to 5.0, sndlib to 22.0).
+
+completely changed defgenerator (in s7 it is now based on environments).
+  removed def-clm-struct and ws-interrupt.
+
+added mus-mix-with-envs (for fullmix), and oscil-bank.
+
+removed gamin support (ancient libfam replacement).
+
+removed the s7 WITH_OPTIMIZATION switch
+
+checked: gtk 3.5.6|8|10, mpc 1.0, sbcl 1.0.58
+
+Thanks!:  Matti Koskinen, Mike Scholz
+
+===============================================================================
+
+Snd 13.0:
+
+Mike Scholz fixed up the sndins directory.
+
+Matti Koskinen got s7 working in uclinux on the blackfin processor.
+
+removed run.c and the run macro (34000 lines!).
+
+removed ptree-channel, max-virtual-ptrees, optimization,
+  optimization-hook, add-clm-field, declare, and all the scheme
+  functions that depended on these.
+
+deprecated vct-map! and removed it from the Snd files.
+
+added Save icon to the toolbars
+
+moved the clm/clm2xen struct declarations out of the header files,
+  and added accessor functions.  (Bumped clm to 5.0, sndlib to 22.0).
+
+completely changed defgenerator (in s7 it is now based on environments).
+  removed def-clm-struct and ws-interrupt.
+
+added mus-mix-with-envs (for fullmix), and oscil-bank.
+
+removed gamin support (ancient libfam replacement).
+
+removed the s7 WITH_OPTIMIZATION switch
+
+checked: gtk 3.5.6|8, mpc 1.0
+
+Thanks!:  Matti Koskinen, Mike Scholz
+
+===============================================================================
+
+Snd 13.0:
+
+Mike Scholz fixed up the sndins directory.
+
+Matti Koskinen got s7 working in uclinux on the blackfin processor.
+
+removed run.c and the run macro (34000 lines!).
+
+removed ptree-channel, max-virtual-ptrees, optimization,
+  optimization-hook, add-clm-field, declare, and all the scheme
+  functions that depended on these.
+
+deprecated vct-map! and removed it from the Snd files.
+
+added Save icon to the toolbars
+
+moved the clm/clm2xen struct declarations out of the header files,
+  and added accessor functions.  (Bumped clm to 5.0, sndlib to 22.0).
+
+completely changed defgenerator (in s7 it is now based on environments).
+  removed def-clm-struct and ws-interrupt.
+
+added mus-mix-with-envs (for fullmix), and oscil-bank.
+
+removed gamin support (ancient libfam replacement).
+
+checked: gtk 3.5.6|8, mpc 1.0
+
+Thanks!:  Matti Koskinen, Mike Scholz
+
+===============================================================================
+
+Snd 13.0:
+
+Mike Scholz fixed up the sndins directory.
+
+Matti Koskinen got s7 working in uclinux on the blackfin processor.
+
+removed run.c and the run macro (34000 lines!).
+
+removed ptree-channel, max-virtual-ptrees, optimization,
+  optimization-hook, add-clm-field, declare, and all the scheme
+  functions that depended on these.
+
+deprecated vct-map! and removed it from the Snd files.
+
+added Save icon to the toolbars
+
+moved the clm/clm2xen struct declarations out of the header files,
+  and added accessor functions.  (Bumped clm to 5.0, sndlib to 22.0).
+
+completely changed defgenerator (in s7 it is now based on environments).
+  removed def-clm-struct and ws-interrupt.
+
+added mus-mix-with-envs (for fullmix), and oscil-bank.
+
+removed gamin support (ancient libfam replacement).
+
+checked: gtk 3.5.6|8
+
+Thanks!:  Matti Koskinen, Mike Scholz
+
+===============================================================================
+
+Snd 13.0:
+
+Matti Koskinen got s7 working in uclinux on the blackfin processor.
+
+removed run.c and the run macro (34000 lines!).
+
+removed ptree-channel, max-virtual-ptrees, optimization,
+  optimization-hook, add-clm-field, declare, and all the scheme
+  functions that depended on these.
+
+deprecated vct-map! and removed it from the Snd scheme files.
+
+added Save icon to the toolbars
+
+moved the clm/clm2xen struct declarations out of the header files,
+  and added accessor functions.  (Bumped clm to 5.0, sndlib to 22.0).
+
+completely changed defgenerator (in s7 it is now based on environments).
+  removed def-clm-struct and ws-interrupt.
+
+added mus-mix-with-envs (for fullmix), and oscil-bank.
+
+removed gamin support (ancient libfam replacement, used only in Motif version).
+
+checked: gtk 3.5.6|8
+
+Thanks!:  Matti Koskinen, Mike Scholz
+
+===============================================================================
+
+Snd 13.0:
+
+Matti Koskinen got s7 working in uclinux on the blackfin processor.
+
+removed run.c and the run macro (34000 lines!).
+
+removed ptree-channel, max-virtual-ptrees, optimization,
+  optimization-hook, add-clm-field, declare, and all the scheme
+  functions that depended on these.
+
+deprecated vct-map! and removed it from the Snd scheme files.
+removed trailing with-source arg from display-edits.
+
+added Save icon to the toolbars
+
+moved the clm/clm2xen struct declarations out of the header files,
+  and added accessor functions.  (Bumped clm to 5.0, sndlib to 22.0).
+
+completely changed defgenerator.
+  removed def-clm-struct and ws-interrupt.
+
+added mus-mix-with-envs (for fullmix), and oscil-bank.
+
+removed gamin support (ancient libfam replacement, used only in Motif version).
+
+checked: gtk 3.5.6|8
+
+Thanks!:  Matti Koskinen, Mike Scholz
+
+===============================================================================
+
+Snd 13.0:
+
+Matti Koskinen got s7 working in uclinux on the blackfin processor.
+
+removed run.c and the run macro (34000 lines!).
+
+removed ptree-channel, max-virtual-ptrees, optimization,
+  optimization-hook, add-clm-field, declare, and all the scheme
+  functions that depended on these.
+
+deprecated vct-map! and removed it from the Snd scheme files.
+removed trailing with-source arg from display-edits.
+
+added Save icon to the toolbars
+
+moved the clm/clm2xen struct declarations out of the header files,
+  and added accessor functions.  (Bumped clm to 5.0, sndlib to 22.0).
+
+added mus_make_generator, mus_make_generator_type, mus_xen_gen
+  (moved parts of defgenerator to C).  removed def-clm-struct.
+  defgenerator fields no longer have a type option.
+  removed (ancient, obsolete ws-interrupt).
+
+added mus-mix-with-envs (for fullmix), and oscil-bank.
+
+removed gamin support (ancient libfam replacement, used only in Motif version).
+
+checked: gtk 3.5.6|8
+
+Thanks!:  Matti Koskinen, Mike Scholz
+
+===============================================================================
+
+Snd 13.0:
+
+Matti Koskinen got s7 working in uclinux on the blackfin processor.
+
+removed run.c and the run macro (34000 lines!).
+
+removed ptree-channel, max-virtual-ptrees, optimization,
+  optimization-hook, add-clm-field, declare, and all the scheme
+  functions that depended on these.
+
+deprecated vct-map! and removed it from the Snd scheme files.
+removed trailing with-source arg from display-edits.
+
+added Save icon to the toolbars
+
+moved the clm/clm2xen struct declarations out of the header files,
+  and added accessor functions.  (Bumped clm to 5.0, sndlib to 22.0).
+
+added mus_make_generator, mus_make_generator_type, mus_xen_gen
+  (moved parts of defgenerator to C).  removed def-clm-struct.
+
+added mus-mix-with-envs (for fullmix), and oscil-bank.
+
+removed gamin support (ancient libfam replacement, used only in Motif version).
+
+checked: gtk 3.5.6|8
+
+Thanks!:  Matti Koskinen, Mike Scholz
+
+===============================================================================
+
+Snd 13.0:
+
+Matti Koskinen got s7 working in uclinux on the blackfin processor.
+
+removed run.c and the run macro (34000 lines!).
+
+removed ptree-channel, max-virtual-ptrees, optimization,
+  optimization-hook, add-clm-field, declare, and all the scheme
+  functions that depended on these.
+
+deprecated vct-map! and removed it from the Snd scheme files.
+removed trailing with-source arg from display-edits.
+
+added Save icon to the toolbars
+
+moved the clm/clm2xen struct declarations out of the header files,
+  and added accessor functions.  (Bumped clm to 5.0, sndlib to 22.0).
+
+added mus_make_generator, mus_make_generator_type, mus_xen_gen
+  (moved parts of defgenerator to C).  removed def-clm-struct.
+
+added mus-mix-with-envs (for fullmix), and oscil-bank.
+
+checked: gtk 3.5.6|8
+
+Thanks!:  Matti Koskinen, Mike Scholz
+
+===============================================================================
+
+Snd 13.0:
+
+Matti Koskinen got s7 working in uclinux on the blackfin processor.
+
+removed run.c and the run macro (34000 lines!).
+
+removed ptree-channel, max-virtual-ptrees, optimization,
+  optimization-hook, add-clm-field, declare, and all the scheme
+  functions that depended on these.
+
+deprecated vct-map! and removed it from the Snd scheme files.
+removed trailing with-source arg from display-edits.
+
+added Save icon to the toolbars
+
+moved the clm/clm2xen struct declarations out of the header files,
+  and added accessor functions.  (Bumped clm to 5.0, sndlib to 22.0).
+
+added mus_make_generator, mus_make_generator_type, mus_xen_gen
+  (moved parts of defgenerator to C).  removed def-clm-struct.
+
+checked: gtk 3.5.6|8
+
+Thanks!:  Matti Koskinen, Mike Scholz
+
+
+===============================================================================
+
+Snd 13.0:
+
+Matti Koskinen got s7 working in uclinux on the blackfin processor.
+
+removed run.c and the run macro (34000 lines!).
+
+removed ptree-channel, max-virtual-ptrees, optimization,
+  optimization-hook, add-clm-field, declare, and all the scheme
+  functions that depended on these.
+
+deprecated vct-map! and removed it from the Snd scheme files.
+removed trailing with-source arg from display-edits.
+
+added Save icon to the toolbars
+
+moved the clm/clm2xen struct declarations out of the header files,
+  and added accessor functions.  (Bumped clm to 5.0, sndlib to 22.0).
+
+added mus_make_generator, mus_make_generator_type, mus_xen_gen
+  (moved parts of defgenerator to C).  removed def-clm-struct.
+
+checked: gtk 3.5.6
+
+Thanks!:  Matti Koskinen, Mike Scholz
+
+
+===============================================================================
+
+Snd 12.12:
+
+s7: open-environment?
+    all built-in functions are generic, and any scheme (or C) function can be.
+    added throw (like error, but does not affect error-environment, nor call *error-hook*).
+
+Snd: removed the --with-static-* configuration switches.  The difference
+       in either file size or runtime size is miniscule compared to
+       everything else, and memory is extremely cheap.  This includes
+       --with-static-xm|xg|alsa|motif
+
+checked: sbcl 1.0.57, FC 17 (gcc 4.7.0), gtk 3.5.4
+
+Thanks!: Michael Alcorn, Mike Scholz, Brian Damgaard.
+
+===============================================================================
+
+Snd 12.11:
+
+  s7: if WITH_SYSTEM_EXTRAS is 1 (default is 0) include
+        directory? file-exists? delete-file getenv directory->list system
+      with-baffle to limit the scope of continuations
+      #_<name> is the initial (built-in, startup) value of <name>
+      *error-info* replaced by error-environment, stacktrace changed slightly.
+      hooks changed completely (s7 version bumped to 2.0 since this is a
+        large backwards imcompatible change).
+      procedure-setter is settable, so most of the old procedure-with-setter
+        stuff is gone.
+      s7_list, s7_environment_ref|set, s7_procedure_set_setter in s7.h.
+      make-type replaced by open-environment. s7.html has a largely backwards
+        compatible scheme version of make-type.
+      aritable? to check arity match (named "procedure-arity-includes" in srfi-102).
+      arity to generalize and replace procedure-arity
+      removed trace and untrace (replaced by the trace macro in s7.html).
+
+  sndlib: removed mus-audio-describe, audinfo, ESD audio support.
+
+  Snd: removed print-hook.
+
+checked: sbcl 1.0.56, gtk 3.4.1|3.5.2, autoconf 2.69, ruby 1.9.3-p194, cairo 1.12.2
+         gmp 5.0.5
+
+Thanks!: Ludger Brummer, Torsten Anders, Mike Scholz, Rick Taube, Peter Bex.
+
+===============================================================================
+
+Snd 12.11:
+
+  s7: if WITH_SYSTEM_EXTRAS is 1 (default is 0) include
+        directory? file-exists? delete-file getenv directory->list system
+      with-baffle to limit the scope of continuations
+      #_<name> is the initial (built-in, startup) value of <name>
+      *error-info* replaced by error-environment, stacktrace changed slightly.
+      hooks changed completely (s7 version bumped to 2.0 since this is a
+        large backwards imcompatible change).
+      procedure-setter is settable, so most of the old procedure-with-setter
+        stuff is gone.
+      s7_list, s7_environment_ref|set, s7_procedure_set_setter in s7.h.
+      make-type replaced by open-environment. s7.html has a largely backwards
+        compatible scheme version of make-type.
+      aritable? to check arity match (named "procedure-arity-includes" in srfi-102).
+      arity to generalize and replace procedure-arity
+
+  sndlib: removed mus-audio-describe, audinfo, ESD audio support.
+
+  Snd: removed print-hook.
+
+checked: sbcl 1.0.56, gtk 3.4.1|3.5.2, autoconf 2.69, ruby 1.9.3-p194, cairo 1.12.2
+         gmp 5.0.5
+
+Thanks!: Ludger Brummer, Torsten Anders, Mike Scholz, Rick Taube, Peter Bex.
+
+===============================================================================
+
+Snd 12.11:
+
+  s7: if WITH_SYSTEM_EXTRAS is 1 (default is 0) include
+        directory? file-exists? delete-file getenv directory->list system
+      with-baffle to limit the scope of continuations
+      #_<name> is the initial (built-in, startup) value of <name>
+      *error-info* replaced by error-environment, stacktrace changed slightly.
+      hooks changed completely (s7 version bumped to 2.0 since this is a
+        large backwards imcompatible change).
+      procedure-setter is settable, so most of the old procedure-with-setter
+        stuff is gone.
+      s7_list, s7_environment_ref|set, s7_procedure_set_setter in s7.h.
+      make-type replaced by open-environment. s7.html has a largely backwards
+        compatible scheme version of make-type.
+
+  sndlib: removed mus-audio-describe, audinfo, ESD audio support.
+
+  Snd: removed print-hook.
+
+checked: sbcl 1.0.56, gtk 3.4.1|3.5.2, autoconf 2.69, ruby 1.9.3-p194, cairo 1.12.2
+         gmp 5.0.5
+
+Thanks!: Ludger Brummer, Torsten Anders, Mike Scholz, Rick Taube, Peter Bex.
+
+===============================================================================
+
+Snd 12.11:
+
+  s7: if WITH_SYSTEM_EXTRAS is 1 (default is 0) include
+        directory? file-exists? delete-file getenv directory->list system
+      with-baffle to limit the scope of continuations
+      #_<name> is the initial (built-in, startup) value of <name>
+      *error-info* replaced by error-environment, stacktrace changed slightly.
+      hooks changed completely (s7 version bumped to 2.0 since this is a
+        large backwards imcompatible change).
+      procedure-setter is settable, so most of the old procedure-with-setter
+        stuff is gone.
+      s7_list, s7_environment_ref|set, s7_procedure_set_setter in s7.h.
+      make-type has changed completely, and is currently completely broken.
+
+  sndlib: removed mus-audio-describe, audinfo, ESD audio support.
+
+  Snd: removed print-hook.
+
+checked: sbcl 1.0.56, gtk 3.4.1|3.5.2, autoconf 2.69, ruby 1.9.3-p194, cairo 1.12.2
+         gmp 5.0.5
+
+Thanks!: Ludger Brummer, Torsten Anders, Mike Scholz, Rick Taube, Peter Bex.
+
+===============================================================================
+
+Snd 12.11:
+
+  s7: if WITH_SYSTEM_EXTRAS is 1 (default is 0) include
+        directory? file-exists? delete-file getenv directory->list system
+      with-baffle to limit the scope of continuations
+      #_<name> is the initial (built-in, startup) value of <name>
+      *error-info* replaced by error-environment, and stacktrace changed slightly.
+      hooks changed completely
+
+  sndlib: removed mus-audio-describe, audinfo, ESD audio support.
+
+  Snd: removed print-hook.
+
+checked: sbcl 1.0.56, gtk 3.4.1|3.5.2, autoconf 2.69, ruby 1.9.3-p194, cairo 1.12.2
+         gmp 5.0.5
+
+Thanks!: Ludger Brummer, Torsten Anders, Mike Scholz, Rick Taube, Peter Bex.
+
+===============================================================================
+
+Snd 12.10.
+
+This version is mostly bugfixes and documentation improvements.
+In s7 "@" is now an exponent marker.
+
+checked: gtk 3.3.18|20|3.4.0, gmp 5.0.4, mpfr 3.1.0, cairo 1.12.0
+
+Thanks!: Jeffrey Zimmer, Sean Reed, Michael Edwards, Peter Bex.
+
+===============================================================================
+
+Snd 12.9
+
+  Mike Scholz got Snd to compile/load/run in
+     FreeBSD 8, 9, and 10
+     CentOS: gcc (GCC) 4.4.6 20110731 (Red Hat 4.4.6-3)
+     Ubuntu: gcc (Ubuntu/Linaro 4.6.1-9ubuntu3) 4.6.1
+     Debian: gcc (Debian 4.4.5-8) 4.4.5
+     NetBSD
+     OpenBSD
+
+  s7: added random-state?, hash-table-iterator?, and morally-equal?
+
+  clm/cmn/snd/s7: removed snd1.html and snd-contents.html (these were
+       using Javascript for stuff that is now built into html), and
+       translated the rest of the html files to html5.
+
+  snd: removed the recorder, recorder-dialog, snd-g|xrec.c,
+       changed various menu names and added a view:with-grid menu
+       moved dialog buttons around at random,
+       removed save-macros and named keyboard macros,
+       added context-sensitive tooltips to the gtk version,
+       changed the gtk listener default font to Monospace 11,
+       the "minibuffer" is now a "statusbar".  This means it is not
+          editable, so all the key sequences that used to prompt for
+          info are either undefined now, or use a dialog instead.
+       removed minibuffer-history-length, prompt-in-minibuffer, clear-minibuffer,
+          and report-in-minibuffer.  Replaced the latter two with status-report.
+       removed sound-specific search-procedures (i.e. there is only one search procedure)
+       removed the bomb function
+
+checked: clang 1.7, gmp 5.0.3, gtk 3.3.14|16
+
+Thanks!: Mike Scholz
+
+
+===============================================================================
+
+Snd 12.9
+
+  Mike Scholz got Snd to compile/load/run in
+     FreeBSD 8, 9, and 10
+     CentOS: gcc (GCC) 4.4.6 20110731 (Red Hat 4.4.6-3)
+     Ubuntu: gcc (Ubuntu/Linaro 4.6.1-9ubuntu3) 4.6.1
+     Debian: gcc (Debian 4.4.5-8) 4.4.5
+     NetBSD
+     OpenBSD
+
+  s7: added random-state?, hash-table-iterator?, and morally-equal?
+
+  clm/cmn/snd/s7: removed snd1.html and snd-contents.html (these were
+       using Javascript for stuff that is now built into html), and
+       translated the rest of the html files to html5.
+
+  snd: removed the recorder, recorder-dialog, snd-g|xrec.c,
+       changed various menu names and added a view:with-grid menu
+       moved dialog buttons around at random,
+       removed save-macros and named keyboard macros,
+       added context-sensitive tooltips to the gtk version,
+       changed the gtk listener default font to Monospace 11,
+       the "minibuffer" is now a "statusbar".  This means it is not
+          editable, which means all the key sequences that used to
+          prompt for info are either undefined now, or use a dialog instead.
+       removed minibuffer-history-length, prompt-in-minibuffer, clear-minibuffer,
+          and report-in-minibuffer.  Replaced the latter two with status-report.
+       removed sound-specific search-procedures (i.e. there is only one search procedure)
+       removed the bomb function
+
+checked: clang 1.7, gmp 5.0.3, gtk 3.3.14|16
+
+Thanks!: Mike Scholz
+
+
+===============================================================================
+
+Snd 12.9
+
+  Mike Scholz got Snd to compile/load/run in
+     FreeBSD 8, 9, and 10
+     CentOS: gcc (GCC) 4.4.6 20110731 (Red Hat 4.4.6-3)
+     Ubuntu: gcc (Ubuntu/Linaro 4.6.1-9ubuntu3) 4.6.1
+     Debian: gcc (Debian 4.4.5-8) 4.4.5
+     NetBSD
+     OpenBSD
+
+  s7: added random-state?, hash-table-iterator?, and morally-equal?
+
+  clm/cmn/snd/s7: removed snd1.html and snd-contents.html (these were
+       using Javascript for stuff that is now built into html), and
+       translated the rest of the html files to html5.
+
+  snd: removed the recorder, recorder-dialog, snd-g|xrec.c,
+       changed various menu names and added a view:with-grid menu
+       moved dialog buttons around at random,
+       removed save-macros and named keyboard macros,
+       added context-sensitive tooltips to the gtk version,
+       changed the gtk listener default font to Monospace 11,
+       the "minibuffer" is now a "statusbar".  This means it is not
+          editable, which means all the key sequences that used to
+          prompt for info are either undefined now, or use a dialog instead.
+       removed minibuffer-history-length, prompt-in-minibuffer, clear-minibuffer,
+          and report-in-minibuffer.  Replaced the latter two with status-report.
+       removed sound-specific search-procedures (i.e. there is only one search procedure)
+
+
+checked: clang 1.7, gmp 5.0.3, gtk 3.3.14|16
+
+Thanks!: Mike Scholz
+
+
+===============================================================================
+
+Snd 12.9
+
+  Mike Scholz got Snd to compile/load/run in
+     FreeBSD 8, 9, and 10
+     CentOS: gcc (GCC) 4.4.6 20110731 (Red Hat 4.4.6-3)
+     Ubuntu: gcc (Ubuntu/Linaro 4.6.1-9ubuntu3) 4.6.1
+     Debian: gcc (Debian 4.4.5-8) 4.4.5
+     NetBSD
+     OpenBSD
+
+  s7: added random-state?, hash-table-iterator?, and morally-equal?
+
+  clm/cmn/snd/s7: removed snd1.html and snd-contents.html (these were
+       using Javascript for stuff that is now built into html), and
+       translated the rest of the html files to html5.
+
+  snd: removed the recorder, recorder-dialog, snd-g|xrec.c,
+       changed various menu names and added a view:with-grid menu
+       moved dialog buttons around at random,
+       removed save-macros and named keyboard macros,
+       added context-sensitive tooltips to the gtk version,
+       changed the gtk listener default font to Monospace 11,
+       the "minibuffer" is now a "statusbar".  This means it is not
+          editable, which means all the key sequences that used to
+          prompt for info are either undefined now, or use a dialog instead.
+       removed minibuffer-history-length, prompt-in-minibuffer, clear-minibuffer,
+          and report-in-minibuffer.  Replaced the latter two with status-report.
+
+
+checked: clang 1.7, gmp 5.0.3, gtk 3.3.14|16
+
+Thanks!: Mike Scholz
+
+
+===============================================================================
+
+Snd 12.9
+
+  Mike Scholz got Snd to compile/load/run in
+     FreeBSD 8, 9, and 10
+     CentOS: gcc (GCC) 4.4.6 20110731 (Red Hat 4.4.6-3)
+     Ubuntu: gcc (Ubuntu/Linaro 4.6.1-9ubuntu3) 4.6.1
+     Debian: gcc (Debian 4.4.5-8) 4.4.5
+     NetBSD
+     OpenBSD
+
+  s7: added random-state?, hash-table-iterator?, and morally-equal?
+
+  clm/cmn/snd/s7: removed snd1.html and snd-contents.html (these were
+       using Javascript for stuff that is now built into html), and
+       translated the rest of the html files to html5.
+
+  snd: removed the recorder, recorder-dialog, snd-g|xrec.c,
+       changed various menu names and added a view:with-grid menu
+       moved dialog buttons around at random,
+       removed save-macros and named keyboard macros,
+       added context-sensitive tooltips to the gtk version,
+       changed the gtk listener default font to Monospace 11,
+       the "minibuffer" is now a "statusbar" to use up-to-the-minute jargon.
+         This means it is not editable, which means all the key sequences
+         that used to prompt for info are either undefined now, or use a
+         dialog instead.
+       removed minibuffer-history-length, prompt-in-minibuffer, clear-minibuffer,
+         and report-in-minibuffer.  Replaced the latter two with status-report.
+
+
+checked: clang 1.7, gmp 5.0.3, gtk 3.3.14|16
+
+Thanks!: Mike Scholz
+
+
+===============================================================================
+
+Snd 12.9
+
+  Mike Scholz got Snd to compile/load/run in
+     FreeBSD 8, 9, and 10
+     CentOS: gcc (GCC) 4.4.6 20110731 (Red Hat 4.4.6-3)
+     Ubuntu: gcc (Ubuntu/Linaro 4.6.1-9ubuntu3) 4.6.1
+     Debian: gcc (Debian 4.4.5-8) 4.4.5
+     NetBSD
+     OpenBSD
+
+  s7: added random-state?, hash-table-iterator?, and morally-equal?
+
+  clm/cmn/snd/s7: removed snd1.html and snd-contents.html (these were
+       using Javascript for stuff that is now built into html), and
+       translated the rest of the html files to html5.
+
+  snd: removed the recorder, recorder-dialog, snd-g|xrec.c,
+       changed various menu names and added a view:with-grid menu
+       moved dialog buttons around at random,
+       removed minibuffer-history-length, prompt-in-minibuffer,
+       removed save-macros and named keyboard macros,
+       added context-sensitive tooltips to the gtk version,
+       changed the gtk listener default font to Monospace 11,
+
+
+
+checked: clang 1.7, gmp 5.0.3, gtk 3.3.14|16
+
+Thanks!: Mike Scholz
+
+
+===============================================================================
+
+Snd 12.9
+
+  Mike Scholz got Snd to compile/load/run in
+     FreeBSD 8, 9, and 10
+     CentOS: gcc (GCC) 4.4.6 20110731 (Red Hat 4.4.6-3)
+     Ubuntu: gcc (Ubuntu/Linaro 4.6.1-9ubuntu3) 4.6.1
+     Debian: gcc (Debian 4.4.5-8) 4.4.5
+     NetBSD
+     OpenBSD
+
+  s7: added random-state?, hash-table-iterator?, and morally-equal?
+
+  clm/cmn/snd/s7: removed snd1.html and snd-contents.html, and
+    translated the rest of the html files to html5
+
+  snd: removed the recorder, changed various menu names, moved
+       dialog buttons around at random.
+       removed minibuffer-history-length, prompt-in-minibuffer
+
+checked: clang 1.7, gmp 5.0.3, gtk 3.3.14|16
+
+Thanks!: Mike Scholz
+
+
+===============================================================================
+
+Snd 12.9
+
+  Mike Scholz got Snd to compile/load/run in
+     FreeBSD 8, 9, and 10
+     CentOS: gcc (GCC) 4.4.6 20110731 (Red Hat 4.4.6-3)
+     Ubuntu: gcc (Ubuntu/Linaro 4.6.1-9ubuntu3) 4.6.1
+     Debian: gcc (Debian 4.4.5-8) 4.4.5
+     NetBSD
+     OpenBSD
+
+  s7: added random-state?, hash-table-iterator?, and morally-equal?
+
+  clm/cmn/snd/s7: removed snd1.html and snd-contents.html, and
+    translated the rest of the html files to html5
+
+  snd: removed the recorder, changed various menu names, moved
+       dialog buttons around at random.
+
+checked: clang 1.7, gmp 5.0.3, gtk 3.3.14|16
+
+Thanks!: Mike Scholz
+
+
+===============================================================================
+
+Snd 12.9
+
+  Mike Scholz got Snd to compile/load/run in
+     FreeBSD 8, 9, and 10
+     CentOS: gcc (GCC) 4.4.6 20110731 (Red Hat 4.4.6-3)
+     Ubuntu: gcc (Ubuntu/Linaro 4.6.1-9ubuntu3) 4.6.1
+     Debian: gcc (Debian 4.4.5-8) 4.4.5
+     NetBSD
+     OpenBSD
+
+  s7: added random-state?, hash-table-iterator?, and morally-equal?
+
+  clm/cmn/snd/s7: removed snd1.html and snd-contents.html, and
+    translated the rest of the html files to html5
+
+  snd: removed the recorder, changed various menu names, moved
+       dialog buttons around at random.
+
+checked: clang 1.7, gmp 5.0.3, gtk 3.3.14
+
+Thanks!: Mike Scholz
+
+
+===============================================================================
+
+Snd 12.9
+
+  Mike Scholz got Snd to compile/load/run in
+     FreeBSD 8, 9, and 10
+     CentOS: gcc (GCC) 4.4.6 20110731 (Red Hat 4.4.6-3)
+     Ubuntu: gcc (Ubuntu/Linaro 4.6.1-9ubuntu3) 4.6.1
+     Debian: gcc (Debian 4.4.5-8) 4.4.5
+     NetBSD
+     OpenBSD
+
+  s7: added random-state?, hash-table-iterator?, and morally-equal?
+
+  clm/cmn/snd/s7: removed snd1.html and snd-contents.html, and
+    translated the rest of the html files to html5
+
+  snd: removed the recorder, changed various menu names, moved
+       dialog buttons around.
+
+checked: clang 1.7, gmp 5.0.3, gtk 3.3.14
+
+Thanks!: Mike Scholz
+
+
+===============================================================================
+
+Snd 12.9
+
+  Mike Scholz got Snd to compile/load/run in
+     FreeBSD 8, 9, and 10
+     CentOS: gcc (GCC) 4.4.6 20110731 (Red Hat 4.4.6-3)
+     Ubuntu: gcc (Ubuntu/Linaro 4.6.1-9ubuntu3) 4.6.1
+     Debian: gcc (Debian 4.4.5-8) 4.4.5
+     NetBSD
+     OpenBSD
+
+  s7: added random-state?, hash-table-iterator?, and morally-equal?
+
+  clm/cmn/snd/s7: removed snd1.html and snd-contents.html, and
+    translated the rest of the html files to html5
+
+
+checked: clang 1.7, gmp 5.0.3, gtk 3.3.14
+
+Thanks!: Mike Scholz
+
+
+===============================================================================
+
+Snd 12.9
+
+  Mike Scholz got Snd to compile/load/run in
+     FreeBSD 8, 9, and 10
+     CentOS: gcc (GCC) 4.4.6 20110731 (Red Hat 4.4.6-3)
+     Ubuntu: gcc (Ubuntu/Linaro 4.6.1-9ubuntu3) 4.6.1
+     Debian: gcc (Debian 4.4.5-8) 4.4.5
+     NetBSD
+     OpenBSD
+
+  s7: added random-state?, hash-table-iterator?, and morally-equal?
+
+  removed snd1.html, snd-contents.html (the other html files are moving
+    to HTML5 as rapidly as possible)
+
+
+checked: clang 1.7, gmp 5.0.3, gtk 3.3.14
+
+Thanks!: Mike Scholz
+
+
+===============================================================================
+
+Snd 12.8
+
+s7: added logbit? (using gmp arg order, not CL)
+
+    added reverse argument (in C) to s7_new_type_x and (in scheme) to make-type.
+      This is needed because an object might implement the apply and set methods,
+      but they might refer to different things (I should have noticed this a long
+      time ago...)
+
+    s7_environment_to_list and environment->list return just the local environment's
+      bindings.  They used to crawl up the environment chain, but that can now be
+      done with outer-environment.
+
+    outer-environment returns the environment enclosing its argument (an environment).
+
+    added an object system example in the environments section of s7.html.
+      It's based on environments as classes/instances.
+
+checked: sbcl 1.0.55, gtk 3.3.8|10|12
+
+Thanks!: Mike Scholz, Rick Taube.
+
+
+===============================================================================
+
+Snd 12.8
+
+s7: added logbit? (using gmp arg order, not CL)
+
+    added reverse argument (in C) to s7_new_type_x and (in scheme) to make-type.
+      This is needed because an object might implement the apply and set methods,
+      but they might refer to different things (I should have noticed this a long
+      time ago...)
+
+    s7_environment_to_list and environment->list return just the local environment's
+      bindings.  They used to crawl up the environment chain, but that can now be
+      done with outer-environment.
+
+    outer-environment returns the environment enclosing its argument (an environment).
+
+    added an object system example in the environments section of s7.html.
+      It's based on environments as classes/instances.
+
+checked: sbcl 1.0.55, gtk 3.3.8|10|12
+
+Thanks!: Mike Scholz.
+
+
+===============================================================================
+
+Snd 12.8
+
+s7: added logbit? (using gmp arg order, not CL)
+
+    added reverse argument (in C) to s7_new_type_x and (in scheme) to make-type.
+      This is needed because an object might implement the apply and set methods,
+      but they might refer to different things (I should have noticed this a long
+      time ago...)
+
+    s7_environment_to_list and environment->list return just the local environment's
+      bindings.  They used to crawl up the environment chain, but that can now be
+      done with outer-environment.
+
+    outer-environment returns the environment enclosing its argument (an environment).
+
+    added an object system example in the environments section of s7.html.
+      It's based on environments as classes/instances.
+
+checked: sbcl 1.0.55, gtk 3.3.8|10
+
+Thanks!: Mike Scholz.
+
+
+===============================================================================
+
+Snd 12.8
+
+s7: added logbit? (using gmp arg order, not CL)
+
+    added reverse argument (in C) to s7_new_type_x and (in scheme) to make-type.
+      This is needed because an object might implement the apply and set methods,
+      but they might refer to different things (I should have noticed this a long
+      time ago...)
+
+    s7_environment_to_list and environment->list return just the local environment's
+      bindings.  They used to crawl up the environment chain, but that can now be
+      done with outer-environment.
+
+    outer-environment returns the environment enclosing its argument (an environment).
+
+    added an object system example in the environments section of s7.html.
+      It's based on environments as classes/instances.
+
+checked: sbcl 1.0.55, gtk 3.3.8|10
+
+Thanks!:
+
+===============================================================================
+
+Snd 12.8
+
+s7: added logbit? (using gmp arg order, not CL)
+
+    added reverse argument (in C) to s7_new_type_x and (in scheme) to make-type.
+      This is needed because an object might implement the apply and set methods,
+      but they might refer to different things (I should have noticed this a long
+      time ago...)
+
+    s7_environment_to_list and environment->list return just the local environment's
+      bindings.  They used to crawl up the environment chain, but that can now be
+      done with outer-environment.
+
+    outer-environment returns the environment enclosing its argument (an environment).
+
+    added an object system example in the environments section of s7.html.
+      It's based on environments as classes/instances.
+
+checked: sbcl 1.0.55, gtk 3.3.8
+
+Thanks!:
+
+===============================================================================
+
+Snd 12.8
+
+s7: added logbit? (using gmp arg order, not CL)
+
+    added reverse argument (in C) to s7_new_type_x and (in scheme) to make-type.
+      This is needed because an object might implement the apply and set methods,
+      but they might refer to different things (I should have noticed this a long
+      time ago...)
+
+    s7_environment_to_list and environment->list return just the local environment's
+      bindings.  They used to crawl up the environment chain, but that can now be
+      done with outer-environment.
+
+    outer-environment returns the environment enclosing its argument (an environment).
+
+    added an object system example in the environments section of s7.html.
+      It's based on environments as classes/instances.
+
+checked: sbcl 1.0.55
+
+Thanks!:
+
+===============================================================================
+
+Snd 12.7
+
+s7 is faster, but not enough so to remove the run macro.
+  This business has taken longer than I expected.
+
+checked: gtk 3.3.4|6, sbcl 1.0.54
+
+Thanks!: Rick Taube, Michael Edwards, Mike Scholz
+
+===============================================================================
+
+Snd 12.6
+
+  s7 is faster.
+  removed the --with-doubles configuration switch.
+  changed s7_make_closure args (see s7.h).
+  added procedure-name and s7_procedure_name.
+
+checked: sbcl 1.0.52|3, gtk 3.2.1|3.3.2, fth 1.2.9, cmucl 20c
+
+Thanks!: Michael Edwards, Geoff Lee, Mike Scholz, Rick Taube.
+
+
+===============================================================================
+
+Snd 12.5
+
+This version involves primarily s7 optimizations.  About half the
+  standard clm instruments now run nearly as fast without the run
+  macro as with it.  Progress has been slow...
+
+in clm, the function output option in out* and in* has been removed.
+        added mus-type
+
+checked: sbcl 1.0.51, gtk 3.1.16|18|90|92 3.2.0, ruby 1.9.3
+
+Thanks!: Mike Scholz, Brooke Mitchell
+
+
+===============================================================================
+
+Snd 12.4.
+
+  removed thread support from Snd/s7/sndlib.
+  removed snd9.scm.
+
+  s7 is nearing the point where we can get rid of the run macro.
+  Currently the fm-violin in C takes 400 callgrind units to generate
+  20 seconds of sound, in run it takes 480, and in s7 by itself, 700.
+  In Snd 12.2, s7 took 4896, in Snd 11.10 from last August, 7392.
+
+
+checked: sbcl 1.0.50, gtk 3.1.10|12
+
+Thanks!: Mike Scholz
+
+
+===============================================================================
+
+Snd 12.3
+
+  removed the profiling option in s7.
+
+  all my time in this version went into trying to make s7 faster.
+    I believe it is now 3 times as fast as it was in early May.
+
+  Unless someone objects violently, I'm going to remove the multithreading
+    support from s7.  It has turned out to be less useful than I hoped,
+    mainly because s7 threads share the heap and therefore have to coordinate
+    all cell allocations.  So it's faster, and simpler to use multiple
+    pthreads each running a separate s7 interpreter, rather than one s7
+    running multiple s7 threads.  In clm, the contention is for access to
+    the output stream, so the gain in speed is not always something to
+    brag about.  And begin_hook handles GUI-related problems without
+    any threads.  Last but not least, the effort to make the non-threaded
+    s7 faster has messed up parts of the threaded version.  Rather than
+    waste a lot of time fixing this, I'd rather just flush the stuff.
+
+  Due to changes in Gtk, functions like gtk_vbox_new are no longer
+    defined in libxm.  This means that several of the gtk-related
+    scheme files in the Snd tarball now only work in Gtk 3.0 or later.
+
+
+checked: gmp 5.0.2, sbcl 1.0.49, gtk 3.1.6|8 (but it looks like crap),
+         fftw 3.3beta
+
+Thanks!: Mike Scholz, Fernando Lopez-Lezcano, Rick Taube
+
+===============================================================================
+
+Snd 12.2:
+
+  s7 is about 35% faster in most cases.
+
+  run is smarter about implicit indexing, so I've cleaned up
+    a lot of the instruments.
+
+  s7_procedure_setter|getter in s7.h.
+
+checked: gsl 1.15, gtk 3.1.4, sbcl 1.0.48
+
+Thanks!: Rick Taube
+
+===============================================================================
+
+Snd 12.1
+
+  added lint.scm, a scheme lint checker.
+
+  added expr.scm, which tries to find a math expression that matches
+     an arbitrary set of data.
+
+  added with-interrupts.  It defaults to #t, but both XtAppPending and
+     gtk_events_pending can cause a noticeable slow-down in the computation,
+     so set with-interrupts to #f to turn off the GUI checks.
+
+  added show-full-range to make the y-axis bounds accommodate the sound values.
+
+  added info-popup-hook to specialize the popup menu's info output.
+
+  removed verbose-cursor (use with-verbose-cursor).
+
+  removed the unused "chn" parameter from the pan-mix functions in mix.scm.
+
+checked: gtk 3.0.4|5|6|7|8, 3.1.2, sbcl 1.0.47, mpfr 3.0.1
+
+Thanks!: Mike Scholz.
+
+
+
+===============================================================================
+
+Snd 12.0
+
+   selection has a loop play triangle
+   mix and cursor have play triangles
+   if mouse click would trigger play, the cursor is a right or left arrow.
+   removed draggable mark play triangle and mark-drag-triangle-hook.
+   added variable play-arrow-size (default: 10)
+
+   added Edit:Unselect menu option
+   added with-menu-icons (gtk only).
+   added optional "alpha" arg to make-color.
+   moved delete-selection-and-smooth from selection.scm to C.
+   added delete-samples-and-smooth.
+   typing space in a graph plays from the cursor, space while playing = pause/continue
+   startup window size is 700x300
+   auto-resize defaults to false in Gtk, true in Motif.
+   in gtk, the trailing cr argument to draw-axes in not optional.
+   in Motif, libXpm is no longer optional.
+   the Region browser print option has been removed.
+   removed click-for-listener-help.
+   removed Snd.gtkrc, Snd.ad, and the obsolete X resources stuff.
+   removed time-graph-hook; replaced by combined-data-color.
+
+   tracking-cursor-style defaults to cursor-line.
+     cursor-follows-play moved to snd11.scm.
+     with-tracking-cursor is now a global (not sound-local).
+
+   removed c-g! function; it can be replaced by stop-playing.
+     removed c-g? in Scheme -- it is superfluous.
+
+   added 'src' and 'auto' buttons to the Save-as dialogs for automatic srate conversion
+    and a blog-style commentary.  In the extension language, these are
+    save-as-dialog-src and save-as-dialog-auto-comment.
+
+   added sync-style variable: sync-none, sync-all, or sync-by-sound (now the default).
+     this used to be handled in extensions.* under names like global-sync-choice.
+     sync-none was the previous default. examp.scm sync-all function renamed sync-everything.
+
+   moved with-reopen-menu to snd11.scm, and removed it from the preferences dialog.
+     This menu is almost the same as the built-in File:Open recent menu.
+
+   moved make-hidden-controls-dialog from snd-motif|gtk.scm to snd11.scm, and removed it
+     from the preferences dialog.  It is now built-in as Options:Controls
+
+   moved show-selection from extensions.* to C, added unselect-all (in C)
+     which replaces clear-selection (selection.scm).
+
+   added show-full-duration, initial-beg, initial-dur, ask-about-unsaved-edits,
+     with-toolbar, remember-sound-state, with-smpte-label.  removed old
+     show-smpte-label in *.scm.
+
+   remember-sound-state in extensions has been moved to C (old scheme code is in snd11.scm).
+     it now reads/writes a file named "remembered-<soundfile-name>.scm|fs|rb" where
+     <soundfile-name> is the current sound's file name.
+
+   with-toolbar defaults to true in gtk, false otherwise.  It replaces toolbar.scm
+     and panic.scm.  Also with-tooltips to turn tooltips on or off.
+
+   The built-in popup menus are now context sensitive, and the files popup.scm
+     and gtk-popup.scm have been removed. In s7/Motif, the listener popup can
+     show a stacktrace of code as it is running!
+
+   In the beginning, before the libxm library, I thought it made sense to include
+     functions like draw-line which would draw a line, no matter what graphics
+     environment Snd was built with.  Unfortunately, cairo needs an explicitly
+     handled cairo_t structure.  So, draw-line, draw-lines, draw-dot, draw-dots,
+     draw-string, fill-rectangle, and fill-polygon now have a required trailing
+     cairo_t argument (it's ignored in Motif).  Also two new kludges to get and
+     free this structure: make-cairo and free-cairo.  There aren't that many
+     uses of these functions (most the fancy graphic stuff uses direct cairo
+     or Motif calls from libxm), so perhaps eventually, they'll be removed.
+
+   To make it easier to zoom in on the FFT, the keypad arrow keys are bound
+     to zoom and move the FFT bounds, analogous to the normal arrow keys which
+     affect the time domain graph.  (There isn't any place to put sliders for
+     this, and the Options:Transform sliders aren't always handy).
+
+   in s7, random-state->list and a C tie-in for the random number functions.
+
+   Snd now needs Gtk 2.12 or later.
+
+checked: sbcl 1.0.46, gtk 3.0.1|2|3, mpc 0.9
+
+
+Thanks!: Louis Gorenfeld, Hartmut Noack, Philipp Uberbacher, Fernando Lopez-Lezcano,
+         Mike Scholz, Rick Taube.
+
+===============================================================================
+
+Snd 12.0
+
+   selection has a loop play triangle
+     mix and cursor have play triangles
+     if mouse click would trigger play, the cursor is a right or left arrow.
+     removed draggable mark play triangle and mark-drag-triangle-hook.
+     added variable play-arrow-size (default: 10)
+
+   added Edit:Unselect menu option
+   added with-menu-icons (gtk only).
+   added optional "alpha" arg to make-color.
+   moved delete-selection-and-smooth from selection.scm to C.
+   added delete-samples-and-smooth.
+   typing space in a graph plays from the cursor, space while playing = pause/continue
+   startup window size is 700x300
+   auto-resize defaults to false in Gtk, true in Motif.
+   in gtk, the trailing cr argument to draw-axes in not optional.
+   in Motif, libXpm is no longer optional.
+   removed click-for-listener-help.
+   the Region browser print option has been removed.
+   removed Snd.gtkrc, Snd.ad, and the obsolete X resources stuff.
+   removed time-graph-hook; replaced by combined-data-color.
+
+   tracking-cursor-style defaults to cursor-line.
+     cursor-follows-play moved to snd11.scm.
+     with-tracking-cursor is now a global (not sound-local).
+
+   removed c-g! function; it can be replaced by stop-playing.
+     removed c-g? in scheme -- it is superfluous.
+
+   added 'src' and 'auto' buttons to the Save-as dialogs for automatic srate conversion
+    and a blog-style commentary.  In the extension language, these are
+    save-as-dialog-src and save-as-dialog-auto-comment.
+
+   added sync-style variable: sync-none, sync-all, or sync-by-sound (now the default).
+     this used to be handled in extensions.* under names like global-sync-choice.
+     sync-none was the previous default. examp.scm sync-all function renamed sync-everything.
+
+   moved with-reopen-menu to snd11.scm, and removed it from the preferences dialog.
+     This menu is almost the same as the built-in File:Open recent menu.
+
+   moved make-hidden-controls-dialog from snd-motif|gtk.scm to snd11.scm, and removed it
+     from the preferences dialog.  It is now built-in as Options:Controls
+
+   moved show-selection from extensions.* to C, added unselect-all (in C)
+     which replaces clear-selection (selection.scm).
+
+   added show-full-duration, initial-beg, initial-dur, ask-about-unsaved-edits,
+     with-toolbar, remember-sound-state, with-smpte-label.  removed old
+     show-smpte-label in *.scm.
+
+   remember-sound-state in extensions has been moved to C (old scheme code is in snd11.scm).
+     it now reads/writes a file named "remembered-<soundfile-name>.scm|fs|rb" where
+     <soundfile-name> is the current sound's file name.
+
+   with-toolbar defaults to true in gtk, false otherwise.  It replaces toolbar.scm
+     and panic.scm.  Also with-tooltips to turn tooltips on or off.
+
+   The built-in popup menus are now context sensitive, and the files popup.scm
+     and gtk-popup.scm have been removed. In s7/Motif, the listener popup can
+     show a stacktrace of code as it is running!
+
+   In the beginning, before the libxm library, I thought it made sense to include
+     functions like draw-line which would draw a line, no matter what graphics
+     environment Snd was built with.  Unfortunately, cairo needs an explicitly
+     handled cairo_t structure.  So, draw-line, draw-lines, draw-dot, draw-dots,
+     draw-string, fill-rectangle, and fill-polygon now have a required trailing
+     cairo_t argument (it's ignored in Motif).  Also two new kludges to get and
+     free this structure: make-cairo and free-cairo.  There aren't that many
+     uses of these functions (most the fancy graphic stuff uses direct cairo
+     or Motif calls from libxm), so perhaps eventually, they'll be removed.
+
+   To make it easier to zoom in on the FFT, the keypad arrow keys are bound
+     to zoom and move the FFT bounds, analogous to the normal arrow keys which
+     affect the time domain graph.  (There isn't any place to put sliders for
+     this, and the Options:Transform sliders aren't always handy).
+
+   in s7, random-state->list.
+
+   Snd now needs Gtk 2.12 or later.
+
+checked: sbcl 1.0.46, gtk 3.0.1|2|3, mpc 0.9
+
+
+Thanks!: Louis Gorenfeld, Hartmut Noack, Philipp Uberbacher, Fernando Lopez-Lezcano,
+         Mike Scholz, Rick Taube.
+
+===============================================================================
+
+Snd 12.0
+
+   selection has a loop play triangle
+     mix and cursor have play triangles
+     if mouse click would trigger play, the cursor is a right or left arrow.
+     removed draggable mark play triangle and mark-drag-triangle-hook.
+     added variable play-arrow-size (default: 10)
+
+   added Edit:Unselect menu option
+   added with-menu-icons (gtk only).
+   added optional "alpha" arg to make-color.
+   moved delete-selection-and-smooth from selection.scm to C.
+   added delete-samples-and-smooth.
+   typing space in a graph plays from the cursor, space while playing = pause/continue
+   startup window size is 700x300
+   auto-resize defaults to false in Gtk, true in Motif.
+   in gtk, the trailing cr argument to draw-axes in not optional.
+   in Motif, libXpm is no longer optional.
+   removed click-for-listener-help.
+   the Region browser print option has been removed.
+   removed Snd.gtkrc, Snd.ad, and the obsolete X resources stuff.
+
+   tracking-cursor-style defaults to cursor-line.
+     cursor-follows-play moved to snd11.scm.
+     with-tracking-cursor is now a global (not sound-local).
+
+   removed c-g! function; it can be replaced by stop-playing.
+     removed c-g? in scheme -- it is superfluous.
+
+   added 'src' and 'auto' buttons to the Save-as dialogs for automatic srate conversion
+    and a blog-style commentary.  In the extension language, these are
+    save-as-dialog-src and save-as-dialog-auto-comment.
+
+   added sync-style variable: sync-none, sync-all, or sync-by-sound (now the default).
+     this used to be handled in extensions.* under names like global-sync-choice.
+     sync-none was the previous default. examp.scm sync-all function renamed sync-everything.
+
+   moved with-reopen-menu to snd11.scm, and removed it from the preferences dialog.
+     This menu is almost the same as the built-in File:Open recent menu.
+
+   moved make-hidden-controls-dialog from snd-motif|gtk.scm to snd11.scm, and removed it
+     from the preferences dialog.  It is now built-in as Options:Controls
+
+   moved show-selection from extensions.* to C, added unselect-all (in C)
+     which replaces clear-selection (selection.scm).
+
+   added show-full-duration, initial-beg, initial-dur, ask-about-unsaved-edits,
+     with-toolbar, remember-sound-state, with-smpte-label.  removed old
+     show-smpte-label in *.scm.
+
+   remember-sound-state in extensions has been moved to C (old scheme code is in snd11.scm).
+     it now reads/writes a file named "remembered-<soundfile-name>.scm|fs|rb" where
+     <soundfile-name> is the current sound's file name.
+
+   with-toolbar defaults to true in gtk, false otherwise.  It replaces toolbar.scm
+     and panic.scm.  Also with-tooltips to turn tooltips on or off.
+
+   The built-in popup menus are now context sensitive, and the files popup.scm
+     and gtk-popup.scm have been removed. In s7/Motif, the listener popup can
+     show a stacktrace of code as it is running!
+
+   In the beginning, before the libxm library, I thought it made sense to include
+     functions like draw-line which would draw a line, no matter what graphics
+     environment Snd was built with.  Unfortunately, cairo needs an explicitly
+     handled cairo_t structure.  So, draw-line, draw-lines, draw-dot, draw-dots,
+     draw-string, fill-rectangle, and fill-polygon now have a required trailing
+     cairo_t argument (it's ignored in Motif).  Also two new kludges to get and
+     free this structure: make-cairo and free-cairo.  There aren't that many
+     uses of these functions (most the fancy graphic stuff uses direct cairo
+     or Motif calls from libxm), so perhaps eventually, they'll be removed.
+
+   To make it easier to zoom in on the FFT, the keypad arrow keys are bound
+     to zoom and move the FFT bounds, analogous to the normal arrow keys which
+     affect the time domain graph.  (There isn't any place to put sliders for
+     this, and the Options:Transform sliders aren't always handy).
+
+   in s7, random-state->list.
+
+   Snd now needs Gtk 2.12 or later.
+
+checked: sbcl 1.0.46, gtk 3.0.1|2|3, mpc 0.9
+
+
+Thanks!: Louis Gorenfeld, Hartmut Noack, Philipp Uberbacher, Fernando Lopez-Lezcano,
+         Mike Scholz, Rick Taube.
+
+===============================================================================
+
+Snd 12.0
+
+   selection has a loop play triangle
+     mix and cursor have play triangles
+     if mouse click would trigger play, the cursor is a right or left arrow.
+     removed draggable mark play triangle and mark-drag-triangle-hook.
+     added variable play-arrow-size (default: 10)
+
+   added Edit:Unselect menu option
+   added with-menu-icons (gtk only).
+   added optional "alpha" arg to make-color.
+   moved delete-selection-and-smooth from selection.scm to C.
+   added delete-samples-and-smooth.
+   typing space in a graph plays from the cursor, space while playing = pause/continue
+   startup window size is 700x300
+   auto-resize defaults to false in Gtk, true in Motif.
+   in gtk, the trailing cr argument to draw-axes in not optional.
+   in Motif, libXpm is no longer optional.
+   removed click-for-listener-help.
+   the Region browser print option has been removed.
+   removed Snd.gtkrc, Snd.ad, and the obsolete X resources stuff.
+
+   tracking-cursor-style defaults to cursor-line.
+     cursor-follows-play moved to snd11.scm.
+     with-tracking-cursor is now a global (not sound-local).
+
+   removed c-g! function; it can be replaced by stop-playing.
+     removed c-g? in scheme -- it is superfluous.
+
+   added 'src' and 'auto' buttons to the Save-as dialogs for automatic srate conversion
+    and a blog-style commentary.  In the extension language, these are
+    save-as-dialog-src and save-as-dialog-auto-comment.
+
+   added sync-style variable: sync-none, sync-all, or sync-by-sound (now the default).
+     this used to be handled in extensions.* under names like global-sync-choice.
+     sync-none was the previous default. examp.scm sync-all function renamed sync-everything.
+
+   moved with-reopen-menu to snd11.scm, and removed it from the preferences dialog.
+     This menu is almost the same as the built-in File:Open recent menu.
+
+   moved make-hidden-controls-dialog from snd-motif|gtk.scm to snd11.scm, and removed it
+     from the preferences dialog.  It is now built-in as Options:Controls
+
+   moved show-selection from extensions.* to C, added unselect-all (in C)
+     which replaces clear-selection (selection.scm).
+
+   added show-full-duration, initial-beg, initial-dur, ask-about-unsaved-edits,
+     with-toolbar, remember-sound-state, with-smpte-label.  removed old
+     show-smpte-label in *.scm.
+
+   remember-sound-state in extensions has been moved to C (old scheme code is in snd11.scm).
+     it now reads/writes a file named "remembered-<soundfile-name>.scm|fs|rb" where
+     <soundfile-name> is the current sound's file name.
+
+   with-toolbar defaults to true in gtk, false otherwise.  It replaces toolbar.scm
+     and panic.scm.  Also with-tooltips to turn tooltips on or off.
+
+   The built-in popup menus are now context sensitive, and the files popup.scm
+     and gtk-popup.scm have been removed. In s7/Motif, the listener popup can
+     show a stacktrace of code as it is running!
+
+   In the beginning, before the libxm library, I thought it made sense to include
+     functions like draw-line which would draw a line, no matter what graphics
+     environment Snd was built with.  Unfortunately, cairo needs an explicitly
+     handled cairo_t structure.  So, draw-line, draw-lines, draw-dot, draw-dots,
+     draw-string, fill-rectangle, and fill-polygon now have a required trailing
+     cairo_t argument (it's ignored in Motif).  Also two new kludges to get and
+     free this structure: make-cairo and free-cairo.  There aren't that many
+     uses of these functions (most the fancy graphic stuff uses direct cairo
+     or Motif calls from libxm), so perhaps eventually, they'll be removed.
+
+   To make it easier to zoom in on the FFT, the keypad arrow keys are bound
+     to zoom and move the FFT bounds, analogous to the normal arrow keys which
+     affect the time domain graph.  (There isn't any place to put sliders for
+     this, and the Options:Transform sliders aren't always handy).
+
+   in s7, random-state->list.
+
+   Snd now needs Gtk 2.12 or later.
+
+checked: sbcl 1.0.46, gtk 3.0.1|2, mpc 0.9
+
+
+Thanks!: Louis Gorenfeld, Hartmut Noack, Philipp Uberbacher, Fernando Lopez-Lezcano,
+         Mike Scholz, Rick Taube.
+
+===============================================================================
+
+Snd 12.0
+
+   selection has a loop play triangle
+     mix and cursor have play triangles
+     if mouse click would trigger play, the cursor is a right or left arrow.
+     removed draggable mark play triangle and mark-drag-triangle-hook.
+     added variable play-arrow-size (default: 10)
+
+   added Edit:Unselect menu option
+   removed Snd.gtkrc, Snd.ad, and the obsolete X resources stuff.
+   added with-menu-icons (gtk only).
+   added optional "alpha" arg to make-color.
+   moved delete-selection-and-smooth from selection.scm to C.
+   added delete-samples-and-smooth.
+   typing space in a graph plays from the cursor, space while playing = pause/continue
+   startup window size is 700x300
+   auto-resize defaults to false in Gtk, true in Motif.
+   in gtk, the trailing cr argument to draw-axes in not optional.
+   removed click-for-listener-help.
+
+   tracking-cursor-style defaults to cursor-line.
+     cursor-follows-play moved to snd11.scm.
+     with-tracking-cursor is now a global (not sound-local).
+
+   removed c-g! function; it can be replaced by stop-playing.
+     removed c-g? in scheme -- it is superfluous.
+
+   added 'src' and 'auto' buttons to the Save-as dialogs for automatic srate conversion
+    and a blog-style commentary.  In the extension language, these are
+    save-as-dialog-src and save-as-dialog-auto-comment.
+
+   added sync-style variable: sync-none, sync-all, or sync-by-sound (now the default).
+     this used to be handled in extensions.* under names like global-sync-choice.
+     sync-none was the previous default. examp.scm sync-all function renamed sync-everything.
+
+   moved with-reopen-menu to snd11.scm, and removed it from the preferences dialog.
+     This menu is almost the same as the built-in File:Open recent menu.
+
+   moved make-hidden-controls-dialog from snd-motif|gtk.scm to snd11.scm, and removed it
+     from the preferences dialog.  It is now built-in as Options:Controls
+
+   moved show-selection from extensions.* to C, added unselect-all (in C)
+     which replaces clear-selection (selection.scm).
+
+   added show-full-duration, initial-beg, initial-dur, ask-about-unsaved-edits,
+     with-toolbar, remember-sound-state, with-smpte-label.  removed old
+     show-smpte-label in *.scm.
+
+   remember-sound-state in extensions has been moved to C (old scheme code is in snd11.scm).
+     it now reads/writes a file named "remembered-<soundfile-name>.scm|fs|rb" where
+     <soundfile-name> is the current sound's file name.
+
+   with-toolbar defaults to true in gtk, false otherwise.  It replaces toolbar.scm
+     and panic.scm.  Also with-tooltips to turn tooltips on or off.
+
+   The built-in popup menus are now context sensitive, and the files popup.scm
+     and gtk-popup.scm have been removed. In s7/Motif, the listener popup can
+     show a stacktrace of code as it is running!
+
+   In the beginning, before the libxm library, I thought it made sense to include
+     functions like draw-line which would draw a line, no matter what graphics
+     environment Snd was built with.  Unfortunately, cairo needs an explicitly
+     handled cairo_t structure.  So, draw-line, draw-lines, draw-dot, draw-dots,
+     draw-string, fill-rectangle, and fill-polygon now have a required trailing
+     cairo_t argument (it's ignored in Motif).  Also two new kludges to get and
+     free this structure: make-cairo and free-cairo.  There aren't that many
+     uses of these functions (most the fancy graphic stuff uses direct cairo
+     or Motif calls from libxm), so perhaps eventually, they'll be removed.
+
+   To make it easier to zoom in on the FFT, the keypad arrow keys are bound
+     to zoom and move the FFT bounds, analogous to the normal arrow keys which
+     affect the time domain graph.  (There isn't any place to put sliders for
+     this, and the Options:Transform sliders aren't always handy).
+
+   in Motif, libXpm is no longer optional.
+   the Region browser print option has been removed.
+
+   in s7, random-state->list.
+
+   Snd now needs Gtk 2.12 or later.
+
+checked: sbcl 1.0.46, gtk 3.0.1|2, mpc 0.9
+
+
+Thanks!: Louis Gorenfeld, Hartmut Noack, Philipp Uberbacher, Fernando Lopez-Lezcano,
+         Mike Scholz, Rick Taube.
+
+===============================================================================
+
+Snd 12.0
+
+   selection has a loop play triangle
+     mix and cursor have play triangles
+     if mouse click would trigger play, the cursor is a right or left arrow.
+     removed draggable mark play triangle and mark-drag-triangle-hook.
+     added variable play-arrow-size (default: 10)
+
+   added Edit:Unselect menu option
+   removed Snd.gtkrc, Snd.ad, and the obsolete X resources stuff.
+   added with-menu-icons (gtk only).
+   added optional "alpha" arg to make-color.
+   moved delete-selection-and-smooth from selection.scm to C.
+   added delete-samples-and-smooth.
+   typing space in a graph plays from the cursor, space while playing = pause/continue
+   startup window size is 700x300
+   auto-resize defaults to false in Gtk, true in Motif.
+   in gtk, the trailing cr argument to draw-axes in not optional.
+   removed click-for-listener-help.
+
+   tracking-cursor-style defaults to cursor-line.
+     cursor-follows-play moved to snd11.scm.
+     with-tracking-cursor is now a global (not sound-local).
+
+   removed c-g! function; it can be replaced by stop-playing.
+     removed c-g? in scheme -- it is superfluous.
+
+   added 'src' and 'auto' buttons to the Save-as dialogs for automatic srate conversion
+    and a blog-style commentary.  In the extension language, these are
+    save-as-dialog-src and save-as-dialog-auto-comment.
+
+   added sync-style variable: sync-none, sync-all, or sync-by-sound (now the default).
+     this used to be handled in extensions.* under names like global-sync-choice.
+     sync-none was the previous default. examp.scm sync-all function renamed sync-everything.
+
+   moved with-reopen-menu to snd11.scm, and removed it from the preferences dialog.
+     This menu is almost the same as the built-in File:Open recent menu.
+
+   moved make-hidden-controls-dialog from snd-motif|gtk.scm to snd11.scm, and removed it
+     from the preferences dialog.  It is now built-in as Options:Controls
+
+   moved show-selection from extensions.* to C, added unselect-all (in C)
+     which replaces clear-selection (selection.scm).
+
+   added show-full-duration, initial-beg, initial-dur, ask-about-unsaved-edits,
+     with-toolbar, remember-sound-state, with-smpte-label.  removed old
+     show-smpte-label in *.scm.
+
+   remember-sound-state in extensions has been moved to C (old scheme code is in snd11.scm).
+     it now reads/writes a file named "remembered-<soundfile-name>.scm|fs|rb" where
+     <soundfile-name> is the current sound's file name.
+
+   with-toolbar defaults to true in gtk, false otherwise.  It replaces toolbar.scm
+     and panic.scm.  Also with-tooltips to turn tooltips on or off.
+
+   The built-in popup menus are now context sensitive, and the files popup.scm
+     and gtk-popup.scm have been removed. In s7/Motif, the listener popup can
+     show a stacktrace of code as it is running!
+
+   In the beginning, before the libxm library, I thought it made sense to include
+     functions like draw-line which would draw a line, no matter what graphics
+     environment Snd was built with.  Unfortunately, cairo needs an explicitly
+     handled cairo_t structure.  So, draw-line, draw-lines, draw-dot, draw-dots,
+     draw-string, fill-rectangle, and fill-polygon now have a required trailing
+     cairo_t argument (it's ignored in Motif).  Also two new kludges to get and
+     free this structure: make-cairo and free-cairo.  There aren't that many
+     uses of these functions (most the fancy graphic stuff uses direct cairo
+     or Motif calls from libxm), so perhaps eventually, they'll be removed.
+
+   To make it easier to zoom in on the FFT, the keypad arrow keys are bound
+     to zoom and move the FFT bounds, analogous to the normal arrow keys which
+     affect the time domain graph.  (There isn't any place to put sliders for
+     this, and the Options:Transform sliders aren't always handy).
+
+   in Motif, libXpm is no longer optional.
+
+   in s7, random-state->list.
+
+   Snd now needs Gtk 2.12 or later.
+
+checked: sbcl 1.0.46, gtk 3.0.1|2, mpc 0.9
+
+
+Thanks!: Louis Gorenfeld, Hartmut Noack, Philipp Uberbacher, Fernando Lopez-Lezcano,
+         Mike Scholz, Rick Taube.
+
+===============================================================================
+
+Snd 12.0
+
+   selection has a loop play triangle
+     mix and cursor have play triangles
+     if mouse click would trigger play, the cursor is a right or left arrow.
+     removed draggable mark play triangle and mark-drag-triangle-hook.
+     added variable play-arrow-size (default: 10)
+
+   added Edit:Unselect menu option
+   removed Snd.gtkrc, Snd.ad, and the obsolete X resources stuff.
+   added with-menu-icons (gtk only).
+   added optional "alpha" arg to make-color.
+   moved delete-selection-and-smooth from selection.scm to C.
+   added delete-samples-and-smooth.
+   typing space in a graph plays from the cursor, space while playing = pause/continue
+   startup window size is 700x300
+   auto-resize defaults to false in Gtk, true in Motif.
+   in gtk, the trailing cr argument to draw-axes in not optional.
+   removed click-for-listener-help.
+
+   tracking-cursor-style defaults to cursor-line.
+     cursor-follows-play moved to snd11.scm.
+     with-tracking-cursor is now a global (not sound-local).
+
+   removed c-g! function; it can be replaced by stop-playing.
+     removed c-g? in scheme -- it is superfluous.
+
+   added 'src' and 'auto' buttons to the Save-as dialogs for automatic srate conversion
+    and a blog-style commentary.  In the extension language, these are
+    save-as-dialog-src and save-as-dialog-auto-comment.
+
+   added sync-style variable: sync-none, sync-all, or sync-by-sound (now the default).
+     this used to be handled in extensions.* under names like global-sync-choice.
+     sync-none was the previous default. examp.scm sync-all function renamed sync-everything.
+
+   moved with-reopen-menu to snd11.scm, and removed it from the preferences dialog.
+     This menu is almost the same as the built-in File:Open recent menu.
+
+   moved make-hidden-controls-dialog from snd-motif|gtk.scm to snd11.scm, and removed it
+     from the preferences dialog.  It is now built-in as Options:Controls
+
+   moved show-selection from extensions.* to C, added unselect-all (in C)
+     which replaces clear-selection (selection.scm).
+
+   added show-full-duration, initial-beg, initial-dur, ask-about-unsaved-edits,
+     with-toolbar, remember-sound-state, with-smpte-label.  removed old
+     show-smpte-label in *.scm.
+
+   remember-sound-state in extensions has been moved to C (old scheme code is in snd11.scm).
+     it now reads/writes a file named "remembered-<soundfile-name>.scm|fs|rb" where
+     <soundfile-name> is the current sound's file name.
+
+   with-toolbar defaults to true in gtk, false otherwise.  It replaces toolbar.scm
+     and panic.scm.  Also with-tooltips to turn tooltips on or off.
+
+   The built-in popup menus are now context sensitive, and the files popup.scm
+     and gtk-popup.scm have been removed. In s7/Motif, the listener popup can
+     show a stacktrace of code as it is running!
+
+   In the beginning, before the libxm library, I thought it made sense to include
+     functions like draw-line which would draw a line, no matter what graphics
+     environment Snd was built with.  Unfortunately, cairo needs an explicitly
+     handled cairo_t structure.  So, draw-line, draw-lines, draw-dot, draw-dots,
+     draw-string, fill-rectangle, and fill-polygon now have a required trailing
+     cairo_t argument (it's ignored in Motif).  Also two new kludges to get and
+     free this structure: make-cairo and free-cairo.  There aren't that many
+     uses of these functions (most the fancy graphic stuff uses direct cairo
+     or Motif calls from libxm), so perhaps eventually, they'll be removed.
+
+   To make it easier to zoom in on the FFT, the keypad arrow keys are bound
+     to zoom and move the FFT bounds, analogous to the normal arrow keys which
+     affect the time domain graph.  (There isn't any place to put sliders for
+     this, and the Options:Transform sliders aren't always handy).
+
+   in s7, random-state->list.
+
+   Snd now needs Gtk 2.12 or later.
+
+checked: sbcl 1.0.46, gtk 3.0.1|2, mpc 0.9
+
+
+Thanks!: Louis Gorenfeld, Hartmut Noack, Philipp Uberbacher, Fernando Lopez-Lezcano,
+         Mike Scholz, Rick Taube.
+
+===============================================================================
+
+Snd 12.0
+
+   selection has a loop play triangle
+     mix and cursor have play triangles
+     if mouse click would trigger play, the cursor is a right or left arrow.
+     removed draggable mark play triangle and mark-drag-triangle-hook.
+     added variable play-arrow-size (default: 10)
+
+   added Edit:Unselect menu option
+   removed Snd.gtkrc, Snd.ad, and the obsolete X resources stuff.
+   added with-menu-icons (gtk only).
+   added optional "alpha" arg to make-color.
+   moved delete-selection-and-smooth from selection.scm to C.
+   added delete-samples-and-smooth.
+   typing space in a graph plays from the cursor, space while playing = pause/continue
+   startup window size is 600x400
+   auto-resize defaults to false in Gtk, true in Motif.
+   in gtk, the trailing cr argument to draw-axes in not optional.
+   removed click-for-listener-help.
+
+   tracking-cursor-style defaults to cursor-line.
+     cursor-follows-play moved to snd11.scm.
+     with-tracking-cursor is now a global (not sound-local).
+
+   removed c-g! function; it can be replaced by stop-playing.
+     removed c-g? in scheme -- it is superfluous.
+
+   added 'src' and 'auto' buttons to the Save-as dialogs for automatic srate conversion
+    and a blog-style commentary.  In the extension language, these are
+    save-as-dialog-src and save-as-dialog-auto-comment.
+
+   added sync-style variable: sync-none, sync-all, or sync-by-sound (now the default).
+     this used to be handled in extensions.* under names like global-sync-choice.
+     sync-none was the previous default. examp.scm sync-all function renamed sync-everything.
+
+   moved with-reopen-menu to snd11.scm, and removed it from the preferences dialog.
+     This menu is almost the same as the built-in File:Open recent menu.
+
+   moved make-hidden-controls-dialog from snd-motif|gtk.scm to snd11.scm, and removed it
+     from the preferences dialog.  It is now built-in as Options:Controls
+
+   moved show-selection from extensions.* to C, added unselect-all (in C)
+     which replaces clear-selection (selection.scm).
+
+   added show-full-duration, initial-beg, initial-dur, ask-about-unsaved-edits,
+     with-toolbar, remember-sound-state, with-smpte-label.  removed old
+     show-smpte-label in *.scm.
+
+   remember-sound-state in extensions has been moved to C (old scheme code is in snd11.scm).
+     it now reads/writes a file named "remembered-<soundfile-name>.scm|fs|rb" where
+     <soundfile-name> is the current sound's file name.
+
+   with-toolbar defaults to true in gtk, false otherwise.  It replaces toolbar.scm
+     and panic.scm.  Also with-tooltips to turn tooltips on or off.
+
+   The built-in popup menus are now context sensitive, and the files popup.scm
+     and gtk-popup.scm have been removed.
+
+   In the beginning, before the libxm library, I thought it made sense to include
+     functions like draw-line which would draw a line, no matter what graphics
+     environment Snd was built with.  Unfortunately, cairo needs an explicitly
+     handled cairo_t structure.  So, draw-line, draw-lines, draw-dot, draw-dots,
+     draw-string, fill-rectangle, and fill-polygon now have a required trailing
+     cairo_t argument (it's ignored in Motif).  Also two new kludges to get and
+     free this structure: make-cairo and free-cairo.  There aren't that many
+     uses of these functions (most the fancy graphic stuff uses direct cairo
+     or Motif calls from libxm), so perhaps eventually, they'll be removed.
+
+   To make it easier to zoom in on the FFT, the keypad arrow keys are bound
+     to zoom and move the FFT bounds, analogous to the normal arrow keys which
+     affect the time domain graph.  (There isn't any place to put sliders for
+     this, and the Options:Transform sliders aren't always handy).
+
+   in s7, random-state->list.
+
+   The Gtk Snd now needs Gtk 2.12 or later.
+
+checked: sbcl 1.0.46, gtk 3.0.1|2, mpc 0.9
+
+
+Thanks!: Louis Gorenfeld, Hartmut Noack, Philipp Uberbacher, Fernando Lopez-Lezcano,
+         Mike Scholz, Rick Taube.
+
+===============================================================================
+
+Snd 12.0
+
+   selection has a loop play triangle
+     mix and cursor have play triangles
+     if mouse click would trigger play, the cursor is a right or left arrow.
+     removed draggable mark play triangle and mark-drag-triangle-hook.
+     added variable play-arrow-size (default: 10)
+
+   added Edit:Unselect menu option
+   removed Snd.gtkrc, Snd.ad, and the obsolete X resources stuff.
+   added with-menu-icons (gtk only).
+   added optional "alpha" arg to make-color.
+   moved delete-selection-and-smooth from selection.scm to C.
+   added delete-samples-and-smooth.
+   typing space in a graph plays from the cursor, space while playing = pause/continue
+   startup window size is 600x400
+   auto-resize defaults to false in Gtk, true in Motif.
+   in gtk, the trailing cr argument to draw-axes in not optional.
+   removed click-for-listener-help.
+
+   tracking-cursor-style defaults to cursor-line.
+     cursor-follows-play moved to snd11.scm.
+     with-tracking-cursor is now a global (not sound-local).
+
+   removed c-g! function; it can be replaced by stop-playing.
+     removed c-g? in scheme -- it is superfluous.
+
+   added 'src' and 'auto' buttons to the Save-as dialogs for automatic srate conversion
+    and a blog-style commentary.  In the extension language, these are
+    save-as-dialog-src and save-as-dialog-auto-comment.
+
+   added sync-style variable: sync-none, sync-all, or sync-by-sound (now the default).
+     this used to be handled in extensions.* under names like global-sync-choice.
+     sync-none was the previous default. examp.scm sync-all function renamed sync-everything.
+
+   moved with-reopen-menu to snd11.scm, and removed it from the preferences dialog.
+     This menu is almost the same as the built-in File:Open recent menu.
+
+   moved make-hidden-controls-dialog from snd-motif|gtk.scm to snd11.scm, and removed it
+     from the preferences dialog.  It is now built-in as Options:Controls
+
+   moved show-selection from extensions.* to C, added unselect-all (in C)
+     which replaces clear-selection (selection.scm).
+
+   added show-full-duration, initial-beg, initial-dur, ask-about-unsaved-edits,
+     with-toolbar, remember-sound-state, with-smpte-label.  removed old
+     show-smpte-label in *.scm.
+
+   remember-sound-state in extensions has been moved to C (old scheme code is in snd11.scm).
+     it now reads/writes a file named "remembered-<soundfile-name>.scm|fs|rb" where
+     <soundfile-name> is the current sound's file name.
+
+   with-toolbar defaults to true in gtk, false otherwise.  It replaces toolbar.scm
+     and panic.scm.  Also with-tooltips to turn tooltips on or off.
+
+   The built-in popup menus are now context sensitive, and the files popup.scm
+     and gtk-popup.scm have been removed.
+
+   In the beginning, before the libxm library, I thought it made sense to include
+     functions like draw-line which would draw a line, no matter what graphics
+     environment Snd was built with.  Unfortunately, cairo needs an explicitly
+     handled cairo_t structure.  So, draw-line, draw-lines, draw-dot, draw-dots,
+     draw-string, fill-rectangle, and fill-polygon now have a required trailing
+     cairo_t argument (it's ignored in Motif).  Also two new kludges to get and
+     free this structure: make-cairo and free-cairo.  There aren't that many
+     uses of these functions (most the fancy graphic stuff uses direct cairo
+     or Motif calls from libxm), so perhaps eventually, they'll be removed.
+
+   To make it easier to zoom in on the FFT, the keypad arrow keys are bound
+     to zoom and move the FFT bounds, analogous to the normal arrow keys which
+     affect the time domain graph.  (There isn't any place to put sliders for
+     this, and the Options:Transform sliders aren't always handy).
+
+   The Gtk Snd now needs Gtk 2.12 or later.
+
+checked: sbcl 1.0.46, gtk 3.0.1|2, mpc 0.9
+
+
+Thanks!: Louis Gorenfeld, Hartmut Noack, Philipp Uberbacher, Fernando Lopez-Lezcano,
+         Mike Scholz.
+
+===============================================================================
+
+Snd 12.0
+
+   selection has a loop play triangle
+     mix and cursor have play triangles
+     if mouse click would trigger play, the cursor is a right or left arrow.
+     removed draggable mark play triangle and mark-drag-triangle-hook.
+     added variable play-arrow-size (default: 10)
+
+   added Edit:Unselect menu option
+   removed Snd.gtkrc, Snd.ad, and the obsolete X resources stuff.
+   added with-menu-icons (gtk only).
+   added optional "alpha" arg to make-color.
+   moved delete-selection-and-smooth from selection.scm to C.
+   added delete-samples-and-smooth.
+   typing space in a graph plays from the cursor, space while playing = pause/continue
+   startup window size is 600x400
+   auto-resize defaults to false in Gtk, true in Motif.
+   in gtk, the trailing cr argument to draw-axes in not optional.
+   removed click-for-listener-help.
+
+   tracking-cursor-style defaults to cursor-line.
+     cursor-follows-play moved to snd11.scm.
+     with-tracking-cursor is now a global (not sound-local).
+
+   removed c-g! function; it can be replaced by stop-playing.
+     removed c-g? in scheme -- it is superfluous.
+
+   added 'src' and 'auto' buttons to the Save-as dialogs for automatic srate conversion
+    and a blog-style commentary.  In the extension language, these are
+    save-as-dialog-src and save-as-dialog-auto-comment.
+
+   added sync-style variable: sync-none, sync-all, or sync-by-sound (now the default).
+     this used to be handled in extensions.* under names like global-sync-choice.
+     sync-none was the previous default. examp.scm sync-all function renamed sync-everything.
+
+   moved with-reopen-menu to snd11.scm, and removed it from the preferences dialog.
+     This menu is almost the same as the built-in File:Open recent menu.
+
+   moved make-hidden-controls-dialog from snd-motif|gtk.scm to snd11.scm, and removed it
+     from the preferences dialog.  It is now built-in as Options:Controls
+
+   moved show-selection from extensions.* to C, added unselect-all (in C)
+     which replaces clear-selection (selection.scm).
+
+   added show-full-duration, initial-beg, initial-dur, ask-about-unsaved-edits,
+     with-toolbar, remember-sound-state, with-smpte-label.  removed old
+     show-smpte-label in *.scm.
+
+   remember-sound-state in extensions has been moved to C (old scheme code is in snd11.scm).
+     it now reads/writes a file named "remembered-<soundfile-name>.scm|fs|rb" where
+     <soundfile-name> is the current sound's file name.
+
+   with-toolbar defaults to true in gtk, false otherwise.  It replaces toolbar.scm
+     and panic.scm.  Also with-tooltips to turn tooltips on or off.
+
+   The built-in popup menus are now context sensitive, and the files popup.scm
+     and gtk-popup.scm have been removed.
+
+   In the beginning, before the libxm library, I thought it made sense to include
+     functions like draw-line which would draw a line, no matter what graphics
+     environment Snd was built with.  Unfortunately, cairo needs an explicitly
+     handled cairo_t structure.  So, draw-line, draw-lines, draw-dot, draw-dots,
+     draw-string, fill-rectangle, and fill-polygon now have a required trailing
+     cairo_t argument (it's ignored in Motif).  Also two new kludges to get and
+     free this structure: make-cairo and free-cairo.  There aren't that many
+     uses of these functions (most the fancy graphic stuff uses direct cairo
+     or Motif calls from libxm), so perhaps eventually, they'll be removed.
+
+
+   The Gtk Snd now needs Gtk 2.12 or later.
+
+checked: sbcl 1.0.46, gtk 3.0.1|2, mpc 0.9
+
+
+Thanks!: Louis Gorenfeld, Hartmut Noack, Philipp Uberbacher, Fernando Lopez-Lezcano,
+         Mike Scholz.
+
+===============================================================================
+
+Snd 11.14
+
+   selection has a loop play triangle
+     mix and cursor have play triangles
+     if mouse click = play, the cursor is a right or left arrow.
+     removed draggable mark play triangle and mark-drag-triangle-hook.
+     added variable play-arrow-size (default: 10)
+
+   added Edit:Unselect menu option
+   removed Snd.gtkrc, Snd.ad, and the obsolete X resources stuff.
+   added with-menu-icons (gtk only).
+   added optional "alpha" arg to make-color.
+   moved delete-selection-and-smooth from selection.scm to C.
+   added delete-samples-and-smooth.
+   typing space in a graph plays from the cursor, space while playing = pause/continue
+   startup window size is 600x400
+   auto-resize defaults to false in Gtk, true in Motif.
+   in gtk, the trailing cr argument to draw-axes in not optional.
+   removed click-for-listener-help.
+
+   tracking-cursor-style defaults to cursor-line.
+     cursor-follows-play moved to snd11.scm.
+     with-tracking-cursor is now a global (not sound-local).
+
+   removed c-g! function; it can be replaced by stop-playing.
+     removed c-g? in scheme -- it is superfluous.
+
+   added 'src' and 'auto' buttons to the Save-as dialogs for automatic srate conversion
+    and a blog-style commentary.  In the extension language, these are
+    save-as-dialog-src and save-as-dialog-auto-comment.
+
+   added sync-style variable: sync-none, sync-all, or sync-by-sound (now the default).
+     this used to be handled in extensions.* under names like global-sync-choice.
+     sync-none was the previous default. examp.scm sync-all function renamed sync-everything.
+
+   moved with-reopen-menu to snd11.scm, and removed it from the preferences dialog
+     This menu is almost the same as the built-in File:Open recent menu.
+
+   moved make-hidden-controls-dialog from snd-motif|gtk.scm to snd11.scm, and removed it
+     from the preferences dialog.  It is now built-in as Options:Controls
+
+   moved show-selection from extensions.* to C, added unselect-all (in C)
+     which replaces clear-selection (selection.scm).
+
+   added show-full-duration, initial-beg, initial-dur, ask-about-unsaved-edits,
+     with-toolbar, remember-sound-state, with-smpte-label.  removed old
+     show-smpte-label in *.scm.
+
+   remember-sound-state in extensions has been moved to C (old scheme code is in snd11.scm).
+     it now reads/writes a file named "remembered-<soundfile-name>.scm|fs|rb" where
+     <soundfile-name> is the current sound's file name.
+
+   with-toolbar defaults to true in gtk, false otherwise.  It replaces toolbar.scm
+     and panic.scm.  Also with-tooltips to turn tooltips on or off.
+
+   The built-in popup menus are now context sensitive, and the files popup.scm
+     and gtk-popup.scm have been removed.
+
+   In the beginning, before the libxm library, I thought it made sense to include
+     functions like draw-line which would draw a line, no matter what graphics
+     environment Snd was built with.  Unfortunately, cairo needs an explicitly
+     handled cairo_t structure.  So, draw-line, draw-lines, draw-dot, draw-dots,
+     draw-string, fill-rectangle, and fill-polygon now have a required trailing
+     cairo_t argument (it's ignored in Motif).  Also two new kludges to get and
+     free this structure: make-cairo and free-cairo.  There aren't that many
+     uses of these functions (most the fancy graphic stuff uses direct cairo
+     or Motif calls from libxm), so perhaps eventually, they'll be removed.
+
+
+   The Gtk Snd now needs Gtk 2.12 or later.
+
+checked: sbcl 1.0.46, gtk 3.0.1|2, mpc 0.9
+
+
+Thanks!: Louis Gorenfeld, Hartmut Noack, Philipp Uberbacher, Fernando Lopez-Lezcano,
+         Mike Scholz.
+
+===============================================================================
+
+Snd 11.14
+
+   selection has a loop play triangle
+     mix and cursor have play triangles
+     if mouse click = play, the cursor is a right or left arrow.
+     removed draggable mark play triangle and mark-drag-triangle-hook.
+     added variable play-arrow-size (default: 10)
+
+   added Edit:Unselect menu option
+   removed Snd.gtkrc, Snd.ad, and the obsolete X resources stuff.
+   added with-menu-icons (gtk only).
+   added optional "alpha" arg to make-color.
+   moved delete-selection-and-smooth from selection.scm to C.
+   added delete-samples-and-smooth.
+   typing space in a graph plays from the cursor, space while playing = pause/continue
+   startup window size is 600x400
+   auto-resize defaults to false in Gtk, true in Motif.
+   in gtk, the trailing cr argument to draw-axes in not optional.
+
+   tracking-cursor-style defaults to cursor-line.
+     cursor-follows-play moved to snd11.scm.
+     with-tracking-cursor is now a global (not sound-local).
+
+   removed c-g! function; it can be replaced by stop-playing.
+     removed c-g? in scheme -- it is superfluous.
+
+   added 'src' and 'auto' buttons to the Save-as dialogs for automatic srate conversion
+    and a blog-style commentary.  In the extension language, these are
+    save-as-dialog-src and save-as-dialog-auto-comment.
+
+   added sync-style variable: sync-none, sync-all, or sync-by-sound (now the default).
+     this used to be handled in extensions.* under names like global-sync-choice.
+     sync-none was the previous default. examp.scm sync-all function renamed sync-everything.
+
+   moved with-reopen-menu to snd11.scm, and removed it from the preferences dialog
+     This menu is almost the same as the built-in File:Open recent menu.
+
+   moved make-hidden-controls-dialog from snd-motif|gtk.scm to snd11.scm, and removed it
+     from the preferences dialog.  It is now built-in as Options:Controls
+
+   moved show-selection from extensions.* to C, added unselect-all (in C)
+     which replaces clear-selection (selection.scm).
+
+   added show-full-duration, initial-beg, initial-dur, ask-about-unsaved-edits,
+     with-toolbar, remember-sound-state, with-smpte-label.  removed old
+     show-smpte-label in *.scm.
+
+   remember-sound-state in extensions has been moved to C (old scheme code is in snd11.scm).
+     it now reads/writes a file named "remembered-<soundfile-name>.scm|fs|rb" where
+     <soundfile-name> is the current sound's file name.
+
+   with-toolbar defaults to true in gtk, false otherwise.  It replaces toolbar.scm
+     and panic.scm.  Also with-tooltips to turn tooltips on or off.
+
+   The built-in popup menus are now context sensitive, and the files popup.scm
+     and gtk-popup.scm have been removed.
+
+   The Gtk Snd now needs Gtk 2.12 or later.
+
+checked: sbcl 1.0.46, gtk 3.0.1|2, mpc 0.9
+
+
+Thanks!: Louis Gorenfeld, Hartmut Noack, Philipp Uberbacher, Fernando Lopez-Lezcano,
+         Mike Scholz.
+
+===============================================================================
+
+Snd 11.14
+
+   selection has a loop play triangle
+     mix and cursor have play triangles
+     if mouse click = play, the cursor is a right or left arrow.
+     removed draggable mark play triangle and mark-drag-triangle-hook.
+     added variable play-arrow-size (default: 10)
+
+   added Edit:Unselect menu option
+   removed Snd.gtkrc, Snd.ad, and the obsolete X resources stuff.
+   added with-menu-icons (gtk only).
+   added optional "alpha" arg to make-color.
+   moved delete-selection-and-smooth from selection.scm to C.
+   added delete-samples-and-smooth.
+   typing space in a graph plays from the cursor, space while playing = pause/continue
+   startup window size is 600x400
+   auto-resize defaults to false in Gtk, true in Motif.
+
+   tracking-cursor-style defaults to cursor-line.
+     cursor-follows-play moved to snd11.scm.
+     with-tracking-cursor is now a global (not sound-local).
+
+   removed c-g! function; it can be replaced by stop-playing.
+     removed c-g? in scheme -- it is superfluous.
+
+   added 'src' and 'auto' buttons to the Save-as dialogs for automatic srate conversion
+    and a blog-style commentary.  In the extension language, these are
+    save-as-dialog-src and save-as-dialog-auto-comment.
+
+   added sync-style variable: sync-none, sync-all, or sync-by-sound (now the default).
+     this used to be handled in extensions.* under names like global-sync-choice.
+     sync-none was the previous default. examp.scm sync-all function renamed sync-everything.
+
+   moved with-reopen-menu to snd11.scm, and removed it from the preferences dialog
+     This menu is almost the same as the built-in File:Open recent menu.
+
+   moved make-hidden-controls-dialog from snd-motif|gtk.scm to snd11.scm, and removed it
+     from the preferences dialog.  It is now built-in as Options:Controls
+
+   moved show-selection from extensions.* to C, added unselect-all (in C)
+     which replaces clear-selection (selection.scm).
+
+   added show-full-duration, initial-beg, initial-dur, ask-about-unsaved-edits,
+     with-toolbar, remember-sound-state, with-smpte-label.  removed old
+     show-smpte-label in *.scm.
+
+   remember-sound-state in extensions has been moved to C (old scheme code is in snd11.scm).
+     it now reads/writes a file named "remembered-<soundfile-name>.scm|fs|rb" where
+     <soundfile-name> is the current sound's file name.
+
+   with-toolbar defaults to true in gtk, false otherwise.  It replaces toolbar.scm
+     and panic.scm.  Also with-tooltips to turn tooltips on or off.
+
+   The built-in popup menus are now context sensitive, and the files popup.scm
+     and gtk-popup.scm have been removed.
+
+   The Gtk Snd now needs Gtk 2.12 or later.
+
+checked: sbcl 1.0.46, gtk 3.0.1|2, mpc 0.9
+
+
+Thanks!: Louis Gorenfeld, Hartmut Noack, Philipp Uberbacher, Fernando Lopez-Lezcano,
+         Mike Scholz.
+
+===============================================================================
+
+Snd 11.14
+
+   selection has a loop play triangle
+   mix and cursor have play triangles
+   if mouse click = play, the cursor is a right or left arrow.
+   removed draggable mark play triangle and mark-drag-triangle-hook.
+   added variable play-arrow-size (default: 10)
+   added Edit:Unselect menu option
+   removed Snd.gtkrc, Snd.ad, and the obsolete X resources stuff.
+   added with-menu-icons (gtk only).
+   added optional "alpha" arg to make-color.
+   moved delete-selection-and-smooth from selection.scm to C.
+   added delete-samples-and-smooth.
+   typing space in a graph plays from the cursor, space while playing = pause/continue
+   startup window size is 600x400
+   auto-resize defaults to false in Gtk, true in Motif.
+
+   tracking-cursor-style defaults to cursor-line.
+     cursor-follows-play moved to snd11.scm.
+     with-tracking-cursor is now a global (not sound-local).
+
+   removed c-g! function; it can be replaced by stop-playing.
+     removed c-g? in scheme -- it is superfluous.
+
+   added 'src' and 'auto' buttons to the Save-as dialogs for automatic srate conversion
+    and a blog-style commentary.  In the extension language, these are
+    save-as-dialog-src and save-as-dialog-auto-comment.
+
+   added sync-style variable: sync-none, sync-all, or sync-by-sound (now the default).
+     this used to be handled in extensions.* under names like global-sync-choice.
+     sync-none was the previous default. examp.scm sync-all function renamed sync-everything.
+
+   moved with-reopen-menu to snd11.scm, and removed it from the preferences dialog
+     This menu is almost the same as the built-in File:Open recent menu.
+
+   moved make-hidden-controls-dialog from snd-motif|gtk.scm to snd11.scm, and removed it
+     from the preferences dialog.  It is now built-in as Options:Controls
+
+   moved show-selection from extensions.* to C, added unselect-all (in C)
+     which replaces clear-selection (selection.scm).
+
+   added show-full-duration, initial-beg, initial-dur, ask-about-unsaved-edits,
+     with-toolbar, remember-sound-state, with-smpte-label.  removed old
+     show-smpte-label in *.scm.
+
+   remember-sound-state in extensions has been moved to C (old scheme code is in snd11.scm).
+     it now reads/writes a file named "remembered-<soundfile-name>.scm|fs|rb" where
+     <soundfile-name> is the current sound's file name.
+
+   with-toolbar defaults to true in gtk, false otherwise.  It replaces toolbar.scm
+     and panic.scm.  Also with-tooltips to turn tooltips on or off.
+
+   The built-in popup menus are now context sensitive, and the files popup.scm
+     and gtk-popup.scm have been removed.  Also removed the misc.scm popup menu
+     references.
+
+   The Gtk Snd now needs Gtk 2.12 or later.
+
+checked: sbcl 1.0.46, gtk 3.0.1|2, mpc 0.9
+
+
+Thanks!: Louis Gorenfeld, Hartmut Noack, Philipp Uberbacher, Fernando Lopez-Lezcano,
+         Mike Scholz.
+
+===============================================================================
+
+Snd 11.14
+
+   removed c-g! function; it can be replaced by stop-playing.
+     removed c-g? in scheme -- it is superfluous.
+
+   selection has a loop play triangle
+   mix and cursor have play triangles
+   if mouse click = play, the cursor is a right or left arrow.
+   removed draggable mark play triangle and mark-drag-triangle-hook.
+   added variable play-arrow-size (default: 10)
+   added Edit:Unselect menu option
+
+   added 'src' and 'auto' buttons to the Save-as dialogs for automatic srate conversion
+    and a blog-style commentary.  In the extension language, these are
+    save-as-dialog-src and save-as-dialog-auto-comment.
+
+   added sync-style variable: sync-none, sync-all, or sync-by-sound (now the default).
+     this used to be handled in extensions.* under names like global-sync-choice.
+     sync-none was the previous default. examp.scm sync-all function renamed sync-everything.
+
+   moved with-reopen-menu to snd11.scm, and removed it from the preferences dialog
+     This menu is almost the same as the built-in File:Open recent menu.
+
+   moved make-hidden-controls-dialog from snd-motif|gtk.scm to snd11.scm, and removed it
+     from the preferences dialog.  It is now built-in as Options:Controls
+
+   moved show-selection from extensions.* to C, added unselect-all (in C)
+     which replaces clear-selection (selection.scm).
+
+   added show-full-duration, initial-beg, initial-dur, ask-about-unsaved-edits,
+     with-toolbar, remember-sound-state, with-smpte-label.  removed old
+     show-smpte-label in *.scm.
+
+   remember-sound-state in extensions has been moved to C (old scheme code is in snd11.scm).
+     it now reads/writes a file named "remembered-<soundfile-name>.scm|fs|rb" where
+     <soundfile-name> is the current sound's file name.
+
+   with-toolbar defaults to true in gtk, false otherwise.  It replaces toolbar.scm
+     and panic.scm.  Also with-tooltips to turn tooltips on or off.
+
+   The built-in popup menus are now context sensitive, and the files popup.scm
+     and gtk-popup.scm have been removed.  Also removed the misc.scm popup menu
+     references.
+
+   removed Snd.gtkrc, Snd.ad, and the obsolete X resources stuff.
+   added with-menu-icons (gtk only).
+   added optional "alpha" arg to make-color.
+   moved delete-selection-and-smooth from selection.scm to C.
+   added delete-samples-and-smooth.
+   typing space in a graph plays from the cursor, space while playing = pause/continue
+   startup window size is 600x400
+
+   The Gtk Snd now needs Gtk 2.12 or later.
+
+checked: sbcl 1.0.46, gtk 3.0.1|2, mpc 0.9
+
+
+Thanks!: Louis Gorenfeld, Hartmut Noack, Philipp Uberbacher, Fernando Lopez-Lezcano,
+         Mike Scholz.
+
+===============================================================================
+
+Snd 11.14
+
+   removed c-g! function; it can be replaced by stop-playing.
+     removed c-g? in scheme -- it is superfluous.
+
+   selection has a loop play triangle
+   mix and cursor have play triangles
+   if mouse click = play, the cursor is a right or left arrow.
+   removed draggable mark play triangle and mark-drag-triangle-hook.
+   added variable play-arrow-size (default: 10)
+   added Edit:Unselect menu option
+
+   added 'src' and 'auto' buttons to the Save-as dialogs for automatic srate conversion
+    and a blog-style commentary.  In the extension language, these are
+    save-as-dialog-src and save-as-dialog-auto-comment.
+
+   added sync-style variable: sync-none, sync-all, or sync-by-sound (now the default).
+     this used to be handled in extensions.* under names like global-sync-choice.
+     sync-none was the previous default. examp.scm sync-all function renamed sync-everything.
+
+   moved with-reopen-menu to snd11.scm, and removed it from the preferences dialog
+     This menu is almost the same as the built-in File:Open recent menu.
+
+   moved make-hidden-controls-dialog from snd-motif|gtk.scm to snd11.scm, and removed it
+     from the preferences dialog.  It is now built-in as Options:Controls
+
+   moved show-selection from extensions.* to C, added unselect-all (in C)
+     which replaces clear-selection (selection.scm).
+
+   added show-full-duration, initial-beg, initial-dur, ask-about-unsaved-edits,
+     with-toolbar, remember-sound-state, with-smpte-label.  removed old
+     show-smpte-label in *.scm.
+
+   remember-sound-state in extensions has been moved to C (old scheme code is in snd11.scm).
+     it now reads/writes a file named "remembered-<soundfile-name>.scm|fs|rb" where
+     <soundfile-name> is the current sound's file name.
+
+   with-toolbar defaults to true in gtk, false otherwise.  It replaces toolbar.scm
+     and panic.scm.  Also with-tooltips to turn tooltips on or off.
+
+   The built-in popup menus are now context sensitive, and the files popup.scm
+     and gtk-popup.scm have been removed.  Also removed the misc.scm popup menu
+     references.
+
+   removed Snd.gtkrc, Snd.ad, and the obsolete X resources stuff.
+   added with-menu-icons (gtk only).
+   added optional "alpha" arg to make-color.
+   moved delete-selection-and-smooth from selection.scm to C.
+   added delete-samples-and-smooth.
+
+
+   The Gtk Snd now needs Gtk 2.12 or later.
+
+checked: sbcl 1.0.46, gtk 3.0.1, mpc 0.9
+
+
+Thanks!: Louis Gorenfeld, Hartmut Noack, Philipp Uberbacher, Fernando Lopez-Lezcano,
+         Mike Scholz.
+
+===============================================================================
+
+Snd 11.14
+
+   removed c-g! function; it can be replaced by stop-playing.
+     removed c-g? in scheme -- it is superfluous.
+
+   selection has a loop play triangle
+   mix and cursor have play triangles
+   if mouse click = play, the cursor is a right or left arrow.
+   removed draggable mark play triangle and mark-drag-triangle-hook.
+   added variable play-arrow-size (default: 10)
+   added Edit:Unselect menu option
+
+   added 'src' and 'auto' buttons to the Save-as dialogs for automatic srate conversion
+    and a blog-style commentary.  In the extension language, these are
+    save-as-dialog-src and save-as-dialog-auto-comment.
+
+   added sync-style variable: sync-none, sync-all, or sync-by-sound (now the default).
+     this used to be handled in extensions.* under names like global-sync-choice.
+     sync-none was the previous default. examp.scm sync-all function renamed sync-everything.
+
+   moved with-reopen-menu to snd11.scm, and removed it from the preferences dialog
+     This menu is almost the same as the built-in File:Open recent menu.
+
+   moved make-hidden-controls-dialog from snd-motif|gtk.scm to snd11.scm, and removed it
+     from the preferences dialog.  It is now built-in as Options:Controls
+
+   moved show-selection from extensions.* to C, added unselect-all (in C)
+     which replaces clear-selection (selection.scm).
+
+   added show-full-duration, initial-beg, initial-dur, ask-about-unsaved-edits,
+     with-toolbar, remember-sound-state, with-smpte-label.  removed old
+     show-smpte-label in *.scm.
+
+   remember-sound-state in extensions has been moved to C (old scheme code is in snd11.scm).
+     it now reads/writes a file named "remembered-<soundfile-name>.scm|fs|rb" where
+     <soundfile-name> is the current sound's file name.
+
+   with-toolbar defaults to true in gtk, false otherwise.  It replaces toolbar.scm
+     and panic.scm.  Also with-tooltips to turn tooltips on or off.
+
+   The built-in popup menus are now context sensitive, and the files popup.scm
+     and gtk-popup.scm have been removed.  Also removed the misc.scm popup menu
+     references.
+
+   removed Snd.gtkrc, Snd.ad, and the obsolete X resources stuff.
+   added with-menu-icons (gtk only).
+   added optional "alpha" arg to make-color.
+   moved delete-selection-and-smooth selection.scm into C.
+   added delete-samples-and-smooth.
+
+
+   The Gtk Snd now needs Gtk 2.12 or later.
+
+checked: sbcl 1.0.46, gtk 3.0.1, mpc 0.9
+
+
+Thanks!: Louis Gorenfeld, Hartmut Noack, Philipp Uberbacher, Fernando Lopez-Lezcano,
+         Mike Scholz.
+
+===============================================================================
+
+Snd 11.13
+
+s7: make-hash-table-iterator.
+
+    map and for-each accept any applicable object as the first argument.
+
+    format's ~{...~} directive can handle any applicable object.
+
+    the thread stuff has been exported to s7.h.
+
+    s7_set_begin_hook (see s7.html#s7inathread and s7.html#replrescue)
+      The basic problem is that the GUI toolkits are not thread-safe, but we
+      want the GUI to remain responsive even if s7 is caught in an infinite
+      loop in the listener.  This also gives a way to break out of any long
+      computation without relying on Unix signals and weird keystrokes.
+      This is tied to C-g in the listener, so ws-interrupt (ws.scm) is
+      now a deprecated no-op.
+
+lots more forth and ruby stuff thanks to Mike Scholz.
+
+checked: gtk 2.99.0|1|2|3, gtk 3.0.0, FC14 (gcc 4.5.1)
+
+Thanks!: Rick Taube, Hartmut Noack, Mike Scholz.
+
+===============================================================================
+
+Snd 11.13
+
+s7: make-hash-table-iterator.
+
+    map and for-each accept any applicable object as the first argument.
+
+    format's ~{...~} directive can handle any applicable object.
+
+    the thread stuff has been exported to s7.h.
+
+    s7_set_begin_hook (see s7.html#s7inathread and s7.html#replrescue)
+      The basic problem is that the GUI toolkits are not thread-safe, but we
+      want the GUI to remain responsive even if s7 is caught in an infinite
+      loop in the listener.  This also gives a way to break out of any long
+      computation without relying on Unix signals and weird keystrokes.
+      This is tied to C-g in the listener, so ws-interrupt (ws.scm) is
+      now a deprecated no-op.
+
+checked: gtk 2.99.0|1|2|3, gtk 3.0.0, FC14 (gcc 4.5.1)
+
+Thanks!: Rick Taube, Hartmut Noack
+
+===============================================================================
+
+Snd 11.12
+
+s7: *gc-stats*
+    member and assoc have an optional 3rd arg, the comparison function
+    added environment?
+
+in the gtk 3 version of Snd, there is no longer a -nogtkrc flag, and
+    Snd.gtkrc is obsolete (Gtk has moved to a css-style system, but I
+    think in gtk 3 I'll leave all the "theme" stuff to the global theme).
+
+    in gtk2, only versions 2.10 or later are supported.
+
+checked: gtk 2.91.5|6|7, sbcl 1.0.45
+
+Thanks!: Mike Scholz
+
+===============================================================================
+
+Snd 11.11
+
+Rene Bastian has written a French version of the cmn manual:
+    manuel-cmn-fr.html in the cmn tarball.
+
+Mike provided a bunch more script and configuration improvements, and
+    C/Ruby expertise.
+
+Michael Edwards added an optional argument to moog-filter in moog.lisp
+  to control saturation.
+
+s7: *safety*: an integer, defaults to 0 meaning don't be paranoid.
+            There is one case where you might need to set *safety*
+            to 1 -- see the "bad-idea" function in s7.html.
+
+    hooks.  s7 had several built-in hooks, but the hook support
+            was in xen.c and xen.h.  It's now in s7 with backwards
+            compatibility definitions in xen.c.  See s7.h and xen.h
+            for the C API, and s7.html for the scheme side. Also,
+            with much help from Mike, it's now possible to add a
+            C-side function to an extension language hook, so
+            the "watcher" stuff in Snd has been removed and
+            replaced with normal hooks: add-watcher and
+            delete-watcher have been replaced by effects-hook.
+            In *.scm and *.html I've replaced the old Guile
+            hook functions with shiny new replacements: hook-push,
+            hook-append, hook-remove, and various uses of hook-functions.
+
+            *trace-hook*, *load-hook*, *error-hook*, and *unbound-variable-hook*
+            are now s7 hooks.
+
+    cond-expand (taken originally from MIT Scheme I think).
+
+checked: gtk 2.91.2|3|4, sbcl 1.0.44, Ruby 1.9.3
+
+Thanks!: Rene Bastian, Mike Scholz, Rick Taube, Michael Edwards
+
+===============================================================================
+
+Snd 11.10
+
+Mike made innumerable improvements in the scripts.
+
+removed snd7.scm and snd8.scm.
+
+defgenerator replaces def-clm-struct.
+
+deprecated verbose-cursor (use with-verbose-cursor).
+
+added 'gtk3 or 'gtk2 to *features*.
+
+s7: added setters for current-input-port, current-output-port,
+       and current-error-port.
+
+    *stdin*, *stdout*, *stderr* as the default IO ports
+       (rather than nil which is ambiguous).
+
+    removed special variable (dynamic binding) support (it gets
+       in the way of tail recursion).
+
+    s7_call_with_location to improve error handling.
+
+    s7 is about 10% faster in this version -- there are timings
+       at the end of s7.c and snd-test.scm.
+
+checked: autoconf 2.68, sbcl 1.0.43, gtk 2.91.0|1, gmp 5.0.1
+
+Thanks!: Mike Scholz
+
+===============================================================================
+
+Snd 11.9.
+
+The new gtk (version 3) has discarded most of the gdk functions, replacing them
+  with cairo.  This means the xg module and gtk code have also
+  changed a lot.  --with-cairo is the default (and the only alternative).
+  You'll need gtk 2.9 or later, and cairo 1.6.4 or later.  Eventually
+  there will be a cairo "surface" for openGL, so I'll be able to
+  reimplement that connection.  Unfortunately, the gtk/cairo version
+  of Snd is very slow (more than 10 times slower than Motif).  Looking
+  at valgrind output, my first guess is that it's cairo's fault, but
+  I need to spend some time poking at it.
+
+kmenu.scm uses the new gdk key names, so it only works in gtk 2.90.7 or later.
+
+removed --with-builtin-gtkrc (Gtk themes have improved a lot over the years)
+
+removed --with-static-gsl
+
+removed the button color functions.
+
+added a play triangle to the selection, and a close button to the sound pane.
+
+changed the default value of just-sounds to #t.
+
+s7: :allow-other-keys in define* parameter list.
+
+Greg Santucci noticed and fixed a bug in *trace-hook*.
+
+checked: gtk 2.90.6|7, sbcl 1.0.42
+
+Thanks!: Michael Klingbeil, Greg Santucci
+
+
+===============================================================================
+
+Snd 11.9.
+
+The new gtk (version 3) has discarded most of the gdk functions, replacing them
+  with cairo.  This means the xg module and gtk code have also
+  changed a lot.  --with-cairo is the default (and the only alternative).
+  You'll need gtk 2.9 or later, and cairo 1.6.4 or later.  Eventually
+  there will be a cairo "surface" for openGL, so I'll be able to
+  reimplement that connection.
+
+kmenu.scm uses the new gdk key names, so it only works in gtk 2.90.7 or later.
+
+removed --with-builtin-gtkrc (Gtk themes have improved a lot over the years)
+
+removed --with-static-gsl
+
+removed the button color functions.
+
+added a play triangle to the selection, and a close button to the sound pane.
+
+changed the default value of just-sounds to #t.
+
+s7: :allow-other-keys in define* parameter list.
+
+Greg Santucci noticed and fixed a bug in *trace-hook*.
+
+checked: gtk 2.90.6|7, sbcl 1.0.42
+
+Thanks!: Michael Klingbeil, Greg Santucci
+
+
+===============================================================================
+
+Snd 11.8
+
+--with-doubles is now the default in the configure script
+
+scan-channel and find-channel have changed slightly: they now
+  return just the sample number where the match was found, or #f.
+
+*-button-color deprecated.
+
+index.cl and indexer.scm replaced by make-index.scm.
+
+s7: access to any symbol's dynamic binding via the special macro.
+
+Checked: gtk 2.90.5, sbcl 1.0.41, Ruby 1.9.1-p429, autoconf 2.67, cmucl 20b
+
+Thanks!: Dylan_, Mike Scholz, Rick Taube
+
+===============================================================================
+
+Snd 11.7.
+
+Michael Klingbeil found and fixed several bugs in locsig, and
+	made several changes for ClozureCL in OSX.
+
+s7: hash-table for-each and map are now entry-oriented.
+    reverse of a hash-table swaps keys and values.
+
+removed title-with-date (examp.scm), snd-gxutils.c,
+    window-property, window-property-changed-hook, send-mozilla
+
+checked: gtk 2.90.2|3|4, Fedora Core 13, mpfr-3.0.0, sbcl 1.0.40,
+    autoconf 2.66, clisp 2.49
+
+Thanks!: Mike Scholz, Fernando Lopez-Lezcano, Michael Klingbeil,
+         Rick Taube
+
+===============================================================================
+
+Snd 11.7.
+
+Michael Klingbeil found and fixed several bugs in locsig, and
+	made several changes for ClozureCL in OSX.
+
+s7: hash-table for-each and map are now entry-oriented.
+    reverse of a hash-table swaps keys and values.
+
+removed title-with-date (examp.scm), snd-gxutils.c,
+    window-property, window-property-changed-hook, send-mozilla
+
+checked: gtk 2.90.2|3|4, FC 13, mpfr-3.0.0, sbcl 1.0.40, autoconf 2.66
+    clisp 2.49
+
+Thanks!: Mike Scholz, Fernando Lopez-Lezcano, Michael Klingbeil,
+         Rick Taube
+
+===============================================================================
+
+Snd 11.6
+
+in s7: *#readers* for your own #... readers
+       nan? and infinite?
+       #nD(...) multidimensional vector constant syntax
+       support for circular and shared structures
+       integer-decode-float and binary file IO (binary-io.scm).
+
+play-skipping-silence in extsnd.html
+
+removed snd6.scm.
+
+if --with-gtk, the configure script looks first for gtk 3.0 now
+  (actually 2.90.n, but the libraries and headers use the name 3.0), then
+  falls back on 2.0.
+
+added --without-audio configure switch.
+
+checked: sbcl 1.0.38|39, gtk 2.20.1|21.0|90.0|1, mpc 0.8.2
+
+Thanks!: Fernando Lopez-Lezcano, Kjetil Matheussen
+
+
+
+===============================================================================
+
+Snd 11.5
+
+autoload support via s7's *unbound-variable-hook*.  If you try to
+  use some undefined function, Snd first looks through a table
+  of (nearly) everything defined in the scheme files that come
+  with Snd, loading the needed files automatically. To turn this
+  off, (set! *unbound-variable-hook* #f).
+
+removed encapsulation from s7.  Added augment-environment.
+
+added make-type to s7: scheme-level type creation.
+      symbol-access: trap/modify the symbol value lookup mechanism.
+
+mix-notelists in ws.scm.
+
+Fernando fixed some problems in dlocsig.scm.
+
+checked: gtk 2.20.0, sbcl 1.0.37
+
+Thanks!: Rick Taube, Rick's students, Oded Ben-Tal, Cazzaniga Sandro,
+  Mike Scholz, Fernando Lopez-Lezcano
+
+
+
+===============================================================================
+
+Snd 11.5
+
+autoload support via s7's *unbound-variable-hook*.  If you try to
+  use some undefined function, Snd first looks through a table
+  of (nearly) everything defined in the scheme files that come
+  with Snd, loading the needed files automatically. To turn this
+  off, (set! *unbound-variable-hook* #f).
+
+removed encapsulation from s7.  Added augment-environment.
+
+added make-type to s7: scheme-level type creation.
+      symbol-access: trap/modify the symbol value lookup mechanism.
+
+mix-notelists in ws.scm.
+
+checked: gtk 2.20.0, sbcl 1.0.37
+
+Thanks!: Rick Taube, Rick's students, Oded Ben-Tal, Cazzaniga Sandro,
+  Mike Scholz
+
+
+
+===============================================================================
+
+Snd 11.4
+
+most of my effort in this version went into optimizations.
+
+the (sndlib) run macro's argument no longer has to be a "thunk".
+
+removed weird r4rs macro syntax from s7.
+
+I think I'll have to either rename or remove the encapsulation stuff
+  in s7.  It turns out that very similar names are being used in the Kernel
+  language and the r7rs discussions, and my use can only cause confusion.
+  Let me know if you're using that stuff.
+
+
+checked: gtk 2.19.6|7, sbcl 1.0.36, gsl 1.14
+
+Thanks!: Mike Scholz, Geoff Lee, Georgia Rodgers, Michael Edwards, Andrew Antle,
+	 Rick Taube,  Rick's students.
+
+===============================================================================
+
+Snd 11.3:
+
+The old functional form of show-listener no longer works:
+  change (show-listener) to (set! (show-listener) #t).
+
+in CLM, mus-file-probe et al changed to get bools working across the FFI,
+          (that is, mus-file-probe now returns either T or NIL, not 1 or 0),
+          and sound-frames and friends now follow the *clm-seach-list* list.
+
+The rest of the Guile-dependent files have been removed.  As soon as
+  they are translated to s7, I'll put them back in.  This includes the
+  --with-snd-as-pd-external and --with-rt configuration switches.
+
+About half of the CL functions have been implemented in s7test.scm (including
+  CLOS via tiny-clos); they pass the sacla/ansi/clisp tests (also in s7test.scm).
+
+flocsig in generators.scm (flanged locsig).
+
+moved sound|channel|mix|mark|edit-property to C.
+
+removed NLS support (the po directory and so on).
+
+
+checked: gtk 2.19.3|4|5, FC 12, sbcl 1.0.35
+
+Thanks!: Kim Cascone, Mike Scholz, Michael McNabb, Rick Taube, Michael Edwards,
+	 Fernando Lopez-Lezcano, Geoff Lee
+
+
+===============================================================================
+
+Snd 11.2
+
+added portaudio (version 19) support.
+
+s7: hash-table-for-each.
+
+added tools/sam.c: a Samson box emulator!
+
+some of the more useful extensions were moved to C:
+
+  make-current-window-display (draw.*) as with-inset-graph.
+
+  focus-follows-mouse as with-pointer-focus.
+
+  peak-env support, so peak-env.* removed, peak-env-info,
+    read-peak-env-info-file and write-peak-env-info-file removed,
+    added peak-env-dir which if not null (the default) turns on the
+    peak env machinery.  smart-line-cursor also moved to C.
+
+
+lots of long-delayed cleanups:
+
+  removed Guile support.
+    this includes remove-local-hook! in hooks.scm, use-modules and all
+    the guile-specific reader/debugger settings ("debug-set!" etc),
+    --with-guile, --with-modules, and --with-hobbit configuration switches,
+    snd-out in examp.scm, pd-* and rt-* are currently broken.  def-optkey-fun
+    is now just define*, and def-optkey-instrument is definstrument.
+    load-from-path is load.  shell is system. removed fix-optargs.scm.
+
+  removed mus-audio-systems, mus-audio-mixer-read, mus-audio-mixer-write,
+    and all the associated field and device names (in CLM as well as Snd).
+    removed mus-audio-report and changed mus-audio-describe to return the
+    description as a string.
+
+  removed sndrecord.c and new-buttons.scm.
+
+  removed SGI support.
+
+  removed midi.c and the --with-midi configure switch.
+
+  in CLM, removed sc.c and clm-snd.lisp (CLM to Snd interjob communication).
+
+  removed XmPrint/libXp support (--with-xp configure switch).
+
+
+versions of Alsa before 1.0 are no longer supported.
+
+mpc versions before 0.8.0 are no longer supported.
+
+
+checked: autoconf 2.65, sbcl 1.0.33|4, mpfr 2.4.2, gtk 2.19.1|2, mpc 0.8.1
+
+Thanks!: Hermann Beyer, Mike Scholz, Tommy Rushton, Mike Winter, Rick Taube.
+
+
+===============================================================================
+
+Snd 11.1:
+
+many more ruby/forth improvements thanks to Mike.
+
+*trace-hook* in s7.  Also defmacro* and define-macro*.  make-list.
+
+force and delay are now included in s7 only if WITH_FORCE is defined.
+  The slib implementation is used.  The promise? function has been removed.
+  I used "make-promise" for "delay" in earlier versions of s7 to avoid
+  collisions with CLM.
+
+removed the sbcl ppc undefined_alien_function stuff from cmus.c.
+
+removed all support for gtkglext and fftw2 (use fftw3).
+
+play is generic, and uses optkey args (this is a non-compatible change).
+  "old-play" is the old version of play.  play-channel, play-mix, play-region,
+  play-selection, and play-and-wait are deprecated.
+
+selection function/object; added selection choice to the generic funcs.
+selection->mix.
+The graphed selection bounds can be changed by dragging the mouse.
+
+The mix dialog follows the (mix-)sync field, and has 2 new buttons!
+
+copy and fill! for selection and sound, and copy for mix and mark.
+
+moved with-mix from ws.scm to snd11.scm.
+moved save-mix from mix.scm into C.
+added check-mix-tags to mix.scm.
+
+added snd-forth-docs.fs (incorporated in sndclm.html), thanks to Mike.
+
+colormaps are objects now, not ints; added the predefined colormaps
+  as built-in objects (hot-colormap, etc), and integer->colormap,
+  colormap->integer.  Each colormap function now takes a colormap object
+  as the first argument, not an integer.
+
+transforms are objects also; fourier-transform etc; integer->transform and
+  transform->integer.  add-transform returns such an object, delete-transform
+  and transform-type take one.
+
+removed tools/snd-index.cl.
+
+checked: sbcl 1.0.32, gtk 2.19.0, acl 8.2, mpc 0.8, guile 1.9.5, fth 1.2.8
+
+Thanks!: Geoff Lee, Mike Scholz, Rick Taube, Alan Grover, Kjetil Matheussen.
+
+===============================================================================
+
+Snd 11.1:
+
+many more ruby/forth improvements thanks to Mike.
+
+*trace-hook* in s7.  Also defmacro* and define-macro*.
+
+force and delay are now included in s7 only if WITH_FORCE is defined.
+  The slib implementation is used.  The promise? function has been removed.
+  I used "make-promise" for "delay" in earlier versions of s7 to avoid
+  collisions with CLM.
+
+removed the sbcl ppc undefined_alien_function stuff from cmus.c.
+
+removed all support for gtkglext and fftw2 (use fftw3).
+
+play is generic, and uses optkey args (this is a non-compatible change).
+  "old-play" is the old version of play.  play-channel, play-mix, play-region,
+  play-selection, and play-and-wait are deprecated.
+
+selection function/object; added selection choice to the generic funcs.
+selection->mix.
+The graphed selection bounds can be changed by dragging the mouse.
+
+The mix dialog follows the (mix-)sync field, and has 2 new buttons!
+
+copy and fill! for selection and sound, and copy for mix and mark.
+
+moved with-mix from ws.scm to snd11.scm.
+moved save-mix from mix.scm into C.
+added check-mix-tags to mix.scm.
+
+added snd-forth-docs.fs (incorporated in sndclm.html), thanks to Mike.
+
+colormaps are objects now, not ints; added the predefined colormaps
+  as built-in objects (hot-colormap, etc), and integer->colormap,
+  colormap->integer.  Each colormap function now takes a colormap object
+  as the first argument, not an integer.
+
+transforms are objects also; fourier-transform etc; integer->transform and
+  transform->integer.  add-transform returns such an object, delete-transform
+  and transform-type take one.
+
+removed tools/snd-index.cl.
+
+checked: sbcl 1.0.32, gtk 2.19.0, acl 8.2, mpc 0.8, guile 1.9.5, fth 1.2.8
+
+Thanks!: Geoff Lee, Mike Scholz, Rick Taube, Alan Grover, Kjetil Matheussen.
+
+===============================================================================
+
+Snd 11.0 (with much help from Mike Scholz):
+
+regions, players, mixes, and marks are objects now, not ints
+
+  integer->region, region->integer, integer->mix and mix->integer,
+    integer->mark and mark->integer to convert old code	
+
+  mix, mix-region, and mix-selection return a list of mixes
+
+  marks returns a list of marks
+
+  in several region-related functions, the argument order has changed to
+    put the region object first: insert-region, make-region-sampler, mix-region,
+    region-sample, region->vct, region->frame, make-region-frame-reader
+
+sounds are objects, but integers are still ok
+  integer->sound and sound->integer to convert old code.
+
+
+These changes make it possible to replace several dozen functions with generic
+  functions:
+
+  length handles list length, also string-length, vector-length, hash-table-size,
+    vct-length, frames, mus-length, sound-data-length, mix-length, and region-frames.
+
+  frames is similar but treats strings as sound file names, and ints as sound indices.
+
+  srate handles strings (mus-sound-srate), regions (region-srate), and sounds.
+
+  channels handles strings (mus-sound-chans), region-chans, sound-data-chans, mus-channels,
+    mixes (always 1 channel), and sounds
+
+  file-name handles strings, sounds, mixes, regions, samplers, generators, and
+    (s7) scheme file ports.
+
+  sync handles sync, mix-sync, and mark-sync.
+
+  maxamp can handle a sound (via the regular maxamp function), string (treated as a
+   sound file name, mus-sound-maxamp), generator (maxamp of the mus-data vct, if any),
+   sound-data (sound-data-maxamp), vct (vct-peak), region (region-maxamp), vector, list,
+   or mix object.
+
+all "sample-reader" and "sample_reader" names changed to "sampler".
+  (the old names are defined in snd10.scm)
+  make-sampler (formerly make-sample-reader) "snd" arg can be a mix object, returning a mix sampler.
+
+
+in s7 added procedure-environment and promise?
+
+removed export-all.scm, snd4.scm, snd5.scm, tools/sed-href, tools/lines.scm,
+  and tools/check-gtk.scm.
+
+sine-summation, sum-of-sines, and sum-of-cosines removed (see snd10.scm).
+
+the run macro only works in s7.
+
+removed run-safety, *snd-loaded-files*, and *snd-remember-paths*.
+
+added clm.rb and grani.rb (thanks to Mike Scholz).
+
+
+checked: mpc 0.7, OSX 10.6, gtk 2.18.0|1|2|3, cmucl 20a, guile 1.9.4
+
+Thanks!: Kjetil Matheussen, Mike Scholz
+
+
+===============================================================================
+
+Snd 10.9
+
+Kjetil improved the rt stuff.
+added env.scm to sndlib (for jcvoi.scm).
+optimization now defaults to 6.
+show-backtrace removed.
+
+s7: *error-info* for better error reporting.
+    vector-for-each, vector-map, string-for-each
+    generic map, for-each
+
+added s7-slib-init.scm: slib support.  It assumes getenv, file-exists?, and system
+  are provided elsewhere (this is the case if s7 is running in Snd or sndlib).
+
+added s7.html
+  s7: with-environment, true multiple-values, vectors can have > 2^31 elements (you'll
+      need a lot of memory).  multiple-value-bind and multiple-value-set!.
+
+checked:  gtk 2.17.7|8|9|10|11, guile 1.9.2|3, sbcl 1.0.31, gsl 1.13
+
+  in sbcl, something has changed in the double float array handling, so functions
+  like convolution can't be called from lisp.  The instruments seem to be ok.
+  (The two use the same calling sequence so I'm a bit mystified).
+
+Thanks!: Rick Taube, Ralf Mattes, Kjetil Matheussen, Mike Scholz
+
+===============================================================================
+
+Snd 10.8
+
+Rick fixed the windows build process for sndlib; added sndlib.sln.
+
+Kjetil and Mike made numerous improvements.
+
+
+in s7, sound-data, frame, mixer objects are set-applicable (like vectors and vcts).
+Also strings, lists, and hash-tables are set-applicable.  This has the somewhat
+  strange side effect that (apply "hi" '(1)) returns #\i, since strings are applicable.
+  I think the syntax is pretty:
+
+      (let ((lst (list 1 2 3)))
+        (set! (lst 1) 32)
+        (list (lst 0) (lst 1)))
+      -> '(1 32)
+
+      (let ((hash (make-hash-table)))
+        (set! (hash 'hi) 32)
+        (hash 'hi))
+      -> 32
+
+  but even better, vector arithmetic is almost readable, and you can write (for example)
+  a generic FFT that can take vectors, vcts, frames, lists, etc.  I wonder if I should
+  extend the "setter" idea to things like imag-part or numerator.  One thing I haven't
+  looked into yet: (set! ((lst 0) 0) 1) which I guess is set-caar!
+
+s7 length is generic, also added generic copy and fill!.
+
+added sort! for lists or vectors (it uses C's qsort internally, and list arguments are
+  always copied -- it's really vector-sort!).
+
+added frame and mixer, paralleling functions like vct and list:
+  (frame .1 .2) = (make-frame 2 .1 .2) etc
+
+added profiling option (--with-profiling in configure) to s7.  profile
+  function in extensions.scm.  This could be greatly elaborated, if
+  it's of interest.
+
+added trace, untrace, break and __func__ to s7. The __func__ info made it possible
+  to remove the backtrace facility altogether: backtracing, backtrace, set-backtrace-length,
+  clear-backtrace, and list-line-number have been removed.  These are replaced by
+  the stacktrace function, callable from within a break or error handler.
+  stacktrace (and error position info) still needs a lot of work.
+
+added macroexpand.
+    > (define-macro (hi a) `(+ ,a 1))
+    hi
+    > (macroexpand (hi 32))
+    (+ 32 1)
+
+removed gc-verbose, and load-verbose replaced by *load-hook*.  Error handling can
+  be specialized via *error-hook*.
+
+C-\ in the Snd terminal breaks out of evaluator infinite loops (s7 only).
+
+In the s7 C API:
+  s7_define_function_star: define* at C-level, handling keywords, argument order, etc.
+  s7_define_macro: define a macro at C-level.
+  s7_new_type_x: extended version of the C-level new type creator (length, copy, fill).
+  lower-case versions of s7_T and friends (I'll probably remove the upper-case versions someday).
+
+read-hook (in s7-Snd) has changed (the other cases are not changed).
+
+the ubiquitous Float type is now named mus_float_t (new sndlib major version: 21),
+  and off_t has been changed to mus_long_t.  Wherever possible I'm using either
+  int64_t or long long int, rather than off_t.
+
+added all the non-Snd-specific instrument files to the sndlib tarball:
+  analog-filter.scm|rb, animals.scm, bird.scm|rb|fsm, clm.fs, clm-ins.scm|rb|fs, dlocsig.scm|rb,
+  fade.scm, freeverb.scm|rb, generators.scm, grani.scm, jcrev.scm, jcvoi.scm,
+  maraca.scm|rb, maxf.scm|rb, moog.scm, noise.scm|rb, piano.scm|rb, prc95.scm|rb,
+  pvoc.scm|rb, singer.scm|rb, sndwarp.scm, spectr.scm|rb|fs, stochastic.scm, strad.scm|rb,
+  v.scm|rb.  Also split out expandn, fullmix, and nrev from clm-ins.scm into separate files.
+  Mike brought the sndins directory up to date.
+
+added "encapsulators" to s7:
+   open-encapsulator, close-encapsulator, (obj) to restore, encapsulator-bindings
+
+   (define-macro (encapsulate . body)
+      (let ((encap (gensym)))
+        `(let ((,encap (open-encapsulator)))
+           (dynamic-wind
+              (lambda ()
+	        #f)
+              (lambda ()
+	        , at body)
+              (lambda ()
+	        ((,encap))  ; restore saved vars
+                (close-encapsulator ,encap))))))
+
+    This evaluates "body", then returns any variables global to that code to their prior value:
+
+        > (define global-x 32)
+        global-x
+        > (encapsulate
+            (set! global-x 123)
+            (format #f "x: ~A" global-x))
+        "x: 123"
+        > global-x
+        32
+
+    There are three or maybe four reasons for encapsulators (rather than, say, fluid-let).
+    The main one is that it's a neat idea: a sort of data-side continuation.  open-encapsulator
+    remembers the overall environment at the point it is called, returning an encapuslator
+    object.  Whenever we want to return to that data state, we call that object as a thunk.
+    encapsulator-bindings returns the alist of variables awaiting restoration.  Once called,
+    that list is cleared, and the encapsulator starts saving values again (so repeated calls
+    keep returning you to that data state).  close-encapsulator turns that encapsulator off.
+    In a REPL, for example, you could save the initial state, then return to it at any time,
+    without restarting the interpreter.  fluid-let is not what we want here because it has
+    a body, and requires that you list in advance what variables you want to protect (and
+    besides, it's not really a let (it uses "set!") and I can't see anything fluid about it).
+    By tracing the encapsulator object, we can see every set! within some piece of code.
+    This encapsulation is not complete: I haven't finished making Snd/CLM objects work
+    with it, and some Scheme constructs aren't handled yet: (string-set! (vector-ref...))
+    for example.
+
+
+    Another idea that strikes me as interesting: define!
+
+      (define! env var value)
+
+    would bind var to value in the environment env (it changes env, hence the "!").  Currently,
+    if you want 2 functions to share a local variable, you have to establish the names in the
+    outer environment by hand:
+
+        (define proc1 #f)
+        (define proc2 #f)
+        (let ((local-var 32))
+          (set! proc1 (lambda () (+ local-var 1)))
+          (set! proc2 (lambda () (- local-var 1))))
+
+    You can't use
+
+        (begin
+          (define local-var 23)
+          (define (proc1) (+ local-var 1))
+          (define (proc2) (- local-var 1)))
+
+    because local-var is also defined outside the "begin".  With define! you could:
+
+        (let ((e (current-environment))) ; or (global-environment) to make them global
+          (let ((local-var 32))
+            (define! e (proc1) (+ local-var 1))
+            (define! e (proc2) (- local-var 1))))
+
+    This could replace the notions of library and module, I think.  A file could be
+    enclosed in a let, keeping everything local to that file except stuff that is
+    defined via define!.
+
+    Or... (env-let env (...) body) evaluates its bindings and body in the context
+    of the environment env.  Or environments as "first class" objects (see extend-environment
+    in s7.h, for example).  Or...
+
+    One last idea: emacs 23 apparently supports the XEmbed protocol, so I think
+    it is now possible to do what I had hoped to do in 1996: use emacs as the
+    snd listener (within Snd).  To communicate between Snd and Emacs it might still
+    be necessary to treat Snd as an emacs subjob, but the emacs window would be
+    inside the Snd app.
+
+
+cmn works in ECL 9.7.1.
+ruby 1.9 works as Snd's extension language.
+guile 1.9 works, but is not very useful: the run macro does not work, nor does ws.scm.
+using Motif 2.3.2 (CVS at sourceforge), the listener is at the top for some reason.
+
+
+Checked: gtk 2.17.3|4|5|6, fth 1.2.5|6, fftw 3.2.2, guile 1.9.1, openmotif 2.3.2, clisp 2.48,
+         autoconf 2.64, sbcl 1.0.30, ecl 9.7.1
+
+Thanks!: Mike Scholz, Rick Taube, Kjetil Matheussen, Markus Eichhoff, W Andrew Burnson
+
+===============================================================================
+
+Snd 10.8
+
+Rick fixed the windows build process for sndlib; added sndlib.sln.
+
+Kjetil and Mike made numerous improvements.  In particular, ruby 1.9
+  is working.
+
+
+in s7, sound-data, frame, mixer objects are set-applicable (like vectors and vcts)
+
+also strings, lists, and hash-tables are set-applicable.  This has the somewhat
+  strange side effect that (apply "hi" '(1)) returns #\i, since strings are applicable.
+  I think the syntax is pretty:
+
+      (let ((lst (list 1 2 3)))
+        (set! (lst 1) 32)
+        (list (lst 0) (lst 1)))
+      -> '(1 32)
+
+      (let ((hash (make-hash-table)))
+        (set! (hash 'hi) 32)
+        (hash 'hi))
+      -> 32
+
+  but even better, vector arithmetic is almost readable, and you can write (for example)
+  a generic FFT that can take vectors, vcts, frames, lists, etc.
+
+added frame and mixer, paralleling functions like vct and list
+  (frame .1 .2) = (make-frame 2 .1 .2) etc
+
+s7_define_function_star: define* at C-level, handling keywords, argument order, etc.
+s7_define_macro: define a macro at C-level.  Also macroexpand.
+s7_new_type_x: extended version of the C-level new type creator (length, copy, fill).
+lower-case versions of s7_T and friends (I'll probably remove the upper-case versions someday).
+
+added profiling option (--with-profiling in configure) to s7.  profile
+  function in extensions.scm.  This could be greatly elaborated, if
+  it's of interest.
+
+added trace, untrace, break and __func__ to s7. The __func__ info made it possible
+  to remove the backtrace facility altogether: backtracing, backtrace, set-backtrace-length,
+  clear-backtrace, and list-line-number have been removed.  These are replaced by
+  the stacktrace function, callable from within a break or error handler.
+
+in s7, removed gc-verbose and load-verbose replaced by *load-hook*.  Error handling can
+  be specialized via *error-hook*.
+
+sort! for lists or vectors.
+
+read-hook (in s7-Snd) has changed (the other cases are not changed).
+
+C-\ in the Snd terminal breaks out of evaluator infinite loops (s7).
+
+the ubiquitous Float type is now named mus_float_t (new sndlib major version: 21),
+  and off_t has been changed to mus_long_t.  Wherever possible I'm using either
+  int64_t or long long int, rather than off_t.
+
+added all the non-Snd-specific instrument files to the sndlib tarball:
+  analog-filter.scm|rb, animals.scm, bird.scm|rb|fsm, clm.fs, clm-ins.scm|rb|fs, dlocsig.scm|rb,
+  fade.scm, freeverb.scm|rb, generators.scm, grani.scm, jcrev.scm, jcvoi.scm,
+  maraca.scm|rb, maxf.scm|rb, moog.scm, noise.scm|rb, piano.scm|rb, prc95.scm|rb,
+  pvoc.scm|rb, singer.scm|rb, sndwarp.scm, spectr.scm|rb|fs, stochastic.scm, strad.scm|rb,
+  v.scm|rb.  Also split out expandn, fullmix, and nrev from clm-ins.scm into separate files.
+  Mike brought the sndins directory up to date.
+
+s7 length is generic, also added generic copy and fill!.
+
+added "encapsulators" to s7:
+   open-encapsulator, close-encapsulator, (obj) to restore, encapsulator-bindings
+
+   (define-macro (encapsulate . body)
+      (let ((encap (gensym)))
+        `(let ((,encap (open-encapsulator)))
+           (dynamic-wind
+              (lambda ()
+	        #f)
+              (lambda ()
+	        , at body)
+              (lambda ()
+	        ((,encap))  ; restore saved vars
+                (close-encapsulator ,encap))))))
+
+    We want to run some code, then return variables global to that code to their prior state.
+
+        > (define global-x 32)
+        global-x
+        > (encapsulate
+            (set! global-x 123)
+            (format #f "x: ~A" global-x))
+        "x: 123"
+        > global-x
+        32
+
+    We might simpy copy the entire current environment, but that is slow (there are easily
+    1000 variables in Snd), and requires huge amounts of space (vectors need to be copied
+    for example), and usually in such a situation, only one or two variables actually need to
+    be restored.  fluid-let is not what we want.  First "fluid-let" is a bad name; it is not a
+    "let" because it uses set! rather than making a new binding, and what is "fluid" about it?
+    Second, fluid-let puts the bookkeeping burden on the programmer -- he has
+    to maintain a list of the variables he wants to protect -- that's asking for bugs.  Finally,
+    it's restricted to protecting the body of the fluid-let, but in a REPL, for example,
+    we want to return to a known state without being in any obvious let form.  That is, we
+    actually want a sort of data-side call/cc. In this system (using encapsulators), to
+    be able to return to a given data state, open an encapsulator, then later call it to restore
+    all variables global to that object.  close-encapsulator says I'm done with it -- the
+    normal case is that calling the object restores all its stored values, then (if not closed)
+    it starts saving values again -- this way we can repeatedly return to a clean state without
+    opening a new encapsulator every time.  Also, if we trace the encapsulator, we'll see every set!
+    This is not perfect yet -- I'm still working on the Snd/CLM objects, and I haven't decided yet
+    how to deal with something like (string-set! (vector-ref ...)). Also C-side variables accessed
+    through procedure-with-setters are not (yet?) restored.
+
+
+cmn works in ECL 9.7.1.
+
+Checked: gtk 2.17.3|4|5|6, fth 1.2.5|6, fftw 3.2.2, guile 1.9.1, openmotif 2.3.2, clisp 2.48,
+         autoconf 2.64, sbcl 1.0.30, ecl 9.7.1
+
+  (in guile 1.9.n, the run macro does not work, nor do ws.scm and generators.scm)
+  (in the new motif, the listener is at the top for some reason)
+
+Thanks!: Mike Scholz, Rick Taube, Kjetil Matheussen, Markus Eichhoff, W Andrew Burnson
+
+===============================================================================
+
+Snd 10.8
+
+Rick fixed the windows build process for sndlib; added sndlib.sln.
+
+Kjetil and Mike made numerous improvements.  In particular, ruby 1.9
+  is working.
+
+
+in s7, sound-data, frame, mixer objects are set-applicable (like vectors and vcts)
+
+also strings, lists, and hash-tables are set-applicable.  This has the somewhat
+  strange side effect that (apply "hi" '(1)) returns #\i, since strings are applicable.
+  I think the syntax is pretty:
+
+      (let ((lst (list 1 2 3)))
+        (set! (lst 1) 32)
+        (list (lst 0) (lst 1)))
+      -> '(1 32)
+
+      (let ((hash (make-hash-table)))
+        (set! (hash 'hi) 32)
+        (hash 'hi))
+      -> 32
+
+  but even better, vector arithmetic is almost readable, and you can write (for example)
+  a generic FFT that can take vectors, vcts, frames, lists, etc.
+
+added frame and mixer, paralleling functions like vct and list
+  (frame .1 .2) = (make-frame 2 .1 .2) etc
+
+s7_define_function_star: define* at C-level, handling keywords, argument order, etc.
+s7_define_macro: define a macro at C-level.  Also macroexpand.
+s7_new_type_x: extended version of the C-level new type creator (length, copy, fill).
+lower-case versions of s7_T and friends (I'll probably remove the upper-case versions someday).
+
+added profiling option (--with-profiling in configure) to s7.  profile
+  function in extensions.scm.  This could be greatly elaborated, if
+  it's of interest.
+
+added trace, untrace, break and __func__ to s7. The __func__ info made it possible
+  to remove the backtrace facility altogether: backtracing, backtrace, set-backtrace-length,
+  clear-backtrace, and list-line-number have been removed.  These are replaced by
+  the stacktrace function, callable from within a break or error handler.
+
+in s7, removed gc-verbose and load-verbose replaced by *load-hook*.  Error handling can
+  be specialized via *error-hook*.
+
+sort! for lists or vectors.
+
+read-hook (in s7-Snd) has changed (the other cases are not changed).
+
+the ubiquitous Float type is now named mus_float_t (new sndlib major version: 21),
+  and off_t has been changed to mus_long_t.  Wherever possible I'm using either
+  int64_t or long long int, rather than off_t.
+
+added all the non-Snd-specific instrument files to the sndlib tarball:
+  analog-filter.scm|rb, animals.scm, bird.scm|rb|fsm, clm.fs, clm-ins.scm|rb|fs, dlocsig.scm|rb,
+  fade.scm, freeverb.scm|rb, generators.scm, grani.scm, jcrev.scm, jcvoi.scm,
+  maraca.scm|rb, maxf.scm|rb, moog.scm, noise.scm|rb, piano.scm|rb, prc95.scm|rb,
+  pvoc.scm|rb, singer.scm|rb, sndwarp.scm, spectr.scm|rb|fs, stochastic.scm, strad.scm|rb,
+  v.scm|rb.  Also split out expandn, fullmix, and nrev from clm-ins.scm into separate files.
+  Mike brought the sndins directory up to date.
+
+s7 length is generic, also added generic copy and fill!.
+
+added "encapsulators" to s7:
+   open-encapsulator, close-encapsulator, (obj) to restore, encapsulator-bindings
+
+   (define-macro (encapsulate . body)
+      (let ((encap (gensym)))
+        `(let ((,encap (open-encapsulator)))
+           (dynamic-wind
+              (lambda ()
+	        #f)
+              (lambda ()
+	        , at body)
+              (lambda ()
+	        ((,encap))  ; restore saved vars
+                (close-encapsulator ,encap))))))
+
+    We want to run some code, then return variables global to that code to their prior state.
+
+        > (define global-x 32)
+        global-x
+        > (encapsulate
+            (set! global-x 123)
+            (format #f "x: ~A" global-x))
+        "x: 123"
+        > global-x
+        32
+
+    We might simpy copy the entire current environment, but that is slow (there are easily
+    1000 variables in Snd), and requires huge amounts of space (vectors need to be copied
+    for example), and usually in such a situation, only one or two variables actually need to
+    be restored.  fluid-let is not what we want.  First "fluid-let" is a bad name; it is not a
+    "let" because it uses set! rather than making a new binding, and what is "fluid" about it?
+    Second, fluid-let puts the bookkeeping burden on the programmer -- he has
+    to maintain a list of the variables he wants to protect -- that's asking for bugs.  Finally,
+    it's restricted to protecting the body of the fluid-let, but in a REPL, for example,
+    we want to return to a known state without being in any obvious let form.  That is, we
+    actually want a sort of data-side call/cc. In this system (using encapsulators), to
+    be able to return to a given data state, open an encapsulator, then later call it to restore
+    all variables global to that object.  close-encapsulator says I'm done with it -- the
+    normal case is that calling the object restores all its stored values, then (if not closed)
+    it starts saving values again -- this way we can repeatedly return to a clean state without
+    opening a new encapsulator every time.  Also, if we trace the encapsulator, we'll see every set!
+    This is not perfect yet -- I'm still working on the Snd/CLM objects, and I haven't decided yet
+    how to deal with something like (string-set! (vector-ref ...)). Also C-side variables accessed
+    through procedure-with-setters are not (yet?) restored.
+
+
+cmn works in ECL 9.7.1.
+
+Checked: gtk 2.17.3|4|5|6, fth 1.2.5|6, fftw 3.2.2, guile 1.9.1, openmotif 2.3.2, clisp 2.48,
+         autoconf 2.64, sbcl 1.0.30, ecl 9.7.1
+
+  (in guile 1.9.n, the run macro does not work, nor do ws.scm and generators.scm)
+  (in the new motif, the listener is at the top for some reason)
+
+Thanks!: Mike Scholz, Rick Taube, Kjetil Matheussen, Markus Eichhoff, W Andrew Burnson
+
+===============================================================================
+
+Snd 10.8
+
+Rick fixed the windows build process for sndlib; added sndlib.sln.
+
+Kjetil and Mike made numerous improvements.  In particular, ruby 1.9
+  is working.
+
+
+in s7, sound-data, frame, mixer objects are set-applicable (like vectors and vcts)
+
+also strings, lists, and hash-tables are set-applicable.  This has the somewhat
+  strange side effect that (apply "hi" '(1)) returns #\i, since strings are applicable.
+  I think the syntax is pretty:
+
+      (let ((lst (list 1 2 3)))
+        (set! (lst 1) 32)
+        (list (lst 0) (lst 1)))
+      -> '(1 32)
+
+      (let ((hash (make-hash-table)))
+        (set! (hash 'hi) 32)
+        (hash 'hi))
+      -> 32
+
+  but even better, vector arithmetic is almost readable, and you can write (for example)
+  a generic FFT that can take vectors, vcts, frames, lists, etc.
+
+added frame and mixer, paralleling functions like vct and list
+  (frame .1 .2) = (make-frame 2 .1 .2) etc
+
+s7_define_function_star: define* at C-level, handling keywords, argument order, etc.
+s7_define_macro: define a macro at C-level.  Also macroexpand.
+s7_new_type_x: extended version of the C-level new type creator (length, copy, fill).
+lower-case versions of s7_T and friends (I'll probably remove the upper-case versions someday).
+
+added profiling option (--with-profiling in configure) to s7.  profile
+  function in extensions.scm.  This could be greatly elaborated, if
+  it's of interest.
+
+added trace, untrace, break and __func__ to s7. The __func__ info made it possible
+  to remove the backtrace facility altogether: backtracing, backtrace, set-backtrace-length,
+  clear-backtrace, and list-line-number have been removed.  These are replaced by
+  the stacktrace function, callable from within a break or error handler.
+
+in s7, removed gc-verbose and load-verbose replaced by *load-hook*.  Error handling can
+  be specialized via *error-hook*.
+
+sort!
+
+read-hook (in s7-Snd) has changed (the other cases are not changed).
+
+the ubiquitous Float type is now named mus_float_t (new sndlib major version: 21),
+  and off_t has been changed to mus_long_t.  Wherever possible I'm using either
+  int64_t or long long int, rather than off_t.
+
+added all the non-Snd-specific instrument files to the sndlib tarball:
+  analog-filter.scm|rb, animals.scm, bird.scm|rb|fsm, clm.fs, clm-ins.scm|rb|fs, dlocsig.scm|rb,
+  fade.scm, freeverb.scm|rb, generators.scm, grani.scm, jcrev.scm, jcvoi.scm,
+  maraca.scm|rb, maxf.scm|rb, moog.scm, noise.scm|rb, piano.scm|rb, prc95.scm|rb,
+  pvoc.scm|rb, singer.scm|rb, sndwarp.scm, spectr.scm|rb|fs, stochastic.scm, strad.scm|rb,
+  v.scm|rb.  Also split out expandn, fullmix, and nrev from clm-ins.scm into separate files.
+  Mike brought the sndins directory up to date.
+
+s7 length is generic, also added generic copy and fill!.
+
+added "encapsulators" to s7:
+   open-encapsulator, close-encapsulator, (obj) to restore, encapsulator-bindings
+
+   (define-macro (encapsulate . body)
+      (let ((encap (gensym)))
+        `(let ((,encap (open-encapsulator)))
+           (dynamic-wind
+              (lambda ()
+	        #f)
+              (lambda ()
+	        , at body)
+              (lambda ()
+	        ((,encap))  ; restore saved vars
+                (close-encapsulator ,encap))))))
+
+    We want to run some code, then return variables global to that code to their prior state.
+
+        > (define global-x 32)
+        global-x
+        > (encapsulate
+            (set! global-x 123)
+            (format #f "x: ~A" global-x))
+        "x: 123"
+        > global-x
+        32
+
+    We might simpy copy the entire current environment, but that is slow (there are easily
+    1000 variables in Snd), and requires huge amounts of space (vectors need to be copied
+    for example), and usually in such a situation, only one or two variables actually need to
+    be restored.  fluid-let is not what we want.  First "fluid-let" is a bad name; it is not a
+    "let" because it uses set! rather than making a new binding, and what is "fluid" about it?
+    Second, fluid-let puts the bookkeeping burden on the programmer -- he has
+    to maintain a list of the variables he wants to protect -- that's asking for bugs.  Finally,
+    it's restricted to protecting the body of the fluid-let, but in a REPL, for example,
+    we want to return to a known state without being in any obvious let form.  That is, we
+    actually want a sort of data-side call/cc. In this system (using encapsulators), to
+    be able to return to a given data state, open an encapsulator, then later call it to restore
+    all variables global to that object.  close-encapsulator says I'm done with it -- the
+    normal case is that calling the object restores all its stored values, then (if not closed)
+    it starts saving values again -- this way we can repeatedly return to a clean state without
+    opening a new encapsulator every time.  Also, if we trace the encapsulator, we'll see every set!
+    This is not perfect yet -- I'm still working on the Snd/CLM objects, and I haven't decided yet
+    how to deal with something like (string-set! (vector-ref ...)). Also C-side variables accessed
+    through procedure-with-setters are not restored.
+
+
+cmn works in ECL 9.7.1.
+
+Checked: gtk 2.17.3|4|5|6, fth 1.2.5|6, fftw 3.2.2, guile 1.9.1, openmotif 2.3.2, clisp 2.48,
+         autoconf 2.64, sbcl 1.0.30, ecl 9.7.1
+
+  (in guile 1.9.n, the run macro does not work, nor do ws.scm and generators.scm)
+  (in the new motif, the listener is at the top for some reason)
+
+Thanks!: Mike Scholz, Rick Taube, Kjetil Matheussen, Markus Eichhoff, W Andrew Burnson
+
+===============================================================================
+
+Snd 10.8
+
+Rick fixed the windows build process for sndlib; added sndlib.sln.
+
+Kjetil and Mike made numerous improvements.  In particular, ruby 1.9
+  is working.
+
+
+in s7, sound-data, frame, mixer objects are set-applicable (like vectors and vcts)
+
+added frame and mixer, paralleling functions like vct and list
+  (frame .1 .2) = (make-frame 2 .1 .2) etc
+
+s7_define_function_star: define* at C-level, handling keywords, argument order, etc.
+s7_define_macro: define a macro at C-level.  Also macroexpand.
+s7_new_type_x: extended version of the C-level new type creator (length, copy, fill).
+
+added profiling option (--with-profiling in configure) to s7.  profile
+  function in extensions.scm.  This could be greatly elaborated, if
+  it's of interest.
+
+added trace, untrace, break and __func__ to s7. The __func__ info made it possible
+  to remove the backtrace facility altogether: backtracing, backtrace, set-backtrace-length,
+  clear-backtrace, and list-line-number have been removed.  These are replaced by
+  the stacktrace function, callable from within a break or error handler.
+
+in s7, removed gc-verbose and load-verbose replaced by *load-hook*.  Error handling can
+  be specialized via *error-hook*.
+
+added sort! to s7, and lower-case versions of s7_T and friends.
+  I'll probably remove the upper-case versions someday.
+
+strings are set-applicable (like vectors).  This has the somewhat strange side effect
+  that (apply "hi" '(1)) returns #\i, since strings are applicable, but the up side,
+  no need for noise words like string-ref and vector-ref, seems more important to me.
+
+read-hook (in s7-Snd) has changed (the other cases are not changed).
+
+the ubiquitous Float type is now named mus_float_t (new sndlib major version: 21),
+  and off_t has been changed to mus_long_t.  Wherever possible I'm using either
+  int64_t or long long int, rather than off_t.
+
+added all the non-Snd-specific instrument files to the sndlib tarball:
+  analog-filter.scm|rb, animals.scm, bird.scm|rb|fsm, clm.fs, clm-ins.scm|rb|fs, dlocsig.scm|rb,
+  fade.scm, freeverb.scm|rb, generators.scm, grani.scm, jcrev.scm, jcvoi.scm,
+  maraca.scm|rb, maxf.scm|rb, moog.scm, noise.scm|rb, piano.scm|rb, prc95.scm|rb,
+  pvoc.scm|rb, singer.scm|rb, sndwarp.scm, spectr.scm|rb|fs, stochastic.scm, strad.scm|rb,
+  v.scm|rb.  Also split out expandn, fullmix, and nrev from clm-ins.scm into separate files.
+  Mike brought the sndins directory up to date.
+
+s7 length is generic, also added generic copy and fill!.
+
+added "encapsulators" to s7:
+   open-encapsulator, close-encapsulator, (obj) to restore, encapsulator-bindings
+
+   (define-macro (encapsulate . body)
+      (let ((encap (gensym)))
+        `(let ((,encap (open-encapsulator)))
+           (dynamic-wind
+              (lambda ()
+	        #f)
+              (lambda ()
+	        , at body)
+              (lambda ()
+	        ((,encap))  ; restore saved vars
+                (close-encapsulator ,encap))))))
+
+    We want to run some code, then return variables global to that code to their prior state.
+
+        > (define global-x 32)
+        global-x
+        > (encapsulate
+            (set! global-x 123)
+            (format #f "x: ~A" global-x))
+        "x: 123"
+        > global-x
+        32
+
+    We might simpy copy the entire current environment, but that is slow (there are easily
+    1000 variables in Snd), and requires huge amounts of space (vectors need to be copied
+    for example), and usually in such a situation, only one or two variables actually need to
+    be restored.  fluid-let is not what we want.  First "fluid-let" is a bad name; it is not a
+    "let" because it uses set! rather than making a new binding, and what is "fluid" about it?
+    Second, fluid-let puts the bookkeeping burden on the programmer -- he has
+    to maintain a list of the variables he wants to protect -- that's asking for bugs.  Finally,
+    it's restricted to protecting the body of the fluid-let, but in a REPL, for example,
+    we want to return to a known state without being in any obvious let form.  That is, we
+    actually want a sort of data-side call/cc. In this system (using encapsulators), to
+    be able to return to a given data state, open an encapsulator, then later call it to restore
+    all variables global to that object.  close-encapsulator says I'm done with it -- the
+    normal case is that calling the object restores all its stored values, then (if not closed)
+    it starts saving values again -- this way we can repeatedly return to a clean state without
+    opening a new encapsulator every time.  Also, if we trace the encapsulator, we'll see every set!
+    This is not perfect yet -- I'm still working on the Snd/CLM objects, and I haven't decided yet
+    how to deal with something like (string-set! (vector-ref ...)). Also C-side variables accessed
+    through procedure-with-setters are not restored.
+
+
+cmn works in ECL 9.7.1.
+
+Checked: gtk 2.17.3|4|5|6, fth 1.2.5|6, fftw 3.2.2, guile 1.9.1, openmotif 2.3.2, clisp 2.48,
+         autoconf 2.64, sbcl 1.0.30, ecl 9.7.1
+
+  (in guile 1.9.n, the run macro does not work, nor do ws.scm and generators.scm)
+  (in the new motif, the listener is at the top for some reason)
+
+Thanks!: Mike Scholz, Rick Taube, Kjetil Matheussen, Markus Eichhoff, W Andrew Burnson
+
+===============================================================================
+
+Snd 10.8
+
+Rick fixed the windows build process for sndlib; added sndlib.sln.
+
+Kjetil and Mike made numerous improvements.  In particular, ruby 1.9
+  is working.
+
+
+in s7, sound-data, frame, mixer objects are set-applicable (like vectors and vcts)
+
+added frame and mixer, paralleling functions like vct and list
+  (frame .1 .2) = (make-frame 2 .1 .2) etc
+
+s7_define_function_star: define* at C-level, handling keywords, argument order, etc.
+s7_define_macro: define a macro at C-level.  Also macroexpand.
+s7_new_type_x: extended version of the C-level new type creator (length, copy, fill).
+
+added profiling option (--with-profiling in configure) to s7.  profile
+  function in extensions.scm.  This could be greatly elaborated, if
+  it's of interest.
+
+added trace, untrace, break and __func__ to s7. The __func__ info made it possible
+  to remove the backtrace facility altogether: backtracing, backtrace, set-backtrace-length,
+  clear-backtrace, and list-line-number have been removed.  These are replaced by
+  the stacktrace function, callable from within a break or error handler.
+
+in s7, removed gc-verbose and load-verbose replaced by *load-hook*.  Error handling can
+  be specialized via *error-hook*.
+
+added sort! to s7, and lower-case versions of s7_T and friends.
+  I'll probably remove the upper-case versions someday.
+
+strings are set-applicable (like vectors).  This has the somewhat strange side effect
+  that (apply "hi" '(1)) returns #\i, since strings are applicable, but the up side,
+  no need for noise words like string-ref and vector-ref, seems more important to me.
+
+read-hook (in s7-Snd) has changed (the other cases are not changed).
+
+the ubiquitous Float type is now named mus_float_t (new sndlib major version: 21),
+  and off_t has been changed to mus_long_t.  Wherever possible I'm using either
+  int64_t or long long int, rather than off_t.
+
+added all the non-Snd-specific instrument files to the sndlib tarball:
+  analog-filter.scm|rb, animals.scm, bird.scm|rb|fsm, clm.fs, clm-ins.scm|rb|fs, dlocsig.scm|rb,
+  fade.scm, freeverb.scm|rb, generators.scm, grani.scm, jcrev.scm, jcvoi.scm,
+  maraca.scm|rb, maxf.scm|rb, moog.scm, noise.scm|rb, piano.scm|rb, prc95.scm|rb,
+  pvoc.scm|rb, singer.scm|rb, sndwarp.scm, spectr.scm|rb|fs, stochastic.scm, strad.scm|rb,
+  v.scm|rb.  Also split out expandn, fullmix, and nrev from clm-ins.scm into separate files.
+  Mike brought the sndins directory up to date.
+
+s7 length is generic, also added generic copy and fill!.
+
+added "encapsulators" to s7:
+   open-encapsulator, close-encapsulator, (obj) to restore, encapsulator-bindings
+
+   (define-macro (encapsulate . body)
+      (let ((encap (gensym)))
+        `(let ((,encap (open-encapsulator)))
+           (dynamic-wind
+              (lambda ()
+	        #f)
+              (lambda ()
+	        , at body)
+              (lambda ()
+	        ((,encap))  ; restore saved vars
+                (close-encapsulator ,encap))))))
+
+    We want to run some code, then return variables global to that code to their prior state.
+    We might simpy copy the entire current environment, but that is slow (there are easily
+    10000 variables in Snd), and requires huge amounts of space (vectors need to be copied
+    for example), and usually in such a situation, only one or two variables actually need to
+    be restored.  fluid-let is not what we want.  First "fluid-let" is a bad name; it is not a
+    "let" because it uses set! rather than making a new binding, and what is "fluid" about it?
+    Second, fluid-let puts a dumb bookkeeping burden on the programmer -- he has
+    to maintain a list of the variables he wants to protect -- that's asking for bugs!  Finally,
+    it's restricted to protecting the body of the fluid-let, but in a REPL, for example,
+    we want to return to a known state without being in any obvious let form.  That is, we
+    actually want a sort of data-side call/cc. In this system (open|close-encapsulator), to
+    be able to return to a given (data) state, open an encapsulator, then later call it to restore
+    all variables global to that object.  close-encapsulator says I'm done with it -- the
+    normal case is that calling the object restores all its stored values, then (if not closed)
+    it starts saving values again -- this way we can repeatedly return to a clean state without
+    opening a new encapsulator every time.  Also, if we trace the encapsulator, we'll see every set!
+
+    This is not perfect yet -- I'm still working on the Snd/CLM objects, and I don't know
+    how to deal with something like (string-set! (vector-ref ...)) -- should I save upon vector|list-ref
+    as well as -set!?, so there are a few cases that aren't currently restored.  But a simple example:
+
+        > (define global-x 32)
+        global-x
+        > (encapsulate
+            (set! global-x 123)
+            (format #f "x: ~A" global-x))
+        "x: 123"
+        > global-x
+        32
+
+
+cmn works in ECL 9.7.1.
+
+Checked: gtk 2.17.3|4|5|6, fth 1.2.5|6, fftw 3.2.2, guile 1.9.1, openmotif 2.3.2, clisp 2.48,
+         autoconf 2.64, sbcl 1.0.30, ecl 9.7.1
+
+  (in guile 1.9.n, the run macro does not work, nor do ws.scm and generators.scm)
+  (in the new motif, the listener is at the top for some reason)
+
+Thanks!: Mike Scholz, Rick Taube, Kjetil Matheussen, Markus Eichhoff, W Andrew Burnson
+
+===============================================================================
+
+Snd 10.8
+
+Rick fixed the windows build process for sndlib; added sndlib.sln.
+
+Kjetil and Mike made numerous improvements.  In particular, ruby 1.9
+  is working.
+
+
+in s7, sound-data, frame, mixer objects are set-applicable (like vectors and vcts)
+
+added frame and mixer, paralleling functions like vct and list
+  (frame .1 .2) = (make-frame 2 .1 .2) etc
+
+s7_define_function_star: define* at C-level, handling keywords, argument order, etc.
+s7_define_macro: define a macro at C-level.  Also macroexpand.
+s7_new_type_x: extended version of the C-level new type creator (length, copy, etc).
+
+added profiling option (--with-profiling in configure) to s7.  profile
+  function in extensions.scm.  This could be greatly elaborated, if
+  it's of interest.
+
+added trace, untrace, break and __func__ to s7. The __func__ info made it possible
+  to remove the backtrace facility altogether: backtracing, backtrace, set-backtrace-length,
+  clear-backtrace, and list-line-number have been removed.  These are replaced by
+  the stacktrace function, callable from within a break or error handler.
+
+in s7, removed gc-verbose and load-verbose replaced by *load-hook*.  Error handling can
+  be specialized via *error-hook*.
+
+added sort! to s7, and lower-case versions of s7_T and friends.
+  I'll probably remove the upper-case versions someday.
+
+strings are set-applicable (like vectors).  This has the somewhat strange side effect
+  that (apply "hi" '(1)) returns #\i, since strings are applicable, but the up side,
+  no need for noise words like string-ref and vector-ref, seems more important to me.
+
+read-hook (in s7-Snd) has changed (the other cases are not changed).
+
+the ubiquitous Float type is now named mus_float_t (new sndlib major version: 21),
+  and off_t has been changed to mus_long_t.  Wherever possible I'm using either
+  int64_t or long long int, rather than off_t.
+
+added all the non-Snd-specific instrument files to the sndlib tarball:
+  analog-filter.scm|rb, animals.scm, bird.scm|rb|fsm, clm.fs, clm-ins.scm|rb|fs, dlocsig.scm|rb,
+  fade.scm, freeverb.scm|rb, generators.scm, grani.scm, jcrev.scm, jcvoi.scm,
+  maraca.scm|rb, maxf.scm|rb, moog.scm, noise.scm|rb, piano.scm|rb, prc95.scm|rb,
+  pvoc.scm|rb, singer.scm|rb, sndwarp.scm, spectr.scm|rb|fs, stochastic.scm, strad.scm|rb,
+  v.scm|rb.  Also split out expandn, fullmix, and nrev from clm-ins.scm into separate files.
+  Mike brought the sndins directory up to date.
+
+s7 length is generic, also added generic copy.
+
+added "encapsulators" to s7:
+   open-encapsulator, close-encapsulator, (obj) to restore, encapsulator-bindings
+
+   (define-macro (encapsulate . body)
+      (let ((encap (gensym)))
+        `(let ((,encap (open-encapsulator)))
+           (dynamic-wind
+              (lambda ()
+	        #f)
+              (lambda ()
+	        , at body)
+              (lambda ()
+	        ((,encap))  ; restore saved vars
+                (close-encapsulator ,encap))))))
+
+    We want to run some code, then return variables global to that code to their prior state.
+    We might simpy copy the entire current environment, but that is slow (there are easily
+    10000 variables in Snd), and requires huge amounts of space (vectors need to be copied
+    for example), and usually in such a situation, only one or two variables actually need to
+    be restored.  fluid-let is not what we want.  First "fluid-let" is a bad name; it is not a
+    "let" because it uses set! rather than making a new binding, and what is "fluid" about it?
+    Second, fluid-let puts a dumb bookkeeping burden on the programmer -- he has
+    to maintain a list of the variables he wants to protect -- that's asking for bugs!  Finally,
+    it's restricted to protecting the body of the fluid-let, but in a REPL, for example,
+    we want to return to a known state without being in any obvious let form.  That is, we
+    actually want a sort of data-side call/cc. In this system (open|close-encapsulator), to
+    be able to return to a given (data) state, open an encapsulator, then later call it to restore
+    all variables global to that object.  close-encapsulator says I'm done with it -- the
+    normal case is that calling the object restores all its stored values, then (if not closed)
+    it starts saving values again -- this way we can repeatedly return to a clean state without
+    opening a new encapsulator every time.  Also, if we trace the encapsulator, we'll see every set!
+
+    This is not perfect yet -- I'm still working on the Snd/CLM objects, and I don't know
+    how to deal with something like (string-set! (vector-ref ...)) -- should I save upon vector|list-ref
+    as well as -set!?, so there are a few cases that aren't currently restored.  But a simple example:
+
+        > (define global-x 32)
+        global-x
+        > (encapsulate
+            (set! global-x 123)
+            (format #f "x: ~A" global-x))
+        "x: 123"
+        > global-x
+        32
+
+
+cmn works in ECL 9.7.1.
+
+Checked: gtk 2.17.3|4|5|6, fth 1.2.5|6, fftw 3.2.2, guile 1.9.1, openmotif 2.3.2, clisp 2.48,
+         autoconf 2.64, sbcl 1.0.30, ecl 9.7.1
+
+  (in guile 1.9.n, the run macro does not work, nor do ws.scm and generators.scm)
+  (in the new motif, the listener is at the top for some reason)
+
+Thanks!: Mike Scholz, Rick Taube, Kjetil Matheussen, Markus Eichhoff, W Andrew Burnson
+
+===============================================================================
+
+Snd 10.8
+
+Rick fixed the windows build process for sndlib; added sndlib.sln.
+
+Kjetil and Mike made numerous improvements.  In particular, ruby 1.9
+  is working.
+
+
+in s7, sound-data, frame, mixer objects are set-applicable (like vectors and vcts)
+
+added frame and mixer, paralleling functions like vct and list
+  (frame .1 .2) = (make-frame 2 .1 .2) etc
+
+s7_define_function_star: define* at C-level, handling keywords, argument order, etc.
+s7_define_macro: define a macro at C-level.  Also macroexpand.
+s7_new_type_x: extendeded version of the C-level new type creator (length, copy, etc).
+
+added profiling option (--with-profiling in configure) to s7.  profile
+  function in extensions.scm.  This could be greatly elaborated, if
+  it's of interest.
+
+added trace, untrace, break and __func__ to s7. The __func__ info made it possible
+  to remove the backtrace facility altogether: backtracing, backtrace, set-backtrace-length,
+  clear-backtrace, and list-line-number have been removed.  These are replaced by
+  the stacktrace function, callable from within a break or error handler.
+
+in s7, removed gc-verbose and load-verbose replaced by *load-hook*.  Error handling can
+  be specialized via *error-hook*.
+
+added sort! to s7, and lower-case versions of s7_T and friends.
+  I'll probably remove the upper-case versions someday.
+
+strings are set-applicable (like vectors).  This has the somewhat strange side effect
+  that (apply "hi" '(1)) returns #\i, since strings are applicable, but the up side
+  (no need for noise words like string-ref and vector-ref) seems more important to me.
+
+read-hook (in s7-Snd) has changed (the other cases are not changed).
+
+the ubiquitous Float type is now named mus_float_t (new sndlib major version: 21),
+  and off_t has been changed to mus_long_t.  Wherever possible I'm using either
+  int64_t or long long int, rather than off_t.
+
+added all the non-Snd-specific instrument files to the sndlib tarball:
+  analog-filter.scm|rb, animals.scm, bird.scm|rb|fsm, clm.fs, clm-ins.scm|rb|fs, dlocsig.scm|rb,
+  fade.scm, freeverb.scm|rb, generators.scm, grani.scm, jcrev.scm, jcvoi.scm,
+  maraca.scm|rb, maxf.scm|rb, moog.scm, noise.scm|rb, piano.scm|rb, prc95.scm|rb,
+  pvoc.scm|rb, singer.scm|rb, sndwarp.scm, spectr.scm|rb|fs, stochastic.scm, strad.scm|rb,
+  v.scm|rb.  Also split out expandn, fullmix, and nrev from clm-ins.scm into separate files.
+  Mike brought the sndins directory up to date.
+
+s7 length is generic, also added generic copy.
+
+added "encapsulators" to s7:
+   open-encapsulator, close-encapsulator, (obj) to restore, encapsulator-bindings
+
+   (define-macro (encapsulate . body)
+      (let ((encap (gensym)))
+        `(let ((,encap (open-encapsulator)))
+           (dynamic-wind
+              (lambda ()
+	        #f)
+              (lambda ()
+	        , at body)
+              (lambda ()
+	        ((,encap))  ; restore saved vars
+                (close-encapsulator ,encap))))))
+
+    We want to run some code,  then return variables global to that code to their prior state.
+    We might simpy coply the entire current environment, but that is slow (there are easily
+    10000 variables in Snd), and requires huge amounts of space (vectors need to be copied
+    for example), and usually in such a situation, only one or two variables actually need to
+    be restored.  fluid-let is not what we want.  First "fluid-let" is a bad name; it is not a
+    "let" because it uses set! rather than making a new binding, and what is "fluid" about it?
+    Second, fluid-let puts a dumb bookkeeping burden on the programmer -- he has
+    to maintain a list of the variables he wants to protect -- that's asking for bugs!  Finally,
+    it's restricted to protecting the body of the fluid-let, but in a REPL, for example,
+    we want to return to a known state without being in any obvious let form.  That is, we
+    actually want a sort of data-side call/cc. In this system (open|close-encapsulator), to
+    be able to return to a given (data) state, open an encapsulator, then later call it to restore
+    all variables global to that object.  close-encapsulator says I'm done with it -- the
+    normal case is that calling the object restores all its stored values, then (if not closed)
+    it starts saving values again -- this way we can repeatedly return to a clean state without
+    opening a new encapsulator every time.  Also, if we trace the encapsulator, we'll see every set!
+
+    This is not perfect yet -- I'm still working on the Snd/CLM objects, and I don't know
+    how to deal with something like (string-set! (vector-ref ...)) -- should I save upon vector|list-ref
+    as well as -set!?, so there are a few cases that aren't currently restored.  But a simple example:
+
+        > (define global-x 32)
+        global-x
+        > (encapsulate (set! global-x 123) (format #f "x: ~A" global-x))
+        "x: 123"
+        > global-x
+        32
+
+
+cmn works in ECL 9.7.1.
+
+Checked: gtk 2.17.3|4|5|6, fth 1.2.5|6, fftw 3.2.2, guile 1.9.1, openmotif 2.3.2, clisp 2.48,
+         autoconf 2.64, sbcl 1.0.30, ecl 9.7.1
+
+  (in guile 1.9.n, the run macro does not work, nor do ws.scm and generators.scm)
+  (in the new motif, the listener is at the top for some reason)
+
+Thanks!: Mike Scholz, Rick Taube, Kjetil Matheussen, Markus Eichhoff, W Andrew Burnson
+
+===============================================================================
+
+Snd 10.7
+
+Mike made many improvements throughout Snd.
+
+generators.scm: moving-fft, moving-scentroid, moving-autocorrelation, moving-pitch.
+
+dlocsig.scm works now in s7, but not guile 1.9.0.
+
+clm: added rectangular->magnitudes (ignores phases)
+
+ALSA is now the default audio choice in Linux (this affects CLM/Sndlib also).
+  This is a slight problem in Clisp because there's no way to tell that
+  we're in Linux, so in that case, push :alsa on *features* before loading
+  all.lisp.  I've noticed playback can hang or simply fail if the pulseaudio
+  server is running.  Linux audio is a never-ending pain.
+
+New configure switch --with-oss.
+
+Checked: gtk 2.17.1|2, sbcl 1.0.29, Fedora Core 11, guile 1.9.0
+
+in the new guile, %delay and %filter are not defined, and there are many changes
+  due to the guile compiler, so debug.scm has been removed, as well as the with-sound
+  debugging stuff (ws.scm) that depended on it.  1.9.0 doesn't handle off_t cleanly,
+  so you'll actually need 1.9.1.  Due to new restrictions in the syntax it accepts,
+  this version of guile also can't handle generators.scm. And run doesn't work.
+
+Thanks!: Mike Scholz, Jose Padovani, Kjetil Matheussen, Rick Taube.
+
+===============================================================================
+
+Snd 10.7
+
+Mike made many improvements throughout Snd.
+
+generators.scm: moving-fft, moving-scentroid, moving-autocorrelation, moving-pitch.
+
+dlocsig.scm works now in s7, but not guile 1.9.0.
+
+clm: added rectangular->magnitudes (ignores phases)
+
+ALSA is now the default audio choice in Linux (this affects CLM/Sndlib also).
+  This is a slight problem in Clisp because there's no way to tell that
+  we're in Linux, so in that case, push :alsa on *features* before loading
+  all.lisp.  I've noticed playback can hang or simply fail if the pulseaudio
+  server is running.  Linux audio is a never-ending pain.
+
+Checked: gtk 2.17.1|2, sbcl 1.0.29, Fedora Core 11, guile 1.9.0
+
+in the new guile, %delay and %filter are not defined, and there are many changes
+  due to the guile compiler, so debug.scm has been removed, as well as the with-sound
+  debugging stuff (ws.scm) that depended on it.  1.9.0 doesn't handle off_t cleanly,
+  so you'll actually need 1.9.1.  Due to new restrictions in the syntax it accepts,
+  this version of guile also can't handle generators.scm. And run doesn't work.
+
+as mentioned previously, the new ruby (1.9) segfaults on any attempt to raise
+  an error.
+
+Thanks!: Mike Scholz, Jose Padovani, Kjetil Matheussen, Rick Taube.
+
+===============================================================================
+
+Snd 10.7
+
+Mike made many improvements throughout Snd.
+
+generators.scm: moving-fft, moving-scentroid, moving-autocorrelation, moving-pitch.
+
+dlocsig.scm works now in s7, but not guile 1.9.0.
+
+clm: added rectangular->magnitudes (ignores phases)
+
+ALSA is now the default audio choice in Linux (this affects CLM/Sndlib also).
+  This is a slight problem in Clisp because there's no way to tell that
+  we're in Linux, so in that case, push :alsa on *features* before loading
+  all.lisp.
+
+Checked: gtk 2.17.1|2, sbcl 1.0.29, Fedora Core 11, guile 1.9.0
+
+in the new guile, %delay and %filter are not defined, and there are many changes
+  due to the guile compiler, so debug.scm has been removed, as well as the with-sound
+  debugging stuff (ws.scm) that depended on it.  1.9.0 doesn't handle off_t cleanly,
+  so you'll actually need 1.9.1.  Due to new restrictions in the syntax it accepts,
+  this version of guile also can't handle generators.scm. And run doesn't work.
+
+Thanks!: Mike Scholz, Jose Padovani, Kjetil Matheussen, Rick Taube.
+
+===============================================================================
+
+Snd 10.6
+
+more Ruby and Forth improvements from Mike.
+
+sndlib.vsproj and other files for MS C sndlib from Rick and Andrew Burnson.
+
+polyoid-env generator (generators.scm).
+
+run improved.
+
+checked: mpc 0.6, gmp 4.3.0|1, sbcl 1.0.28, gtk 2.17.0, fth 1.2.4
+
+Thanks!: Mike Scholz, Thomas Baruchel, Rick, Andrew Burnson.
+
+===============================================================================
+
+Snd 10.5
+
+many more improvements thanks to Kjetil and Mike Scholz.
+
+multidimensional and applicable vectors in s7.
+
+pulseaudio support (--with-pulseaudio in configure):
+  I don't know if this actually works, since pulseaudio (paplay) itself
+  doesn't work on my machine.
+
+moved the papoulis and dpss (slepian) fft-windows from dsp.scm to clm.c.
+  added sinc-window.
+
+matlab mat-5 headers (for 1-channel sound data).
+
+all hash literals using ',' changed to use '=>' in *.rb (for ruby 1.9.*)
+  but ruby 1.9.n is not usable yet -- it segfaults on any error.
+
+With Kjetil's help, s7 is more than twice as fast now in s7test.
+
+checked: mpfr 2.4.1, gtk 2.15.5|16.0|1, fftw 3.2.1, fth 1.2.3, sbcl 1.0.27
+
+Thanks!: Michael Edwards, Kjetil Matheussen, Mike Scholz, Al Steffens,
+         Anders Vinjar, Oded Ben-Tal, Rick Taube, Andrew Burnson.
+
+
+
+===============================================================================
+
+Snd 10.5
+
+many more improvements thanks to Kjetil and Mike Scholz.
+
+multidimensional and applicable vectors in s7.
+
+pulseaudio support (--with-pulseaudio in configure):
+  I don't know if this actually works, since pulseaudio (paplay) itself
+  doesn't work on my machine.
+
+moved the papoulis and dpss (slepian) fft-windows from dsp.scm to clm.c.
+  added sinc-window.
+
+matlab mat-5 headers (for 1-channel sound data).
+
+all hash literals using ',' changed to use '=>' in *.rb (for ruby 1.9.*)
+  but ruby 1.9.n is not usable yet -- it segfaults on any error.
+
+checked: mpfr 2.4.1, gtk 2.15.5|16.0|1, fftw 3.2.1, fth 1.2.3, sbcl 1.0.27
+
+Thanks!: Michael Edwards, Kjetil Matheussen, Mike Scholz, Al Steffens,
+         Anders Vinjar, Oded Ben-Tal, Rick Taube, Andrew Burnson.
+
+
+
+===============================================================================
+
+Snd 10.5
+
+many more improvements thanks to Kjetil and Mike Scholz.
+
+multidimensional and applicable vectors in s7.
+
+pulseaudio support (--with-pulseaudio in configure):
+  I don't know if this actually works, since pulseaudio (paplay) itself
+  doesn't work on my machine.
+
+moved the papoulis and dpss (slepian) fft-windows from dsp.scm to clm.c.
+  added sinc-window.
+
+matlab mat-5 headers (for 1-channel sound data).
+
+all hash literals using ',' changed to use '=>' in *.rb (for ruby 1.9.*)
+  but ruby 1.9.n is not usable yet -- it segfaults on any error.
+
+checked: mpfr 2.4.1, gtk 2.15.5|16.0, fftw 3.2.1, fth 1.2.3, sbcl 1.0.27
+
+Thanks!: Michael Edwards, Kjetil Matheussen, Mike Scholz, Al Steffens,
+         Anders Vinjar, Oded Ben-Tal, Rick Taube, Andrew Burnson.
+
+
+
+===============================================================================
+
+Snd 10.5
+
+many more improvements thanks to Kjetil and Mike Scholz.
+
+multidimensional and applicable vectors in s7.
+
+pulseaudio support (--with-pulseaudio in configure):
+  I don't know if this actually works, since pulseaudio (paplay) itself
+  doesn't work on my machine.
+
+moved the papoulis and dpss (slepian) fft-windows from dsp.scm to clm.c.
+  added sinc-window.
+
+matlab mat-5 headers (for 1-channel sound data).
+
+all hash literals using ',' changed to use '=>' in *.rb (for ruby 1.9.*)
+  but ruby 1.9.n is not usable yet -- it segfaults on any error.
+  Use strace to find out where the problem is.
+
+checked: mpfr 2.4.1, gtk 2.15.5|16.0, fftw 3.2.1, fth 1.2.3, sbcl 1.0.27
+
+Thanks!: Michael Edwards, Kjetil, Mike Scholz, Al Steffens, Anders Vinjar,
+	 Oded Ben-Tal, Rick Taube, Andrew Burnson.
+
+
+
+===============================================================================
+
+Snd 10.5
+
+many more improvements thanks to Kjetil and Mike Scholz.
+
+multidimensional and applicable vectors in s7.
+
+pulseaudio support (--with-pulseaudio in configure):
+  I don't know if this actually works, since pulseaudio (paplay) itself
+  doesn't work on my machine.
+
+moved the papoulis and dpss (slepian) fft-windows from dsp.scm to clm.c.
+  added sinc-window.
+
+matlab mat-5 headers (for 1-channel sound data).
+
+all hash literals using ',' changed to use '=>' in *.rb (for ruby 1.9.*)
+  but ruby 1.9.n is not usable yet -- it segfaults on any error.
+  Use strace to find out where the problem is.
+
+checked: mpfr 2.4.1, gtk 2.15.5|16.0, fftw 3.2.1, fth 1.2.3
+
+Thanks!: Michael Edwards, Kjetil, Mike Scholz, Al Steffens, Anders Vinjar,
+	 Oded Ben-Tal, Rick Taube.
+
+
+
+===============================================================================
+
+Snd 10.5
+
+many more improvements thanks to Kjetil and Mike Scholz.
+
+multidimensional and applicable vectors in s7.
+
+pulseaudio support (--with-pulseaudio in configure):
+  I don't know if this actually works, since pulseaudio (paplay) itself
+  doesn't work on my machine.
+
+moved the papoulis and dpss (slepian) fft-windows from dsp.scm to clm.c.
+
+matlab mat-5 headers (for 1-channel sound data).
+
+all hash literals using ',' changed to use '=>' in *.rb (for ruby 1.9.*)
+  but ruby 1.9.n is not usable yet -- it segfaults on any error.
+  Use strace to find out where the problem is.
+
+checked: mpfr 2.4.1, gtk 2.15.5|16.0, fftw 3.2.1
+
+Thanks!: Michael Edwards, Kjetil, Mike Scholz, Al Steffens, Anders Vinjar,
+	 Oded Ben-Tal, Rick Taube.
+
+
+
+===============================================================================
+
+Snd 10.4
+
+(this is mostly a "clean up loose ends" version)
+
+
+Kjetil made improvements to the pd external support, and made
+       a port of CMN to ABCL.
+
+big-gens.scm (scheme-only versions of some of the built-in generators)
+
+changed spectro-cutoff to spectrum-end and spectro-start to spectrum-start
+  moved the 10 spectro-* keypad key bindings to snd10.scm (keypad-spectro-bindings)
+  moved the spectrum end slider to the transform dialog and added spectrum start slider
+    (this should make it easier to zoom into an arbitrary portion of the spectrum)
+
+merged the color and orientation dialogs
+
+removed TODO.Snd, snd.spec, and old-snd.spec -- I don't plan to make any more rpm files.
+
+checked: gsl 1.12, gtk 2.15.1|2|3|4, sbcl 1.0.25, cmucl 19f
+
+Thanks!: Kjetil, Pavel Penev, Rick Taube, Michael Edwards, Mike Scholz
+
+
+===============================================================================
+
+Snd 10.4
+
+(this is mostly a "clean up loose ends" version)
+
+
+Kjetil made improvements to the pd external support, and made
+       a port of CMN to ABCL.
+
+big-gens.scm (scheme-only versions of some of the built-in generators)
+
+changed spectro-cutoff to spectrum-end and spectro-start to spectrum-start
+  moved the 10 spectro-* keypad key bindings to snd10.scm (keypad-spectro-bindings)
+  moved the spectrum end slider to the transform dialog and added spectrum start slider
+    (this should make it easier to zoom into an arbitrary portion of the spectrum)
+
+merged the color and orientation dialogs
+
+removed TODO.Snd, snd.spec, and old-snd.spec -- I don't plan to make any more rpm files.
+
+checked: gsl 1.12, gtk 2.15.1|2|3|4, sbcl 1.0.25, cmucl 19f
+
+Thanks!: Kjetil, Pavel Penev, Rick Taube, Michael Edwards
+
+
+===============================================================================
+
+Snd 10.4
+
+(this is mostly a "clean up loose ends" version)
+
+
+Kjetil made improvements to the pd external support, and made
+       a port of CMN to ABCL.
+
+big-gens.scm (scheme-only versions of some of the built-in generators)
+
+changed spectro-cutoff to spectrum-end and spectro-start to spectrum-start
+  moved the 10 spectro-* keypad key bindings to snd10.scm (keypad-spectro-bindings)
+  moved the spectrum end slider to the transform dialog and added spectrum start slider
+    (this should make it easier to zoom into an arbitrary portion of the spectrum)
+
+
+checked: gsl 1.12, gtk 2.15.1|2|3, sbcl 1.0.25, cmucl 19f
+
+Thanks!: Kjetil, Pavel Penev, Rick Taube, Michael Edwards
+
+
+===============================================================================
+
+Snd 10.3
+
+Kjetil made improvements to the rt stuff.
+
+Michael Gogins, William Andrew Burnson, and Rick figured out how to
+  build sndlib in windows -- I hope I correctly incorporated their
+  changes in the configure script and various sources.
+
+
+added multiprecision math support for all scheme (s7) numeric
+  types and functions via gmp, mpfr, and mpc.  In configure,
+  use the --with-gmp switch.  bignum-precision can set the
+  float precision (default is 128 bits).  If this all works
+  out, I'll add this support to clm as well.  You'll need
+  mpc 0.5.2 (the latest version).
+
+sox header support.
+
+jcvoi.scm (translated from jcvoi.ins) for the immortal Old Macdonald.
+
+the sine-summation, sum-of-cosines, and sum-of-sines generators are deprecated.
+  Their replacements are nrxysin (or nrsin), ncos, and nsin.
+  snd10.scm has backwards-compatible definitions of these generators.
+
+removed event.scm and all the xm.c stuff that was deprecated in 2002.
+
+sin-m*pi/n and show-digits-of-pi-starting-from functions in numerics.scm
+
+rpmbuild changed since I last used it, so it's not impossible the
+  rpm files are confused.  Does anyone use the rpm files that I
+  build?
+
+
+checked: Gamin 0.1.10, sbcl 1.0.23|24, Guile 1.8.6, gtk 2.14.6|2.15.0
+
+Thanks!: Rick, Fernando, Esben Stien, Kjetil, Carlos Pita, Stanko Juzbasic,
+         Oded Ben-Tal, Michael Gogins, William Andrew Burnson
+
+===============================================================================
+
+Snd 10.3
+
+Kjetil made improvements to the rt stuff.
+
+Michael Gogins, William Andrew Burnson, and Rick figured out how to
+  build sndlib in windows -- I hope I correctly incorporated their
+  changes in the configure script and various sources.
+
+
+added multiprecision math support for all scheme (s7) numeric
+  types and functions via gmp, mpfr, and mpc.  In configure,
+  use the --with-gmp switch.  bignum-precision can set the
+  float precision (default is 128 bits).  If this all works
+  out, I'll add this support to clm as well.  You'll need
+  mpc 0.5.2 (the latest version).
+
+sox header support.
+
+jcvoi.scm (translated from jcvoi.ins) for the immortal Old Macdonald.
+
+the sine-summation, sum-of-cosines, and sum-of-sines generators are deprecated.
+  Their replacements are nrxysin (or nrsin), ncos, and nsin.
+  snd10.scm has backwards-compatible definitions of these generators.
+
+removed event.scm and all the xm.c stuff that was deprecated in 2002.
+
+sin-m*pi/n and show-digits-of-pi-starting-from functions in numerics.scm
+
+rpmbuild changed since I last used it, so it's not impossible the
+  rpm files are confused.  Does anyone use the rpm files that I
+  build?
+
+
+checked: Gamin 0.1.10, sbcl 1.0.23|24, Guile 1.8.6, gtk 2.14.6|2.15.0
+
+Thanks!: Rick, Fernando, Esben Stien, Kjetil, Carlos Pita, Stanko Juzbasic,
+         Oded Ben-Tal, Michael Gogins
+
+===============================================================================
+
+Snd 10.3
+
+Kjetil made improvements to the rt stuff.
+
+Michael Gogins, William Andrew Burnson, and Rick figured out how to
+  build sndlib in windows -- I hope I correctly incorporated their
+  changes in the configure script and various sources.
+
+
+added multiprecision math support for all scheme (s7) numeric
+  types and functions via gmp, mpfr, and mpc.  In configure,
+  use the --with-gmp switch.  bignum-precision can set the
+  float precision (default is 128 bits).  If this all works
+  out, I'll add this support to clm as well.  You'll need
+  mpc 0.5.2 (the latest version).
+
+sox header support.
+
+jcvoi.scm (translated from jcvoi.ins) for the immortal Old Macdonald.
+
+the sine-summation, sum-of-cosines, and sum-of-sines generators are deprecated.
+  Their replacements are nrxysin (or nrsin), ncos, and nsin.
+  snd10.scm has backwards-compatible definitions of these generators.
+
+removed event.scm and all the xm.c stuff that was deprecated in 2002.
+
+sin-m*pi/n and show-digits-of-pi-starting-from functions in numerics.scm
+
+
+checked: Gamin 0.1.10, sbcl 1.0.23|24, Guile 1.8.6, gtk 2.14.6|2.15.0
+
+Thanks!: Rick, Fernando, Esben Stien, Kjetil, Carlos Pita, Stanko Juzbasic,
+         Oded Ben-Tal, Michael Gogins
+
+===============================================================================
+
+Snd 10.3
+
+Kjetil made improvements to the rt stuff.
+
+Michael Gogins and Rick figured out how to build sndlib in windows --
+  I hope I correctly incorporated their changes in the configure script.
+
+
+added multiprecision math support for all scheme (s7) numeric
+  types and functions via gmp, mpfr, and mpc.  In configure,
+  use the --with-gmp switch.  bignum-precision can set the
+  float precision (default is 128 bits).  If this all works
+  out, I'll add this support to clm as well.  You'll need
+  mpc 0.5.2 (the latest version).
+
+sox header support.
+
+jcvoi.scm (translated from jcvoi.ins) for the immortal Old Macdonald.
+
+the sine-summation, sum-of-cosines, and sum-of-sines generators are deprecated.
+  Their replacements are nrxysin (or nrsin), ncos, and nsin.
+  snd10.scm has backwards-compatible definitions of these generators.
+
+removed event.scm and all the xm.c stuff that was deprecated in 2002.
+
+sin-m*pi/n and show-digits-of-pi-starting-from functions in numerics.scm
+
+
+checked: Gamin 0.1.10, sbcl 1.0.23|24, Guile 1.8.6, gtk 2.14.6|2.15.0
+
+Thanks!: Rick, Fernando, Esben Stien, Kjetil, Carlos Pita, Stanko Juzbasic,
+         Oded Ben-Tal, Michael Gogins
+
+===============================================================================
+
+Snd 10.2
+
+added osc.scm thanks to Kjetil.
+
+many improvements thanks to Mike and Rick.
+
+removed Gauche support.
+
+moved the run macro from snd-run.c to run.c and put it in sndlib.
+
+removed s7-format.scm -- format is now built-in.
+
+removed s7-optargs.scm -- define* is also built-in.  The main
+  difference between the two versions of define* is that the
+  s7 version does not (currently anyway) accept expressions
+  as default values.
+
+checked: gtk 2.14.4|5, clisp 2.47, sbcl 1.0.22, fftw 3.2
+
+Thanks!: Rick, Kjetil, Meino Cramer, Mike Scholz, David Lowenfels,
+	 Hayahiko Moro.
+
+
+===============================================================================
+
+Snd 10.1
+
+S7 is now the default extension language.
+
+added rhypars.cms by Juan Reyes
+
+in clm.c, I removed the reader/writer locks (rdin and rdout gens);
+  these were not working the way I had hoped they would.  Much work
+  on threads -- with-threaded-sound has been rewritten 3 or 4 times.
+
+gtkglext (openGL support in gtk) has been unmaintained for a long time,
+  and by this point use of --with-gl with --with-gtk can somehow cause
+  Snd to log you out!  So, it's not highly recommended.  I wish gtk had
+  gone to OpenGL, not cairo.  I'll probably remove the gtkglext support
+  soon.
+
+I'm about to remove Gauche support.
+  Gauche 0.8.14 segfaults immediately in Snd; Shiro says he didn't change
+  anything, but argument handling has clearly changed. I poked around in
+  Gauche, but didn't find anything.
+
+
+checked: gtk 2.14.2|3, cairo 1.8.0, autoconf 2.63, sbcl 1.0.21, Gauche 0.8.14
+
+Thanks!: Benjamin Um, Juan Reyes
+
+===============================================================================
+
+Snd 10.0
+
+more rt/faust/stalin improvements from Kjetil.
+
+moved sine-bank to snd9.scm
+
+2 more generators in generators.scm (tanhsin, moving-spectrum)
+
+tools/numtst.c which generates a Scheme numerics test suite
+  also tools/clisp-number|other-tests.scm (taken from Clisp)
+
+A new extension language choice: S7, a TinyScheme derivative.
+  This is a small (ca. 10000 lines), source-level embedded
+  interpreter (like gnulib -- no libraries, no run-time init files)
+  that has full continuations, ratios and complex numbers,
+  generalized set!, applicable objects, hash-tables and keywords
+  (the latter for define*), defmacro, define-macro, and procedure-with-setter.
+  My goal is a simple, multithreadable, possibly even
+  real-time extension language that I can change to suit myself.
+  S7 is not Scheme++ -- I have removed the notion of an "inexact integer",
+  so truncate, floor, and ceiling return (exact) integers,
+  and rationalize (which uses continued fractions) returns
+  (exact) ratios.  I've added call-with-exit for light-weight
+  continuations (equivalent to a goto, or return in C).
+  S7 is reasonably fast (it can outperform both Guile
+  and Gauche if I get to choose the benchmark), and is
+  compatible with Snd's run macro, so the only real bottleneck
+  is that macro expansion is slow.  It passes Jaffer's r4rs tests,
+  and most of the r6rs number tests mentioned above. I haven't had
+  time yet to implement threads.  s7 still hasn't made it through
+  snd-test.scm , so there are still plenty of bugs.
+
+Mike Scholz helped me with S7 and improved some of the ruby files.
+
+checked: gtk+-2.13.5|6|7 and 2.14.1, sbcl 1.0.19|20
+
+Thanks!: Kjetil, Bret Battey, Hayahiko Moro, Mike.
+
+
+===============================================================================
+
+Snd 10.0
+
+more rt/faust/stalin improvements from Kjetil.
+
+moved sine-bank to snd9.scm
+
+2 more generators in generators.scm (tanhsin, moving-spectrum)
+
+tools/numtst.c which generates a Scheme numerics test suite
+  also tools/clisp-number|other-tests.scm (taken from Clisp)
+
+A new extension language choice: S7, a TinyScheme derivative.
+  This is a small (ca. 10000 lines), source-level embedded
+  interpreter (like gnulib -- no libraries, no run-time init files)
+  that has full continuations, ratios and complex numbers,
+  generalized set!, applicable objects, hash-tables and keywords
+  (the latter for define*), defmacro, define-macro, and procedure-with-setter.
+  My goal is a flexible, multithreadable, simple, possibly even
+  real-time extension language that I can change to suit myself.
+  S7 is not Scheme++ -- I have removed the notion of an "inexact integer",
+  so truncate, floor, and ceiling return (exact) integers,
+  and rationalize (which uses continued fractions) returns
+  (exact) ratios.  I've added call-with-exit for light-weight
+  continuations (equivalent to a goto, or return in C).
+  S7 is reasonably fast (it can outperform both Guile
+  and Gauche if I get to choose the benchmark), and is
+  compatible with Snd's run macro, so the only real bottleneck
+  is that macro expansion is slow.  It passes Jaffer's r4rs tests,
+  and most of the r6rs number tests mentioned above. I haven't had
+  time yet to implement threads.  s7 still hasn't made it through
+  snd-test.scm , so there are plenty of bugs...
+
+Mike Scholz helped me with S7 and improved some of the ruby files.
+
+checked: gtk+-2.13.5|6|7 and 2.14.1, sbcl 1.0.19|20
+
+Thanks!: Kjetil, Bret Battey, Hayahiko Moro, Mike.
+
+
+===============================================================================
+
+Snd 9.12
+
+more rt/faust/stalin improvements from Kjetil.
+
+moved sine-bank to snd9.scm
+
+2 more generators in generators.scm (tanhsin, moving-spectrum)
+
+tools/numtst.c which generates a Scheme numerics test suite
+  also tools/clisp-number|other-tests.scm (taken from Clisp)
+
+A new extension language choice: S7, a TinyScheme derivative.
+  This is a small (ca. 10000 lines), source-level embedded
+  interpreter (like gnulib -- no libraries, no run-time init files)
+  that has full continuations, ratios and complex numbers,
+  generalized set!, applicable objects, hash-tables and keywords
+  (the latter for define*), defmacro, define-macro, and procedure-with-setter.
+  My goal is a flexible, multithreadable, simple, possibly even
+  real-time extension language that I can change to suit myself.
+  S7 is not Scheme++ -- I have removed the notion of an "inexact integer",
+  so truncate, floor, and ceiling return (exact) integers,
+  and rationalize (which uses continued fractions) returns
+  (exact) ratios.  I've added call-with-exit for light-weight
+  continuations (equivalent to a goto, or return in C).
+  S7 is reasonably fast (it can outperform both Guile
+  and Gauche if I get to choose the benchmark), and is
+  compatible with Snd's run macro, so the only real bottleneck
+  is that macro expansion is slow.  It passes Jaffer's r4rs tests,
+  and most of the r6rs number tests mentioned above. I haven't had
+  time yet to implement threads.  s7 still hasn't made it through
+  snd-test.scm , so there are plenty of bugs...
+
+Mike Scholz helped me with S7 and improved some of the ruby files.
+
+checked: gtk+-2.13.5|6|7 and 2.14.1, sbcl 1.0.19|20
+
+Thanks!: Kjetil, Bret Battey, Hayahiko Moro, Mike.
+
+
+===============================================================================
+
+Snd 9.12
+
+more rt/faust/stalin improvements from Kjetil.
+
+moved sine-bank to snd9.scm
+
+2 more generators in generators.scm (tanhsin, moving-spectrum)
+
+tools/numtst.c which generates a Scheme numerics test suite
+  also tools/clisp-number|other-tests.scm (taken from Clisp)
+
+A new extension language choice: S7, a TinyScheme derivative.
+  This is a small (ca. 10000 lines), source-level embedded
+  interpreter (like gnulib -- no libraries, no run-time init files)
+  that has full continuations, ratios and complex numbers,
+  generalized set!, applicable objects, hash-tables and keywords
+  (the latter for define*), defmacro, define-macro, and procedure-with-setter.
+  My goal is a flexible, multithreadable, simple, possibly even
+  real-time extension language that I can change to suit myself.
+  S7 is not Scheme++ -- I have removed the notion of an "inexact integer",
+  so truncate, floor, and ceiling return (exact) integers,
+  and rationalize (which uses continued fractions) returns
+  (exact) ratios.  I've added call-with-exit for light-weight
+  continuations (equivalent to a goto, or return in C).
+  S7 is reasonably fast (it can outperform both Guile
+  and Gauche if I get to choose the benchmark), and is
+  compatible with Snd's run macro, so the only real bottleneck
+  is that macro expansion is slow.  It passes Jaffer's r4rs tests,
+  and most of the r6rs number tests mentioned above. I haven't had
+  time yet to implement threads.
+
+Mike Scholz helped me with S7 and improved some of the ruby files.
+
+checked: gtk+-2.13.5|6|7, sbcl 1.0.19|20
+
+Thanks!: Kjetil, Bret Battey, Hayahiko Moro, Mike.
+
+
+===============================================================================
+
+Snd 9.11
+
+more RT improvements from Kjetil
+
+with-threaded-sound (ws.scm and sound.lisp), support in Snd/CLM for threads.
+with-threaded-channels (extensions.scm)
+  (these are still in the "alpha" stage, but bug reports are always welcome)
+
+changed arguments to the progress-report funcs (need channel-specific
+  widgetry for multi-thread possibilities)
+
+1 more generator in generators.scm
+
+axis-color (to set the axis color in combined graphs)
+
+time-graph-hook (to set data colors in combined graphs)
+
+flatten-partials (avoid spikey waveforms)
+
+mus-max-malloc, mus-max-table-size, *clm-file-buffer-size* can be a bignum (off_t)
+  (support in Snd/CLM for off_t sized arrays)
+
+output-safety arg to with-sound, mus-safety method --
+   part of trying to get full speed from multicore machines.
+
+
+checked: gtk 2.13.2|3|4, ruby 1.8.7, clisp 2.46, sbcl 1.0.18
+
+
+Thanks!: Kjetil, Mike
+
+
+===============================================================================
+
+Snd 9.10
+
+real-time/stalin support thanks to Kjetil.
+
+new version of autoc.ins thanks to Bret Battey
+
+more Forth-related improvements thanks to Mike.
+
+more jack-related changes thanks to Kjetil.
+
+7 more generators in generators.scm, moved green.scm to generators.scm,
+  moving moving-* from dsp.scm to generators.scm (and moved smoothing-filter
+  to snd9.scm).
+
+retired the waveshape generator finally (see generators.scm for replacement).
+
+added chebyshev-t-sum, chebyshev-u-sum, and chebyshev-tu-sum using the
+  recursive version of the Tn and Un calculations.  Used by the polyoid
+  and noid generators in generators.scm to compute peak-phases.scm.
+
+4 more birds in animals.scm
+
+normalize-partials is now built-in (mus_normalize_partials in clm.c)
+
+music5 port: music5.f, music5-examples, old-music5.f
+
+expandn.ins from clm translated to Snd/CLM scheme (clm-ins.scm)
+
+checked: Clozure CL 1.2, guile 1.8.5, fth 1.1.0, clisp 2.45, Fedora 9,
+         sbcl 1.0.17, gtk 2.13.1
+
+Thanks!: Bret Battey, Kjetil Matheussen, Mike Scholz, Bill Gosper,
+         Marc LeBrun, Julius Smith
+
+===============================================================================
+
+Snd 9.9
+
+more rt and faust-related improvements thanks to Kjetil Matheussen
+
+freeverb bugfix thanks to Oded Ben-Tal.
+
+rmsp.ins replaced by track-rms.ins thanks to Michael Edwards.
+
+many Ruby and Forth-related improvements, and a bugfix in graphEq thanks to Mike.
+
+most of my effort went into the documentation.
+
+selection.scm (with various functions that used to be in examp.scm, extensions.scm etc)
+
+with-marked-sound, with-mixed-sound and with-mixed-sound->notelist (ws.scm)
+
+3 more generators in generators.scm
+
+bess.scm can now be loaded into Snd (as well as run independently as a script)
+
+checked: gsl 1.10, autoconf 2.62, cairo 1.6.4, sbcl 1.0.16
+
+Thanks!: Kjetil Matheussen, Oded Ben-Tal, Michael Edwards, Mike Scholz, Rick Taube.
+
+
+===============================================================================
+
+Snd 9.8:
+
+more rt improvements and a major bugfix in snd-gtk.scm thanks to Kjetil
+  (new files: rt-faust.scm and rt-DotEmacs)
+
+clm4:
+  ncos and nsin generators (eventually replace sum-of-cosines and sum-of-sines)
+  nrxysin (replacing sine-summation) and nrxycos generators
+  polywave (replacing polyshape and waveshape)
+  firmant (the Mathews/Smith formant; the old form, mfilter, has been moved to snd9.scm)
+  env-any for envelopes with arbitrary functions to connect the dots (not in CL/CLM)
+  make-env envelope can be made up of embedded lists: '((0 0) (1 1)) (thanks to Kjetil)
+    this also applies to envelopes in Snd.
+  defgenerator (generators.scm)
+    all the generators in generators.scm changed to reflect the nrxycos style of arguments
+  removed mus-cosines (use mus-length, old form is in snd9.scm)
+  changed the gain calculation in the formant generator (a long-standing bug)
+    mus-formant-radius removed (use mus-scaler, snd9.scm has old form)
+    "gain" argument removed from make-formant
+    frequency and radius argument order reversed in make-formant (snd9.scm has old-make-formant)
+    added 3rd optional argument to formant for frequency change
+  mus-name can be set
+  mus-run-with-fm-and-pm
+  the "stream" arg to outa and friends now defaults to *output*
+    *output* (last arg to out* and last arg to in*) can be a function (not in CL/CLM)
+    make-locsig defaults to *output* and *reverb* output locations (also make-move-sound)
+  with-sound tries to be more informative in case of an error if run-safety is not 0
+
+  CL/CLM: clm3.lisp has obsolete stuff previously in ffi.lisp.
+          opencml support on linux 86-64 and ppc
+          sbcl support on netbsd, cmucl on sparc, etc
+          the cl/clm tarball is now clm-4.tar.gz
+          "error" called in run loop tries to call lisp "error" (rather than exit)
+
+added clm4 and snd9 to the *features* lists.
+
+7 more animals in animals.scm
+
+1 more generator in generators.scm
+
+checked: gtk 2.12.8 and 2.13.0, Gauche 0.8.13, sbcl 1.0.14|15, guile 1.8.4, clisp 2.44, cmucl 19e
+
+Thanks!: Kjetil Matheussen, Arthur Green, Timothy E Johnson, Oded Ben-Tal
+
+
+
+===============================================================================
+
+Snd 9.7:
+
+added Kjetil's article, sndrt_lac2008.pdf
+
+added SNDLIB_JACK_DONT_AUTOCONNECT and SNDLIB_NUM_JACK_CHANNELS thanks to Kjetil
+
+Forth improvements thanks to Mike
+
+OSS v4 (audio.c) changes thanks to Yair K.
+
+oldmacdonald.lisp (CL/CLM) thanks to William Andrew Burnson
+
+77 more animals in animals.scm
+  (Trumpeter swan, Whooping crane, and Sage sparrow are my favorites so far)
+  (I'd call these "musical aphorisms" except it sounds pompous -- working for
+  3 or 4 hours on a 1/4 second of sound is addictive -- you wonder how anyone
+  could have enough to say to fill 30 seconds).
+
+6 more generators in generators.scm
+  (including the cosine form of sine-summation)
+
+make-waveshape and make-polyshape partials argument can be a vct,
+  as can the partials argument to partials->*
+
+make-table-lookup|wave-train-with-env (generators.scm)
+
+:dur arg to make-env is now :length (:end will eventually go away)
+  (other changes in CLM are in the works -- see the end of clm.c,
+  under "clm4" -- any comments or other ideas are always welcome)
+
+clm finally works in the sbcl x86-64 linux and mac ppc cases
+  (thanks to Rick and a bottle of aspirin)
+
+*clm-default-frequency* (0.0; the old default was 440.0)
+   (changing the default to 0.0 simplifies the use of the make-* functions)
+
+checked: gtk 2.12.5|7, cairo 1.4.14
+
+Thanks!: Rick Taube, Kjetil Matheussen, Mike Scholz, Yair K.,
+         Howard Gilbert, Jelena Zoran, William Andrew Burnson
+
+===============================================================================
+
+Snd 9.6:
+
+Many more Ruby improvements thanks to Mike.
+
+Fernando fixed a help-system bug.
+
+5 more generators in generators.scm.
+
+102 more calls in animals.scm -- (calling-all-animals) plays them all.
+
+"Open recent" item in File menu.
+
+completions dialog changed to be a drop-down list in the listener
+  (in Motif -- I haven't decided how to display it in Gtk).
+
+make-env can take a vct rather than a list for the breakpoint data
+  (to make it easier to use at run time).  Also, there are set!
+  methods for envelope scaler, offset, and duration.
+
+clear-selection and with-temporary-selection in extensions.scm.
+
+added fft-with-phases -- a normal FFT display but with colors to
+  try to show phase info (actually less useful than I hoped).
+
+checked: Fedora 8, sbcl 1.0.11|2, clisp 2.43, gtk 2.12.2|3
+
+Thanks!: Fernando Lopez-Lezcano, Mike Scholz
+
+===============================================================================
+
+Snd 9.5
+
+port to mingw thanks to Kjetil.
+
+changed slightly the way local methods are declared in def-clm-struct
+
+14 more generators in generators.scm, and a couple dozen instruments in various states of disrepair
+  (including some imaginary machines)
+
+animals.scm
+
+more changes to fm.html, and fm-parallel|cascade|complex-component in dsp.scm
+
+src-fit-envelope in dsp.scm
+
+changed clm default srate to 44100
+
+moved mus-phase-vocoder-outctr to mus-location (old form is in snd9.scm)
+
+Mike Scholz and Juan Pampin found and fixed bugs in sndlib/clm
+
+checked: pango 1.18.3, guile 1.8.3, gtk 2.12.1, clisp 2.42, OSX 10.5, Gauche 0.8.12
+
+Thanks!: Mike Scholz, Juan Pampin, Bill Sack, Kjetil Matheussen
+
+
+===============================================================================
+
+Snd 9.4:
+
+added export-all.scm.
+
+the run macro can now find define* args (from within the define*)
+
+def-clm-struct uses def-optkey-fun for its make func,
+  and takes an optional :make-wrapper function to specialize the make function.
+  Also run is better at handling lists and def-clm-struct.
+  def-clm-struct can include a list of lists of (name func) pairs to implement generic funcs.
+
+added generators.scm with 42 new generators (and a couple instruments under construction)
+  several of these generators used to be in dsp.scm (under slightly different names) --
+  the old forms are in snd9.scm.
+
+clm: changed asymmetric-fm to use cos(sin) and added amplitude normalization.
+
+make-dpss-window and make-papoulis-window in dsp.scm
+  gsl-eigenvectors
+
+added make-mixer! and make-frame! to bypass the size checks (for matrices and vectors)
+
+checked: sbcl 1.0.9|10, pango 1.18.1, gtk 2.12.0
+
+Thanks!: Steven Jones, Todd Ingalls, Achim Bornhoeft
+
+
+===============================================================================
+
+Snd 9.3
+
+rt improvements from Kjetil (new file: rt-clm-ins.scm).
+
+*.rb and *.fs improvements from Mike.
+
+clm.html split:
+  clm in CL (CLM tarball) is clm.html,
+  clm in other languages (Snd tarball) is sndclm.html
+
+fm.html split in two:
+  cl-fm.html in CL (all examples are in CL)
+  fm.html in Snd (all examples are in Scheme)
+  all the math is now done in LaTex, and I added several pictures
+  (most of my work in this version went into fm.html and sndclm.html)
+
+moved autocorrelate to clm
+  renamed the graph-hook function "correlate" in examp.scm|fs|rb to "display-correlation"
+  added correlate to clm
+
+added a stab at amplitude normalization to sine-summation
+
+dsp.scm: smoothing-filter, weighted-moving-average, exponentially-weighted-moving-average
+         Savitzky-Golay filter
+
+numerics.scm (various numerical functions)
+
+mix.scm: delay-channel-mixes
+
+clm: shepard.ins thanks to Juan Reyes
+
+added blackman5 to blackman10 (6 to 11-term sum-of-cosines windows in the Blackman-Harris/Hamming family)
+      rv2-window to rv4-window (2nd to 4th order Rife-Vincent windows in the Hann(ing) family)
+      mlt-sine-window
+
+removed useless :start arg from make-env
+  this means all (CL-CLM) instruments that use make-env need to be recompiled.
+
+checked:  Guile 1.8.2, gtk 2.11.6, gamin 0.1.9, Gauche 0.8.11, pango 1.18.0
+
+Thanks!: Juan Reyes, Kjetil Matheussen, Mike Scholz, Jim Hauser
+
+===============================================================================
+
+Snd 9.2
+
+many Forth/Ruby improvements thanks to Mike.
+
+RIFF bugfix and minGW configure info thanks to Steve Beet.
+
+snddiff.scm
+virtual-filter-channel (examp.scm)
+max-virtual-ptrees (and a greatly expanded virtual editor)
+added optional snd chn args to apply-ladspa and with-tag to mix-channel
+power spectral density as transform (green.scm)
+
+clm: mus-increment on gens with a notion of frequency (phase increment);
+       to make room for this, asymmetric-fm ratio and sine-summation b moved to mus-offset.
+     exp envs optimized
+
+Thanks!: Mike Scholz, Plutek, Etienne Deleflie, Steve Beet, Kjetil Matheussen, unknown_error
+
+Checked: gtk 2.11.2|3|4|5, cairo 1.4.8|10, Fedora 7, sbcl 1.0.6|7
+
+===============================================================================
+
+Snd 9.2
+
+many Forth/Ruby improvements thanks to Mike.
+
+RIFF bugfix and minGW configure info thanks to Steve Beet.
+
+snddiff.scm
+virtual-filter-channel (examp.scm)
+max-virtual-ptrees (greatly expanded virtual editor)
+
+added optional snd chn args to apply-ladspa and with-tag to mix-channel
+power spectral density as transform (green.scm)
+
+clm: mus-increment on gens with a notion of frequency (phase increment);
+       to make room for this, asymmetric-fm ratio and sine-summation b moved to mus-offset.
+     exp envs optimized
+
+Thanks!: Mike Scholz, Plutek?, Etienne Deleflie, Steve Beet, Kjetil Matheussen, unknown_error
+
+Checked: gtk 2.11.2|3|4|5, cairo 1.4.8|10, Fedora 7, sbcl 1.0.6|7
+
+===============================================================================
+
+Snd 9.1
+
+more work on the virtual mix support
+
+Two new hooks: peak-env-hook, draw-mix-hook
+
+added mouse position args to mix-drag-hook
+
+background-gradient (gtk+cairo only)
+
+sound-mark-info
+
+mix-sync-max
+
+moved equalize-panes to snd-motif.scm
+
+new rt-compiler.scm et al thanks to Kjetil
+
+SIGUSR1 (kill -10) throws Snd back to its top level
+
+in cmn:
+  Michael Edwards added a way to change a staff name (new-staff-name)
+  I did half of the :old-style layout bugfix (the staves are laid out correctly, I think)
+
+in clm:
+  changes for ACL 8.1
+
+
+
+Thanks!: Michael Edwards, Etienne Deleflie, Joshua Parmenter, Kjetil Matheussen
+
+checked: Ruby 1.8.6, sbcl 1.0.5, gtk 2.10.12|2.11.0|1, ACL 8.1, pango 1.17.0|1|2,
+         glib 2.13.2|3
+
+===============================================================================
+
+Snd 9.1
+
+Two new hooks: peak-env-hook, draw-mix-hook
+
+added mouse position args to mix-drag-hook
+
+background-gradient (gtk+cairo only)
+sound-mark-info
+mix-sync-max
+
+moved equalize-panes to snd-motif.scm
+
+in cmn:
+  Michael Edwards added a way to change a staff name (new-staff-name)
+  I did half of the :old-style layout bugfix (the staves are laid out correctly, I think)
+
+new rt-compiler.scm et al thanks to Kjetil
+
+in clm:
+  changes for ACL 8.1
+
+SIGUSR1 (kill -10) throws Snd back to its top level
+
+
+Thanks!: Michael Edwards, Etienne Deleflie, Joshua Parmenter, Kjetil Matheussen
+
+checked: Ruby 1.8.6, sbcl 1.0.5, gtk 2.10.12|2.11.0|1, ACL 8.1, pango 1.17.0|1|2,
+         glib 2.13.2|3
+
+===============================================================================
+
+Snd 9.1
+
+
+peak-env-hook
+draw-mix-hook
+
+background-gradient (gtk+cairo only)
+sound-mark-info
+mix-sync-max
+
+moved equalize-panes to snd-motif.scm
+
+in cmn:
+  Michael Edwards added a way to change a staff name (new-staff-name)
+  I did half of the :old-style layout bugfix (the staves are laid out correctly, I think, but first-staff clefs are omitted)
+
+in clm:
+  changes for ACL 8.1
+
+SIGUSR1 (kill -10) throws Snd back to its top level -- a way, perhaps, to get out
+  of any infinite loop.
+
+
+Thanks!: Michael Edwards, Etienne Deleflie, Joshua Parmenter
+
+checked: Ruby 1.8.6, sbcl 1.0.5, gtk 2.10.12|2.11.0, ACL 8.1, pango 1.17.0|1,
+         glib 2.13.2
+
+===============================================================================
+
+Snd 9.1
+
+
+peak-env-hook
+draw-mix-hook
+
+background-gradient (gtk+cairo only)
+sound-mark-info
+
+moved equalize-panes to snd-motif.scm
+
+in cmn:
+  Michael Edwards added a way to change a staff name (new-staff-name)
+  I did half of the :old-style layout bugfix (the staves are laid out correctly, I think, but first-staff clefs are omitted)
+
+in clm:
+  changes for ACL 8.1
+
+SIGUSR1 (kill -10) throws Snd back to its top level -- a way, perhaps, to get out
+  of any infinite loop.
+
+
+Thanks!: Michael Edwards, Etienne Deleflie, Joshua Parmenter
+
+checked: Ruby 1.8.6, sbcl 1.0.5, gtk 2.10.12|2.11.0, ACL 8.1, pango 1.17.0, glib 2.13.2
+
+===============================================================================
+
+Snd 9.0
+
+I discarded the old recorder and the track support, and completely
+revamped the virtual mix support -- enough changes to warrant a new
+major version.
+
+
+the recorder:
+  completely discarded the old recorder and its functions -- these are gone:
+    recorder-autoload
+    recorder-buffer-size
+    recorder-file
+    recorder-file-hook
+    recorder-gain
+    recorder-in-amp
+    recorder-in-chans
+    recorder-in-data-format
+    recorder-in-device
+    recorder-max-duration
+    recorder-out-amp
+    recorder-out-chans
+    recorder-out-data-format
+    recorder-out-header-type
+    recorder-srate
+    recorder-trigger
+    vu-in-dB
+    vu-size
+  due to hardware troubles, I haven't fully tested the new recorder.
+
+tracks:
+  removed:             replacement:
+    copy-track
+    delete-all-tracks     silence-all-mixes
+    delete-track          silence-mixes
+    filter-track
+    free-track
+    lock-track
+    make-track
+    make-track-frame-reader
+    make-track-sample-reader
+    mix-track
+    play-track            play-mixes
+    read-track-frame
+    read-track-sample
+    retempo-track         scale-tempo
+    reverse-track         scale-tempo by a negative scaler
+    save-track            save-mixes
+    set-all-tracks        sync-mixes
+    track                 (now any list of mix ids) -- syncd-mixes follows the mix-sync value
+    track->sound-data     (see save-mixes)
+    track->vct            (see save-mixes)
+    track-amp             scale-mixes
+    track-amp-env         env-mixes
+    track-chans
+    track-color           color-mixes
+    track-dialog-track
+    track-frames          mixes-length
+    track-maxamp          mixes-maxamp
+    track-name
+    track-position        move-mixes
+    track-property
+    track-sample-reader?
+    track-speed           src-mixes
+    track-speed-style
+    track-tag-y           set-mixes-tag-y
+    track-tempo           scale-tempo
+    track-track
+    track?                (now just a list)
+    tracks
+    transpose-track       transpose-mixes
+    view-tracks-dialog
+
+  removed track-colors.scm and mix-menu.scm
+
+  removed all track-related arguments from functions such as mix-vct, mix, and
+    mix-region
+
+  removed tempo-control-bounds
+
+  completely rewrote the virtual mix support:  these are gone:
+    copy-mix
+    delete-mix (set mix-amp to 0.0)
+    mix-chans (each mix is one chan in -> one chan out)
+    mix-inverted?
+    mix-locked?
+    mix-speed-style
+    mix-tag-position
+
+  changed
+    mix-frames -> mix-length
+    delete-all-mixes -> silence-all-mixes
+    pan-mix (mix.scm) and all its friends
+
+  added
+    edit-properties
+    edit-property accessor in extensions.scm
+    mix-sync
+
+    mix.scm:
+      scale-mixes
+      silence-mixes
+      move-mixes
+      src-mixes
+      transpose-mixes
+      color-mixes
+      set-mixes-tag-y
+      mixes-maxamp
+      scale-tempo
+      mixes-length
+      save-mixes
+      env-mixes
+      sync-all-mixes
+      syncd-mixes
+      play-mixes
+
+  moved mix-properties into C.
+
+  "mix" function now handles one channel in and out and the position defaults to 0 (not the cursor)
+
+the 1st arg to "play" can be a function that produces samples to be sent to the DAC, or
+  controls other such processes -- see play-mixes in mix.scm for an example.
+
+
+as always, infinite Ruby and Forth improvements thanks to Mike
+
+spokenword.scm thanks to Ville Koskinen
+
+checked: fftw 3.2a, cairo 1.4.2|4, sbcl 1.0.4, pango 1.16.2|4, Gauche 0.8.10
+
+
+Thanks!: Mike Scholz, Esben Stien, Michael Edwards, Ville Koskinen, "bigcab"
+
+===============================================================================
+
+Snd 9.0
+
+I discarded the old recorder and the track support, and completely
+revamped the virtual mix support -- enough changes to warrant a new
+major version.
+
+
+the recorder:
+  completely discarded the old recorder and its functions -- these are gone:
+    recorder-autoload
+    recorder-buffer-size
+    recorder-file
+    recorder-file-hook
+    recorder-gain
+    recorder-in-amp
+    recorder-in-chans
+    recorder-in-data-format
+    recorder-in-device
+    recorder-max-duration
+    recorder-out-amp
+    recorder-out-chans
+    recorder-out-data-format
+    recorder-out-header-type
+    recorder-srate
+    recorder-trigger
+    vu-in-dB
+    vu-size
+  due to hardware troubles, I haven't fully tested the new recorder.
+
+tracks:
+  removed:             replacement:
+    copy-track
+    delete-all-tracks     silence-all-mixes
+    delete-track          silence-mixes
+    filter-track
+    free-track
+    lock-track
+    make-track
+    make-track-frame-reader
+    make-track-sample-reader
+    mix-track
+    play-track            play-mixes
+    read-track-frame
+    read-track-sample
+    retempo-track         scale-tempo
+    reverse-track         scale-tempo by a negative scaler
+    save-track            save-mixes
+    set-all-tracks        sync-mixes
+    track                 (now any list of mix ids) -- syncd-mixes follows the mix-sync value
+    track->sound-data     (see save-mixes)
+    track->vct            (see save-mixes)
+    track-amp             scale-mixes
+    track-amp-env         env-mixes
+    track-chans
+    track-color           color-mixes
+    track-dialog-track
+    track-frames          mixes-length
+    track-maxamp          mixes-maxamp
+    track-name
+    track-position        move-mixes
+    track-property
+    track-sample-reader?
+    track-speed           src-mixes
+    track-speed-style
+    track-tag-y           set-mixes-tag-y
+    track-tempo           scale-tempo
+    track-track
+    track?                (now just a list)
+    tracks
+    transpose-track       transpose-mixes
+    view-tracks-dialog
+
+  removed track-colors.scm and mix-menu.scm
+
+  removed all track-related arguments from functions such as mix-vct, mix, and
+    mix-region
+
+  removed tempo-control-bounds
+
+  completely rewrote the virtual mix support:  these are gone:
+    copy-mix
+    delete-mix (set mix-amp to 0.0)
+    mix-chans (each mix is one chan in -> one chan out)
+    mix-inverted?
+    mix-locked?
+    mix-speed-style
+    mix-tag-position
+
+  changed
+    mix-frames -> mix-length
+    delete-all-mixes -> silence-all-mixes
+    pan-mix (mix.scm) and all its friends
+
+  added
+    edit-properties
+    edit-property accessor in extensions.scm
+    mix-sync
+
+    mix.scm:
+      scale-mixes
+      silence-mixes
+      move-mixes
+      src-mixes
+      transpose-mixes
+      color-mixes
+      set-mixes-tag-y
+      mixes-maxamp
+      scale-tempo
+      mixes-length
+      save-mixes
+      env-mixes
+      sync-all-mixes
+      syncd-mixes
+      play-mixes
+
+  moved mix-properties into C.
+
+  "mix" function now handles one channel in and out and the position defaults to 0 (not the cursor)
+
+the 1st arg to "play" can be a function that produces samples to be sent to the DAC, or
+  controls other such processes -- see play-mixes in mix.scm for an example.
+
+
+as always, infinite Ruby and Forth improvements thanks to Mike
+
+spokenword.scm thanks to Ville Koskinen
+
+checked: fftw 3.2a, cairo 1.4.2|4, sbcl 1.0.4, pango 1.16.2|4 (I'm getting segfaults from 1.16.4),
+         Gauche 0.8.10
+
+
+Thanks!: Mike Scholz, Esben Stien, Michael Edwards, Ville Koskinen, "bigcab"
+
+===============================================================================
+
+Snd 9.0
+
+I discarded the old recorder and the track support, and completely
+revamped the virtual mix support -- enough changes to warrant a new
+major version.
+
+
+the recorder:
+  completely discarded the old recorder and its functions -- these are gone:
+    recorder-autoload
+    recorder-buffer-size
+    recorder-file
+    recorder-file-hook
+    recorder-gain
+    recorder-in-amp
+    recorder-in-chans
+    recorder-in-data-format
+    recorder-in-device
+    recorder-max-duration
+    recorder-out-amp
+    recorder-out-chans
+    recorder-out-data-format
+    recorder-out-header-type
+    recorder-srate
+    recorder-trigger
+    vu-in-dB
+    vu-size
+  due to hardware troubles, I haven't fully tested the new recorder.
+
+tracks:
+  removed:             replacement:
+    copy-track
+    delete-all-tracks     silence-all-mixes
+    delete-track          silence-mixes
+    filter-track
+    free-track
+    lock-track
+    make-track
+    make-track-frame-reader
+    make-track-sample-reader
+    mix-track
+    play-track            play-mixes
+    read-track-frame
+    read-track-sample
+    retempo-track         scale-tempo
+    reverse-track         scale-tempo by a negative scaler
+    save-track            save-mixes
+    set-all-tracks        sync-mixes
+    track                 (now any list of mix ids) -- syncd-mixes follows the mix-sync value
+    track->sound-data     (see save-mixes)
+    track->vct            (see save-mixes)
+    track-amp             scale-mixes
+    track-amp-env         env-mixes
+    track-chans
+    track-color           color-mixes
+    track-dialog-track
+    track-frames          mixes-length
+    track-maxamp          mixes-maxamp
+    track-name
+    track-position        move-mixes
+    track-property
+    track-sample-reader?
+    track-speed           src-mixes
+    track-speed-style
+    track-tag-y           set-mixes-tag-y
+    track-tempo           scale-tempo
+    track-track
+    track?                (now just a list)
+    tracks
+    transpose-track       transpose-mixes
+    view-tracks-dialog
+
+  removed track-colors.scm and mix-menu.scm
+
+  removed all track-related arguments from functions such as mix-vct, mix, and
+    mix-region
+
+  removed tempo-control-bounds
+
+  completely rewrote the virtual mix support:  these are gone:
+    copy-mix
+    delete-mix (set mix-amp to 0.0)
+    mix-chans (each mix is one chan in -> one chan out)
+    mix-inverted?
+    mix-locked?
+    mix-speed-style
+    mix-tag-position
+
+  changed
+    mix-frames -> mix-length
+    delete-all-mixes -> silence-all-mixes
+    pan-mix (mix.scm) and all its friends
+
+  added
+    edit-properties
+    edit-property accessor in extensions.scm
+    mix-sync
+
+    mix.scm:
+      scale-mixes
+      silence-mixes
+      move-mixes
+      src-mixes
+      transpose-mixes
+      color-mixes
+      set-mixes-tag-y
+      mixes-maxamp
+      scale-tempo
+      mixes-length
+      save-mixes
+      env-mixes
+      sync-all-mixes
+      syncd-mixes
+      play-mixes
+
+  moved mix-properties into C.
+
+  "mix" function now handles one channel in and out and the position defaults to 0 (not the cursor)
+
+the 1st arg to "play" can be a function that produces samples to be sent to the DAC, or
+  controls other such processes -- see play-mixes in mix.scm for an example.
+
+
+as always, infinite Ruby and Forth improvements thanks to Mike
+
+spokenword.scm thanks to Ville Koskinen
+
+checked: fftw 3.2a, cairo 1.4.2|4, sbcl 1.0.4, pango 1.16.2|4, Gauche 0.8.10
+
+
+Thanks!: Mike Scholz, Esben Stien, Michael Edwards, Ville Koskinen, "bigcab"
+
+===============================================================================
+
+Snd 9.0
+
+I discarded the old recorder and the track support, and completely
+revamped the virtual mix support -- enough changes to warrant a new
+major version.
+
+
+the recorder:
+  completely discarded the old recorder and its functions -- these are gone:
+    recorder-autoload
+    recorder-buffer-size
+    recorder-file
+    recorder-file-hook
+    recorder-gain
+    recorder-in-amp
+    recorder-in-chans
+    recorder-in-data-format
+    recorder-in-device
+    recorder-max-duration
+    recorder-out-amp
+    recorder-out-chans
+    recorder-out-data-format
+    recorder-out-header-type
+    recorder-srate
+    recorder-trigger
+    vu-in-dB
+    vu-size
+  due to hardware troubles, I haven't fully tested the new recorder.
+
+tracks:
+  removed:             replacement:
+    copy-track
+    delete-all-tracks     silence-all-mixes
+    delete-track          silence-mixes
+    filter-track
+    free-track
+    lock-track
+    make-track
+    make-track-frame-reader
+    make-track-sample-reader
+    mix-track
+    play-track
+    read-track-frame
+    read-track-sample
+    retempo-track         scale-tempo
+    reverse-track         scale-tempo by a negative scaler
+    save-track            save-mixes
+    set-all-tracks        sync-mixes
+    track                 (now any list of mix ids) -- syncd-mixes follows the mix-sync value
+    track->sound-data     (see save-mixes)
+    track->vct            (see save-mixes)
+    track-amp             scale-mixes
+    track-amp-env         env-mixes
+    track-chans
+    track-color           color-mixes
+    track-dialog-track
+    track-frames          mixes-length
+    track-maxamp          mixes-maxamp
+    track-name
+    track-position        move-mixes
+    track-property
+    track-sample-reader?
+    track-speed           src-mixes
+    track-speed-style
+    track-tag-y           set-mixes-tag-y
+    track-tempo           scale-tempo
+    track-track
+    track?                (now just a list)
+    tracks
+    transpose-track       transpose-mixes
+    view-tracks-dialog
+
+  removed track-colors.scm and mix-menu.scm
+
+  removed all track-related arguments from functions such as mix-vct, mix, and
+    mix-region
+
+  removed tempo-control-bounds
+
+  completely rewrote the virtual mix support:  these are gone:
+    copy-mix
+    delete-mix (set mix-amp to 0.0)
+    mix-chans (each mix is one chan in -> one chan out)
+    mix-inverted?
+    mix-locked?
+    mix-speed-style
+    mix-tag-position
+    pan-mix (mix.scm) and all its friends
+
+  changed
+    mix-frames -> mix-length
+    delete-all-mixes -> silence-all-mixes
+
+  added
+    edit-properties
+    edit-property accessor in extensions.scm
+    mix-sync
+
+    mix.scm:
+      scale-mixes
+      silence-mixes
+      move-mixes
+      src-mixes
+      transpose-mixes
+      color-mixes
+      set-mixes-tag-y
+      mixes-maxamp
+      scale-tempo
+      mixes-length
+      save-mixes
+      env-mixes
+      sync-all-mixes
+      syncd-mixes
+
+  moved mix-properties into C.
+
+  "mix" function now handles one channel in and out and the position defaults to 0 (not the cursor)
+
+
+as always, infinite ruby and forth improvements thanks to Mike
+
+spokenword.scm thanks to Ville Koskinen
+
+checked: fftw 3.2a, cairo 1.4.2|4, sbcl 1.0.4, pango 1.16.2, Gauche 0.8.10
+
+
+Thanks!: Mike Scholz, Esben Stien, Michael Edwards, Ville Koskinen, "bigcab"
+
+===============================================================================
+
+Snd 9.0
+
+I discarded the old recorder and the track support, and completely
+revamped the virtual mix support -- enough changes to warrant a new
+major version.
+
+
+the recorder:
+  completely discarded the old recorder and its functions -- these are gone:
+    recorder-autoload
+    recorder-buffer-size
+    recorder-file
+    recorder-file-hook
+    recorder-gain
+    recorder-in-amp
+    recorder-in-chans
+    recorder-in-data-format
+    recorder-in-device
+    recorder-max-duration
+    recorder-out-amp
+    recorder-out-chans
+    recorder-out-data-format
+    recorder-out-header-type
+    recorder-srate
+    recorder-trigger
+    vu-in-dB
+    vu-size
+  due to hardware troubles, I haven't fully tested the new recorder.
+
+tracks:
+  removed:             replacement:
+    copy-track
+    delete-all-tracks     silence-all-mixes
+    delete-track          silence-mixes
+    filter-track
+    free-track
+    lock-track
+    make-track
+    make-track-frame-reader
+    make-track-sample-reader
+    mix-track
+    play-track
+    read-track-frame
+    read-track-sample
+    retempo-track         scale-tempo
+    reverse-track         scale-tempo by a negative scaler
+    save-track            save-mixes
+    set-all-tracks
+    track                 (now any list of mix ids)
+    track->sound-data     (see save-mixes)
+    track->vct            (see save-mixes)
+    track-amp             scale-mixes
+    track-amp-env         env-mixes
+    track-chans
+    track-color           color-mixes
+    track-dialog-track
+    track-frames          mixes-length
+    track-maxamp          mixes-maxamp
+    track-name
+    track-position        move-mixes
+    track-property
+    track-sample-reader?
+    track-speed           src-mixes
+    track-speed-style
+    track-tag-y           set-mixes-tag-y
+    track-tempo           scale-tempo
+    track-track
+    track?                (now just a list)
+    tracks
+    transpose-track       transpose-mixes
+    view-tracks-dialog
+
+  removed track-colors.scm and mix-menu.scm
+
+  removed all track-related arguments from functions such as mix-vct, mix, and
+    mix-region
+
+  removed tempo-control-bounds
+
+  completely rewrote the virtual mix support:  these are gone:
+    copy-mix
+    delete-mix (set mix-amp to 0.0)
+    mix-chans (each mix is one chan in -> one chan out)
+    mix-inverted?
+    mix-locked?
+    mix-speed-style
+    mix-tag-position
+    pan-mix (mix.scm) and all its friends
+
+  changed
+    mix-frames -> mix-length
+    delete-all-mixes -> silence-all-mixes
+
+  added
+    edit-properties
+    edit-property accessor in extensions.scm
+    mix-sync
+
+  moved mix-properties into C.
+
+  "mix" function now handles one channel in and out and the position defaults to 0 (not the cursor)
+
+
+as always, infinite ruby and forth improvements thanks to Mike
+
+spokenword.scm thanks to Ville Koskinen
+
+checked: fftw 3.2a, cairo 1.4.2|4, sbcl 1.0.4, pango 1.16.2, Gauche 0.8.10
+
+
+Thanks!: Mike Scholz, Esben Stien, Michael Edwards, Ville Koskinen, "bigcab"
+
+===============================================================================
+
+Snd 9.0
+
+I discarded the old recorder and the track support, and completely
+revamped the virtual mix support -- enough changes to warrant a new
+major version.
+
+
+the recorder:
+  completely discarded the old recorder and its functions -- these are gone:
+    recorder-autoload
+    recorder-buffer-size
+    recorder-file
+    recorder-file-hook
+    recorder-gain
+    recorder-in-amp
+    recorder-in-chans
+    recorder-in-data-format
+    recorder-in-device
+    recorder-max-duration
+    recorder-out-amp
+    recorder-out-chans
+    recorder-out-data-format
+    recorder-out-header-type
+    recorder-srate
+    recorder-trigger
+    vu-in-dB
+    vu-size
+  due to hardware troubles, I haven't fully tested the new recorder.
+
+tracks:
+  removed:             replacement:
+    copy-track
+    delete-all-tracks     silence-all-mixes
+    delete-track          silence-mixes
+    filter-track
+    free-track
+    lock-track
+    make-track
+    make-track-frame-reader
+    make-track-sample-reader
+    mix-track
+    play-track
+    read-track-frame
+    read-track-sample
+    retempo-track         scale-tempo
+    reverse-track         scale-tempo by a negative scaler
+    save-track            save-mixes
+    set-all-tracks
+    track                 (now any list of mix ids)
+    track->sound-data     (see save-mixes)
+    track->vct            (see save-mixes)
+    track-amp             scale-mixes
+    track-amp-env         env-mixes
+    track-chans
+    track-color           color-mixes
+    track-dialog-track
+    track-frames          mixes-length
+    track-maxamp          mixes-maxamp
+    track-name
+    track-position        move-mixes
+    track-property
+    track-sample-reader?
+    track-speed           src-mixes
+    track-speed-style
+    track-tag-y           set-mixes-tag-y
+    track-tempo           scale-tempo
+    track-track
+    track?                (now just a list)
+    tracks
+    transpose-track       transpose-mixes
+    view-tracks-dialog
+
+  removed track-colors.scm and mix-menu.scm
+
+  removed all track-related arguments from functions such as mix-vct, mix, and
+    mix-region
+
+  removed tempo-control-bounds
+
+  completely rewrote the virtual mix support:  these are gone:
+    copy-mix
+    delete-mix (set mix-amp to 0.0)
+    mix-chans (each mix is one chan in -> one chan out)
+    mix-inverted?
+    mix-locked?
+    mix-speed-style
+    mix-tag-position
+    pan-mix (mix.scm) and all its friends
+
+  changed
+    mix-frames -> mix-length
+    delete-all-mixes -> silence-all-mixes
+
+  added
+    edit-properties
+    mix-sync
+
+  moved mix-properties into C.
+
+  "mix" function now handles one channel in and out and the position defaults to 0 (not the cursor)
+
+
+as always, infinite ruby and forth improvements thanks to Mike
+
+spokenword.scm thanks to Ville Koskinen
+
+checked: fftw 3.2a, cairo 1.4.2|4, sbcl 1.0.4, pango 1.16.2, Gauche 0.8.10
+
+
+Thanks!: Mike Scholz, Esben Stien, Michael Edwards, Ville Koskinen, "bigcab"
+
+===============================================================================
+
+Snd 9.0
+
+I discarded the old recorder and the track support, and completely
+revamped the virtual mix support -- enough changes to warrant a new
+major version.
+
+
+the recorder:
+  completely discarded the old recorder and its functions -- these are gone:
+    recorder-autoload
+    recorder-buffer-size
+    recorder-file
+    recorder-file-hook
+    recorder-gain
+    recorder-in-amp
+    recorder-in-chans
+    recorder-in-data-format
+    recorder-in-device
+    recorder-max-duration
+    recorder-out-amp
+    recorder-out-chans
+    recorder-out-data-format
+    recorder-out-header-type
+    recorder-srate
+    recorder-trigger
+    vu-in-dB
+    vu-size
+  due to hardware troubles, I haven't fully tested the new recorder.
+
+tracks:
+  removed:             replacement:
+    copy-track
+    delete-all-tracks     silence-all-mixes
+    delete-track          silence-mixes
+    filter-track
+    free-track
+    lock-track
+    make-track
+    make-track-frame-reader
+    make-track-sample-reader
+    mix-track
+    play-track
+    read-track-frame
+    read-track-sample
+    retempo-track         scale-tempo
+    reverse-track         scale-tempo by a negative scaler
+    save-track            save-mixes
+    set-all-tracks
+    track                 (now any list of mix ids)
+    track->sound-data     (see save-mixes)
+    track->vct            (see save-mixes)
+    track-amp             scale-mixes
+    track-amp-env         env-mixes
+    track-chans
+    track-color           color-mixes
+    track-dialog-track
+    track-frames          mixes-length
+    track-maxamp          mixes-maxamp
+    track-name
+    track-position        move-mixes
+    track-property
+    track-sample-reader?
+    track-speed           src-mixes
+    track-speed-style
+    track-tag-y           set-mixes-tag-y
+    track-tempo           scale-tempo
+    track-track
+    track?                (now just a list)
+    tracks
+    transpose-track       transpose-mixes
+    view-tracks-dialog
+
+  removed track-colors.scm and mix-menu.scm
+
+  removed all track-related arguments from functions such as mix-vct, mix, and
+    mix-region
+
+  removed tempo-control-bounds
+
+  completely rewrote the virtual mix support:  these are gone:
+    copy-mix
+    delete-mix (set mix-amp to 0.0)
+    mix-chans (each mix is one chan in -> one chan out)
+    mix-inverted?
+    mix-locked?
+    mix-speed-style
+    mix-tag-position
+    pan-mix (mix.scm) and all its friends
+
+  changed
+    mix-frames -> mix-length
+    delete-all-mixes -> silence-all-mixes
+
+  added
+    edit-properties
+    mix-sync
+
+  moved mix-properties into C.
+
+  "mix" function now handles one channel in and out and the position defaults to 0 (not the cursor)
+
+
+as always, infinite ruby and forth improvements thanks to Mike
+
+spokenword.scm thanks to Ville Koskinen
+
+checked: fftw 3.2a, cairo 1.4.2|4, sbcl 1.0.4, pango 1.16.2, Gauche 0.8.10
+
+
+Thanks!: Mike Scholz, Esben Stien, Michael Edwards, Ville Koskinen
+
+===============================================================================
+
+Snd 9.0
+
+I discarded the old recorder and the track support, and completely
+revamped the virtual mix support -- enough changes to warrant a new
+major version.
+
+
+the recorder:
+  completely discarded the old recorder and its functions -- these are gone:
+    recorder-autoload
+    recorder-buffer-size
+    recorder-file
+    recorder-file-hook
+    recorder-gain
+    recorder-in-amp
+    recorder-in-chans
+    recorder-in-data-format
+    recorder-in-device
+    recorder-max-duration
+    recorder-out-amp
+    recorder-out-chans
+    recorder-out-data-format
+    recorder-out-header-type
+    recorder-srate
+    recorder-trigger
+    vu-in-dB
+    vu-size
+  due to hardware troubles, I haven't fully tested the new recorder.
+
+tracks:
+  removed:             replacement:
+    copy-track
+    delete-all-tracks     silence-all-mixes
+    delete-track          silence-mixes
+    filter-track
+    free-track
+    lock-track
+    make-track
+    make-track-frame-reader
+    make-track-sample-reader
+    mix-track
+    play-track
+    read-track-frame
+    read-track-sample
+    retempo-track         scale-tempo
+    reverse-track         scale-tempo by a negative scaler
+    save-track            save-mixes
+    set-all-tracks
+    track                 (now any list of mix ids)
+    track->sound-data
+    track->vct
+    track-amp             scale-mixes
+    track-amp-env         env-mixes
+    track-chans
+    track-color           color-mixes
+    track-dialog-track
+    track-frames          mixes-length
+    track-maxamp          mixes-maxamp
+    track-name
+    track-position        move-mixes
+    track-property
+    track-sample-reader?
+    track-speed           src-mixes
+    track-speed-style
+    track-tag-y           set-mixes-tag-y
+    track-tempo           scale-tempo
+    track-track
+    track?                (now just a list)
+    tracks
+    transpose-track       transpose-mixes
+    view-tracks-dialog
+
+  removed track-colors.scm and mix-menu.scm
+
+  removed all track-related arguments from functions such as mix-vct, mix, and
+    mix-region
+
+  removed tempo-control-bounds
+
+  completely rewrote the virtual mix support:  these are gone:
+    copy-mix
+    delete-mix (set mix-amp to 0.0)
+    mix-chans (each mix is one chan in -> one chan out)
+    mix-inverted?
+    mix-locked?
+    mix-speed-style
+    mix-tag-position
+    pan-mix (mix.scm) and all its friends
+
+  changed
+    mix-frames -> mix-length
+    delete-all-mixes -> silence-all-mixes
+
+  added
+    edit-properties
+    mix-sync
+
+  moved mix-properties into C.
+
+  "mix" function now handles one channel in and out and the position defaults to 0 (not the cursor)
+
+
+as always, infinite ruby and forth improvements thanks to Mike
+
+spokenword.scm thanks to Ville Koskinen
+
+checked: fftw 3.2a, cairo 1.4.2|4, sbcl 1.0.4, pango 1.16.2
+
+
+Thanks!: Mike Scholz, Esben Stien, Michael Edwards, Ville Koskinen
+
+===============================================================================
+
+Snd 8.9
+
+many more Forth and Ruby improvements from Mike.
+
+three more fft windows: bohman-window, bartlett-hann-window, flat-top-window
+
+kalman-filter-channel (dsp.scm) -- noise-reduction experiment
+
+clean.scm -- more noise reduction (clean-channel|sound)
+
+File:Close all menu if more than one sound open
+
+open-file-dialog-directory to set the initial Open File dialog directory
+
+changed default html reader from mozilla to firefox
+
+added bindings to xg.c for cairo and gtk print
+
+added a cairo graphics backend (on the --with-cairo configure switch)
+  no "eye candy" yet, but everything works, I hope.
+
+
+checked: Gauche 0.8.9, pango 1.15.6, 1.16.0|1, gsl 1.9, fth 1.0.8, sbcl 1.0.3,
+    glib 2.12.10|11 2.13.0, cairo 1.4.0, gtk+-2.10.10
+
+
+Thanks!: Michael Edwards, Peter Anderson, Immanuel Litzroth, Mike Scholz,
+         Jay LaBoeuf, Max Mathews, Luke Dahl, Joanne Carey, Charles Turner,
+	 Kjetil Matheussen, Anders Vinjar
+
+
+===============================================================================
+
+Snd 8.9
+
+many more Forth and Ruby improvements from Mike.
+
+three more fft windows: bohman-window, bartlett-hann-window, flat-top-window
+
+kalman-filter-channel (dsp.scm) -- noise-reduction experiment
+
+clean.scm -- more noise reduction (clean-channel|sound)
+
+File:Close all menu if more than one sound open
+
+open-file-dialog-directory to set the initial Open File dialog directory
+
+changed default html reader from mozilla to firefox
+
+added bindings to xg.c for cairo and gtk print
+
+added a cairo graphics backend (on the --with-cairo configure switch)
+  no "eye candy" yet, but everything works, I think -- cairo is a lot slower
+  than gdk or GL (I wonder why gtk chose cairo over GL).
+
+
+checked: Gauche 0.8.9, pango 1.15.6, 1.16.0|1, gsl 1.9, fth 1.0.8, sbcl 1.0.3,
+    glib 2.12.10|11 2.13.0, cairo 1.4.0, gtk+-2.10.10
+
+
+Thanks!: Michael Edwards, Peter Anderson, Immanuel Litzroth, Mike Scholz,
+         Jay LaBoeuf, Max Mathews, Luke Dahl, Joanne Carey, Charles Turner,
+	 Kjetil Matheussen
+
+
+===============================================================================
+
+Snd 8.8:
+
+many improvements from Mike
+
+Jack support in OSX and Cygwin from Kjetil
+
+poussin-sum and jackson-sum in dsp.scm (more band-limited pulse-trains), and changed
+  amplitude scaling in fejer-sum and legendre-sum so that they always peak at 1.0.
+  Also added a note in clm.html showing a way to get a time-varying pulse-train.
+
+changed default-output-data-format to mus-bfloat
+
+removed initFile and the (undocumented) htmlDir X resources
+
+make install now copies the *.scm|fs|rb files to {prefix}/share/snd
+
+added read/write support for Apple's new CAFF (64-bit) audio files
+
+checked: glib 2.12.7|8|9, gtk 2.10.7|8|9, Mesa 6.5.1|2, pango-1.15.3|4|5,
+         sbcl 1.0.1|2, fth 1.0.7
+
+Thanks!:  Mike Scholz, Kjetil Matheussen, Meino Christian Cramer, Michael Edwards
+
+
+
+===============================================================================
+
+Snd 8.7
+
+a huge number of *.fs and *.rb improvements from Mike, including the
+  new file bird.fsm.
+
+
+added frame.scm with:
+
+    frame-reverse! frame-copy (from mixer.scm)
+    sound->frame frame->sound
+      region->frame
+
+    make-frame-reader frame-reader? frame-reader-at-end frame-reader-position
+      frame-reader-home free-frame-reader copy-frame-reader frame-reader-chans
+      next-frame previous-frame read-frame
+      make-region-frame-reader make-selection-frame-reader
+      make-track-frame-reader read-track-frame make-sync-frame-reader
+
+    frame->sound-data sound-data->frame
+    sound->sound-data sound-data->sound
+      region->sound-data track->sound-data selection->sound-data
+    file->vct vct->file
+    frame->vct vct->frame
+    file->sound-data sound-data->file
+
+    insert-sound-data insert-frame insert-vct
+    mix-sound-data mix-frame
+    scan-sound map-sound (this replaces 8.6's scan-sound)
+
+    simultaneous-zero-crossing
+
+added to extensions.scm:
+    pad-sound contrast-sound dither-sound scale-sound offset-sound normalize-sound
+
+added to examp.scm:
+    compand-sound sync-all
+
+sound-data-multiply! sound-data-add! sound-data-offset! sound-data* sound-data+
+    sound-data-copy sound-data-reverse! sound-data-peak
+
+region-home
+add-source-file-extension
+
+clip-hook: called whenever we're about to clip while writing a sound file
+  unclip-channel (dsp.scm) based on LPC (reconstruction via forward and backward prediction)
+  lpc-coeffs and lpc-predict in dsp.scm
+  io.c:  mus_clip_set_handler
+
+finally decided to build in the definition of pi in Guile and Gauche.
+  In the context of Snd, it is absurd to have to make sure "pi" is defined all the time.
+  It's already defined in Forth, and in Ruby it's PI in the math module.
+
+clm.c: removed (unused) mus_make_frame|mixer_with_data
+
+removed the default font settings in Snd.gtkrc -- presumably Snd
+  will now pick up your theme's default font.
+
+added a -nogtkrc startup switch.  This turns off the search for a gtkrc file,
+  or its built-in equivalent -- you get whatever your current theme wants.
+
+removed open-sound-file, vct->sound-file, and close-sound-file.
+  These were optimizations that make little sense anymore -- use
+  mus-sound-open-output and friends instead.  See snd8.scm for
+  backwards compatible replacements.
+
+mix tags use the mix-color now
+
+
+Checked: sbcl 1.0,
+         lesstif 0.95 (it still doesn't work with Snd -- segfaults,
+           comatose listener, etc),
+         cmucl 19d (dies trying to compile cmn's transpose.lisp,
+           so that file is commented out for this version of cmucl),
+         pango 1.15.1|2, fontconfig 2.4.2, cairo 1.2.6, glib 2.12.5|6, stklos 0.82,
+         gamin 1.8.0 (this version fixes at least one of the problems
+           that would sometimes cause Snd to hang)
+
+Thanks: Fernando Lopez-Lezcano, Mike Scholz, Kjetil Matheussen, Forest Bond
+
+===============================================================================
+
+Snd 8.6
+
+many improvements from Mike.
+
+mix/track mechanism sped up by about a factor of 100, so its possible
+  to have thousands of each (but the screeen gets very cluttered).
+
+  added mix-name, track-name, track-tag-y, mix-name->id, and track-name->id
+  to help navigate in these situations.
+
+
+out-any, in-any, locsig, move-sound, and friends can now handle vct and sound-data objects
+  as the "stream" argument.  In with-sound, this is the *output* variable or :output
+  argument which then applies to all notes. So, with-sound can be used in a zillion new ways:
+
+     (vct-scale! (with-temp-sound (:output (make-vct 2210)) (fm-violin 0 .1 440 .1)) 2.0)
+
+  This extension caused changes in sound-data object handling:
+    sound-data-scale! (for with-sound writing to a sound-data object and with the
+      :scaled-to or :scaled-by arguments)
+    sound-data-fill! (also for with-sound if not :continue-old-file)
+
+  fade.scm instruments changed to use outa rather than vct-map!
+  moved samples->sound-data to snd8.scm.
+  Mike provided sndins support for this change.
+
+
+rf64 headers and mutable riff for very large output files.
+
+mus-float-equal-fudge-factor (mainly for reasonable generator equal? checks)
+
+->frequency, ->samples (ws.scm) for things like (violin 0 .1 'e4).
+
+channel-clipped? in examp.scm
+
+filter-fft in examp.scm.
+
+checked: Fedora Core 6, sbcl 0.9.18, fth 1.0.0, Gauche 0.8.8, autoconf 2.61
+
+Thanks: Jacek M. Holeczek, Rick Taube, Mike Scholz, Kjetil Matheussen, Julius Smith,
+    Joseph Anderson, SamButcha
+
+
+===============================================================================
+
+Snd 8.5
+
+many improvements thanks to Kjetil and Mike.
+
+gl2ps support, gl-graph->ps function, --with-gl2ps switch, gl2ps.[ch]
+
+added gtk-effects-utils.scm, gtk support for *-menu.scm.
+
+finally implemented the log-frequency display in non-GL spectrograms.
+
+save-marks changed to keep matching sync values
+add-mark now takes new optional trailing args: name and sync
+
+removed the gtk_print stuff from xg.c since it's all useless without
+  support for the cairo graphics functions and the pango functions
+  that access them.
+
+sounds->segment-data (examp.scm) -- returns segment start/dur/maxamp data for collections
+  of sounds.
+
+with-file-monitor -- can be set to #f to turn off the FAM process stuff.
+
+add-watcher and delete-watcher -- this is a simpler (and less accident-prone)
+  hook to catch any change to the sound list, the current selection, or the mark list;
+  it is intended to replace the multi-hook kludges currently used to set dialog button
+  sensitivity, for example.  Since each watcher is identified by a unique integer,
+  local (unnamed) functions can easily be deleted and so on.
+
+  removed selection-changed-hook (use simpler watcher mechanism instead).
+
+in cmn, thickness message now affects bars locally.  Added *double-barline-thickness*.
+
+checked: gtk-2.10.4|5|6, sbcl 0.9.17, clisp 2.40|1.
+
+Thanks: Michael Edwards, Mike Scholz, Kjetil Matheussen, Carlos Pita,
+    Carsten Heinrigs, Dragan Novetski, Jacek M. Holeczek, David O'Toole
+
+===============================================================================
+
+Snd 8.4
+
+many ruby, forth, and sndins-related improvements from Mike including new file analog-filter.rb.
+  "scheme" instead of "guile" in various names in inf-snd.el (for gauche)
+
+improvements in strad.ins and bandedwg.ins from Juan Reyes
+
+snd_frg.scm thanks to Olivier Doare
+
+granulated-sound-interp (examp.scm)
+
+display-bark-fft (dsp.scm) -- spectral display using bark, erb, and mel scales
+
+def-optkey-instrument (ws.scm)
+
+new optional argument to graph -- lisp graph axis choice
+new axis choice --show-bare-x-axis
+snd-color
+snd-font
+after-lisp-graph-hook
+removed vu-font and vu-font-size, added vu-in-dB
+removed spectrogramColor X resource
+
+checked: ruby 1.8.5, sbcl 0.9.15|16, gtk 2.10.2|3, fth 0.10.22
+
+Thanks: Mike Scholz, Anders Vinjar, Kjetil Matheussen, Bill Sack, Pam & Harold Norris,
+    Juan Reyes, Daniel Stahl, Michael Edwards, Carlos Pita
+
+===============================================================================
+
+Snd 8.4
+
+many ruby, forth, and sndins-related improvements from Mike including new file analog-filter.rb.
+  "scheme" instead of "guile" in various names in inf-snd.el (for gauche)
+
+improvements in strad.ins and bandedwg.ins from Juan Reyes
+
+snd_frg.scm thanks to Olivier Doare
+
+granulated-sound-interp (examp.scm)
+
+display-bark-fft (dsp.scm) -- spectral display using bark, erb, and mel scales
+
+def-optkey-instrument (ws.scm)
+
+new optional argument to graph -- lisp graph axis choice
+new axis choice --show-bare-x-axis
+snd-color
+snd-font
+after-lisp-graph-hook
+removed vu-font and vu-size, added vu-in-dB
+removed spectrogramColor X resource
+
+checked: ruby 1.8.5, sbcl 0.9.15|16, gtk 2.10.2|3, fth 0.10.22
+
+Thanks: Mike Scholz, Anders Vinjar, Kjetil Matheussen, Bill Sack, Pam & Harold Norris,
+    Juan Reyes, Daniel Stahl, Michael Edwards, Carlos Pita
+
+===============================================================================
+
+Snd 8.4
+
+many ruby, forth, and sndins-related improvements from Mike including new file analog-filter.rb.
+  "scheme" instead of "guile" in various names in inf-snd.el (for gauche)
+
+improvements in strad.ins and bandedwg.ins from Juan Reyes
+
+snd_frg.scm thanks to Olivier Doare
+
+I was mainly fixing bugs -- my TODO list has only 97 entries!!
+
+granulated-sound-interp (examp.scm)
+
+display-bark-fft (dsp.scm) -- spectral display using bark, erb, and mel scales
+
+def-optkey-instrument (ws.scm)
+
+new optional argument to graph -- lisp graph axis choice
+new axis choice --show-bare-x-axis
+snd-color
+snd-font
+after-lisp-graph-hook
+removed vu-font and vu-size, added vu-in-dB
+removed spectrogramColor X resource
+
+checked: ruby 1.8.5, sbcl 0.9.15|16, gtk 2.10.2|3, fth 0.10.22
+
+Thanks: Mike Scholz, Anders Vinjar, Kjetil Matheussen, Bill Sack, Pam & Harold Norris,
+    Juan Reyes, Daniel Stahl, Michael Edwards, Carlos Pita
+
+===============================================================================
+
+Snd 8.3
+
+CLM generators:
+  added filtered-comb ("fcomb" for freeverb)
+  added move-sound (runtime portion of dlocsig)
+  renamed average generator to moving-average
+  renamed windowed-maxamp to moving-max (dsp.scm)
+  added moving-rms, moving-sum, moving-length (dsp.scm)
+     overlay-rms-env (draw.scm) uses moving-rms
+     Perhaps these should be built-in CLM generators.
+  mfilter (dsp.scm) -- Mathews/Smith high-Q filter
+    (similar to formant; another version is maxf.scm/ins)
+  removed make-ppolar|zpolar (use make-two-pole|zero)
+  moved ssb-fm and rmsgain.scm code to clm-ins.scm (removed rmgain.scm)
+  locsig now returns a float (not a frame)
+
+dlocsig.scm (translation to Scheme of Fernando's dlocsig.lisp)
+  in CL-CLM, dlocsig.lisp and move-sound.ins now use the move-sound generator.
+  mix-move-sound (extsnd.html)
+
+green.scm (bounded brownian noise, from CLM's green.cl)
+
+snd8.scm (backwards compatibility stuff for snd 8)
+
+shepard-tone (sndscm.html)
+agc (dsp.scm)
+with-full-sound (ws.scm)
+def-clm-float-struct (CL-CLM only)
+fir+comb (clm.html)
+removed vct-map
+
+g_signal_connect and other such macros, and gtk_print_operation* to xg.c
+
+merged new-icons.scm into new-buttons.scm and renamed the latter toolbar.scm
+  toolbar.scm also works in gtk
+
+*.fs updates and other improvements from Mike Scholz
+
+
+checked: gtk 2.9.4, 2.10.0|1, autoconf 2.60, fth 0.10.0|2, sbcl 0.9.14, fftw 3.1.2,
+    clisp 2.39
+
+
+Thanks: Michael Klingbeil, Kjetil Matheussen, Mike Scholz, Oded Ben-Tal,
+    Russell Aspinwall, Anders Vinjar
+
+
+===============================================================================
+
+Snd 8.2
+
+Most of the effort in this version of Snd went into the documentation.
+
+added sndins improvements thanks to Mike.
+
+      fmviolin.clm (fm-violin demo from CLM)
+
+      'clear' and 'revert' buttons in the preferences dialog
+
+      normalize-envelope in env.scm.
+
+removed mus-make-error.
+
+changed (the name of) after-apply-hook to after-apply-controls-hook
+
+
+Checked: gtk 2.9.0|1|2|3, fth 0.8.18|19|20|21|22
+
+Thanks: Pete Thomas, Esbien Stieb, Mike Scholz
+
+
+===============================================================================
+
+Snd 8.1
+
+added a bunch of Forth files (*.fs) thanks to Mike Scholz.
+
+many more improvements from Kjetil and Mike.
+
+Gauche support in Snd -- this is a Scheme extension language like Guile.
+
+     http://www.shiro.dreamhost.com/scheme/gauche/index.html
+
+  use --with-gauche in configure.  There are a number of small differences
+  between Gauche and Guile.
+
+    added gauche-optargs.scm to get define* (but not defmacro*)
+          gauche-format.scm to get ~{ and others, but it's semi-broken
+          block comments in '#| |#' to the Guile Snd to be compatible with Gauche (and CL).
+    removed ws-interrupt? arg (no defmacro* currently in Gauche version).
+    added define+ and definstrument+ to get around lack of documentation string support in Gauche.
+    changed all '#! !#' to "#| |#'
+    changed all '#:' to ':'
+    "run" is a no-op in Gauche -- local variables aren't (currently) accessible in this context.
+
+clisp support in clm.  Due to Clisp's way of macroexpanding "loop", the
+  loop macro can't be used within "run" (this affects Clisp users only of course).
+  I changed a bunch of such cases to use "do". Also, "run*" doesn't currently work in
+  the Clisp clm.
+
+changed show-listener slightly; if optional arg is #f, listener is not created.
+
+removed envelope-base.
+
+clm-load (ws.scm) for cm.
+
+checked: sbcl 0.9.11|12, gsl 1.8, gtk 2.8.17, fftw 3.1.1, fth up to 0.8.16
+
+with much help from: Michael Klingbeil, Kjetil, Mike.
+
+===============================================================================
+
+Snd 8.0
+
+The reason for the new major version: Mike Scholz has provided a complete
+  implementation of Forth as an extension language!  It's based on
+  http://sourceforge.net/projects/fth.  Use --with-forth with the
+  configuration script.
+
+  This is in snd-8.tar.gz at the ccrma ftp site -- I'll update all the
+  other versions as soon as possible.
+
+
+Other changes since version 7.19:
+
+many improvements (ladspa.scm etc) thanks to Kjetil.
+
+kmenu.scm and add-main-menu-mnemonics in snd-gtk.scm thanks to Maxim Krikun.
+
+in clm bandedwg.ins thanks to Juan Reyes.
+
+granulate now has a local random number seed (settable via the mus-location method)
+  also peak-env.scm is smarter about data formats (both thanks to Kjetil).
+
+main-menu changed in gtk so that added top level menus return the same widget type as
+  the built-in ones -- to get the old menu-shell, wrap the main-menu calls with:
+  (gtk_menu_item_get_submenu (GTK_MENU_ITEM (main-menu ...)))
+
+show-selection (extensions.scm)
+
+replaced useless "Filter" button in file dialogs with "Mkdir"
+
+added a stop sign to interrupt long computations (equivalent to C-g)
+
+x-axis-as-clock for more informative x-axis tick labels in very large files
+
+heart.scm (use Snd with non-sound data)
+
+added support for more sound file decoders (along the lines of the current mpeg reader):
+  shorten (propietary, read-only), tta (GPL, via ttaenc), wavpack (propietary)
+
+in cmn, removed nxtcmn.c, sgicmn.c, xcmnw.c, cmn-mcl-utils.lisp, cmn-mcl.lisp,
+          cmn-excl.lisp, cmn-scroll.lisp.  Removed all FFI, quickdraw, and Braille stuff.
+          cmn is now a pure Lisp program that outputs only postscript files.
+
+checked: gtk 2.8.14|15|16, sbcl 0.9.10, Fedora Core 5 (gcc 4.1), netBSD 3.0
+
+with much help from: Mike, Kjetil, Fernando, Maxim Krikun, Juan Reyes, Steve Kuhlmann,
+  Tim Blechmann
+
+
+
+
+
+===============================================================================
+
+Snd 7.19
+
+Bill Sack's pd-stochastic.scm and snd-stochastic.pd.
+
+more pd-related improvements, thanks to Kjetil.
+
+more ruby and emacs related improvements thanks to Mike.
+
+in clm, numerous sbcl-related bugfixes thanks to Fernando.
+
+new-sound-dialog.
+
+removed ancient SGI-specific useScheme resource
+
+removed XmMultiList from xm module
+
+alsa: changed environment variable names to use MUS_* rather than SNDLIB_*
+      changed default alsa device to "default", but it then looks for "plughw:0"
+            and "hw:0" if things seem weird.
+      added mus-alsa-playback-device, mus-alsa-capture-device, mus-alsa-device,
+            mus-alsa-buffers, mus-alsa-buffer-size, mus-alsa-squelch-warning.
+
+changed mus-audio-sun-outputs to mus-sun-set-outputs, and
+        mus-audio-set-oss-buffers to mus-oss-set-buffers
+added mus-netbsd-set-outputs
+
+mus-file-data-clipped -> mus-clipping, added mus-file-clipping for local settings
+  data-clipped -> clipping
+  mus-prescaler (global) alongside previous mus-file-prescaler
+
+added pausing -- returns #t if DAC is paused, can be set to #t or #f to start/stop pausing
+  similarly playing -- #t if DAC is running (may be paused), settable to start/stop playing
+  removed dac-is-running (it's in snd7.scm)
+  (eventually I'd like to get rid of the jargon "DAC", but that involves 5 more names)
+
+with-tracking-cursor and with-verbose-cursor as synonyms for cursor-follows-play and verbose-cursor
+  tracking-cursor-style
+
+bind-key now takes a character or string 1st arg (as well as an integer); if a string, it's treated
+  as the X/Gtk key name (e.g. "Home" or "plus").  It also has a 6th optional arg, a preferences
+  dialog name (so that the dialog can reflect current key bindings by functionality).
+
+
+checked: clisp 2.38 (cmn), fftw 3.1, gtk 1.8.11|12|13, sbcl 0.9.9, MacIntel, guile 1.8.0
+
+with much help from: Kjetil, Mike, Russell Aspinwall, Eric Marzolf, Fernando,
+   Bill Sack, Sebastian Tennant
+
+
+
+===============================================================================
+
+Snd 7.18
+
+snd_pd_external.c, help-snd-fm.pd, and pd-fm.scm and other changes for Pd, thanks to Kjetil.
+
+Many more improvements thanks to Mike.
+
+default sample type is now float. This should only affect the "peak-env" files which will
+  need to be rebuilt (just delete the current peak files, and they'll be rebuilt as needed
+  automatically).
+
+analog-filter.scm: Butterworth, Chebyshev, inverse-Chebyshev, Bessel(-Thompson), Elliptic filters.
+  (These functions are based on code of Anders Johansson)
+
+new fft windows: samaraki and ultraspherical (related to the dolph-chebyshev window)
+  ultraspherical window has an additional parameter (side lobe shape) named
+  fft-window-alpha here (to parallel fft-window-beta).
+
+new sound effects:
+  sinc-train (clm.html)
+  reverse-by-blocks and reverse-within-blocks (examp.scm)
+  pulse-voice (examp.scm)
+
+moved make-iir-low|high-pass-1 to snd7.scm (from dsp.scm)
+
+removed the various sorting indices (sort-by-name|size|date|entry), and changed
+  the way the user-defined sorter works. (snd7.scm defines the old names).
+  Also removed (unimplemented, but documented) file-sorters list, and the
+  now useless just-sounds-hook.  added sound-file? for easier file-filter definition.
+
+in both Motif and Gtk, the file selection dialogs have been changed -- there are
+  fewer visible widgets, but popup menus are scattered around to handle uncommon
+  chores (sorting, filtering, etc).  libgamin is connected to the file list as
+  elsewhere.  Right-click in the file list brings up a menu of sorting/filtering
+  choices; in the directory list it brings up a menu that splits out the parent
+  directories (single-click in the directory list moves to that directory);
+  in the file and filter entry widgets it brings up a list of previous choices.
+  If you type in the file entry widget, the file list tries to move to the apparent choice.
+  The "preview area" is as before -- a description of the selected sound file,
+  with "play" and "just-sounds" buttons.
+
+In the xm module, XmNpopupEnabled is now an enum (it was boolean -- I was following
+  the incorrect info in the Motif docs -- use XmPOPUP_AUTOMATIC rather than #t).
+
+the happy buttons have hunkered down for the winter.
+
+checked: gtk 2.8.8|9|10, sbcl 0.9.7|8, clisp 2.36|7 (cmn), motif 2.3.0, ruby 1.8.4,
+         Mesa 6.4.1 (openGL), gamin 0.1.7 (fam)
+
+with much help from: Kjetil, Mike, Russell Aspinwall
+
+===============================================================================
+
+Snd 7.17
+
+Mike made many improvements in the ruby support
+
+Kjetil added a -volume argument to sndplay
+
+all dlp directory files moved to main directory (to simplify load-path handling)
+
+added: *clm-notehook* and *definstrument-hook* added to Guile version of with-sound (thanks to Rick)
+       the rest of the preferences dialog
+       mus-header-raw-defaults
+       sync-max
+       SND_PATH environment variable (optional load path directory list)
+
+if --with-float-samples and --with-doubles, the internal sample data type is double.
+  (this also affects CLM)
+
+moved snd-apropos to snd7.scm.
+
+clm: fixed various instruments that were using mus-location with src:
+         backandforth.ins, scratch in ug1.ins, granular.ins, various test ins.
+     added optional srate envelope arg to fullmix.
+     Rick added clm.asd.
+     Fernando updated dlocsig and friends.
+     *clm-tempfile-data-format* and *clm-tempfile-header-type*.
+
+cmn: *dynamics-minimum-vertical-separation* added by Anders.
+     Anders also added support for dy0 and dy1 messages in wedge.lisp.
+     Rick added cmn.asd.
+     *dot-vertical-spacing*
+
+checked: ACL 8.0, openmcl 1.0, cmucl 19c, clisp 2.35 (cmn), gtk 2.8.7
+
+with much help from Mike, R Mattes, Rick, Anders, J Reyes, Kjetil, T Blechmann
+   	J Rundall, H Fugal, Fernando, J Sandgren, M Klingbeil
+
+===============================================================================
+
+Snd 7.17
+
+Mike made many improvements in the ruby support
+
+Kjetil added a -volume argument to sndplay
+
+all dlp directory files moved to main directory (to simplify load-path handling)
+
+added: *clm-notehook* and *definstrument-hook* added to Guile version of with-sound (thanks to Rick)
+       the rest of the preferences dialog
+       mus-header-raw-defaults
+       sync-max
+       SND_PATH environment variable (optional load path directory list)
+
+if --with-float-samples and --with-doubles, the internal sample data type is double.
+  (this also affects CLM)
+
+moved snd-apropos to snd7.scm.
+
+clm: fixed various instruments that were using mus-location with src:
+         backandforth.ins, scratch in ug1.ins, granular.ins, various test ins.
+     added optional srate envelope arg to fullmix.
+     Rick added clm.asd.
+     Fernando updated dlocsig and friends.
+
+cmn: *dynamics-minimum-vertical-separation* added by Anders.
+     Anders also added support for dy0 and dy1 messages in wedge.lisp.
+     Rick added cmn.asd.
+     *dot-vertical-spacing*
+
+checked: ACL 8.0, openmcl 1.0, cmucl 19c, clisp 2.35 (cmn), gtk 2.8.7
+
+with much help from Mike, R Mattes, Rick, Anders, J Reyes, Kjetil, T Blechmann
+   	J Rundall, H Fugal, Fernando, J Sandgren, M Klingbeil
+
+===============================================================================
+
+Snd 7.16
+
+Marten Stromberg provided a PDF version of snd.html, but I can't decide
+  where it should go.
+
+new dialog: first half (Motif version) of a preferences dialog (Options menu item).
+
+added cycle speed style via click, mix|track-speed-style
+      analyze-ladspa as synonym for analyse-ladspa
+      save/insert/mix buttons in region browser
+      save-region-dialog
+      --enable-threads configure switch, and first use thereof (FIR filtering)
+      snd-g|xprefs.c, preferences-dialog function
+
+snd-error is now (throw 'snd-error ...)
+
+init file handling has become more complex: ~/.snd is still loaded if present,
+  as is /etc/snd.conf, but Snd also now looks for ~/.snd_guile|ruby, and
+  /etc/snd_guile|ruby.conf, and the preferences dialog and
+  Options:save options function write to ~/.snd_prefs_guile|ruby
+  (so that the user's init file is not changed by the preference mechanism).
+  This may seem unmotivated, but watch this space!
+
+changed recorder-in|out-format -> recorder-in|out-data-format,
+        recorder-out-type -> recorder-out-header-type
+        save-macros now requires a filename (it won't write to ~/.snd unless you ask it to)
+
+(Snd has just reached the 500,000 line mark)
+
+Checked: gtk 2.8.3|4|5|6, FreeBSD 5.4, gsl 1.7, Ruby 1.8.3
+
+With much help from: Anders Vinjar, Kjetil Matheussen, Mike Scholz, Marten Stromberg
+
+
+===============================================================================
+
+Snd 7.16
+
+Marten Stromberg provided a PDF version of snd.html, but I can't decide
+  where it should go.
+
+new dialog: first half (Motif version) of a preferences dialog (Options menu item).
+
+added cycle speed style via click, mix|track-speed-style
+      analyze-ladspa as synonym for analyse-ladspa
+      save/insert/mix buttons in region browser
+      save-region-dialog
+      --enable-threads configure switch, and first use thereof (FIR filtering)
+      snd-g|xprefs.c, preferences-dialog function
+
+snd-error is now (throw 'snd-error ...)
+
+init file handling has become more complex: ~/.snd is still loaded if present,
+  as is /etc/snd.conf, but Snd also now looks for ~/.snd_guile|ruby, and
+  /etc/snd_guile|ruby.conf, and the preferences dialog and
+  Options:save options function write to ~/.snd_prefs_guile|ruby
+  (so that the user's init file is not changed by the preference mechanism).
+  This may seem unmotivated, but watch this space!
+
+changed recorder-in|out-format -> recorder-in|out-data-format,
+        recorder-out-type -> recorder-out-header-type
+        save-macros now requires a filename (it won't write to ~/.snd unless you ask it to)
+
+
+Checked: gtk 2.8.3|4|5|6, FreeBSD 5.4, gsl 1.7, Ruby 1.8.3
+
+With much help from: Anders Vinjar, Kjetil Matheussen, Mike Scholz, Marten Stromberg
+
+
+===============================================================================
+
+Snd 7.15
+
+removed yes-or-no? with associated dialog (and snd-g|xerror.c)
+        old Mac OS (8 or 9) support (old-mac-audio.c has the code), also MPW C
+          (this affects CLM as well)
+
+added clear-minibuffer
+      optional as-error arg to report-in-minibuffer
+      sound-file-extensions as settable list
+      before-exit|close-hook
+      -init startup switch to set init filename as arg
+      netBSD audio support
+
+File:Mix dialog no longer exits upon "mix" (removed keep-mix-dialog-open-upon-ok from snd-motif.scm)
+File:Insert menu item and dialog added, also insert-file-dialog
+read/write support OGG, Speex, and Flac files (via File:Save as)
+read support for Mpeg and Midi
+
+gtk version no longer defaults to happy button colors -- they clash with the fancy icons.
+  as long as I was changing colors, I changed to an "autumnal" theme for the Motif side.
+
+View:Files dialog completely recast:
+  removed current files list, added various ways to use the selected file(s) in the other list
+  previous-files-* -> view-files-* (sort, select-hook)
+  removed previous-files-sort-procedure
+  added sort-files-by-name|size|date|entry
+  added view-files-amp|speed|amp-env|speed-style|files|selected-files
+  click of file name no longer opens that file -- it just adds it to the selected files list for the dialog
+  view-files-select-hook return type no longer matters, and args are: dialog file-name
+  preload-directory -> add-directory-to-view-files-list
+  preload-file -> add-file-to-view-files-list
+  optional dialog arg to view-files-sort (local set)
+
+added osx-10.4-snd at ccrma-ftp
+
+_sndlib.h is now an internal header, whereas sndlib.h is intended for programs
+  that use sndlib -- this is an attempt to reduce name-space collisions by
+  sequestering configuration info.
+
+checked: OSX 10.4 (gtk/motif/guile/ruby), gtk 2.7.3|4|5, gtk 2.8.0|1|2, NetBSD 2.0,
+  Solaris 10 (x86 audio is broken), sbcl 0.9.3
+
+with much help from: Orm Finnendahl, Michael Edwards, Mike Scholz, Thomas Klausner,
+  Kjetil Matheussen, Petter Reinholdtsen, Rob Komar, Christophe Rhodes
+
+
+===============================================================================
+
+Snd 7.14:
+
+Many updates from Mike Scholz and Kjetil Matheussen.
+
+channels-combined is now the default channel-style.
+
+find changed to find-channel to avoid collision with Scheme's srfi-1.
+  default-output-type -> default-output-header-type,
+  default-output-format -> default-output-data-format
+
+output-name-hook now takes an argument, the current output file name.
+
+removed save-options (use save-state).
+
+added 'Extract' button to Edit|File:Save-as dialogs (to extract a channel).
+
+added 'Reset' buttons to File:New and the raw data dialog.
+
+added 'just-sounds' and 'play selected sound' buttons to various dialogs.
+  and some labels are actually pull-down menus.
+
+error handling much improved in various dialogs, although there's a way's
+  to go still.
+
+removed View:Error history menu item.  A Scheme/Ruby replacement would
+  be trivial (snd-error-hook + string-append, add-to-menu + info-dialog).
+  This menu item dates back to pre-Guile days when error handling was
+  primitive; I'm currently moving toward a system where all errors are
+  reported and handled in the context of the error (not via some global
+  dialog).
+
+file names and other choices are now persistent across most dialog actions.
+
+use libfam (from fam or gamin -- file alteration monitor) in a few cases
+  (more to come) -- auto-update-interval is ignored if fam is in use.  I'm
+  still feeling my way around here -- if Snd hangs in fam or gamin, use
+  the configuration switch --without-fam (and please tell me about it!).
+
+removed edpos arg to make-snd->sample.
+
+removed the possibility of saving a region via C-x w -- it just refers
+  to the selection now.
+
+folded gl-ruby.c into gl.c, xm-ruby.c into xm.c, xg-ruby.c into xg.c.
+  (This was part of an attempt to use Gauche/Stklos/Chicken in place of Guile).
+
+linear-src-channel in dsp.scm.
+
+
+checked: gtk 2.6.8 and 2.7.0|1|2 (a pain), Fedora Core 4 (gcc 4.0), sbcl 0.9.2
+
+
+gtk 2.7.* uses a library named Cairo for drawing and font stuff; there is
+  currently a bug in this library that causes Snd to hang if you have lots
+  of printout in the listener.  It also requires about 20 more libraries:
+
+  ldd snd
+        libguile.so.12 => /usr/local/lib/libguile.so.12 (0x40017000)
+        libguile-ltdl.so.1 => /usr/local/lib/libguile-ltdl.so.1 (0x400a4000)
+        libcrypt.so.1 => /lib/libcrypt.so.1 (0x400bb000)
+        libm.so.6 => /lib/tls/libm.so.6 (0x400e8000)
+        libgtk-x11-2.0.so.0 => /usr/local/lib/libgtk-x11-2.0.so.0 (0x4010a000)
+        libgdk-x11-2.0.so.0 => /usr/local/lib/libgdk-x11-2.0.so.0 (0x403e7000)
+        libatk-1.0.so.0 => /usr/lib/libatk-1.0.so.0 (0x40467000)
+        libgdk_pixbuf-2.0.so.0 => /usr/local/lib/libgdk_pixbuf-2.0.so.0 (0x40480000)
+        libpangoxft-1.0.so.0 => /usr/local/lib/libpangoxft-1.0.so.0 (0x40495000)
+        libpangocairo-1.0.so.0 => /usr/local/lib/libpangocairo-1.0.so.0 (0x4049c000)
+        libpangox-1.0.so.0 => /usr/local/lib/libpangox-1.0.so.0 (0x404a2000)
+        libpangoft2-1.0.so.0 => /usr/local/lib/libpangoft2-1.0.so.0 (0x404ae000)
+        libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x404d1000)
+        libcairo.so.1 => /usr/local/lib/libcairo.so.1 (0x40522000)
+        libpango-1.0.so.0 => /usr/local/lib/libpango-1.0.so.0 (0x40549000)
+        libgobject-2.0.so.0 => /usr/local/lib/libgobject-2.0.so.0 (0x4057d000)
+        libgmodule-2.0.so.0 => /usr/local/lib/libgmodule-2.0.so.0 (0x405b0000)
+        libdl.so.2 => /lib/libdl.so.2 (0x405b5000)
+        libglib-2.0.so.0 => /usr/local/lib/libglib-2.0.so.0 (0x405b8000)
+        libfontconfig.so.1 => /usr/local/lib/libfontconfig.so.1 (0x40636000)
+        libpixman.so.1 => /usr/local/lib/libpixman.so.1 (0x4065b000)
+        libXrender.so.1 => /usr/X11R6/lib/libXrender.so.1 (0x4066f000)
+        libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x40677000)
+        libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x40757000)
+        libpng12.so.0 => /usr/lib/libpng12.so.0 (0x40765000)
+        libglitz.so.1 => /usr/local/lib/libglitz.so.1 (0x40788000)
+        libGLU.so.1 => /usr/local/lib/libGLU.so.1 (0x407ad000)
+        libGL.so.1 => /usr/local/lib/libGL.so.1 (0x40823000)
+        libgtkglext-x11-1.0.so.0 => /usr/local/lib/libgtkglext-x11-1.0.so.0 (0x40a1a000)
+        libgdkglext-x11-1.0.so.0 => /usr/local/lib/libgdkglext-x11-1.0.so.0 (0x40a1f000)
+        libXmu.so.6 => /usr/X11R6/lib/libXmu.so.6 (0x40a70000)
+        libXt.so.6 => /usr/X11R6/lib/libXt.so.6 (0x40a86000)
+        libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0x40ad8000)
+        libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0x40ae1000)
+        libgamin-1.so.0 => /usr/local/lib/libgamin-1.so.0 (0x40af8000)
+        libc.so.6 => /lib/tls/libc.so.6 (0x42000000)
+        libXrandr.so.2 => /usr/X11R6/lib/libXrandr.so.2 (0x40b00000)
+        libXft.so.2 => /usr/local/lib/libXft.so.2 (0x40b04000)
+        libXfixes.so.0 => /usr/local/lib/libXfixes.so.0 (0x40b15000)
+        libXcursor.so.1 => /usr/X11R6/lib/libXcursor.so.1 (0x40b1a000)
+        libz.so.1 => /usr/lib/libz.so.1 (0x40b24000)
+        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
+        libexpat.so.0 => /usr/lib/libexpat.so.0 (0x40b32000)
+        libstdc++.so.5 => /usr/lib/libstdc++.so.5 (0x40b52000)
+        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x40c05000)
+        libpthread.so.0 => /lib/tls/libpthread.so.0 (0x40c0e000)
+
+  and that's only the gtk version!
+
+
+with much help from: Mike Scholz, Kjetil Matheussen, Rob Komar,
+   Anders Vinjar, Phil Reynolds, Jonas Berlin, Chris Chafe,
+   Tim Blechmann, Fernando Lopez-Lezcano
+
+
+(On tap: replace the "current files" list in the View:Files dialog with
+  a panel of operations applicable to the "previous files" list.  Add
+  a preferences dialog, and some global way to get at all the filters.
+  Add fam support to all the directory lists.  Insert/Insert-selection
+  main menus; perhaps Rename/Append.  Key-binding sets to mimic other
+  sound editors.  Much smarter completion choice presentation.  Built-in
+  support for OGG, Flac, Speex, Mpeg, Midi etc (if the relevant programs are
+  accessible during configuration).  Multiple copies of all dialogs (this
+  works now for some dialogs).  Region browser save-as/mix/insert choices.
+  Get rid of the yes-or-no dialog.)
+
+===============================================================================
+
+Snd 7.14:
+
+Many updates from Mike Scholz and Kjetil Matheussen.
+
+channels-combined is now the default channel-style.
+
+find changed to find-channel to avoid collision with Scheme's srfi-1.
+  default-output-type -> default-output-header-type,
+  default-output-format -> default-output-data-format
+
+output-name-hook now takes an argument, the current output file name.
+
+removed save-options (use save-state).
+
+added 'Extract' button to Edit|File:Save-as dialogs (to extract a channel).
+
+added 'Reset' buttons to File:New and the raw data dialog.
+
+added 'just-sounds' and 'play selected sound' buttons to various dialogs.
+  and some labels are actually pull-down menus.
+
+error handling much improved in various dialogs, although there's a way's
+  to go still.
+
+removed View:Error history menu item.  A Scheme/Ruby replacement would
+  be trivial (snd-error-hook + string-append, add-to-menu + info-dialog).
+  This menu item dates back to pre-Guile days when error handling was
+  primitive; I'm currently moving toward a system where all errors are
+  reported and handled in the context of the error (not via some global
+  dialog).
+
+file names and other choices are now persistent across most dialog actions.
+
+use libfam (from fam or gamin -- file alteration monitor) in a few cases
+  (more to come) -- auto-update-interval is ignored if fam is in use.  I'm
+  still feeling my way around here -- if Snd hangs in fam or gamin, use
+  the configuration switch --without-fam (and please tell me about it!).
+
+removed edpos arg to make-snd->sample.
+
+removed the possibility of saving a region via C-x w -- it just saves
+  the selection now.
+
+folded gl-ruby.c into gl.c, xm-ruby.c into xm.c, xg-ruby.c into xg.c.
+  (This was part of an attempt to use Gauche/Stklos/Chicken in place of Guile).
+
+linear-src-channel in dsp.scm.
+
+
+checked: gtk 2.6.8 and 2.7.0|1|2 (a pain), Fedora Core 4 (gcc 4.0), sbcl 0.9.2
+
+
+gtk 2.7.* uses a library named Cairo for drawing and font stuff; there is
+  currently a bug in this library that causes Snd to hang if you have lots
+  of printout in the listener.  It also requires about 20 more libraries:
+
+  ldd snd
+        libguile.so.12 => /usr/local/lib/libguile.so.12 (0x40017000)
+        libguile-ltdl.so.1 => /usr/local/lib/libguile-ltdl.so.1 (0x400a4000)
+        libcrypt.so.1 => /lib/libcrypt.so.1 (0x400bb000)
+        libm.so.6 => /lib/tls/libm.so.6 (0x400e8000)
+        libgtk-x11-2.0.so.0 => /usr/local/lib/libgtk-x11-2.0.so.0 (0x4010a000)
+        libgdk-x11-2.0.so.0 => /usr/local/lib/libgdk-x11-2.0.so.0 (0x403e7000)
+        libatk-1.0.so.0 => /usr/lib/libatk-1.0.so.0 (0x40467000)
+        libgdk_pixbuf-2.0.so.0 => /usr/local/lib/libgdk_pixbuf-2.0.so.0 (0x40480000)
+        libpangoxft-1.0.so.0 => /usr/local/lib/libpangoxft-1.0.so.0 (0x40495000)
+        libpangocairo-1.0.so.0 => /usr/local/lib/libpangocairo-1.0.so.0 (0x4049c000)
+        libpangox-1.0.so.0 => /usr/local/lib/libpangox-1.0.so.0 (0x404a2000)
+        libpangoft2-1.0.so.0 => /usr/local/lib/libpangoft2-1.0.so.0 (0x404ae000)
+        libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x404d1000)
+        libcairo.so.1 => /usr/local/lib/libcairo.so.1 (0x40522000)
+        libpango-1.0.so.0 => /usr/local/lib/libpango-1.0.so.0 (0x40549000)
+        libgobject-2.0.so.0 => /usr/local/lib/libgobject-2.0.so.0 (0x4057d000)
+        libgmodule-2.0.so.0 => /usr/local/lib/libgmodule-2.0.so.0 (0x405b0000)
+        libdl.so.2 => /lib/libdl.so.2 (0x405b5000)
+        libglib-2.0.so.0 => /usr/local/lib/libglib-2.0.so.0 (0x405b8000)
+        libfontconfig.so.1 => /usr/local/lib/libfontconfig.so.1 (0x40636000)
+        libpixman.so.1 => /usr/local/lib/libpixman.so.1 (0x4065b000)
+        libXrender.so.1 => /usr/X11R6/lib/libXrender.so.1 (0x4066f000)
+        libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x40677000)
+        libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x40757000)
+        libpng12.so.0 => /usr/lib/libpng12.so.0 (0x40765000)
+        libglitz.so.1 => /usr/local/lib/libglitz.so.1 (0x40788000)
+        libGLU.so.1 => /usr/local/lib/libGLU.so.1 (0x407ad000)
+        libGL.so.1 => /usr/local/lib/libGL.so.1 (0x40823000)
+        libgtkglext-x11-1.0.so.0 => /usr/local/lib/libgtkglext-x11-1.0.so.0 (0x40a1a000)
+        libgdkglext-x11-1.0.so.0 => /usr/local/lib/libgdkglext-x11-1.0.so.0 (0x40a1f000)
+        libXmu.so.6 => /usr/X11R6/lib/libXmu.so.6 (0x40a70000)
+        libXt.so.6 => /usr/X11R6/lib/libXt.so.6 (0x40a86000)
+        libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0x40ad8000)
+        libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0x40ae1000)
+        libgamin-1.so.0 => /usr/local/lib/libgamin-1.so.0 (0x40af8000)
+        libc.so.6 => /lib/tls/libc.so.6 (0x42000000)
+        libXrandr.so.2 => /usr/X11R6/lib/libXrandr.so.2 (0x40b00000)
+        libXft.so.2 => /usr/local/lib/libXft.so.2 (0x40b04000)
+        libXfixes.so.0 => /usr/local/lib/libXfixes.so.0 (0x40b15000)
+        libXcursor.so.1 => /usr/X11R6/lib/libXcursor.so.1 (0x40b1a000)
+        libz.so.1 => /usr/lib/libz.so.1 (0x40b24000)
+        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
+        libexpat.so.0 => /usr/lib/libexpat.so.0 (0x40b32000)
+        libstdc++.so.5 => /usr/lib/libstdc++.so.5 (0x40b52000)
+        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x40c05000)
+        libpthread.so.0 => /lib/tls/libpthread.so.0 (0x40c0e000)
+
+  and that's only the gtk version!
+
+
+with much help from: Mike Scholz, Kjetil Matheussen, Rob Komar,
+   Anders Vinjar, Phil Reynolds, Jonas Berlin, Chris Chafe,
+   Tim Blechmann, Fernando Lopez-Lezcano
+
+
+(On tap: replace the "current files" list in the View:Files dialog with
+  a panel of operations applicable to the "previous files" list.  Add
+  a preferences dialog, and some global way to get at all the filters.
+  Add fam support to all the directory lists.  Insert/Insert-selection
+  main menus; perhaps Rename/Append.  Key-binding sets to mimic other
+  sound editors.  Much smarter completion choice presentation.  Built-in
+  support for OGG, Flac, Speex, Mpeg, Midi etc (if the relevant programs are
+  accessible during configuration).  Multiple copies of all dialogs (this
+  works now for some).  Region browser save-as/mix/insert choices. Get
+  rid of the yes-or-no dialog.  Etc... -- as always, ideas are welcome --
+  I've somehow become interested in user-interface stuff -- probably just
+  a passing fit)
+
+===============================================================================
+
+Snd 7.13
+
+many improvements thanks to Mike Scholz and Kjetil Matheussen, including:
+  maraca.rb, play.rb, prc95.rb, singer.rb, zip.rb, and extensive additions to snd-test.rb
+  rt.tex
+
+vct* and vct+
+
+region-|selection-|maxamp-position
+
+before-save-as-hook
+
+windowed-maxamp generator (clm.html, dsp.scm)
+
+added comment arg to save-sound-as
+added y-label to axis-info list
+
+beats-per-measure and x-axis-style x-axis-in-measures
+
+harmonicizer -- this splits each portion of a spectrum into a set of harmonics (formant-bank + polynomial)
+  it is similar in spirit to ssb-bank (formant-bank + ssbs -- split spectrum, operate on each piece, reassemble)
+
+create-audit-dialog (snd-motif.scm) for hearing test
+
+show-axes menu choice (View:Axes)
+
+
+CLM: vowel.ins thanks to Michelle Daniels and Oded Ben-Tal.
+
+
+checked: sbcl 0.9.0|1, Mesa 6.2.1 (openGL)
+
+
+with much help from: Michelle Daniels, Oded Ben-Tal, Mike Scholz, Fernando Lopez-Lezcano,
+	Kjetil Matheussen, Richard Rauch, Jelena Zoran, sting, Jonas Berlin, Daniel Zysman,
+        Cris Ewing
+
+===============================================================================
+
+Snd 7.13
+
+many improvements thanks to Mike Scholz and Kjetil Matheussen, including:
+  maraca.rb, play.rb, prc95.rb, singer.rb, and zip.rb
+  rt.tex
+
+vct* and vct+
+
+region-|selection-|maxamp-position
+
+before-save-as-hook
+
+windowed-maxamp generator (clm.html, dsp.scm)
+
+added comment arg to save-sound-as
+added y-label to axis-info list
+
+beats-per-measure and x-axis-style x-axis-in-measures
+
+harmonicizer -- this splits each portion of a spectrum into a set of harmonics (formant-bank + polynomial)
+  it is similar in spirit to ssb-bank (formant-bank + ssbs -- split spectrum, operate on each piece, reassemble)
+
+create-audit-dialog (snd-motif.scm) for hearing test
+
+show-axes menu choice (View:Axes)
+
+
+CLM: vowel.ins thanks to Michelle Daniels and Oded Ben-Tal.
+
+
+checked: sbcl 0.9.0|1, Mesa 6.2.1 (openGL)
+
+
+with much help from: Michelle Daniels, Oded Ben-Tal, Mike Scholz, Fernando Lopez-Lezcano,
+	Kjetil Matheussen, Richard Rauch, Jelena Zoran, sting, Jonas Berlin, Daniel Zysman,
+        Cris Ewing
+
+===============================================================================
+
+Snd 7.12:
+
+marks.rb, draw.rb, poly.rb, musglyphs.rb, and many other improvements thanks to Mike Scholz.
+
+rt-examples.scm and much else thanks to Kjetil Matheussen.
+
+mixer.scm with various matrix/vector functions (determinant, inverse,
+   solve simultaneous linear equations, etc) as applied to mixers/frames.
+
+   mixer-scale is now embedded in mixer* (old name is in snd7.scm), and
+   frame*, frame+, mixer*, and mixer+ take either generator or float args.
+
+   changed interpretation of frame->frame arguments.  To get the old style,
+      you need to reverse the first two args -- the new style reflects the
+      actual matrix multiplication order, which I think makes more sense.
+
+poly.scm with various polynomial-related functions.
+
+added before-save-state-hook and y-axis-label.
+
+moved load-font from C to snd-motif.scm and snd-gtk.scm.
+
+removed xen->sample generator.
+
+changed mus-error-to-string to mus-error-type->string.
+    moved mus-data-format->string and mus-header-type->string from ws.scm to C.
+
+changed moog.scm and prc95.scm to use def-clm-struct, rather than a list.
+    zip.scm (zipper) changed (takes env args now, not thunks, uses def-clm-struct, etc).
+
+added invert-filter and volterra-filter in dsp.scm (also src-duration, for convenience)
+
+
+CLM: removed bessel.lisp -- it was very much out of date, and much of it is
+       now available directly from libm (see note about bes-j0 etc in 7.11)
+
+     added size arg (buffer size) to make-readin, make-file->sample, make-file->frame
+
+     fullmix.ins defaults changed.
+
+
+checked: gtk 2.6.5|6|7
+
+
+with much help from: Mike Scholz, Kjetil Matheussen, Rick Taube, Michael Klingbeil,
+    Anders Vinjar, Fernando Lopez-Lezcano, Bill Sack, Chandrasekhar Ramakrishnan,
+    Oded Ben-Tal, Russell Aspinwall, Orm Finnendahl
+
+
+===============================================================================
+
+Snd 7.11
+
+  Mike Scholz greatly expanded and improved the Ruby stuff in Snd (not to mention
+    many other general improvements): snd_test.rb replaced by snd-test.rb,
+    new files mix.rb, dsp.rb, pvoc.rb -- an amazing addition to Snd!
+
+  Kjetil Matheussen implemented real-time support!  The new files are
+    oo.scm, rt-compiler.scm, and rt-engine.scm -- another amazing addition!
+
+  delay and move-locsig bugfixes thanks to Fernando.
+
+  changed libxm to libxg in gtk case, also xm-version to xg-version
+    added --with-static-xg configure option (same as --with-static-xm)
+
+  added the -export-dynamic loader switch if using Gnu's ld and dlfcn
+
+  band limited sawtooth in dsp.scm (Stilson/Smith/Kritov)
+
+  bes-j0|1|n, bes-y0|1|n, bes-i0, erf|c, lgamma (etc from libm)
+
+  mus-interpolate
+
+  env-channel-with-base
+
+  Ruby side of edit-list->function
+
+  zoom-focus-style can be a function
+
+  polyshape generator (polynomial + oscil)
+
+  mus-chebyshev-first|second-kind (as "kind" arg to partials->polynomial)
+
+  partials->waveshape no longer normalizes the partials (to parallel partials->polynomial)
+
+  gc-off and gc-on are no-ops now in Guile -- the underlying support was
+    removed in the CVS Guile
+
+
+in CMN: Anders Vinjar fixed a bug in display-crescendo
+
+        removed obsolete make-cmn.cl
+
+
+in CLM: Rick fixed a bug in play
+
+        run* cleaned-up finally
+
+        ffi cleaned-up (removed various obsolete linkages)
+
+        removed ACL 4.n support
+
+        sbcl can now handle multi-instrument files and no longer uses the *.sbcl kludge
+
+
+with much help from: Fernando Lopez-Lezcano, Mike Scholz, Kjetil Matheussen,
+  Rick Taube, Anders Vinjar, Kyle Markley, Steve Bankowitz
+
+checked: Intel C 8.1, gtk 2.6.3|4, Sun Workshop C (via S Bankowitz)
+
+===============================================================================
+
+Snd 7.10:
+
+grani.ins translated to Scheme and Ruby by Mike Scholz!
+
+gfm and sndins improvements (see gfm/README) and many other updates thanks to Mike Scholz
+
+CLM: scanned.ins and circular-scanned.ins updates thanks to Juan Reyes
+     added one-cut.ins thanks to Fernando
+
+eval-c.scm improvements thanks to Kjetil S. Matheussen
+
+
+added: colormap?
+       variable-graph?
+       transform?, delete-transform (these refer to add-transform)
+       free-player
+       scentroid (B Battey/CLM) in dsp.scm, and sndwarp (sndwarp.scm)
+       new CLM generator method: mus-reset
+
+changed: transform-hook to after-transform-hook
+         send-netscape to send-mozilla
+
+	 memo-sound to *snd-opened-sound* (CLM also)
+         snd-load-files to *snd-loaded-files*
+         snd-remember-paths to *snd-remember-paths* (default value is now #t)
+           (These changes [try to] make it more obvious that these are variables, not functions)
+
+removed: useless edpos arg to controls->channel
+         support for Motif 1.n and Lesstif
+
+moved: sndsine.c to documentation
+       makesnd.* into makefile.in
+
+
+with much help from: Fernando Lopez-Lezcano, Matt Wright, Mike Scholz, G Vincent Castellano,
+  Michael Uplawski, Juan Reyes, Bill Sack, Kjetil S. Matheussen, Michael Edwards, Ralf Mattes,
+  N J Cross, Jeff Root
+
+
+checked: gtk 2.6.1|2, gsl 1.6, sbcl 0.8.19
+
+===============================================================================
+
+Snd 7.9
+
+bugfixes/improvements thanks to Kjetil Matheussen, including one
+  in the granulate generator that affected the "jitter" argument.
+  also eval-c.scm.
+
+added:  tools/snd.supp -- Valgrind suppressions file for Snd
+          (valgrind turned up numerous minor bugs)
+	quick.html
+        mark-tag-width|height
+        after-save-as-hook, replacing emacs-style-save-as (see snd7.scm)
+        more virtual ops (and removed the "xen-channel" fallback option --
+          this affects the next-to-last optional arg to ptree-channel)
+
+xg (gtk) type checking is much fussier now.
+
+CMN: woodblock glyph and bugfixes from Anders Vinjar.
+
+checked: Guile 1.6.6, gtk 2.5.6 and 2.6.0, sbcl 0.8.17 and 0.8.18
+
+with much help from: Eric Sandall, Julian Stecklina,  Kjetil S. Matheussen,
+  Bruce Beach, Roman Kosellek, Tim Blechmann, Gary Scavone, Michael Uplawski,
+  Anders Vinjar, Russell Aspinwall.
+
+===============================================================================
+
+Snd 7.8:
+
+new version of gfm package (sndlib/gfm) thanks to Mike Scholz,
+  now included (along with sndins) in the Snd tarball.
+  also many other improvements
+
+various bugfixes and improvements thanks to Kjetil S. Matheussen
+
+added:
+  recorder-in-chans
+  vct->string
+  normalize-channel
+  controls->channel
+  sound-data->sound-data (for oscope)
+  rms-envelope in env.scm (based on Bret Battey's rmsenv.ins)
+  edit history pane popup menu (popup.scm and gtk-popup.scm) (unfinished)
+
+  oscope.scm: oscilloscope dialog
+
+removed:
+  track-id arg to mix-selection
+  edpos arg to play-selection
+  mus_audio_save|restore (audio.c) and Scheme/Ruby correlates
+  the dumb buttons at the bottom of the controls (Apply etc)
+    these are now in various popup menus
+
+moved scale-sound-by and scale-sound-to to snd7.scm.
+
+changed handling of recorder-out-chans -- it now sets the max out chans
+  displayed in the recorder dialog, as well as the default output file chans.
+
+checked: gtk 2.5.4|5, sbcl 0.8.16, ruby 1.8.2-preview3
+
+with much help from: Mike Scholz, Heinrich Gudenus, Kjetil S. Matheussen,
+  Dave Phillips, Michal Seta, Thomas F. Bechteler, Frank Barknecht, Peter Lutek,
+  Tim Orford, Juan Reyes
+
+
+===============================================================================
+
+Snd 7.7
+
+new version of sndins and other bugfixes thanks to Mike Scholz
+
+in clm: autoc.ins, scentroid.ins, rmsenv.ins, and sndwarp.ins thanks to Bret Battey
+
+clm: configuration and signum bugfixes thanks to Anders Vinjar
+
+
+added: smart-line-cursor in draw.scm
+	  (a line cursor that ducks under the top right thumbnail graph)
+
+       vct|channel|spectral-polynomial (dsp.scm)
+
+       create-ssb-dialog in snd-motif.scm
+
+       vct-reverse! (mostly to experiment with fancy granulate edit funcs)
+
+       log-freq-start (with more transform dialog widgetry and axis improvements)
+
+       show-sonogram-cursor (tracking cursor in sonogram)
+
+       do? (examp.scm -- do that can be interrupted and continued)
+
+       grid-density (controls axis tick spacing)
+
+       edit-list->function (1st step toward a "sound spreadsheet")
+
+
+removed: mus-inspect, buffer generator.
+           (mus-inspect duplicates the functionality of mus-describe, and given
+	   a decent debbuger, the extra info it provides is unneeded).
+
+         vct-convolve! (see snd7.scm -- was same as convolution function)
+
+         vct->samples and samples->vct (see snd7.scm)
+	   (These were redundant given vct->channel->vct and inconsistent with others)
+
+         list and vector return value choices from map-chan and map-channel (see snd7.scm).
+           float vector as possible arg to formant-bank, fft, or scale-* (use vct) (see snd7.scm).
+           list of vectors as possible arg to graph (use list of vcts)
+           mus-audio-mixer-read|write vector arg is now a vct
+           (I'm trying to reduce the use of vectors as much as possible)
+
+         oscil-bank, mus-bank (see snd7.scm)
+
+         support for gtkglext 0.1 through 0.4
+
+
+changed transform-samples->vct to transform->vct, region-samples->vct to region->vct,
+	transform-samples-size to transform-frames. (Old forms are in snd7.scm).
+
+checked: gtk 2.5.2|3, Mesa 6.1, sbcl 0.8.14|5
+
+with much help from: Michael Klingbeil, Anthony Kozar, Bret Battey, Anders Vinjar,
+     Mike Scholz, Paul Winkler, Marv Smoak
+
+
+(Snd has lumbered over the 400,000 line mark -- 250000 C, 110000 Scheme,
+30000 Ruby, and a few thousand of m4, lisp, emacs-lisp etc)
+
+===============================================================================
+
+Snd 7.6
+
+Most of the work in this period went into clm-3, but there were some
+changes to Snd:
+
+  numerous improvements and bugfixes from Kjetil Matheussen, including the
+    snd-ls package.
+
+  added mixer-scale, mixer+, make-scalar-mixer, continue-frame->file
+    run-safety, clm-table-size (filling in a few CLM gaps, making the
+    Scheme version of with-sound the same as the CL version)
+
+  new run-time function args to phase-vocoder and granulate (and run support)
+
+  channel-distance in dsp.scm
+
+  configure switches:
+    --with-midi            include midi.o (sndlib midi module), default: no
+    --with-hobbit          include arity check support for hobbit, default: no
+    --with-builtin-gtkrc   include built-in fallback gtkrc, default: yes
+
+  out-chan argument to add-player so that channel data can be sent to any audio channel
+    (also play, play-and-wait, play-channel, play-mono-as-stereo example in extsnd.html)
+    added players (a list of currently active players)
+
+  new tools directory with various Snd development scripts
+
+  forward/back buttons on the help dialog
+
+  removed built-in Hadamard transform
+
+Checked: Fedora Core 2, gsl 1.5, gtk 2.4.4/2.5.0/2.5.1, Ruby 1.8.2, sbcl 0.8.12/0.8.13
+  also many changes reflecting those in recent versions of Guile
+
+With much help from: Cris Ewing, Kjetil S. Matheussen, Mike Scholz,
+  Anders Vinjar, Robert Jonsson, Guillaume Germain, Oded Ben Tal
+
+
+===============================================================================
+
+Snd 7.5
+
+snd-hobbit.scm from Kjetil -- support for the Hobbit Scheme compiler in Snd!
+  gtk support in fft-menu.scm (and many other improvements) thanks to Kjetil
+
+Steve Sykes got Snd to run in Cygwin/Windows (with Guile and Motif)!
+
+configure switch --with-doc-dir (for gentoo)
+  also new variables GUILE_CONFIG_name and GUILE_name (for OSX/fink)
+
+The Snd/sndlib/CLM build process now requires configure -> config.h.
+  for the case of CLM on the old Mac (OS9 etc),  it might work to just
+    make an empty file named config.h
+  in the CL CLM, you can force configure to run with the *feature* #+reconfigure
+
+removed stop-playing-region-hook, stop-playing-channel-hook, before-apply-hook
+  added stop-function arg to play, play-and-wait, play-selection, play-region, add-player
+  cursor-update-interval (tracking cursor redraw rate if it is tracking the DAC)
+  cursor-location-offset (tracking cursor position fixup)
+
+added add-colormap, delete-colormap, colormap-size, colormap-name, changed colormap-ref
+  removed 2 previously built-in colormaps, added rainbow colormap
+  default colormap is 0 (black and white)
+  new error: 'no-such-colormap
+
+ssb-am generator in CLM
+  ssb-bank (dsp.scm) for pitch/duration changes, ssb-bank-env to add freq env
+  ssb-fm
+  distribution arg to make-rand, make-rand-interp
+  removed mus-x*|y*|a*|b*, replaced by mus-x|ycoeff
+
+periodogram in dsp.scm
+  edot-product (clm.c) (for DFT-related stuff like stretch-sound-via-dft)
+  read-ascii (examp.scm) (raw text as sound file data format)
+  complex number support in xen (xen.h) (in Guile -- I don't think Ruby has complex numbers)
+
+checked: cmucl 19a, gtk 2.4.2|3, sbcl 0.8.11
+
+With much help from: Kjetil S. Matheussen, Anders Vinjar, Michael Edwards,
+  Stephen Sykes, Cris Ewing, Meino Cramer, Heinrich Gudenus
+

-- 
snd packaging



More information about the pkg-multimedia-commits mailing list