[SCM] snd/master: Updated version 17.6 from 'upstream/17.6'
umlaeute at users.alioth.debian.org
umlaeute at users.alioth.debian.org
Wed Aug 16 19:53:25 UTC 2017
New upstream version 17.6
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 5a7baab562cbd595a0a8d6eefd5620ffc2a5b4f2
Merge: 3180ec4925e864fa30c06dc91a461acb97be772e 75bedf4141806f1b12c07964ae633c6893a2efa6
Author: IOhannes m zmölnig <zmoelnig at umlautQ.umlaeute.mur.at>
Date: Wed Aug 16 20:29:17 2017 +0200
Updated version 17.6 from 'upstream/17.6'
with Debian dir e6f5ad49546556b51a08c9a6d36802e7d0f6fcbc
diff --combined debian/upstream-changelog
index fba0738,0000000..51c03b9
mode 100644,000000..100644
--- a/debian/upstream-changelog
+++ b/debian/upstream-changelog
@@@ -1,9099 -1,0 +1,9117 @@@
++Snd 17.6.
++
++s7: (*s7* 'heap-size) is settable
++ added s7_define_typed_function_star to s7.h
++ changed to the new (c99?) int64_t style int types.
++ added two optional args to c-pointer: type, info
++ and added s7_is_c_pointer_of_type.
++ libgtk_s7.c (in-progress)
++
++clm: removed clm-default-frequency
++ object->let support for generators
++
++checked: sbcl 1.3.19|20, gtk 3.91.1
++
++Thanks!: Mike Scholz, James Hearon
++
++===============================================================================
++
+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