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