snd change log


2002 ----------------------------------------------------------------

  3-Dec:     snd-5.5.
  28-Nov:    add-tooltip in snd-motif.scm.
  23-Nov:    draw-mark-hook.
  20-Nov:    xm-enved.scm.
  19-Nov:    reopen menu example in examp.scm.
  13-Nov:    edit123.scm by Tom Roth added to contrib directory.
             emacs-style-save-as.
  10-Nov:    new-widget-hook.
  5-Nov:     snd 5.4.
  29-Oct:    added contrib/dlp directory with Dave Phillips' ladspa plugin stuff.
  15-Oct:    multichannel ladspa plugins, ladspa-dir.
  12-Oct:    various regularized *-channel functions.
  8-Oct:     snap-mix|mark-to-beat.
  5-Oct:     x-axis-in-beats, beats-per-minute.
  1-Oct:     Snd 5.3.
  26-Sep:    after-edit-hook.
  24-Sep:    changed mus-sound-max-amp to mus-sound-maxamp to match all other such cases (old name still exists)
  18-Sep:    backwards incompatible change to save-state of small regions.
  17-Sep:    section-scale-by renamed scale-sound-by (more consistent), also scale-sound-to.
  14-Sep:    peak-env.scm.
  7-Sep:     define-selection-via-marks in marks.scm. 
	     removed --with-snd-conf and --with-ccrma, added --with-temp-dir, --with-save-dir.
  4-Sep:     eps-size.
  3-Sep:     mix-file-dialog.
             optional position arg to add-to-menu.
  1-Sep:     zero-phase, rotate-phase in dsp.scm (Scott McNab).
             region-play-list in examp.scm.
  31-Aug:    snd 5.2.
  29-Aug:    added edit-menu.scm and merged in Dave Phillips' changes for effects.scm.
  28-Aug:    after-apply-hook, before-apply-hook.
  24-Aug:    add-amp-controls in snd-motif.scm, add-notes in examp.scm.
  21-Aug:    added explicit FIR/FFT choice to envelope editor (enved-filter).
             fft-squelch in examp.scm.
  20-Aug:    add-listener-popup, fft-popup in popup.scm.
  17-Aug:    GSL 0.9. Gtk+extra 0.99.16.
  16-Aug:    removed load-colormap.
  14-Aug:    recorder-in-device for OSS.
  13-Aug:    stop-dac-hook, file-save-as-dialog, stop-playing-selection-hook.
             remember-sound-state in extensions.scm.
  10-Aug:    make-level-meter, with-level-meters in snd-motif.scm.
             dac-hook, sound-data-maxamp.
  9-Aug:     show-smpte-label in snd-motif.scm.
             region-graph-style.
  7-Aug:     snd-print locale bugfix (thanks to Ludger Brummer).
             makefile.in prefix bugfix (thanks to Marc Herbert).
             edit-save-as-dialog (for selection popup menu in snd-motif.scm).
  6-Aug:     drop file into channel graph mixes at cursor.
             make-sound-box, select-file, snd-clock-icon in snd-motif.scm.
  3-Aug:     moved listener widget to main-widgets list.
             add-selection-popup in snd-motif.scm.
  2-Aug:     mark-hook and add-mark-pane in snd-motif.scm.
  1-Aug:     region browser display bugfix (thanks to Dave Phillips).
             check-for-unsaved-edits in extensions.scm.
  28-Jul:    removed set-pixmap, make-pixmap (see snd-motif.scm replacement).
  27-Jul:    zync/unzync, make-hidden-controls-dialog in snd-motif.scm.
  26-Jul:    added 'play selected sound' button to open file dialog.
             previous-files-select-hook, open-file-dialog, install-searcher (grfsnd.html).
             snd-motif.scm.
  25-Jul:    snd 5.1.
             removed snd-gtk.scm (guile-gtk is no longer supported).
             removed add/remove-idler/input.
  23-Jul:    xm.c (Motif module).
  12-Jul:    ALSA 0.9 support from Fernando.
  9-Jul:     xen.c, xen.html.  
  6-Jul:     sg.h, sl.h, noguile.h, sr.h, sz.h -> xen.h.
             snd-scm.c, clm2scm.[ch], sndlib2scm.[ch] -> xen for scm.
             many internal name changes to change scm to xen.
  5-Jul:     Ruby support.
  3-Jul:     added -b (-batch) switch for scripts.
             snd-4 compatibility names are no longer built-in (use snd4.scm).
  1-Jul:     gtk+extra 0.99.15.
             snd-trace in extensions.scm.
  28-Jun:    find enhancements (see snd.html and examp.scm); find-pitch.
             colormap-ref, colormap-size.
  26-Jun:    sound-files-in-directory returns a list, not a vector (to be consistent with CLM).
  25-Jun:    gcc 3.0.
	     added type and comment args to save-region, and moved format arg after type (to be consistent with other such calls).
             mouse-click-hook.
             reverse-track (mix.scm).
             mus-sound-max-amp now returns (and takes) a list, not a vector.
  21-Jun:    dsp.scm, autosave.scm, extensions.scm.
             find-mix.
  20-Jun:    read-hook. hooks.scm. snd-debug in extensions.scm.
  19-Jun:    removed snd-main-shell -- use (cadr (main-widgets)) instead.
             make-pixmap and set-pixmap.
             moved Snd-4 stuff from examp.scm to snd4.scm.
             clone-sound-as in extsnd.html, remove-clicks in examp.scm.
  18-Jun:    GSL 0.8. Gtk+-1.2.10.
             display-current-window-location in draw.scm.
             example of Snd as script engine in grfsnd.html with added script-arg and script-args.
  16-Jun:    snd 5.0.
             corruption-time -> auto-update-interval.
  13-Jun:    previous-files-sort-procedure (for View:Files dialog).
  12-Jun:    x-axis-style can be channel-local.
  7-June:    added Reset button to envelope editor (to return to initial state).
	     yes-or-no-p -> yes-or-no?
  5-June:    replaced wavo by time-graph-type, graph-time-once, graph-time-as-wavogram (analogous to transform-graph-type).
  4-June:    configure.ac for autoconf 2.50.
             prepended "zoom-" to the zoom-focus-style choices (e.g. zoom-focus-left).
             added axis- to x-axis-style choices (e.g. x-axis-in-samples). x-to-one -> x-axis-as-percentage.
             added print-hook.
             graphing -> graph-lisp?, ffting -> graph-transform?, waving -> graph-time?,
             fft-graph -> transform-graph, fft-beta -> fft-window-beta, fft-hook -> transform-hook,
             transform-size -> transform-samples-size, fft-size -> transform-size, fft-style -> transform-graph-type,
             before-fft-hook -> before-transform-hook, max-fft-peaks -> max-transform-peaks,
             show-fft-peaks -> show-transform-peaks, normal-fft -> graph-transform-once,
             sonogram -> graph-transform-as-sonogram, spectrogram -> graph-transform-as-spectrogram,
             normalize-by-channel -> normalize-transform-by-channel, normalize-by-sound -> normalize-transform-by-sound,
             normalize-globally -> normalize-transform-globally, normalize-transform -> transform-normalization,
             update-fft -> update-transform, update-graph -> update-time-graph, dont-normalize -> dont-normalize-transform.
  1-June:    add-to-menu and remove-from-menu can affect the popup menu.
             region handling changed to use the region "id", not its current stack position.
               many related changes: 
                 region-* procedures take the id as the region number argument.
                 removed: select-region, select-region-hook, id-region, region-id
                 renamed: delete-region -> forget-region.
             added selection-chans, selection-srate (since regions may be disassociated from the selection).
             with-big-colormap is now the default.
             removed all the map and scan functions except map-chan and scan-chan
               (the rest can be easily re-implemented using loops, sample-readers, set-samples, and sync -- see examp.scm).
             removed all the temp-to-sound|selection (and vice versa) functions (and temp-filenames)
               (these were redundant since set-samples can take a filename -- see examp.scm for re-implementations)
             Snd version 5.0 due to these changes.
             added channel arg to save-selection and set-samples (for multi-file selection saves)
	     added make-selection (examp.scm).
	     removed env-base.
  29-May:    combined channel-style and uniting under the name channel-style (uniting removed).
             dac-folding -> dac-combines-channels (not sure about this name change).
             C-x x|n|x_x|n key support ("eval expression") removed (was useless and broken).
               These four keys can be re-implemented using bind-key and as-one-edit.
             added c-g! (simulates typing C-g).
  28-May:    renamed enved-exping -> enved-exp?, enved-waving -> enved-wave?, enved-clipping -> enved-clip?
               amplitude-env -> enved-amplitude, srate-env -> enved-srate, spectrum-env -> enved-spectrum
             removed save-state-on-exit (use exit-hook with save-state).
             removed activate-listener and hide-listener (the latter is now (set! (show-listener) #f)).
  27-May:    replaced mix-sound-channel and mix-sound-index by mix-home.
             added player-home.  
             Added "control" to the various control panel names:
               amp -> amp-control, contrast -> contrast-control, contrast-amp -> contrast-control-amp, 
               contrast-func -> contrast-control-procedure, contrasting -> contrast-control?, expand -> expand-control, 
               expand-hop -> expand-control-hop, expand-length -> expand-control-length, expand-ramp -> expand-control-ramp, 
               expanding -> expand-control?, filtering -> filter-control?, filter-order -> filter-control-order, 
               filter-env -> filter-control-env, reverb-decay -> reverb-control-decay, reverb-feedback -> reverb-control-feedback, 
               reverb-funcs -> reverb-control-procedures, reverb-length -> reverb-control-length, reverb-lowpass -> reverb-control-lowpass, 
               reverb-scale -> reverb-control-scale, reverbing -> reverb-control?, speed -> speed-control, speed-as-float -> speed-control-as-float, 
               speed-as-ratio -> speed-control-as-ratio, speed-as-semitone -> speed-control-as-semitone, speed-style -> speed-control-style, 
               speed-tones -> speed-control-tones, filter-dBing -> filter-control-in-dB, enved-dBing -> enved-in-dB.
             renamed filter-env-order -> enved-filter-order.
	     Some rationale: 
                Scheme uses "procedure" rather than "function" and "?" for booleans.
	        The control names ("amp" in particular) were too likely to be confused or shadowed.
                filter-env-order was too similar to filter-order (and not obvious it meant the envelope editor filter order)
                These names actually predated the decision to use Guile -- I didn't foresee 4 years ago where Snd was headed.
  26-May:    removed fit-data-on-open; here's a replacement:
               (define (fit-data snd chn dur)
                 (let ((mx (maxamp snd chn)))
                   (list 0.0 dur (- mx) mx "time" (- mx) mx)))
               (add-hook! initial-graph-hook fit-data #t) ; #t to make sure env restorers get to function first
             added 'extended' arg to bind-key et al so C-x keys can be bound.
             example of zero-crossing based C-p, C-n, and C-k in extsnd.html (bind-key).
             save-control-panel renamed save-controls, similarly for reset-controls and restore-controls 
               (these now parallel show-controls and apply-controls).
             mark->sound renamed mark-home (the arrow is out of place here, and it's returning the sound-channel list).
	     added sample-reader-home.
  25-May:    removed open-alternate-sound -- is exactly the same as close-sound + open-sound.
             removed earlier scm_apply optimizations ("Rule #1 of optimization: don't do it").
             removed normalize-on-open (use after-open-hook and equalize-panes):
               (add-hook! after-open-hook (lambda (snd) (equalize-panes)))
             renamed normalize-view to equalize-panes.\n\
  24-May:    removed line-size, prefix-arg (it's now an optional arg to the key function).
             ignore-prefix arg to bind-key removed, Snd no longer handles prefix itself.
             removed cut (use delete-selection).
	     call-apply renamed apply-controls.
	     prompt-in-minibuffer callback func now takes only the response arg (no longer the snd index).
  23-May:    OSS fragment defaults changed -- see extsnd.html or HISTORY.sndlib.
   	         old default was (set-oss-buffers 4 12) but 2 12 is usable in most cases.
             fft-smoother added to examp.scm.
             smooth renamed smooth-sound.
  22-May:    widget-text (mainly for auto-testing).
  21-May:    Gtk version can now use the mozilla embedded browser for the help dialog.
             hankel-jn (default 0.0) for Bessel choice in Hankel transform.
             removed raw-srate, raw-chans, raw-format, and use-raw-defaults (use open-raw-sound-hook instead), erase-rectangle.
             mouse-enter|leave-text-hook now works in Gtk version as well as Motif.
  20-May:    snd 4.14.
  18-May:    Gtk+ version was forgetting to make the listener menu active! (thanks to Dave Phillips)
  14-May:    continuable errors -- deleted the next day (gc troubles).
  11-May:    selection-to-temp was writing files that Sox et al can't read (thanks to Matti Koskinen).
  9-May:     support for GSL 0.7+.
  7-May:     added edit-position arg to various play functions, save-sound-as, scan/map/find funcs, frames and maxamps.
             "vector synthesis" in examp.scm.
             Guile 1.5.
  1-May:     Alpha (64-bit) and FreeBSD (Old OSS) fixups.
  29-Apr:    describe-audio replaced by mus-audio-describe.
  28-Apr:    noguile play segfault caused by backwards NOT_BOUND_P macro (thanks to Bob Sturm).
  26-Apr:    in user-written makefiles, -DHAVE_GUILE=0 should be changed to -DHAVE_EXTENSION_LANGUAGE=0
  25-Apr:    snd.1 (and mandir business in makefile.in)
  24-Apr:    added mouse-enter|leave-text-hook.
  23-Apr:    snd 4.13.
  19-Apr:    use GSL_IEEE_MODE if it exists.
  17-Apr:    Haar transform.
  16-Apr:    mus-out-format, listener-selection.
  9-Apr:     noguile.h, sl.h (moving toward Librep support, and maybe Ruby).  
  29-Mar:    drop-hook.
  23-Mar:    removed syncing (use sync), and abort? (use c-g?).
             removed support for Guile 1.3.0 (Snd now needs 1.3.4 or later).
             select-region-hook, select-mix-hook.
  22-Mar:    removed snd-noscm.c.
             sndlib-scm calls that fail throw 'mus-error now, rather than returning -1.
             files-popup-buffer in examp.scm (thanks to Anders Vinjar).
             select-sound-hook, select-channel-hook.
  21-Mar:    mus-expand-filename.
             open-raw-sound-hook (old raw-* variables are obsolete).
  20-Mar:    mouse-enter-label hook function needs full filename (thanks to Anders Vinjar).
  19-Mar:    snd 4.12.
             removed gdbm support from sndlib.
  16-Mar:    read|write-peak-env-info-file.
  15-Mar:    tested ok with gtk 1.2.9.
             src-sound with negative envelope bugfix, also the interpretation of the
               envelope arg is changed to be consistent with the envelope editor src function.
               '(0 1 1 1) now returns no change (src ratio of 1 throughout -- the value is used
               directly, rather than being an offset from 1.0.
  14-Mar:    dac reverb segfault in ALSA with Midiman delta bugfix (thanks to Oded Ben-Tal).
             peak-env-info.
  13-Mar:    removed initial-x0, initial-x1, initial-y0, initial-y1, and replaced with
               initial-graph-hook -- this is a non-backwards compatible change!
             added add-idler, remove-idler (background process)
             removed (long obsolete) showing-controls (replaced by show-controls)
  12-Mar:    musglyphs.scm.
  10-Mar:    moved grfsnd.html index to new file: index.html.
  9-Mar:     removed *.txt
             mouse-enter|leave-graph|listener-hook.
             show-widget, hide-widget, focus-widget.
  7-Mar:     mouse-enter|leave-label-hook, listener-text-color, axis-info.
             nb.scm
  5-Mar:     Guile-level graphics changes (to unify Motif and Gtk in this regard):
             removed all the guile-gtk-specific procedures (except sg-options-menu-widget and sg-menu-bar-widget).
             added cursor-size, cursor-position, cursor-style can be a procedure.
               time-graph, fft-graph, lisp-graph, cursor-context, copy-context.
               position->x, position->y, x->position, y->position.
               foreground-color, load-font, current-font, widget-position, widget-size.
               draw-dot, draw-line, draw-dots, draw-lines, draw-string.
               fill-rectangle, erase-rectangle, fill-polygon.
               main-widgets, menu-widgets, sound-widgets, channel-widgets, dialog-widgets.
               lisp-graph-hook, recolor-widget, show-backtrace.
               make-graph-data, graph-data, property-changed-hook.
  28-Feb:    added enved-hook with enved-add-point, enved-delete-point, and enved-move-point.
  27-Feb:    removed cursor-claim-selection (was identical to cursor-update-display).
  26-Feb:    Tab-completion is much smarter in Guile 1.4.1.
  23-Feb:    --with-gsl is the default in configure.
  21-Feb:    snd 4.11.
  14-Feb:    vct func now built-in (was in examp.scm).
  13-Feb:    added search-procedure, key-binding.
  12-Feb:    added Wakefield's freeverb, changed user-defined reverb handlers.
  6-Feb:     removed expand-funcs: it could not have worked given the "hidden controls" exposure.
  30-Jan:    rtio.scm.
  29-Jan:    pvf headers.
  23-Jan:    no-gui version now reads ~/.snd (thanks to Eliot Handelman).
  16-Jan:    fm.html, sndscm.html.
  15-Jan:    snd 4.10.
  9-Jan:     rubber-sound in rubber.scm.

2001 ----------------------------------------------------------------

  28-Dec:    filter-sound|selection can be passed any CLM filtering gen (Butterworth in examp.scm).
  21-Dec:    env|src-sound|selection can be passed CLM env.
  18-Dec:    enved.scm (suggested by Anders Vinjar).
             play-hook, player?.
  15-Dec:    update-lisp-graph. graph data arg can be envelope.
             graph-style can apply to time, transform, and lisp graphs independently.
  13-Dec:    prc95.scm (Perry Cook's physical modelling examples).
  12-Dec:    ws.scm (more elaborate with-sound implementation).
             save-listener.
             play-syncd-marks (marks.scm).
  11-Dec:    snd 4.9.
  7-Dec:     zero-pad bugfixes.
  29-Nov:    before-fft-hook, string completion from help list.
  28-Nov:    BSD support thanks to Steven Schultz.
             Dolph-Chebyshev window if HAVE_GSL.
  24-Nov:    fht (Hartley transform).
  21-Nov:    abort? -> C-g?.  edit-tree and display-edits documented.
  17-Nov:    esd support thanks to Nick Bailey.
  14-Nov:    un-normalized fft display bugfix.
  13-Nov:    mark-drag-hook.
  11-Nov:    insert-silence.
  10-Nov:    snd 4.8.
  8-Nov:     filter text field also has history (M-p) now.
  7-Nov:     shell (readline) style M-p and M-n in minibuffer with variable minibuffer-history-length (8).
  6-Nov:     various cosmetic changes for the new g++ (Redhat 7.0).
             insert-sound arguments changed (to match mix-sound more closely).
             added TODO.Snd.
  2-Nov:     insert-selection, mix-selection, delete-selection.
  1-Nov:     filter-env-in-hz switch.
  31-Oct:    syncing -> sync. Set! extended to frames, maxamp, x|y-zoom|position-slider.
  30-Oct:    examp.scm soft-port example of redirecting display to Snd's listener.
             support for GSL 0.7.
             scale-selection-to bugfix.
             selection-creates-region switch.
  25-Oct:    emacs subjob 'read: unexpected ")"' bugfix.
  24-Oct:    eps-bottom-margin and eps-left-margin (for Print command). menu-hook.
  23-Oct:    interface to mixes changed:
               mix consoles are now in a separate dialog, each mix displayed with a tag and its waveform.
               removed mix-console-state, mix-console-state-changed-hook, show-mix-consoles.
               removed mix-console-amp-scaler, mix-console-speed-scaler, mix-waveform-color.
               changed mix-console-y to mix-tag-y, Show Consoles menu item to Mix Panel.
               changed with-mix-consoles to with-mix-tags, mix-focus-color to selected-mix-color.
               show-mix-waveforms default is #t.
               removed snd-gtkfixed.*.
               added mix-tag-width and height, mix-panel.
             removed .sndrc and other related stuff.
             removed Show Marks menu item.
  16-Oct:    snd 4.7.  
             optional environ arg to loop-samples and clm example to grfsnd.html.
  11-Oct:    delete button in envelope editor.
  10-Oct:    removed scaler arg to mix-region and associated kbd scaler arg.
  9-Oct:     bird.scm.  added origin arg to as-one-edit.
  6-Oct:     removed chans arg to mix-vct.
  4-Oct:     enved-active-env and enved-selected-env.
  3-Oct:     scale-by and scale-to now use embedded fragment scalers.
  2-Oct:     audio-input-device.
  27-Sep:    showing-controls -> show-controls. data-format and header-type now return just the sndlib int.
  22-Sep:    removed override-data-format|header-type|data-location and replaced with
               generalized set! of header fields.
  18-Sep:    snd 4.6.
	     selection now follows the edit history lists.
             selection-beg is now selection-position (to be consistent with everything else).
  12-Sep:    effects.scm.
  11-Sep:    generalized set! now built-in (the set-* forms still exist for old versions of Guile).
               removed setf.scm.
               x-bounds and y-bounds setters now take a list of (low high) values.
  8-Sep:     make-player, add-player, stop-player, start-playing (and make-amp-controls example in snd-gtk.scm).
             changed setf.scm to use Guile 1.4's generalized set! (rather than setf).
  6-Sep:     gtk menu accelerators, stop-playing-channel-hook, just-sounds-hook.
  5-Sep:     changed Apply button handling -- control-click now for selection.
             HAVE_GTKEXTRA to support libgtkextra's icon-oriented file selector.
  31-Aug:    gtk popup menu fixed.
  30-Aug:    new snd.spec thanks to Fernando Lopez-Lezcano.
             snd-emacs errors now go to emacs, play-region notices its wait argument (thanks to Anders Vinjar).
             sash-color, gtk CLM/Snd connection finally works.
  28-Aug:    more gtk-related bugfixes.
  24-Aug:    drag-and-drop bugfixes.
  23-Aug:    removed -s startup switch.
  22-Aug:    removed snd-gdac.c, snd-xdac.c.
  19-Aug:    removed special-case Lesstif support.
  18-Aug:    scan and map-chan and friends (including find and count-matches)
               no longer call the function with #f at the end -- this is a non-backwards-compatible change.
               The #f call can be implemented using closures (see data-max example), the early exit
               with continuations, and the possible end-extension with insert and as-one-edit.
  17-Aug:    recorder work (one serious bug fixed).
  14-Aug:    snd 4.5.
  10-Aug:    extsnd.html re-organized.
             wavo,wavo-hop,wavo-trace,line-size,max-fft-peaks,show-fft-peaks,zero-pad,fft-style,fft-window,
               verbose-cursor,fft-log-frequency,fft-log-magnitude,min-dB,wavelet-type,fft-size,fft-beta,transform-type,
               normalize-fft,show-mix-consoles,show-mix-waveforms,graph-style,dot-size,show-axes,graphs-horizontal,
               spectro-x|y|z-angle|scale,spectro-hop,spectro-cutoff,spectro-start can be treated as channel-local.
             reverb-decay,speed-tones,speed-style can be treated as sound-local.
             Snd builds and runs in Mac OS-X.
  3-Aug:     C-q with moving cursor bug, extended normalize-fft choices (Daniel Aronovitch).
             show-y-zero, show-marks can be local to a given sound or channel.
  2-Aug:     compute-uniform-circular-string in examp.scm.
  1-Aug:     removed xmin,xmax,ymin,ymax (redundant and pointless).
  31-Jul:    amp env subsampling, C-x v, and superimposed fft bugs (thanks to Daniel Aronovitch).
             control panel funcs (set-amp etc) can take snd arg = #t -> all sounds.
             snd-gtk.scm make-control-dialog to expose hidden control-panel variables.
  28-Jul:    use throw for error handling.
  27-Jul:    (read-set! keywords 'prefix) is now built-in.
  26-Jul:    Snd now uses clm for all control-panel functions (play/apply).
             name-click-hook, show-indices.
             ladspa-related bugfix thanks to Jorn Nettingsmeier.
  24-Jul:    snd-tempnam, sound-interp gen in examp.scm and env-sound-interp
  20-Jul:    sum-of-sines, phase-vocoder.
  18-Jul:    play-selection and added end arg to play etc.
             C-u 0 C-x p -> play region 0, C-x p -> play selection.
  17-Jul:    optargs keyword bug was caused by string-length which existed for guile 1.3.0 (fixed).
  14-Jul:    Snd appears to work in FreeBSD (thanks to Heiko Recktenwald).
             pvoc.scm, loop.scm, fmv.scm.
             -l no longer necessary -- if file has .scm extension, it is assumed to be Scheme.
  10-Jul:    added sounds (list of currently active sounds).
             region-id and id-region, regions now returns a list of active region ids.
             mixes now returns a list similar to marks.
	     removed active-sounds.
  6-Jul:     snd 4.4.
             user-specified menu callbacks must be functions (not strings).
             removed dsp-devices.
  5-Jul:     experimental erase-zeros flag.
             swap-channels.
  3-Jul:     save-hook and auto-save (examp.scm) improvements.
             ok? renamed sound?, mix-ok? -> mix?, new mark?, region?, selection?
             setf.scm for (setf (<var>) <val>) in place of (set-<var> <val>).
             control-panel reverb can handle any number of chans (and now gets input from all).
             show-axes variable changed: now has 3 values, show-all-axes (default), show-no-axes, show-x-axis.
               removed View:Show Axes menu item; also these no longer affect the control-panel filter graph.
             removed edit-history list support from Motif 1.
  29-Jun:    many ardour-related improvements from Paul Barton-Davis.
  28-Jun:    new channel argument to save-sound-as (for channel extraction).
             removed OSS-specific set-dsp-reset.
  27-Jun:    update configure for gsl 0.6.
  26-Jun:    as-one-edit now handles mark changes correctly.
             make-sample-reader snd arg can be filename (to read external files without opening them).
             Guile 1.4 is now the default -- if you are using 1.3.4, include -DHAVE_GUILE_1_3.
             various bugs fixed (thanks to Daniel Aronovitch)
  22-Jun:    version renamed snd-version (old name collides with guile) -- similarly for apropos and help.
  21-Jun:    marks.scm.
  19-Jun:    changes to GC handling for new guile.
             sync field in marks and changed much of the Guile interface to marks:
               marks -> list of mark ids
               mark-sync, set-mark-sync, syncd-marks
               mark-sample, set-mark-sample, mark-name, set-mark-name no longer take (useless) snd/chn args.
               new mark->sound returns '(sound channel) (holders of mark)
               syncd marks can be moved together, played, etc
             edits function now returns a list, not a vector
  15-Jun:    changed edit|undo-hook procedure to take no args.
  13-Jun:    snd-error, snd-warning; cursor-style (default cursor-cross, also cursor-line).
             channel-specific edit-hook and undo-hook.
  12-Jun:    experimental multifile-sound support (under FILE_PER_CHAN switch).
  9-Jun:     bugfixes and improvements from Paul Barton-Davis.
  8-Jun:     OSS/ALSA choice at run-time (snd-xrec/snd-dac changes thanks to Fernando Lopez-Lezcano).
  7-Jun:     snd-error-hook, snd-warning-hook.
  5-Jun:     snd 4.3.
  30-May:    transform-size for glfft, glfft.scm, glfft.c.
  29-May:    mix-sound to help with CLM/Snd explode support.
  25-May:    removed snd-clm.c, snd-xclm.c, snd-gclm.c.
  24-May:    sndctrl.c and related X properties in Snd.
  23-May:    snd-ladspa.c (LADSPA support thanks to Richard W.E. Furse).
             'sync' arg to play and play-and-wait.
  22-May:    set-reverb-funcs, set-contrast-func, set-expand-funcs. 
             bind-key in guile version no longer takes a string as the "code" arg -- must be procedure.
             snd-gxutils for better communication with netscape.
  18-May:    new error symbols for many functions: 'no-such-sound etc. 
             removed vax float support.
  16-May:    stop-playing-region-hook and 2nd wait arg to play-region.
  15-May:    index.scm.
  12-May:    mus-error-hook.
  8-May:     help function.
  5-May:     dac-folding variable (default #t).
  2-May:     replaced Legendre transform with cepstrum.
  1-May:     snd 4.2.
  27-Apr:    graphs-horizontal variable.
  25-Apr:    split out the drag-and-drop stuff into snd-[xg]drop.c.
             removed XmHTML? function -- now using the *features* list instead.
  21-Apr:    extended scope of scm evaluation to most user interface text widgets.
             update-var renamed define-envelope.
             make-formant radius arg now matches CLM (lisp) version (1.0-old-value).
  20-Apr:    convolve-files.
  19-Apr:    filter-sound 'env' can now be the filter coefficients, and vector->vct, both changes for gmeteor support.
  18-Apr:    added spectrum of window to fft window graph in transform dialog.
  17-Apr:    bell.scm, moog.scm, prompt-in-minibuffer.
  12-Apr:    Fernando Lopez-Lezcano provided a new ALSA port!
             changed clm2scm to use built-in keyword support (use (read-set! keywords 'prefix))
  11-Apr:    new sndlib names (mus-aiff etc) (old names will eventually be moved to old-sndlib2scm.scm)
  10-Apr:    updated Be audio support, added no-gui option.
  7-Apr:     interrupted save-as in kde/kfm when launched via icon bugfix (thanks to
               Marcus Roeckrath, Patrick Pagano, and Victor Yarosh).
  6-Apr:     quad playback bug introduced in 27-Mar version fixed.
  3-Apr:     soundfont-info.
  29-Mar:    snd 4.1.
  28-Mar:    add-transform.
  27-Mar:    MUS_SAMPLE_BITS and SNDLIB_USE_FLOATS: you can choose Snd's internal sample representation.
             changed use-sinc-interp default to #t
  22-Mar:    raw-type variable removed.
  21-Mar:    multi-channel control-panel apply bug fix.
  20-Mar:    gdbm (under HAVE_GDBM) to handle headers.
             samples->sound-data and sndlib2scm.h.
             removed snd-parser.c and all C expression stuff.
  17-Mar:    edit-fragment, mark-loops example in examp.scm.
  15-Mar:    snd 4.0.
	     Gtk+ port.  Since .Xdefaults is ignored by Gtk, new variables added to set fonts
               in ~/.snd.  Gtk version reads ~/.sndrc instead of .Xdefaults (untested).  New
               font variables are button-font, bold-button-font, axis-label-font, axis-numbers-font,
               help-text-font, and listener-font.  To keep file names sensible, snd-gh.c -> snd.scm.c,
               snd-xgh.c -> snd-xscm.c, snd-xvulab.c -> snd-gxbitmaps.s, added snd-gxcolormaps.c.
             Removed the "record" and "replay" buttons for real-time control panel changes.
             added during-open-hook and mus-prescaler to handle float files with tiny maxamps.
             added after-open-hook and removed the "default-*" variables related to the control panel.
	     Removed -scrollers option.
	     Added many widget and graphics-context functions to support guile-gtk.
             split extsnd.html into extsnd.html and grfsnd.html, added snd-gtk.scm.
             after-graph-hook.
             changed find dialog to provide next and previous buttons.
	     snd_plug mechanism changed (greatly simplified); removed call-plug etc, added loop-samples.
             removed snd-plugin.h, anoi.c.
  14-Feb:    snd 3.7.
             HAVE_MAKE_SMOB_TYPE is now the default -- use HAVE_GUILE_1_3_0 for the old case.
             HAVE_GUILE_1_4 for the new (fixed!) backtrace.
  11-Feb:    removed y1..y8 business and "{}" support in "C expressions".
             removed clm? function (it's always loaded now).
  10-Feb:    save-dir for simplified saved-state files.
             with-mix-consoles to turn off mix consoles globally.
  7-Feb:     better mix movies. added multichannel-mix-hook (see mix.scm).
             superimpose-ffts in examp.scm, based on extension of graph function.
  2-Feb:     pqwvox.scm, makefile.msv.
  31-Jan:    src-sound now takes the usual snd and chn args.
  27-Jan:    env.scm.
  26-Jan:    various envelope editor improvements for mix envs.
  21-Jan:    underlying mix input data can now be edited just like any displayed sound data.
  20-Jan:    Snd can now be run as an emacs scheme subjob.
             play-track, track-sample-readers.
  17-Jan:    amp env improvements, individual mix colors settable, edit-position.
  13-Jan:    snd 3.6.
  12-Jan:    selected-mix, select-mix.
  11-Jan:    mix-locked, mixed-related hooks.  Guile GC-related bugfixes.
   5-Jan:    mix.scm.
             data-clipped. 
	     removed all group support.
             added mix-name, mix-track, mix-chans, mix-ok?, mix-amp-env, mixes, mix-vct, 
                   mix-sound-channel, mix-sound-index, mix-console-y, removed mix-groups.
             removed --with-clm option -- clm is now always included.
             added mix-sample-reader support.
             replaced snd-test.cl with snd-test.scm.

2000 ----------------------------------------------------------------

   16-Dec:   changed mixer-save-state-file to audio-state-file.
             also mix-amp-scaler to mix-console-amp-scaler, mix-speed-scaler to mix-console-speed-scaler, and mix-state to mix-console-state.
   15-Dec:   changed as-one-edit to omit the snd and chn args and apply across all chans.
   9-Dec:    use-sinc-interp for high quality src from control panel.
   6-Dec:    snd 3.5.
   3-Dec:    gif -> png.
   2-Dec:    as-one-edit, apropos.
   30-Nov:   snd1.html, snd-contents.html; spectro-start.
   29-Nov:   --with-doubles configure switch.
   26-Nov:   changed aiff-sound-file to aifc-sound-file and old-style-aiff-sound-file to aiff-sound-file.
             add-to-menu callback can be a function now.
   24-Nov:   make-region-sample-reader, frame->list, xy slider readers.
   19-Nov:   sample-reader functions and vct-map! (et al) to speed up data accesses from Guile.
             Also formant-bank, oscil-bank, vct-peak.
   15-Nov:   removed max-fft-size and fft.c.
   12-Nov:   removed defaultOutputType resource.  Added default-ouput-chans, default-output-srate, output-name-hook.
   11-Nov:   default-output-format and old-style-AIFF-sound-file, output-comment-hook.
   8-Nov:    snd 3.4.
   5-Nov:    memory leaks plugged?  marks bugfix (add mark, save edit, add mark -> segfault).
   1-Nov:    start-playing-hook, enved-power.  Error History Edit menu option.
             if Motif 2, edit history portion is now a horizontal pane of the channel window, so Edit History menu option is removed.
   28-Oct:   listener-prompt, graph-cursor.
   25-Oct:   'env' is 'env-sound' and 'snd-env' is deleted.  Similarly, convolve -> convolve-arrays,
             filter -> filter-sound, src -> src-sound (and snd-src deleted), spectrum -> snd-spectrum.
             These changes to avoid confusion with the CLM module.
   22-Oct:   audio-output-device.  sync is now an integer, allowing complex grouping.
   15-Oct:   changed variable 'spectro-color' to 'colormap'
   11-Oct:   changed axis drawer so the x axis doesn't jump around.
   8-Oct:    dsp-devices (Linux OSS) for setting audio ports by hand, bomb function.
             hook handlers are now taken from Guile (version 1.3.4) and use Scheme functions, rather than strings.
   7-Oct:    count-matches (and bind-key) arg can now be a Scheme function, as in find.
             load-colormap.
   6-Oct:    play can handle any number of channels (will fold them into available DAC chans).
   5-Oct:    snd 3.3.
   4-Oct:    list->vct, selection-beg, selection-length, selection-member, play-and-wait, squelch-update, file->array, array->file.
   27-Sep:   'print' renamed 'graph->ps'.  snd-print. added width arg to make-src (accidentally forgotten).
   23-Sep:   bugfixes related to Sonorus Studio. more configure options. snd-xgh.c added.
   22-Sep:   Guile 1.3.4 support.
   17-Sep:   ALSA port thanks to Paul Barton-Davis.
   13-Sep:   added -separate switch at suggestion of Anders Vinjar: each sound has its own window.
             Linux alpha port thanks to Guenter Geiger.
   9-Sep:    more CLM-2 changes (fit-data-on-open is now a boolean, open-raw-sound).
             reverse -> reverse-sound (old name collides with scheme built-in)
   5-Sep:    CLM to Snd connection changes (removed .debugdata, .marks and .explode files, added snd-memo check for .scm).
   30-Aug:   Alpha CLM-2 mixup untangled?  Added trap-segfault.
   27-Aug:   Guile 1.3.2 support
   20-Aug:   infinite zoom-in segfault bugfix.
   19-Aug:   snd 3-2.
             'snd -p .' followed by attempt to play read-protected 'previous' file segfault bugfix.
   5-Aug:    setlocale in save-options to keep "." decimal point while writing Scheme code.
   8-July:   stereo 'unite' ctrl-click 'play' c-t c-q segfault bugfix.
             Changed 'guile' to 'guile?' 
   1-July:   spectrum function.
   13-Jun:   snd 3.1.
   7-June:   snd_as_widget.
   3-June:   new notebook and scroller outer widget choices.
   2-June:   mark-click-hook. removed save/mark-segments -- will replace later.
   31-May:   mix-save-state-file, vct->sound-file, open-sound-file, close-sound-file.
   28-May:   multi-channel recording bugfix.  Y2K compliance!!
   24-May:   scanning and mapping functions. More examples in examp.scm. 
             snd-length replaced by frames. progress-report handlers (hourglass icon).
   19-May:   find/eval via C-s, C-r, C-x C-x, etc can now handle Scheme functions.
   18-May:   -e (-eval) switch.  global-set-key replaced by bind-key.
   11-May:   configure guile version bugfix(?).  Removed support for versions of Guile before 1.3.
   10-May:   snd 3.0.
   5-May:    several resource name changes, other color-related stuff.
   28-Apr:   all the colors now have guile equivalents, also new functions make-color and color?, rgb.scm.
   26-Apr:   graphcolor, markcolor, selectedgraphcolor, datacolor, selecteddatacolor resources.
   23-Apr:   show-axes view menu option and vars.  Moved all customization documentation to extsnd.html.
   20-Apr:   rpm version now assumes guile 1.3. vct guile smob to optimize data access from scheme.
   12-Apr:   multi-channel impulse response convolution (with-convolve).
   5-Apr:    snd 2.8.
             save-defvar renamed update-var.
   1-Apr:    call-apply.
   29-Mar:   extsnd.html, external program linkages. auto-save via "in" in examp.scm.
   23-Mar:   added args to new-sound and save-sound-as.
   22-Mar:   smooth, smooth-selection.
             Removed the trailing "?" from all the functions that had a corresponding set- function without the "?".
   16-Mar:   graph-dots-and-lines and graph-lollipops options.
   15-Mar:   activate-listener.
   11-Mar:   added ignore_prefix arg to global-set-key.
   10-Mar:   file save-as under same name segfault bugfix.
   8-Mar:    snd 2.7.
             show-usage-stats with Options menu choice.
   3-Mar:    various bugfixes related to empty files.  Changed "stop" function to "stop-playing".
             Added sample argument to insert-region function.
   1-Mar:    dismiss-all-dialogs.
   26-Feb:   select-all function.
   23-Feb:   fft.c, convolve, convolve-with, convolve-selection-with functions.
   22-Feb:   find and count-matches functions. MixWaveColor resource.
   19-Feb:   removed mix-duration-brackets, replaced with show-mix-waveforms and mix-waveform-height.   
   18-Feb:   snd multichannel mix segfault bugfix.  New sort option in files dialog ('entry'). LinuxPPC audio.
   15-Feb:   more colormaps.  selection-transform option.
   12-Feb:   C++ fixups. src-selection, filter-selection, call-plug-selection, reverse, reverse-selection.
             added file arg to peaks function (and it follows sync buttons now).
   9-Feb:    removed lispcall.c.
   8-Feb:    snd 2.6.
             snd-plugin.h, anoi.c for plug-in support.  new resources (zoomSliderWidth et al).
   1-Feb:    C-h deletes previous sample; linux save/restore mixer state finally works; much Sun audio work.
             NIST-sphere headers are now writable. Hadamard transform.  audio-outputs function on Sun.
   27-Jan:   Sun-related word alignment bugfixes.  AIFF headers retained (not changed to AIFC).
   19-Jan:   regions can now be edited.
   14-Jan:   sort choices to Previous Files dialog (previous-files-choice variable).
   6-Jan:    snd 2.5.
   5-Jan:    port to Cygwin Windows 95 system, and MS C.
   1-Jan:    removed subsampling option.

1999 ----------------------------------------------------------------

   28-Dec:   lisp listener improvements, apply to selection.
   21-Dec:   improved guile error handling. max-fft-peaks and corruption-time variables.
   15-Dec:   SND_CONF for global initializations (/etc/snd.conf), and flags -noglob and -noinit.
   11-Dec:   expanded AIFC/RIFF possibilities.
   7-Dec:    max_regions variable.
   4-Dec:    lesstif bugfixes.
   30-Nov:   snd 2.4.
             Select all Edit menu.  Sonorus Studi/o linux card support. News Help menu.
   19-Nov:   stop-playing-hook.
   18-Nov:   abort? function to interrupt guile computation. Removed Session dialog.  session-file changed to save-state-file.
   17-Nov:   auto-trigger scale to recorder, recorder-trigger, recorder-max-duration.
   16-Nov:   Metrolink ctrl-click->segfault bugfix.  Recorder vu-size != 1 depth != 8 bugfix. 
             Comment field text preload and take-focus bugfix.
   13-Nov:   CD (analog) support in linux audio.  env editor now clips x axis.
   11-Nov:   OSS Lite (Linux audio) work. auto-update switch.
   9-Nov:    snd 2.3.
             autoconf fixups
   4-Nov:    added editable frequency response graph to control panel, removed ability to load filter coeffs from file.
   30-Oct:   save-region has new format arg, delete-marks, mark-segments, save-segments.
             dB button (enved-dBing) in env editor and freq response if spectrum.
             envedwavecolor, min-dB variable, enved filter order text field.
   26-Oct:   tab-completion in listener, cursor/selection color should work.
   19-Oct:   Walsh Transform and built-in autocorrelation, changed to correlation in examp.scm.
   12-Oct:   dac-size variable; more headers.
   5-Oct:    snd 2.2.
             guile 1.3 changes. mkLinux SWiM port, rpm files, statically loaded image.
             add-sound-file-extension.  Command and filename completion upon TAB in text widgets.
             Unixware 7 makefile thanks to Larry Plona.
   23-Sep:   clm/Snd interface changes.
   21-Sep:   asf headers.
   16-Sep:   set-oss-buffers and various lisp graph mouse/key hooks.
   14-Sep:   y0 and y1 args to graph (Lisp function).  XmHTML support.
   9-Sept:   control-click 'f' or 'w' buttons affects all chans.
   7-Sept:   save-state implemented. global-unset-key. change-menu-label.  set-menu-sensitive.
   3-Sept:   snd 2.1.
             save-edit-history.
   1-Sept:   global-set-key (re)implemented.  Edit history feature.
   27-Aug:   removed old clipboard support (never worked right).
   25-Aug:   remove-from-menu for Buffers in examp.scm. removed -remote switch (linux bugs).
   18-Aug:   changed snd/clm fifo names to try to use current home directory.
   17-Aug:   better text handling in lisp listener (action procs), listenerFont, snd-env/clm-env.
   14-Aug:   horizontal-pane normalization, control panel expand typo.
   10-Aug:   snd 2.0.
             Guile added (snd-gh.c).  Many non-backwards-compatible changes to snd-clm (M-x) interface.
             Snd compiles in Hummingbird Exceed X/Motif in Windows 95; does not yet load however.
	     .marks and .explode clm/snd files now omit the intermediate extension (due to linux-msdos bug).
	     Lisp listener window added below control panel.
	     removed support for backup file (.snd-backup), all "ufun" stuff, and the escape to CLM (M-X with-sound).
             graph-filled option (to View Graph style menu).
   30-June:  better symlink handling. Transform dialog replaces 5 or 6 menu items (snd-xfft.c).
             fft beta now handled differently. View Info menu moved to Edit: Edit Header.
	     New -h flag to Snd: position sounds horizontally, not vertically (vertical paned window).
   25-June:  DEC Alpha port.
   24-June:  exponential and step envelopes. Sun-related bugfixes and HPUX port thanks to Seppo Ingalsuo.
             control-panel related variables have new (longer) names: explen becomes expand-length
	     and so on -- all panel settings now have parallel defaults settable via .snd or
	     M-X: default-expand-length, etc.
   12-June:  snd 1.4.
             recorder-buffer-size variable.  Recorder can read multiple card inputs in Linux.
   8-June:   log freq sonogram drawing bug fixed (low components didn't fill their bin completely).
   2-June:   print interruptible. Multi-card support in linux (quad via 2 soundcards).
   27-May:   more elaborate checks for write-permission problems.
   28-Apr:   group_max_out_chans now a variable (for n-channel mixes).
   13-Apr:   added amps to show-peaks in fft.
   30-Mar:   snd 1.3.
   26-Mar:   sndplay, sndinfo, audinfo, various autoconf configuration files added.
   23-Mar:   sound.c, sndlib.h, sndlib.html added, cmus_prototypes.h, sound_types.h removed.
   20-Mar:   apply in control panel now clears the panel.
   19-Mar:   click or drag fft to get description.
   10-Mar:   8-channel ADAT support; audio.c. Fixed major bug in multi-channel scale-by and several selection-related problems.
   12-Feb:   3 more header formats; Most C-x C-x built-in vars removed; override-data-location and override-sound-format.
   5-Feb:    8 more header formats; show-marks is now the default.
   28-Jan:   Oki adpcm and snd-trans.c little-endian cases.
   21-Jan:   Transform type option menu with wavelet choice window.
   19-Jan:   src in env editor and M-X (src-width, src-style). find and expr interruptible.
   12-Jan:   autoResize resource.
   8-Jan:    snd 1.2.
             various env vars to customize envelope editor. Print dialog for enved print button.
   1-Jan-98: save selection output file size calc was off in multi-channel case.

1998 ----------------------------------------------------------------

   22-Dec:   envelope editor dialog, Sun support except for recorder. filter-env function.
   12-Dec:   defvar, named envelopes.
   8-Dec:    fft freq axis is now dragable.
   3-Dec:    Mix dialog is now a file selection box.  global-explen and friends.
   6-Oct:    ports to UnixWare2 and OpenServer5 courtesy of Larry Plona.
   30-Sep:   snd 1.1.
             digital line-in recording fixed on the SGI.  snd.spec.
   22-Sep:   iconify closes all active dialogs.
   9-Sep:    read-only variable and icon.
   8-Sep:    Lesstif 0.80 port (see README.Snd for caveats).  Raw data handling improved.
   1-Sep:    record window implemented, save-as dialog uses file selection box.
   13-Aug:   [space] to pause/continue playback.
   11-Aug:   an icon and other sound support improvements in Linux.
   20-July:  searching bugs fixed. global-set-key. space cancels selection. Snd to CLM communication improved (m-x lisp expr).
   8-July:   cursor play stuff caused seg fault in region play.  no-rld stuff removed.
   26-June:  y1..8 in parser.
   24-June:  click mix console brings it to top of stack.
   23-June:  C-x C-j: goto mix and other mix-<> functions. cursor follows play upon control-click.
   20-June:  group/mixer support.  File save-as now remains in current file, rather than switching to new.
   10-June:  print dialog. superimposed channel graphs (part 1).
   4-June:   group editor.
   19-May:   click file name for info.  
   16-May:   cursor changes. sync'd mixes. green sashes!
   13-May:   %spectrum works for normal fft.  Sound control labels are clickable.  initial-x0 and friends.
   5-May:    support for explode in CLM with-sound. dB for sonogram etc.
   23-Apr:   normalize-fft, better spectrum rotations.
   14-Apr:   first mix console step. expand clicks fixed. 
   4-Apr:    speed style option menu, associated variables.
   20-Mar:   file update option. Most dialogs now not transient (not auto-raised). -remote switch.
   18-Mar:   x axis units option.
   17-Mar:   session options. selection play fixed.
   14-Mar:   scale-by, scale-to, amp-envelope, with selection cases. More header types.
   1-Mar:    data command for clm through-snd.
   24-Feb:   Next switches, sessions, ufun action lists.
   17-Feb:   file browser (view files).
   10-Feb:   view color and orientation menu options, with associated color variables.
   31-Jan:   file-loadable filter/envelopes.
   20-Jan:   improved spectrogram rotation, keypad keymap, wavogram.
   17-Jan:   dot-size. 'unite' button and Combine channels menu option. zoom focus choices (option menu).
   8-Jan-97: fixed bug in fft peak calculation. Save-As in Edit menu improved.

1997 ----------------------------------------------------------------

   30-Dec:   clm display hooks.
   23-Dec:   amp env improved.
   18-Dec:   new file option smarter, spectrogram improved.
   16-Dec:   more clm-snd connections, peaks command.
   9-Dec:    Info menu option, save-marks.
   4-Dec:    Linux fixups (XmCreateMessageDialog -> bad drawable)
   20-Nov:   clm marks, fixed several apply and aiff header bugs
   18-Oct:   Linux port. info option, c-X c-V
   30-Sep:   snd-trans.c
   17-Sep:   better support for schemes, cross disk saves
   9-Sep-96: launched!

1996 ----------------------------------------------------------------
