1Changes to Snack
2
3----------------- Released 1.3, 10/1/98 -----------------------
4
510/1/98 (new feature) AIFF file support, although there seems to be lots of
6files out there that don't adhere to the specification.
7
810/1/98 (new feature) Sound objects now can be linked to disk files and
9streams (Tcl channels) as well as having their audio data in memory.
10
1110/5/98 (new feature) Added -byteOrder option to the sound data command and to all commands taking the -byteswap option, which is deprecated.
12
1310/7/98 (bug fix) Fixed problem playing zero-length sounds on HP-UX.
14
1510/7/98 (bug fix) Fixed problem playing multi-channel disk files.
16
1710/12/98 (bug fix) The configure command now stops any active play/record operation before setting an option. Also, corrected -format and -channels options.
18
1910/12/98 (new feature) Added cget command to complement configure command.
20
2110/14/98 (bug fix) Fixed problem with insert command.
22
2310/21/98 (bug fix) Fixed problem with APause() on IRIX.
24
25----------------- Released 1.4b, 10/26/98 -----------------------
26
2710/26/98 (new feature) Makefile now also builds a Tcl only libsound.so
28
2910/28/98 (new feature) Split OSound.c into jkSound*.c and added Snack_AddSoundCmd() for Snack extensions. Added pause command.
30
3110/30/98 (bug fix) StopSound() now only called if the format of the sound samples change while a sound is playing, as a result of read or copy, e.g.
32
3311/3/98 (bug fix) Fixed bug in destroyCmd() and flushCmd() causing unwanted closing of audio device.
34
3511/6/98 (bug fix) Fixed bug in Snack_SoundCmd() for -load'ing raw files.
36
3711/11/98 (new feature) Better validation of options -fftlen/-winlen/-channel.
38
3911/18/98 (bug fix) Snack now more robust to audio device peculiarities, misc audio fixes for HP-UX, Solaris, Linux, and Windows.
40
4111/18/98 (new feature) Play commands now queue up and play in sequence.
42
4311/22/98 (bug fix) Fixed bugs in SmpMov() and lengthCmd() for byte sized sample data.
44
4512/19/98 (new feature) Added -colormap option to spectrograms.
46
4712/20/98 (new feature) Added on-the-fly sample conversion for playback, Lin8 on HP-UX and u-/A-law on Linux (if not supported by the hardware).
48
4912/22/98 (new feature) PS generation for color spectrograms.
50
51----------------- Released 1.4p2, 1/1/99 -----------------------
52
531/1/99 (new feature) Added -subsample option to waveforms. Now large sounds can be sub-sampled when drawing the waveform envelope. This can be much faster. For some synthetic sounds this can be problematic, in this case setting -subsample to 1 gives the old behaviour, i.e. don't sub-sample. Fixed drawing of zoomed sounds which look nicer now.
54
551/1/99 (new feature) Made some optimizations to spectrogram drawing. Added -gridcolor option. 256-color displays now supported under Windows.
56
571/4/99 (new feature) Raw file input now tries to guess byte order and sample format if they weren't specified in the read/data commands.
58
591/7/99 (new feature) Added -fileformat option to the sound write command which overrides the guess of format from the file name extension.
60
611/15/99 (new feature) Added sound convert command. Rather simple resampling algorithm (to start with).
62
631/26/99 (new feature) Modified spectrogram canvas item code with the goal of making it replace the spectrogram widget, which is now deprecated.
64
651/27/99 (bug fix) Swapped Lin8 and Lin8Offset everywhere, long overdue.
66
671/29/99 (new feature) Split the file AudIO.c into one jkAudIO_*.c per platform. Renamed some other source and header files too.
68
692/1/99 (bug fix) Waveforms redraw properly now.
70
71----------------- Released 1.5a1, 2/8/99 -----------------------
72
732/8/99 (new feature) It is now possible to add new sound file formats using the Snack_AddFileFormat() function. Only reading supported to start with.
74
752/8/99 (new feature) Added support for the NIST/Sphere file formats (SphereFile.c). This must be specified at configure time, see the README file.
76
772/8/99 (new feature) Automatic detection of byte order and sample encoding format now also for -file/-channel sounds.
78
792/8/99 (new feature) Snack now uses immediate loading. This eliminates the problems with, for example, finding the Snack item types in some cases.
80
812/8/99 (feature change) Waveform -subsample option now has a default value of 1.
82
832/9/99 (bug fix) Copy command now allocates sufficient memory when copying multi-channel sounds.
84
852/10/99 (bug fix) Fixed canvas item bug when UpdateXXX() is called before an item has been drawn on screen.
86
87----------------- Released 1.5a2, 2/10/99 -----------------------
88
892/12/99 (bug fix) Corrected error progagation when failing to read sounds and parsing headers.
90
91----------------- Released 1.5b1, 2/16/99 -----------------------
92
932/21/99 (new feature) Convert command now does low-pass filtering when resampling sounds.
94
952/21/99 (bug fix) Corrected the code for immediate loading, which would have caused problems in future versions.
96
972/21/99 (new feature) Improved documentation and configuration of the snackSphere package.
98
992/22/99 (bug fix) Corrected right edge padding of spectrograms.
100
1012/28/99 (new feature) Created commands getOGIwave and createOGIwave for interaction between Snack sounds and the wave objects of the OGI toolkit.
102
1033/1/99 (new feature) Added support for reading the MPEG layer 3 sound format.
104
105----------------- Released 1.5b2, 3/3/99 -----------------------
106
1073/17/99 (new feature) Added Snack_GetSound() function which returns a sound struct given a sound command name.
108
1093/18/99 (bug fix) Corrected bug for file based playback of MP3 sounds.
110
111----------------- Released 1.5b3, 3/18/99 -----------------------
112
1133/20/99 (feature change) A number of options to the play and record commands are now deprecated. The configure command provides this functionality. Also, sound command options should now be written in lower case only.
114
1153/23/99 (removed feature) The spectrogram widget was removed as all functionality is provided by the corresponding canvas item.
116
117----------------- Released 1.5b4, 3/27/99 -----------------------
118
1194/6/99 (bug fix) Changed the parsing of sound file headers to allow for example MP3 sounds to be played over a socket connection.
120
1214/6/99 (bug fix) Fixed stereo audio on SGI.
122
123----------------- Released 1.5, 4/6/99 -----------------------
124
1254/8/99 (bug fix) Updated g711.c with fix for Snack_Lin2*() functions.
126
1274/9/99 (feature change) The Snack Tcl library now uses a namespace.
128
1294/12/99 (feature change) The auto detection of encoding format (for raw files) now assumes that Mulaw/Alaw files are 8kHz and that Lin8Offset files are 11.025 kHz.
130
1314/15/99 (enhancement) Added simple sound viewer cool.tcl. Fixed aserver.tcl doesn't hang during exit on Windows anymore.
132
133----------------- Released 1.5p1, 4/15/99 -----------------------
134
1355/3/99 (new feature) Added -fileformat option to the sound read/data/append commands that overrides the file format auto-detection function.
136
1375/3/99 (feature improvements) Improved sample file header detection/parsing.
138
1395/3/99 (API change) The amount of sound data to transfer using Snack_Get{Put}SoundData() should now be specified in bytes.
140
1415/9/99 (bug fix) Fixed bug in sound data command for stereo sounds. Caused too much data to be written to binary Tcl variables.
142
143----------------- Released 1.5p2, 5/10/99 -----------------------
144
1455/20/99 (bug fix) Proper clean-up if an error occurs during creation of a sound.
146
1475/26/99 (bug fix) Bug fix for the AIFF header parsing routine. (Barras)
148
1495/26/99 (new feature) User fields in the sound structure to be used with, e. g.,
150new file formats. (Zhou)
151
1525/26/99 (improved feature) Changed and improved the mixer code. Snack's mixer interface is now orthogonal to audio device functions such as play/record. It also reflects the underlying hardware capabilities better. Some minor changes to the API.
153*** POTENTIAL INCOMPATIBILITY ***
154
155----------------- Released 1.6a1, 5/27/99 -----------------------
156
1575/30/99 (bug fix) More robust seeking in MP3 files.
158
1595/30/99 (bug fix) The play command callback (-command) now gets executed when -start is at the very end of a sound.
160
161----------------- Released 1.6a2, 5/31/99 -----------------------
162
1635/31/99 (improved feature) Added format Lin8 (AFMT_S8) for Linux (if supported by hardware). (Barras)
164
1655/31/99 (improved feature) If the audio device supports a sampling frequency close to the requested one, it will be used without reporting an error. (Barras)
166
1676/7/99 (improved feature) The "audio frequencies" command on Linux now reports the actual audio device capabilities.
168
1696/7/99 (enhancement) More informative error messages for audio I/O.
170
1716/8/99 (new feature) Snack can now use the Tcl/Tk stub libraries (default behaviour). Also, eliminated use of private Tcl library functions.
172
1736/14/99 (feature change) The sound read/write commands now do nothing if filename is specified as "".
174
1756/15/99 (new feature) Extensions to Snack can now link with Snack's stub library (libsnackstub1.6.a) This is the preferred method.
176
177----------------- Released 1.6b1, 6/15/99 -----------------------
178
1797/21/99 (bug fix) Fixed several problems with the append command.
180
1817/21/99 (bug fix) Fixed file header parsing routines to work correctly with files contained in Tcl variables when running Tcl8.1 or later.
182
1837/21/99 (feature change) When loading raw sound data using the read/data/append commands you must specify '-guessproperties yes' if you want Snack to guess sample format, byte order, and/or frequency of the data. Default is to use the current properties of the sound object. It is also possible to specify these by hand as previously.
184*** POTENTIAL INCOMPATIBILITY ***
185
1867/22/99 (bug fix) Short raw files (< 1024 bytes) are now read correctly.
187
1887/26/99 (bug fix) Fixed display update bug for spectrogram canvas items configured solely with -pixelspersecond.
189
1907/26/99 (new feature) Added an experimental pitch command for extraction of the fundamental frequency from speech.
191
1927/28/99 (new feature) The visualization canvas items now work with sounds which are linked to sound files.
193
194----------------- Released 1.6b2, 7/28/99 -----------------------
195
1968/3/99 (new feature) Snack_GetSoundData() can now be used to access data in linked sound files.
197
1988/3/99 (bug fix) The -end option to read/data/append now works correctly.
199
2008/3/99 (bug fix) Frequency conversion corrected for Mulaw/Alaw sounds.
201
202----------------- Released 1.6, 8/6/99 -----------------------
203
2048/23/99 (enhancement) Updated the snackSphere package to use stub-libraries.
205
2068/30/99 (new feature) Playback of stereo Mulaw/Alaw sound on Solaris and Linux with on-the-fly conversion if needed.
207
2088/30/99 (bug fix) Fixed bug for canvas items linked to stereo sound files.
209
2109/1/99 (bug fix) Fixed clean-up bug for canvas items linked to a sound which has been destroyed.
211
2129/8/99 (bug fix) Fixed display bug for waveforms and Lin8Offset sounds.
213
2149/9/99 (configuration improvement) Configuration defaults are now for Tcl/Tk8.2.0.
215
216----------------- Released 1.6.1, 9/9/99 -----------------------
217
2189/15/99 (bug fix) Memory was freed twice when deleting spectrum sections. (Barras)
219
2209/15/99 (bug fix) Canvas items now remember which channel(s) to show when the sounds they are linked to change.
221
2229/23/99 (bug fix) Sound length is now calculated correctly by the read command when skipping an unknown header. (Barras)
223
2249/23/99 (bug fix) Fixed some code inconsistencies for SGI (jkAudIO_sgi.c). (Mel)
225
22610/5/99 (bug fix) The read command now works correctly when reading multi-channel sounds with the option -start specified. (Kanwischer)
227
22810/13/99 (new feature) The max/min commands now takes options -start, -end, -channel.
229
23010/13/99 (bug fix) Canvas waveform items can now be created without actually specifying a sound.
231
232----------------- Released 1.6.2, 10/13/99 -----------------------
233
23410/28/99 (new feature) The commands max, min, sample, and fft now work for sounds linked to files.
235
23610/28/99 (bug fix) The stop command sometimes didn't close a file being played properly. (Barras)
237
23810/28/99 (bug fix) MP3 headers are now recognized more robustly.
239
24010/28/99 (API change) The putHeaderProc of Snack_AddFileFormat() no longer takes the parameter buf. (Ammicht)
241
24211/9/99 (enhancement) Spectrum sections now take the options -maxvalue/-minvalue which can be used to set the dB-range to be displayed.
243
24411/10/99 (new feature) Added reverse command (useful in the search for hidden messages ;-).
245
24611/18/99 (enhancement) The options to sound, configure, and cget are now in better agreement.
247
24811/18/99 (new feature) Canvas items can now be unlinked from a sound object by configuring -sound "".
249
25011/19/99 (bug fix) Fixed problem with the 'audio update' command on Linux.
251
25211/23/99 (bug fix) The -byteorder option to the append, read, data, and configure commands had the side effect to swap bytes in later operations.
253
25411/23/99 (removed feature) Removed several deprecated options to the record command, all of which are available through the configure command.
255
25611/23/99 (new feature) Waveform canvas items now take the option -shapefile which can be used to specify a file to store/retrieve precomputed waveform shape information. If the file doesn't exist it is created. If it exists it is accessed instead of the sound data itself, thus speeding up on-screen display.
257
258----------------- Released 1.6.3, 11/23/99 -----------------------
259
26012/14/99 (new feature) Canvas items for sounds linked to files now update correctly when recording is performed. Spectrograms not completely optizimed yet regarding memory usage.
261
26212/14/99 (bug fix) An exit handler was added, which gives better clean-up on exit for Windows 95/98.
263
26412/14/99 (new feature) The pitch command can now be guided as to which pitch range the analysis should use using the options -maxpitch and -minpitch.
265
26612/14/99 (API change) The C-macros Snack_SetSample() and Snack_GetSample() now take an additional channel parameter.
267
26812/15/99 (bug fix) Spectrograms for linked sounds with Lin8Offset/Lin8 sample encodings now display properly.
269
27012/16/99 (feature change) The play command doesn't read the file header for linked sounds an extra time prior to starting playback any more.
271
27212/16/99 (bug fix) The max/min commands fixed for the combination empty sound and -start/-end options with value 0.
273
27412/16/99 (bug fix) MP3 headers are now parsed a bit more robustly when they are read on-the-fly from a channel.
275
27612/16/99 (configuration improvement) Searches for Tcl/Tk at configuration time using TEA macros.
277
278----------------- Released 1.6.4, 12/16/99 -----------------------
279
2801/8/00 (bug fix) Fixed a pair of bugs concerning pre-computed waveforms, now ok for sounds longer than 10M samples and during playback.
281
2821/8/00 (bug fix) Yet another MP3 header parsing fix for channel input.
283
2841/10/00 (bug fix) Fixed bugs regarding max/min values and pre-computed waveforms.
285
2861/10/00 (enhancement) The sample command now caches values for sounds linked to files between invocations.
287
288----------------- Released 1.6.5, 1/10/00 -----------------------
289
2901/14/00 (bug fix) The audio volume command on HP-UX is now safe to use during play/record operations.
291
2921/17/00 (enhancement) The Windows audio code now supports full duplex audio, i.e., simultaneous record/playback.
293
2941/18/00 (bug fix) Corrected the macro Snack_GetSample().
295
2961/18/00 (new feature) The commands read/write/convert/pitch and the canvas waveform item now take the option -progress which is used to specify a procedure to be called with in argument telling how much of the current operation is completed. An additional argument specifies the type of operation in progress. This features makes it possible to create progress bar functionality. The Snack library now contains the function Snack_ProgressCallback() which implements this at the C-level.
297
2981/19/00 (bug fix) The write command now correctly reports, format unsupported, when trying to write in MP3 format, (for the time being).
299
3002/7/00 (removed feature) Removed undocumented/unused commands grab/release.
301
3022/7/00 (new feature) New command flipBits which bit reverses the bytes of Mulaw sounds. (Zhou)
303
3042/7/00 (enhancement) Source code modifications for easier C++ integration, plus some clean-ups. (Ammicht,Zhou)
305
306----------------- Released 1.7a1, 2/8/00 -----------------------
307
3082/10/00 (bug fix) Frequency conversion corrected for multi-channel sounds.
309
3102/16/00 (new feature) Added -byteorder option to the sound write command which makes it possible to specify the byte order to be used when writing raw files.
311
3122/16/00 (new feature) Added test suite for the sound command.
313
3142/16/00 (bug fix) Frequency conversion corrected for Lin8Offset and Lin8 formats.
315
3162/18/00 (enhancement) Lin8 format now supported in dBPowerSpectrum command and in spectrogram and spectrum section canvas items.
317
3182/22/00 (bug fix) Corrected bug in Snack_GetSoundData(), position parameter now indexes correctly for sound objects linked to disk files.
319
3202/22/00 (enhancement) The pitch command no longer makes a copy of the sound data internally.
321
322----------------- Released 1.7a2, 2/28/00 -----------------------
323
3243/2/00 (enhancement) The pitch command now inserts leading zeroes in the output list in order to make the pitch values centered on frames.
325
3263/2/00 (bug fix) Fixed some memory leaks in the pitch command.
327
3283/2/00 (bug fix) The sample command now returns correct values for Lin8offset and Lin8 in-memory sounds.
329
3303/2/00 (bug fix) The waveform and spectrogram canvas items should now display with the same scaling for all options given identical values.
331
332----------------- Released 1.7a3, 3/2/00 -----------------------
333
3343/17/00 (bug fix) Fix in snack.tcl relating to the WaveSurfer package.
335
336----------------- Released 1.7a4, 3/17/00 -----------------------
337
3383/29/00 (new feature) Snack now supports DirectSound on Windows.
339
3403/29/00 (new feature) Snack now supports the Macintosh.
341
3423/29/00 (API change) Snack now uses the namespace snack for all its commands.
343
3443/29/00 (API change) The audio command was split into two commands snack::audio and snack::mixer.
345*** POTENTIAL INCOMPATIBILITY ***
346
3473/29/00 (API change) The snack::audio command has new sub-commands outputDevices/inputDevices/select.
348
3493/29/00 (API change) The snack::mixer command has new sub-commands devices/select.
350
3513/29/00 (configuration improvement) The distribution has been reorganized to better match the Tcl/Tk standard layout.
352
3533/29/00 (new feature) The dBPowerSpectrum has new options -end and -skip.
354
3553/29/00 (new feature) The spectrum section canvas item has new option -skip.
356
3573/29/00 (new feature) The example on how to extend Snack was included in the distribution.
358
3593/29/00 (new feature) The play/record commands has new option -device to specify which audio device to use if several are installed.
360
361----------------- Released 1.7b1, 3/29/00 -----------------------
362
3634/6/00 (bug fix) Fixed bug which caused Snack to crash on loading on some Windows machines.
364
3654/6/00 (bug fix) Snack sound objects with identical names can now coexist in different interpreters.
366
3674/6/00 (new feature) A new sound object now replaces any existing sound there may have been with that name. This is to match the standard behaviour of Tcl and Tk regarding procedures and images.
368
3694/6/00 (bug fix) Fixed bug which was caused by very wide spectrograms.
370
3714/6/00 (new feature) Snack now incorporates the source code necessary for the Transcriber project. (Barras)
372
3734/6/00 (bug fix) Updated configurations regarding the snacksphere package, which adds the NIST/Sphere file formats.
374
3754/6/00 (feature change) The demos were revised to work on the Macintosh.
376
377----------------- Released 1.7b2, 4/6/00 -----------------------
378
3794/11/00 (bug fix) Fixed bugs on the Macintosh regarding the -anchor option to canvas items, spectrogram drawing, and memory management in the pitch command.
380
3814/11/00 (feature change) Windows audio code now opens the WAVE_MAPPER device as default if nothing else is specified, as in Snack1.7a3 and earlier.
382
3834/12/00 (new feature) All commands related to spectral analysis now take the option -windowtype, which can be used to specify any of the window functions Hamming, Hanning, Bartlett, Blackman, and Rectangle. (Rank)
384
3854/14/00 (new feature) Added support for CSL files (.nsp) with SDA_, SD_B, and SDAB blocks.
386
3874/15/00 (new feature) Added on-the-fly sample conversion for Mulaw/Alaw on Windows (if not supported by the hardware).
388
3894/17/00 (configuration improvement) Project files for MS Visual C++ was included in the win directory of the distribution.
390
3914/17/00 (new feature) Added sub-commands selectOutput and selectInput to the snack::audio command.
392
3934/18/00 (bug fix) Fixed bug on the Macintosh regarding stereo playback.
394
3954/18/00 (enhancement) The Macintosh shared library now also contains Snack's Tcl files in a TEXT resource.
396
3974/19/00 (configuration improvement) The MPW makefile for Macintosh can now be used to build Snack from the source distribution with only one modification.
398
3994/19/00 (bug fix) Fixed bug during interpreter close down.
400
401----------------- Released 1.7.0, 4/19/00 -----------------------
402
4034/25/00 (enhancement) The byte order of the machine Snack is executed on is now detected at initialization. This makes porting to new platforms easier.
404
4054/26/00 (configuration improvement) Changed name of jkAudIO_linux.c to jkAudIO_oss.c and modified configuration script to handle BSD flavours and OSS better.
406
4074/27/00 (enhancement) jkAudIO_oss.c now also handles big endian machines.
408
4095/3/00 (bug fix) AIFF sample data was read at slightly wrong offset.
410
4116/8/00 (bug fix) Bug fix for WAV files with PAD chunk.
412
4136/27/00 (bug fix) Fixed problem with the destroy command, de-allocated memory was referenced. (Barras)
414
4157/3/00 (bug fix) Snack_PutSoundData() corrected for big chunks.
416
4177/5/00 (API change) A new option -encoding synonymous with -format was added to a number of commands in order to avoid confusion with the -fileformat options. This will be the default option in demos and documentation.
418
4197/5/00 (API change) A new option -rate synonymous with -frequency was added to a number of commands. This will be the default option in demos and documentation.
420
4217/5/00 (API change) The snack::audio command has new sub-commands "rates" and "encodings" to complement the above changes.
422
4237/5/00 (feature change) All sound data is now handled as floating point internally. Default is to store data using single precision floats, optionally as doubles. This also has the effect that Snack support the sample encoding formats "Lin16", "Alaw", "Mulaw", "Lin8offset", "Lin8", "Lin24", "Lin32", "Float", and "Double" on all platforms/hardware.
424
4257/5/00 (removed feature) The byteswap command was removed due to the internal change to floating point.
426
4277/5/00 (new feature) New option to the sound/configure/cget commands -precision, which controls at which precision sound data is stored internally.
428
4297/5/00 (feature change) Sound object playback does not queue up anymore, instead they are mixed into the current output stream as soon as possible. A new option -starttime was added to the sound play command making it possible to specify a delay before the mixing takes place.
430
4317/5/00 (feature change) Simultaneous sound object records now are now possible.
432
4337/5/00 (new feature) The new sub-command latency of snack::audio can be used to set/query (in ms) how much sound will be queued up at any time to the audio device for playback. A low value makes new sound reach the loudspeakers quickly at the risk of gaps in the output stream. An appropriate value should be chosen with regard to processor speed and load.
434
4357/5/00 (new feature) New object command snack::filter which can be used to create filters for use with the filter or play sound commands.
436
4377/5/00 (new feature) Support for WAV files with Lin24, Lin32, and Float data.
438
4397/5/00 (new feature) Support for AU files with Lin24, Lin32, and Float data.
440
4417/5/00 (new feature) Support for AIFF files with Lin24 and Lin32 data.
442
4437/5/00 (feature change) The procedure readProc() given to Snack_AddFileFormat()
444has changed parameters.
445
4467/5/00 (API change) New macros in the C-api, Snack_SetSampleRate(), Snack_GetSampleRate(), Snack_SetSampleEncoding(), Snack_GetSampleEncoding().
447
448----------------- Released 2.0a1, 7/6/00 -----------------------
449
4507/20/00 (API change) New function Snack_CreateFileFormat() which replaces Snack_AddFileFormat(), which now is deprecated.
451
4527/20/00 (enhancement) Updated the snacksphere package to work with the new Snack 2.0 API.
453
4547/20/00 (enhancement) On-the-fly conversion is now done to enable sounds with different sample rates or different number of channels to be played simultaneously.
455
4567/21/00 (bug fix) Bug fix for Windows machines with more than 4 audio devices.
457
4587/24/00 (bug fix) Fixed problem with stereo sound output.
459
4607/24/00 (bug fix) Fixed problem with gaps in the output stream.
461
4627/24/00 (API change) Changed name of the snack::audio sub-command "latency" to "playLatency", which will be complemented with a future "recordLatency".
463
464----------------- Released 2.0a2, 7/24/00 -----------------------
465
4667/25/00 (bug fix) Fixed problem with decoding of multiple simultaneous MP3 files.
467
4687/27/00 (enhancement) Checks are now made that the specified device is valid in the commands snack::audio/mixer select* and play/record -device.
469
4708/1/00 (enhancement) Check for missing argument to last option, in most sound commands.
471
4728/4/00 (enhancement) When reading ESPS files, sound data are now zero-padded at the beginning according to the start_time field.
473
4748/5/00 (bug fix) Fixed problem with noise at the beginning of MP3 files after having played some other MP3 files.
475
4768/5/00 (API change) New member freeHeaderProc() of struct Snack_FileFormat.
477
4788/7/00 (new feature) New command snack::audio scaling, which can be used to scale the global output stream.
479
4808/7/00 (new feature) New options to play, -rate and -channels, these can be used when opening the audio device to override the properties of the sound object. Useful to make sure the audio device is opened in stereo even if the first sound played is mono or if a mono sound is to be played in, e.g the left channel.
481
4828/13/00 (bug fix) Canvas items now clean-up properly if an unknown sound is specified with the -sound option.
483
4848/13/00 (bug fix) Fixed bug in Snack_ResizeSoundStorage() which occured when reallocating from a small initial block to a larger one.
485
4868/13/00 (new feature) Included an example on how to use Snack with the Python scripting language, http://www.python.org/.
487
4888/14/00 (new feature) New filters, echo for adding echos and compose for creating composite filters.
489
490----------------- Released 2.0b1, 8/15/00 -----------------------
491
4928/24/00 (enhancement) The MP3 decoder can now be compiled with optimization turned on under MSVC++, which yields at least 50% decreased decoding time.
493
4948/24/00 (configuration improvement) The project files for MS Visual C++ now contain configuration settings for Tcl8.0.
495
4968/25/00 (bug fix) Fixed problem introduced in the previous release regarding playback of linked sounds.
497
4988/25/00 (new feature) The filter command is now allowed to modify the length of the sound it is applied on.
499
5008/25/00 (new feature) The compose filter can now combine more than two filters.
501
5028/25/00 (bug fix) Fixed memory deallocation bug for the map filter.
503
504----------------- Released 2.0b2, 8/25/00 -----------------------
505
5069/16/00 (new feature) New options to the sound filter command, -start, -end, and -continuedrain. -start and -end specifies the portion of the sound to apply the filter on and -continuedrain controls whether the filter is allowed to drain beyond the endpoint.
507
5089/16/00 (new feature) New option -changecommand to the sound command. This option is used to specify a procedure which is to be called every time a property of the sound is changed. This is the Tcl level counterpart of Snack_AddCallback(). The procedure should expect one argument, one of the strings New or More. Particularly useful when embedding sound objects in other higher level constructs.
509
5109/16/00 (new feature) Three new filters: generator, for signal generation, and formant, a formant filter, and reverb.
511
5129/16/00 (enhancement) Display speedup for waveform canvas items.
513
5149/16/00 (new feature) On start-up Snack will read the UNIX environment variable PLAYLATENCY and if found use that value as default for the snack::audio playLatency command.
515
5169/16/00 (bug fix) Corrected bug on Linux regarding playback of very short sounds (<120ms).
517
5189/16/00 (bug fix) Corrected bug for waveform canvas items, -progress option can now be configured to an empty string.
519
5209/16/00 (bug fix) Corrected a couple of bugs in the snacksphere package. (Barras)
521
5229/16/00 (bug fix) Bug fix in Snack_ResizeSoundStorage(), when going from a small initial size to 0.
523
5249/16/00 (bug fix) Bug fix in sound configure command, -file option. Proper clean up is now done.
525
5269/16/00 (bug fix) Bug fix in sound length command, cannot set the length of linked sounds anymore, which would cause a core dump.
527
5289/16/00 (API change) The options "-channels" and "-rate" for the play command, changed name to "-devicechannels" and "-devicerate".
529
5309/17/00 (new feature) The end point of sound playback is no longer determined at play start time but at the actual time that point is reached. This allows for on-the-fly modifications during playback.
531
5329/17/00 (new feature) Simultaneous playback and record is now allowed for one single sound object. This allows for a signal to be captured, processed in real-time and played.
533
5349/17/00 (new feature) The sound write command now also works for linked sounds.
535
5369/17/00 (feature change) The procedure seekProc() given to Snack_AddFileFormat() now expects positions to be given as sample frames instead of bytes.
537*** POTENTIAL INCOMPATIBILITY ***
538
5399/17/00 (bug fix) Bug fix reverse command now works as intended again.
540
5419/17/00 (bug fix) Audio and mixer device names are now parsed properly.
542
5439/17/00 (new feature) Added new Python module written by Kevin Russell. This module provides an interface between Snack the Python language.
544
5459/18/00 (new feature) Included project file for Metrowerks CodeWarrior to
546build Snack on the Macintosh.
547
548----------------- Released 2.0, 9/18/00 -----------------------
549
5509/24/00 (bug fix) Waveform redraw/configure bugs fixed.
551
5529/24/00 (bug fix) Corrected the order in which file format handlers are invoked.
553
5549/24/00 (bug fix) The -filter option of the sound play command now accepts "" which has the same effect as not specifying the option at all.
555
5569/24/00 (new feature) Sound object callbacks now get the SNACK_DESTROY_SOUND message when a sound object is destroyed. This is used internally by, for example, the Snack canvas items. Also, the -changecommand procedure will be invoked with the argument "Destroyed" in this case.
557
5589/24/00 (bug fix) Fixed bug in the sound pause command.
559
5609/24/00 (bug fix) Corrected Makefile.in
561
5629/25/00 (bug fix) Corrected output of Mulaw/Alaw/Lin8Offset sound files (Barras)
563
5649/27/00 (API change) The putHeaderProc() member of struct Snack_FileFormat now also takes an interp argument.
565
5669/27/00 (bug fix) The above putHeaderProc() modification now enables the sound write command to correcly report when a file format handler does not support writing of a certain sample encoding.
567
5689/27/00 (bug fix) Fixed problem with playing linked files with given -start option.
569
570----------------- Released 2.0.1, 9/27/00 -----------------------
571
5729/29/00 (bug fix) Fixed problem handling -progress options, proper clean-up is now done.
573
57410/9/00 (bug fix) Trying to play a sound which is linked to a non existing file now raises an error.
575
57610/9/00 (new feature) New Tcl demo, wrap.tcl, which generates stand alone executables from Tcl scripts that use Snack. Requires freeWrap.
577
57810/11/00 (bug fix) Fixed problem on the Macintosh with event loop blocking during playback.
579
58010/25/00 (bug fix) An empty string can now be given with the -progress option in all commands taking that option.
581
582----------------- Released 2.0.2, 10/25/00 -----------------------
583
58411/1/00 (bug fix) Fixed bug in Snack_ResizeSoundStorage() which occured when reallocating from a small initial block to a larger one.
585
58611/1/00 (bug fix) Fixed problem occuring for waveform whose sound is linked to a non-existing filename.
587
58811/1/00 (bug fix) Section canvas item now updates correctly if unlinked from a sound object by configuring -sound "".
589
59011/1/00 (change) New look (and arguments) for snack::timeAxis.
591
59211/6/00 (bug fix) Sound filter command accessed samples beyond end of sound during draining.
593
59411/6/00 (bug fix) Simultaneous playback of mono and stereo sounds corrected.
595
59611/7/00 (bug fix) Fixed problem playing from streams.
597
59811/8/00 (bug fix) The sound engine now writes as much sound data as possible to the audio hardware in blocking play mode, in order to avoid the risk of spurious gaps.
599
60011/9/00 (bug fix) Spectrogram and section canvas items corrected for sounds linked to files with Alaw/Mulaw sample encoding. (Rank)
601
60211/10/00 (bug fix) Corrected reverse command for multi channel files and added -progress option.
603
60411/10/00 (bug fix) Corrected handling of the -progress option for the sound filter command.
605
60611/12/00 (feature change) The internal message strings given to Snack_ProgressCallback() were changed to make them useable as default messages.
607
608----------------- Released 2.0.3, 11/12/00 -----------------------
609
61011/15/00 (bug fix) The echo filter now cleans-up its delay buffer.
611
61211/15/00 (bug fix) Corrected memory allocation problem in the convert command.
613
61411/17/00 (enhancement) Moved sound change notification out of LoadSound(). Speed improvement in some cases.
615
61611/21/00 (bug fix) The sound filter command now initializes newly allocated storage to zero before draining out last filter samples.
617
61811/21/00 (new feature) New command 'sound swap', which is used to efficiently swap the contents of two sounds.
619
62012/4/00 (bug fix) Fixed problem with the append command and the options -rate, -encoding, and -guessproperties. Also, fixed problem for the case when data is appended to an empty sound.
621
62212/5/00 (bug fix) Fixed problem with the sound data command that caused raw data starting with '-' to be interpreted as an option.
623
62412/5/00 (bug fix) Fixed bug in the map filter that occured when configuring it with only one value and using it on multi-channel sounds.
625
62612/9/00 (bug fix) Fixed bug in the dBPowerCommand that occured when setting the -channel option to -1 (= all channels).
627
628----------------- Released 2.0.4, 12/9/00 -----------------------
629
63012/13/00 (bug fix) Fixed memory allocation bugs which occured during recording.
631
63212/14/00 (bug fix) Corrected -end option within-bounds check for max/min commands.
633
63412/15/00 (bug fix) Made sure that during recording only the amount of data currently available is read in order to avoid blocking.
635
63612/15/00 (bug fix) Linux recording is now done in chunks with power of 2 size.
637
6381/3/01 (bug fix) Added boundary check in MP3 decoder. (Wilkason)
639
6401/3/01 (new feature) New Tcl demo, tomAmp.tcl, MP3 player with play-lists written by Tom Wilkason.
641
6421/3/01 (enhancement) Trying to save sound files with an .sph extension now raises an error if the snacksphere package is loaded.
643
6441/4/01 (bug fix) Fixed bug for stream stereo recording.
645
6461/5/01 (bug fix) No more crashes on MP3 IDV32 tags. (Wilkason)
647
648----------------- Released 2.0.5, 1/5/01 -----------------------
649
6501/26/00 (bug fix) Fixed bug in option parsing for the read command.
651
6521/26/00 (bug fix) Fixed bug in option parsing for the append command.
653
6541/26/00 (enhancement) Snack now runs under Tcl8.3 and earlier if compiled with Tcl8.4. (Beskow)
655
6561/26/00 (bug fix) Fixed problem that caused some raw sound files to be incorrectly treated as MP3 files.
657
6581/26/00 (bug fix) Fixed problem accessing samples in multi-channel linked sounds. Waveform items linked to such sounds now show the right channel correctly. Also, the max/min commands now give the same results as for in-memory sounds.
659
6601/26/01 (bug fix) Fixed problem with postscript generation for waveforms.
661
6621/29/01 (bug fix) Fixed bug in the Windows audio code which caused a crash on pre-Win2k machines after about 30 recording operations.
663
6641/29/01 (new feature) New option -trimstart for waveform items which trims the start sample to give a nicer looking shape during scrolling.
665
666----------------- Released 2.0.6, 1/30/01 -----------------------
667
6682/6/01 (bug fix) Fixed bug in the Macintosh audio code. The sound stop command now stops sound output without any delay.
669
6702/25/01 (bug fix) Fixed bug in the Windows audio code which limited output to two channels even though the hardware was capable of more.
671
6723/1/01 (enhancement) The -fileformat option to the sound, read, data, append, configure, and cget commands now accept an empty string as argument indicating that no file format was specified.
673
6743/1/01 (bug fix) A number of fixes which gives much more stable MP3 decoding. (Wilkason)
675
6763/1/01 (enhancement) Enhanced file format detection to discriminate between raw sound files and MP3 files.
677
6783/1/01 (bug fix) Fixed endianess problem in tests/data.test
679
6803/5/01 (configuration improvement) Fixed configure script for FreeBSD to not use ossaudio library.
681
6823/9/01 (bug fix) Fixed memory leak when playing -file sounds.
683
6843/13/01 (bug fix) Fixed problem for sounds linked to disk files with more than two channels.
685
6863/13/01 (enhancement) Precomputed waveform shapes now handle multi-channel sounds. The shape file is now stored in AIFF format with Lin8 encoding.
687
6883/13/01 (enhancement) The wrap.tcl demo is now more intelligent in creating its temporary work directory on the Windows platform.
689
6903/14/01 (bug fix) Bartlett analysis window corrected. (Rank)
691
692----------------- Released 2.0.7, 3/14/01 -----------------------
693
6943/16/01 (bug fix) Fixed misplaced comment which caused distorted MP3 decoding. (Wilkason)
695
6963/21/01 (bug fix) Fixed problem for spectrogram canvas items that caused a crash in some cases.
697
6983/22/01 (bug fix) Corrected AU file format handler which incorrectly handled Lin8 files as Lin8Offset.
699
7003/23/01 (enhancement) Added read support for files with double (8-byte) samples to AU and WAV file format handlers.
701
7023/23/01 (bug fix) Fixed problems reading sound files containing float samples.
703
7043/27/01 (bug fix) Removed unnecessary limit on the number of channels for audio I/O on the SGI platform.
705
7063/27/01 (bug fix) Fixed problem with data copying that sometimes occured when reallocating from a small size to a much larger one.
707
7083/28/01 (bug fix) Corrected out of bounds problem in the pitch command.
709
7104/10/01 (bug fix) Corrected bug in the snacksphere package for sound files containing fewer samples than specified in the header.
711
7124/15/01 (new feature) New filter type: iir, which implements IIR/FIR filtering. (Dunning)
713
7144/15/01 (new feature) LPC analysis support added in section canvas item and in dBPowerSpectrum command. (Rank)
715
7164/15/01 (enhancement) Slight beautification of Waveform postscript. (Rank)
717
718----------------- Released 2.1b1, 4/17/01 -----------------------
719
7204/24/01 (new feature) Added support for the Ogg/Vorbis file format (SnackOgg.c) through the optional package "snackogg".
721
7225/1/01 (bug fix) Fixed bug in the map filter that occured when re-configuring it with only one value during playback of multi-channel sounds.
723
7245/3/01 (new feature) Added Ogg/Vorbis format support for writing files and for streaming play/record.
725
7265/8/01 (new feature) Added support for encoding in the Ogg/Vorbis file format.
727
7285/8/01 (new feature) Added streaming support for the Ogg/Vorbis file format.
729
7305/8/01 (new feature) Added configureProc member to Snack_FileFormat struct. This makes it possible to configure/get file format specific options, e.g. -bitrate for MP3 format or -nominalbitrate for Ogg.
731
7325/8/01 (feature change) Added objc/objv parameters to putHeaderProc() which allows for file format specific options. Procedure now returns TCL_OK/TCL_ERROR.
733
7345/8/01 (feature change) Changed parameter of writeSamplesProc() and added implementation to support its use in WriteSound().
735
736----------------- Released 2.1b2, 5/9/01 -----------------------
737
7385/11/01 (enhancement) The wrap.tcl executable generator can now compile scripts that use the packages snackogg and snacksphere.
739
7405/20/01 (enhancement) Updated sources and project file for Macintosh to work with CodeWarrior 6.0 and Tcl/Tk8.3.3.
741
7425/20/01 (new feature) Added demos generator.tcl and scale.tcl.
743
744----------------- Released 2.1, 5/21/01 -----------------------
745
7466/6/01 (bug fix) Fixed bug in header parsing of ESPS files (.sd).
747
7486/7/01 (change) Waveform shape files are now saved with a sample rate of 200 in order to conform to the shape sound command.
749
7506/7/01 (change) Modifications to the shape sound command to make it conform to the shape files generated by the waveform canvas items. (Barras)
751
7526/13/01 (new feature) Added demos generator.py and scale.py.
753
7546/18/01 (enhancement) Snack save dialogs now append .wav etc on the Macintosh.
755
756----------------- Released 2.1.1, 6/21/01 -----------------------
757
7586/29/01 (bug fix) Fixed bug during clean-up which occured for the command sequence "sound record", "exit" (Snack_ExitProc()), followed by after handler with "sound destroy".
759
7607/2/01 (enhancement) Added read support for AU sound files with header specifying dataSize = -1.
761
7627/2/01 (change) Changed the Windows binary installer to default to C:\Tcl which is what ActiveTcl-8.3.3 uses.
763
7647/4/01 (bug fix) Fixed problem reading some CSL sample files (.nsp).
765
7667/20/01 (new feature) New sound command 'power', which is used to compute windowed log power values for a sound.
767
768----------------- Released 2.1.2, 7/20/01 -----------------------
769
7708/1/01 (bug fix) Fixed byte order problem with RAW sound streams.
771
7728/1/01 (bug fix) Fixed problem with RAW sound streams which caused a hang, during play, if no samples were received.
773
7748/3/01 (enhancement) The iir filter now supports multi-channel sound.
775
7768/3/01 (new feature) New demo, pitch.tcl.
777
7788/3/01 (new feature) The Snack script compiler, wrap.tcl, now works out-of-the-box on Windows, with the binary distribution, and for Linux with the source distribution, because freeWrap binaries were included.
779
7808/6/01 (bug fix) Fixed memory leak for sounds linked to disk files that occurred for repeteated configure/play sequences.
781
7828/13/01 (change) Changed the Windows binary installer to use the Tcl installation directory from ActiveState's registry entry.
783
7848/13/01 (bug fix) Added missing library definition for the Ogg/Vorbis encoder in configure.in.
785
786----------------- Released 2.1.3, 8/14/01 -----------------------
787
7888/15/01 (enhancement) Overhaul of the configure script. New options --with-nist-include, --with-nist-lib, --with-ogg-include, and --with-ogg-lib replace --with-nist and --with-ogg, in order to facilitate multi-platform builds. Also, --exec-prefix is now used as intended.
789
79010/25/01 (bug fix) Minor fix in the MP3 decoder for gcc v2.96.
791
79210/25/01 (bug fix) CSL files are now written with a correct block size in FORMDS16. (Kabal)
793
79410/25/01 (enhancement) Support for reading AIFF files containing samples with non multiple of 8 number of bits. (Kabal)
795
79610/25/01 (enhancement) Support for reading WAV files with formats that use WAVE_FORMAT_EXTENSIBLE. (Kabal)
797
79810/26/01 (enhancement) Updated the MSVC++ project files match ActiveTcl's directory structure.
799
80010/26/01 (new feature) New demo, phonetogram.tcl.
801
802----------------- Released 2.1.4, 10/29/01 -----------------------
803
80411/9/01 (bug fix) Fixed problem in the configure script which caused Snack to be built without the TCL_81_API flag, which in turn caused problems for the sound data command.
805
8061/9/02 (enhancement) The generator filter now works correctly on multi-channel sounds through channel duplication.
807
8081/10/02 (new feature) New demo, generator2.tcl.
809
8101/9/02 (enhancement) Support for the stereo-only devices.
811
8121/21/02 (enhancement) Configure script now support HP-UX 11.x.
813
8142/4/02 (new feature) Support for variable bit rate MP3 files with XING headers. (Wilkason)
815
8162/4/02 (bug fix) Fixed crash on HP-UX machines without audio server. (Allaert)
817
818----------------- Released 2.1.5, 2/5/02 -----------------------
819
8202/22/02 (enhancement) Support for 96kHz sample rate on Windows/Linux.
821
8222/25/02 (enhancement) Playback support for normalized float, [1.0, -1.0], sounds.
823
8242/27/02 (bug fix) Fixed problem with the 'filter' command and the -end option.
825
8262/28/02 (new feature) New filter type: fade, which implements linear/logarithmic/exponential fade-in/-out.
827
828----------------- Released 2.1.6, 3/4/02 -----------------------
829
8303/6/02 (change) Removed automatic zero-padding of ESPS files, the start_time field can now be accessed using "sndName configure -start_time" instead.
831
8325/7/02 (bug fix) Fixed problem with the 'fade' filter and multi-channel sound.
833
8345/14/02 (new feature) Included code from the ESPS speech analysis library in Snack.
835
8365/14/02 (new feature)  New sound command 'formant', which is used to compute formant and bandwiths values. Algorithm taken from the ESPS tool formant.
837
8385/14/02 (new feature)  New option '-method' to the 'pitch' command. This is used to select either the new pitch tracker, algorithm taken from the ESPS tool get_f0, or the old one.
839
840----------------- Released 2.2a1, 5/14/02 -----------------------
841
8426/19/02 (new feature) New option -starttime for the 'play' command. Used to specify a delay time in milliseconds before starting playback.
843
8446/19/02 (enhancement) Re-designed internal playback engine, separating sound objects and playback instances properly. Play callbacks are now invoked just before closing the audio device which allows for queueing sounds and other on-the-fly operations.
845
8466/19/02 (enhancement) Postscript for spectrograms is now generated with double resolution.
847
8486/19/02 (enhancement) Drawing of waveforms improved for high zoom factors.
849
8506/19/02 (enhancement) Waveforms now generate faster postscript code.
851
8526/19/02 (bug fix) Fixed bug that caused the play callback not to be invoked when playing multiple simultaneous sounds.
853
8546/19/02 (bug fix) Fixed bug for the -start_time option for SD (ESPS) files with very long headers.
855
856----------------- Released 2.2a2, 6/20/02 -----------------------
857
8587/17/02 (new feature) Support for Linux ALSA PCM sound drivers. New compile time configure option --enable-alsa.
859
8609/12/02 (enhancement) Many improvements to the MP3 decoder, e.g. better seeking. (Wilkason)
861
8629/12/02 (new feature) Automatic selection of default sample rate for new sound objects.
863
864----------------- Released 2.2a3, 9/13/02 -----------------------
865
8669/19/02 (new feature) Modified sources (added CONST qualification on pointers in Tcl API's where required) in order to compile cleanly with Tcl8.4.0 as well as with earlier versions.
867
8689/19/02 (enhancement) Updated package "snackogg" to support release 1.0 of Ogg/Vorbis.
869
8709/29/02 (new feature) New sound command 'mix', which is used to mix two sound objects with optional scaling.
871
8729/29/02 (bug fix) Fixed problem with the 'convert' command and some joint rate/channel conversion combinations. (Pique)
873
874----------------- Released 2.2b1, 9/29/02 -----------------------
875
87610/29/02 (bug fix) Fixed segmentation fault that occured when playing a sound and start time > end time, and no callback was registered. (Davis)
877
87810/29/02 (bug fix) Fixed problem with crash on exit for some Windows systems.
879
88011/4/02 (enhancement) Better handling of mono output on stereo only hardware.
881
88211/5/02 (enhancement) Improvements to the MP3 decoder to allow multiple sounds to cleanly decode one stream each simultaneously. (Wilkason)
883
88411/5/02 (change) Various fixes to configure.in/Makefile.in and win/*.dsp.
885
886----------------- Released 2.2b2, 11/6/02 -----------------------
887
88811/14/02 (new feature) Support for Mac OS X. (McSpadden)
889
89011/14/02 (bug fix) Fixed a couple of problems with sound I/O using Windows DirectSound.
891
892----------------- Released 2.2, 11/14/02 -----------------------
893
89411/19/02 (bug fix) Fixed problem with SnackAudioPlayed() on Windows, return value could roll over after lengthy sound output. (Wilkason)
895
8961/16/03 (enhancement) Canvas items now work on Mac OS X, also added Makefile hardcoded for Tcl8.4.1.
897
8981/24/03 (new feature) Support for standard configure/make build systom on Mac OS X.
899
9001/24/03 (new feature) Core Audio support for Mac OS X.
901
9022/06/03 (new feature) Improved build support for Mac OS X. (Steffen)
903
9042/10/03 (new feature) New sample encoding format Lin24Packed.
905
9062/11/03 (bug fix) Fixed problem with the ESPS pitch tracker.
907
9082/10/03 (new feature) Snack libraries compiled for Tcl/Tk 8.4 now work with earlier stub versions as well.
909
910----------------- Released 2.2.1, 2/21/03 -----------------------
911
9122/28/03 (new feature) Included project files for MSVC++ 7.0.
913
9143/3/03 (new feature) 24-bit recording supported on 24-bit capable hardware.
915
9163/5/03 (change) Updated the release to use Tcl/Tk 8.4 as default
917
9183/6/03 (bug fix) Fixed convert command for conversions involving Lin24 and Lin32 sample encodings.
919
9205/8/03 (enhancement) Several improvements to the MP3 decoder. (Wilkason)
921
9225/8/03 (enhancement) Enhanced streaming support regarding slow networks and playback of long tracks. (Wilkason)
923
924----------------- Released 2.2.2, 5/9/03 -----------------------
925
9268/5/03 (bug fix) Fixed bug in audio code for Mac OS X.
927
9288/26/03 (enhancement) On Sun machines the environment variable AUDIODEV is now used.
929
9308/27/03 (new feature) Updated Snack script compiler, wrap.tcl, to use TclKit.
931
9328/27/03 (new feature) New sound commands powerSpectrum and speatures.
933
9348/29/03 (change) Changed distribution format for Windows.
935
936----------------- Released 2.2.3, 8/29/03 -----------------------
937
9389/9/03 (bug fix) Bug fix in the AIFF header parsing routine.
939
94011/20/03 (bug fix) Bug fix in the pitch command for short sounds (ESPS method) (Theado)
941
94211/20/03 (new feature) Easier Python installation through setup.py script. (Owen)
943
9442/6/04 (bug fix) Bug fix for Windows XP which caused a crash when using USB sound cards.
945
9462/6/04 (bug fix) Bug fix for Macintosh OS X audio which caused echo effect.
947
9482/6/04 (bug fix) Bug fix for Linux OSS which handles audio device busy better. (Wilkason)
949
9502/6/04 (enhancement) Added ability to set Windows DirectSound flags through Tcl integer variables. DSBCAPS_FLAG for DSBCAPS_* and DSSCL_FLAG for IDirectSound_SetCooperativeLevel(). (Wilkason)
951
952----------------- Released 2.2.4, 2/9/04 -----------------------
953
9543/12/04 (bug fix) Fixed memory leak in pitch command. (DeJong)
955
9563/23/04 (change) Updates for the ALSA 1.0 API. (Max)
957
9583/23/04 (enhancement) Modifications to allow build on 64-bit platforms. (Max)
959
9604/9/04 (new feature) Mingw support added. (DeJong)
961
9624/9/04 (bug fix) Fixes for playback clean-up. (DeJong)
963
9644/21/04 (enhancement) Support for playback (in addition to recording) of more than two channels on Windows.
965
9665/3/04 (bug fix) MME audio device selection corrected on Windows.
967
9685/5/04 (bug fix) Corrected bug which made it impossible to "stop" queued sounds.
969
970----------------- Released 2.2.5, 5/5/04 -----------------------
971
9725/12/04 (bug fix) Corrected sample command for use with 24-bit integer samples.
973
9745/15/04 (bug fix) Corrected sample command, now raises an error when more sample values than number of channels are given.
975
9766/8/04 (bug fix) Correction for Lin24 format on Windows. (Schnarr)
977
9786/14/04 (bug fix) Corrected mean calculation for dBPowerSpectrum.
979
9806/14/04 (bug fix) Added out-of-bounds checks SnackCopySamples(), Snack_PutSoundData(), and Snack_GetSoundData(). (DeJong)
981
982----------------- Released 2.2.6, 6/15/04 -----------------------
983
9846/18/04 (bug fix) Added out-of-bounds check in ReadSound(). (DeJong)
985
9866/24/04 (bug fix) Several fixes regarding spectral estimation.
987
9886/24/04 (new feature) New option -regressionorder for the speatures command.
989
990----------------- Released 2.2.7, 6/24/04 -----------------------
991
9928/18/02 (bug fix) Fix for configure. (Allaert)
993
9948/18/02 (bug fix) Fixes for Mingw. (DeJong)
995
9968/18/02 (bug fix) Fixed the -windowtype option to formant to actually use the window names given in the manual.
997
9988/18/02 (bug fix) Fixed the speatures command to update sound properties correctly.
999
10009/22/04 (change) Increased the number of default shades of grey for spectrograms to 256.
1001
10029/23/02 (bug fix) Fixed problem with sound I/O using Windows DirectSound. (DeJong)
1003
10049/24/04 (new feature) New command lastIndex, which returns last sample index of a sound object.
1005
1006----------------- Released 2.2.8, 9/30/04 -----------------------
1007
100810/20/04 (new feature) Implementation of data and append commands for Python (Hinard).
1009
101010/26/04 (bug fix) Fixed leak in Windows sound I/O code. (Wilkason)
1011
101211/15/04 (new feature) The fade filter can now fade to a minimum level other than zero.
1013
101411/18/04 (bug fix) Corrected memory leak in the pitch command.
1015
101611/25/04 (bug fix) Corrected handling of Lin24packed sample encoding.
1017
101811/30/04 (new feature) Support for more than 2 channels on Macintosh OS X.
1019
1020----------------- Released 2.2.9, 12/1/04 -----------------------
1021
10221/26/05 (new feature) Added implementation for snack::audio record_gain command on Windows (DeJong)
1023
10241/26/05 (enhancement) Several improvements regarding MP3 format handling. (Wilkason)
1025
102614/12/05 (bug fix) Fixed canvas items to work with later ActiveTcl releases.
1027
1028----------------- Released 2.2.10, 14/12/05 -----------------------
1029
1030