[SCM] snd/master: Updated version 17.5 from 'upstream/17.5'

umlaeute at users.alioth.debian.org umlaeute at users.alioth.debian.org
Wed Aug 16 19:53:22 UTC 2017


New upstream version 17.5
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
X-Git-Refname: refs/heads/master
X-Git-Reftype: branch
X-Git-Oldrev: 27618cb4e90d9086f63ca4bf0cabc1740d4b62a6
X-Git-Newrev: d5a71a61242b389a38bcb18c0546a1177ebcc89a

The following commit has been merged in the master branch:
commit 3180ec4925e864fa30c06dc91a461acb97be772e
Merge: 27618cb4e90d9086f63ca4bf0cabc1740d4b62a6 5a088b89e9cce5dce3daf2aca5e8c2ed3dd59fff
Author: IOhannes m zmölnig <zmoelnig at umlautQ.umlaeute.mur.at>
Date:   Wed Aug 16 20:26:25 2017 +0200

    Updated version 17.5 from 'upstream/17.5'
    
    with Debian dir 851118fc0cb4f752931fbd94a8b4532f2a8dc0bc

diff --combined debian/upstream-changelog
index 0d13bce,0000000..fba0738
mode 100644,000000..100644
--- a/debian/upstream-changelog
+++ b/debian/upstream-changelog
@@@ -1,9085 -1,0 +1,9099 @@@
++Snd 17.5:
++
++s7: s7_history and s7_add_to_history (Kjetil's suggestion).
++    (*s7* 'history) for non-error scheme-side access to the history info
++    lambda* keyword argument handling changed slightly.
++    multithread sanity-checks thanks to Kjetil.
++    Kjetil also ported s7 to mingw.
++
++checked: gtk 3.91.0, sbcl 1.3.18, FC 26 (gcc 7.1.1)
++
++Thanks!: Kjetil Matheussen, Rick Taube
++
++===============================================================================
++
 +Snd 17.4:
 +
 +the clm optimizer has been totally rewritten.
 +s7 new built-in function: type-of
 +
 +checked: gtk 3.90.0, sbcl 1.3.17
 +
 +Thanks!: Tito Latini, Kjetil Matheussen, Renato Fabbri.
 +
 +===============================================================================
 +
 +Snd 17.1:
 +
 +*rootlet-redefinition-hook*
 +{apply_values} -> apply-values, {list} -> list-values, {append} -> append
 +a case clause without a result returns the selector
 +(*s7* 'autoloading) to turn the autoloader on and off
 +sandbox in stuff.scm for protected evaluation
 +
 +in clm: clm.asd updated by Tito Latini.
 +
 +checked:  gsl 2.2.1, gtk 3.89.2, sbcl 1.13.3, FreeBSD 11.0
 +
 +Thanks!: Tito Latini, Kjetil Matheussen, Juan Cerillo, Mike Scholz.
 +
 +
 +===============================================================================
 +
 +Snd 17.0.
 +
 +Tito Latini fixed many bugs, especially in save-state and snd-mix,
 +  and made it possible to move dialogs between desktops in Motif.
 +
 +Mike Scholz updated snd-test.fs|rb and made clm.rb compatible
 +  with the latest Ruby.
 +
 +checked: gtk 3.22.2|3|4, gtk 3.89.1, sbcl 1.3.11|12.
 +
 +Thanks!: Mike Scholz, Anders Vinjar, Tito Latini, Kjetil Matheussen,
 +         IOhannes m zmölnig.
 +
 +
 +===============================================================================
 +
 +Snd 16.9:
 +
 +Anders Vinjar provided tankrev.scm
 +Tito Latini fixed a bug in clm's tap generator (discovered by AV).
 +
 +Snd: removed snd13.scm
 +
 +s7: make-keyword -> string->keyword
 +
 +checked: FC 25, gtk 3.21.6 3.22.0|1, sbcl 1.3.10
 +  in gtk 3.22.0, the basic display mechanism changed again(!) so
 +  (at least today) the window-manager close decoration is messed up,
 +  and I probably missed other troubles -- please let me know
 +  as you encounter them.
 +
 +Thanks!:  Anders Vinjar, IOhannes m zmölnig, Tito Latini.
 +
 +
 +===============================================================================
 +
 +Snd 16.8.
 +
 +cmn: Michael Edwards got cmn to work in ECL.
 +
 +s7: object->let
 +    changed ->byte-vector to string->byte-vector
 +    let-temporarily is now built-in
 +
 +checked: sbcl 1.3.8|9, gtk 3.21.5
 +
 +Thanks!: Michael Edwards.
 +
 +===============================================================================
 +
 +Snd 16.7.
 +
 +changed compute-string and compute-uniform-circular-string to vibrating-string, etc.
 +
 +checked: gtk 3.21.3|4, sbcl 1.3.7.
 +
 +Thanks!: Carlos Carrasco
 +
 +===============================================================================
 +
 +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