1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702
|
Changes to Snack
----------------- Released 1.3, 10/1/98 -----------------------
10/1/98 (new feature) AIFF file support, although there seems to be lots of
files out there that don't adhere to the specification.
10/1/98 (new feature) Sound objects now can be linked to disk files and
streams (Tcl channels) as well as having their audio data in memory.
10/5/98 (new feature) Added -byteOrder option to the sound data command and to all commands taking the -byteswap option, which is deprecated.
10/7/98 (bug fix) Fixed problem playing zero-length sounds on HP-UX.
10/7/98 (bug fix) Fixed problem playing multi-channel disk files.
10/12/98 (bug fix) The configure command now stops any active play/record operation before setting an option. Also, corrected -format and -channels options.
10/12/98 (new feature) Added cget command to complement configure command.
10/14/98 (bug fix) Fixed problem with insert command.
10/21/98 (bug fix) Fixed problem with APause() on IRIX.
----------------- Released 1.4b, 10/26/98 -----------------------
10/26/98 (new feature) Makefile now also builds a Tcl only libsound.so
10/28/98 (new feature) Split OSound.c into jkSound*.c and added Snack_AddSoundCmd() for Snack extensions. Added pause command.
10/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.
11/3/98 (bug fix) Fixed bug in destroyCmd() and flushCmd() causing unwanted closing of audio device.
11/6/98 (bug fix) Fixed bug in Snack_SoundCmd() for -load'ing raw files.
11/11/98 (new feature) Better validation of options -fftlen/-winlen/-channel.
11/18/98 (bug fix) Snack now more robust to audio device peculiarities, misc audio fixes for HP-UX, Solaris, Linux, and Windows.
11/18/98 (new feature) Play commands now queue up and play in sequence.
11/22/98 (bug fix) Fixed bugs in SmpMov() and lengthCmd() for byte sized sample data.
12/19/98 (new feature) Added -colormap option to spectrograms.
12/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).
12/22/98 (new feature) PS generation for color spectrograms.
----------------- Released 1.4p2, 1/1/99 -----------------------
1/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.
1/1/99 (new feature) Made some optimizations to spectrogram drawing. Added -gridcolor option. 256-color displays now supported under Windows.
1/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.
1/7/99 (new feature) Added -fileformat option to the sound write command which overrides the guess of format from the file name extension.
1/15/99 (new feature) Added sound convert command. Rather simple resampling algorithm (to start with).
1/26/99 (new feature) Modified spectrogram canvas item code with the goal of making it replace the spectrogram widget, which is now deprecated.
1/27/99 (bug fix) Swapped Lin8 and Lin8Offset everywhere, long overdue.
1/29/99 (new feature) Split the file AudIO.c into one jkAudIO_*.c per platform. Renamed some other source and header files too.
2/1/99 (bug fix) Waveforms redraw properly now.
----------------- Released 1.5a1, 2/8/99 -----------------------
2/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.
2/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.
2/8/99 (new feature) Automatic detection of byte order and sample encoding format now also for -file/-channel sounds.
2/8/99 (new feature) Snack now uses immediate loading. This eliminates the problems with, for example, finding the Snack item types in some cases.
2/8/99 (feature change) Waveform -subsample option now has a default value of 1.
2/9/99 (bug fix) Copy command now allocates sufficient memory when copying multi-channel sounds.
2/10/99 (bug fix) Fixed canvas item bug when UpdateXXX() is called before an item has been drawn on screen.
----------------- Released 1.5a2, 2/10/99 -----------------------
2/12/99 (bug fix) Corrected error progagation when failing to read sounds and parsing headers.
----------------- Released 1.5b1, 2/16/99 -----------------------
2/21/99 (new feature) Convert command now does low-pass filtering when resampling sounds.
2/21/99 (bug fix) Corrected the code for immediate loading, which would have caused problems in future versions.
2/21/99 (new feature) Improved documentation and configuration of the snackSphere package.
2/22/99 (bug fix) Corrected right edge padding of spectrograms.
2/28/99 (new feature) Created commands getOGIwave and createOGIwave for interaction between Snack sounds and the wave objects of the OGI toolkit.
3/1/99 (new feature) Added support for reading the MPEG layer 3 sound format.
----------------- Released 1.5b2, 3/3/99 -----------------------
3/17/99 (new feature) Added Snack_GetSound() function which returns a sound struct given a sound command name.
3/18/99 (bug fix) Corrected bug for file based playback of MP3 sounds.
----------------- Released 1.5b3, 3/18/99 -----------------------
3/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.
3/23/99 (removed feature) The spectrogram widget was removed as all functionality is provided by the corresponding canvas item.
----------------- Released 1.5b4, 3/27/99 -----------------------
4/6/99 (bug fix) Changed the parsing of sound file headers to allow for example MP3 sounds to be played over a socket connection.
4/6/99 (bug fix) Fixed stereo audio on SGI.
----------------- Released 1.5, 4/6/99 -----------------------
4/8/99 (bug fix) Updated g711.c with fix for Snack_Lin2*() functions.
4/9/99 (feature change) The Snack Tcl library now uses a namespace.
4/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.
4/15/99 (enhancement) Added simple sound viewer cool.tcl. Fixed aserver.tcl doesn't hang during exit on Windows anymore.
----------------- Released 1.5p1, 4/15/99 -----------------------
5/3/99 (new feature) Added -fileformat option to the sound read/data/append commands that overrides the file format auto-detection function.
5/3/99 (feature improvements) Improved sample file header detection/parsing.
5/3/99 (API change) The amount of sound data to transfer using Snack_Get{Put}SoundData() should now be specified in bytes.
5/9/99 (bug fix) Fixed bug in sound data command for stereo sounds. Caused too much data to be written to binary Tcl variables.
----------------- Released 1.5p2, 5/10/99 -----------------------
5/20/99 (bug fix) Proper clean-up if an error occurs during creation of a sound.
5/26/99 (bug fix) Bug fix for the AIFF header parsing routine. (Barras)
5/26/99 (new feature) User fields in the sound structure to be used with, e. g.,
new file formats. (Zhou)
5/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.
*** POTENTIAL INCOMPATIBILITY ***
----------------- Released 1.6a1, 5/27/99 -----------------------
5/30/99 (bug fix) More robust seeking in MP3 files.
5/30/99 (bug fix) The play command callback (-command) now gets executed when -start is at the very end of a sound.
----------------- Released 1.6a2, 5/31/99 -----------------------
5/31/99 (improved feature) Added format Lin8 (AFMT_S8) for Linux (if supported by hardware). (Barras)
5/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)
6/7/99 (improved feature) The "audio frequencies" command on Linux now reports the actual audio device capabilities.
6/7/99 (enhancement) More informative error messages for audio I/O.
6/8/99 (new feature) Snack can now use the Tcl/Tk stub libraries (default behaviour). Also, eliminated use of private Tcl library functions.
6/14/99 (feature change) The sound read/write commands now do nothing if filename is specified as "".
6/15/99 (new feature) Extensions to Snack can now link with Snack's stub library (libsnackstub1.6.a) This is the preferred method.
----------------- Released 1.6b1, 6/15/99 -----------------------
7/21/99 (bug fix) Fixed several problems with the append command.
7/21/99 (bug fix) Fixed file header parsing routines to work correctly with files contained in Tcl variables when running Tcl8.1 or later.
7/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.
*** POTENTIAL INCOMPATIBILITY ***
7/22/99 (bug fix) Short raw files (< 1024 bytes) are now read correctly.
7/26/99 (bug fix) Fixed display update bug for spectrogram canvas items configured solely with -pixelspersecond.
7/26/99 (new feature) Added an experimental pitch command for extraction of the fundamental frequency from speech.
7/28/99 (new feature) The visualization canvas items now work with sounds which are linked to sound files.
----------------- Released 1.6b2, 7/28/99 -----------------------
8/3/99 (new feature) Snack_GetSoundData() can now be used to access data in linked sound files.
8/3/99 (bug fix) The -end option to read/data/append now works correctly.
8/3/99 (bug fix) Frequency conversion corrected for Mulaw/Alaw sounds.
----------------- Released 1.6, 8/6/99 -----------------------
8/23/99 (enhancement) Updated the snackSphere package to use stub-libraries.
8/30/99 (new feature) Playback of stereo Mulaw/Alaw sound on Solaris and Linux with on-the-fly conversion if needed.
8/30/99 (bug fix) Fixed bug for canvas items linked to stereo sound files.
9/1/99 (bug fix) Fixed clean-up bug for canvas items linked to a sound which has been destroyed.
9/8/99 (bug fix) Fixed display bug for waveforms and Lin8Offset sounds.
9/9/99 (configuration improvement) Configuration defaults are now for Tcl/Tk8.2.0.
----------------- Released 1.6.1, 9/9/99 -----------------------
9/15/99 (bug fix) Memory was freed twice when deleting spectrum sections. (Barras)
9/15/99 (bug fix) Canvas items now remember which channel(s) to show when the sounds they are linked to change.
9/23/99 (bug fix) Sound length is now calculated correctly by the read command when skipping an unknown header. (Barras)
9/23/99 (bug fix) Fixed some code inconsistencies for SGI (jkAudIO_sgi.c). (Mel)
10/5/99 (bug fix) The read command now works correctly when reading multi-channel sounds with the option -start specified. (Kanwischer)
10/13/99 (new feature) The max/min commands now takes options -start, -end, -channel.
10/13/99 (bug fix) Canvas waveform items can now be created without actually specifying a sound.
----------------- Released 1.6.2, 10/13/99 -----------------------
10/28/99 (new feature) The commands max, min, sample, and fft now work for sounds linked to files.
10/28/99 (bug fix) The stop command sometimes didn't close a file being played properly. (Barras)
10/28/99 (bug fix) MP3 headers are now recognized more robustly.
10/28/99 (API change) The putHeaderProc of Snack_AddFileFormat() no longer takes the parameter buf. (Ammicht)
11/9/99 (enhancement) Spectrum sections now take the options -maxvalue/-minvalue which can be used to set the dB-range to be displayed.
11/10/99 (new feature) Added reverse command (useful in the search for hidden messages ;-).
11/18/99 (enhancement) The options to sound, configure, and cget are now in better agreement.
11/18/99 (new feature) Canvas items can now be unlinked from a sound object by configuring -sound "".
11/19/99 (bug fix) Fixed problem with the 'audio update' command on Linux.
11/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.
11/23/99 (removed feature) Removed several deprecated options to the record command, all of which are available through the configure command.
11/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.
----------------- Released 1.6.3, 11/23/99 -----------------------
12/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.
12/14/99 (bug fix) An exit handler was added, which gives better clean-up on exit for Windows 95/98.
12/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.
12/14/99 (API change) The C-macros Snack_SetSample() and Snack_GetSample() now take an additional channel parameter.
12/15/99 (bug fix) Spectrograms for linked sounds with Lin8Offset/Lin8 sample encodings now display properly.
12/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.
12/16/99 (bug fix) The max/min commands fixed for the combination empty sound and -start/-end options with value 0.
12/16/99 (bug fix) MP3 headers are now parsed a bit more robustly when they are read on-the-fly from a channel.
12/16/99 (configuration improvement) Searches for Tcl/Tk at configuration time using TEA macros.
----------------- Released 1.6.4, 12/16/99 -----------------------
1/8/00 (bug fix) Fixed a pair of bugs concerning pre-computed waveforms, now ok for sounds longer than 10M samples and during playback.
1/8/00 (bug fix) Yet another MP3 header parsing fix for channel input.
1/10/00 (bug fix) Fixed bugs regarding max/min values and pre-computed waveforms.
1/10/00 (enhancement) The sample command now caches values for sounds linked to files between invocations.
----------------- Released 1.6.5, 1/10/00 -----------------------
1/14/00 (bug fix) The audio volume command on HP-UX is now safe to use during play/record operations.
1/17/00 (enhancement) The Windows audio code now supports full duplex audio, i.e., simultaneous record/playback.
1/18/00 (bug fix) Corrected the macro Snack_GetSample().
1/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.
1/19/00 (bug fix) The write command now correctly reports, format unsupported, when trying to write in MP3 format, (for the time being).
2/7/00 (removed feature) Removed undocumented/unused commands grab/release.
2/7/00 (new feature) New command flipBits which bit reverses the bytes of Mulaw sounds. (Zhou)
2/7/00 (enhancement) Source code modifications for easier C++ integration, plus some clean-ups. (Ammicht,Zhou)
----------------- Released 1.7a1, 2/8/00 -----------------------
2/10/00 (bug fix) Frequency conversion corrected for multi-channel sounds.
2/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.
2/16/00 (new feature) Added test suite for the sound command.
2/16/00 (bug fix) Frequency conversion corrected for Lin8Offset and Lin8 formats.
2/18/00 (enhancement) Lin8 format now supported in dBPowerSpectrum command and in spectrogram and spectrum section canvas items.
2/22/00 (bug fix) Corrected bug in Snack_GetSoundData(), position parameter now indexes correctly for sound objects linked to disk files.
2/22/00 (enhancement) The pitch command no longer makes a copy of the sound data internally.
----------------- Released 1.7a2, 2/28/00 -----------------------
3/2/00 (enhancement) The pitch command now inserts leading zeroes in the output list in order to make the pitch values centered on frames.
3/2/00 (bug fix) Fixed some memory leaks in the pitch command.
3/2/00 (bug fix) The sample command now returns correct values for Lin8offset and Lin8 in-memory sounds.
3/2/00 (bug fix) The waveform and spectrogram canvas items should now display with the same scaling for all options given identical values.
----------------- Released 1.7a3, 3/2/00 -----------------------
3/17/00 (bug fix) Fix in snack.tcl relating to the WaveSurfer package.
----------------- Released 1.7a4, 3/17/00 -----------------------
3/29/00 (new feature) Snack now supports DirectSound on Windows.
3/29/00 (new feature) Snack now supports the Macintosh.
3/29/00 (API change) Snack now uses the namespace snack for all its commands.
3/29/00 (API change) The audio command was split into two commands snack::audio and snack::mixer.
*** POTENTIAL INCOMPATIBILITY ***
3/29/00 (API change) The snack::audio command has new sub-commands outputDevices/inputDevices/select.
3/29/00 (API change) The snack::mixer command has new sub-commands devices/select.
3/29/00 (configuration improvement) The distribution has been reorganized to better match the Tcl/Tk standard layout.
3/29/00 (new feature) The dBPowerSpectrum has new options -end and -skip.
3/29/00 (new feature) The spectrum section canvas item has new option -skip.
3/29/00 (new feature) The example on how to extend Snack was included in the distribution.
3/29/00 (new feature) The play/record commands has new option -device to specify which audio device to use if several are installed.
----------------- Released 1.7b1, 3/29/00 -----------------------
4/6/00 (bug fix) Fixed bug which caused Snack to crash on loading on some Windows machines.
4/6/00 (bug fix) Snack sound objects with identical names can now coexist in different interpreters.
4/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.
4/6/00 (bug fix) Fixed bug which was caused by very wide spectrograms.
4/6/00 (new feature) Snack now incorporates the source code necessary for the Transcriber project. (Barras)
4/6/00 (bug fix) Updated configurations regarding the snacksphere package, which adds the NIST/Sphere file formats.
4/6/00 (feature change) The demos were revised to work on the Macintosh.
----------------- Released 1.7b2, 4/6/00 -----------------------
4/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.
4/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.
4/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)
4/14/00 (new feature) Added support for CSL files (.nsp) with SDA_, SD_B, and SDAB blocks.
4/15/00 (new feature) Added on-the-fly sample conversion for Mulaw/Alaw on Windows (if not supported by the hardware).
4/17/00 (configuration improvement) Project files for MS Visual C++ was included in the win directory of the distribution.
4/17/00 (new feature) Added sub-commands selectOutput and selectInput to the snack::audio command.
4/18/00 (bug fix) Fixed bug on the Macintosh regarding stereo playback.
4/18/00 (enhancement) The Macintosh shared library now also contains Snack's Tcl files in a TEXT resource.
4/19/00 (configuration improvement) The MPW makefile for Macintosh can now be used to build Snack from the source distribution with only one modification.
4/19/00 (bug fix) Fixed bug during interpreter close down.
----------------- Released 1.7.0, 4/19/00 -----------------------
4/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.
4/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.
4/27/00 (enhancement) jkAudIO_oss.c now also handles big endian machines.
5/3/00 (bug fix) AIFF sample data was read at slightly wrong offset.
6/8/00 (bug fix) Bug fix for WAV files with PAD chunk.
6/27/00 (bug fix) Fixed problem with the destroy command, de-allocated memory was referenced. (Barras)
7/3/00 (bug fix) Snack_PutSoundData() corrected for big chunks.
7/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.
7/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.
7/5/00 (API change) The snack::audio command has new sub-commands "rates" and "encodings" to complement the above changes.
7/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.
7/5/00 (removed feature) The byteswap command was removed due to the internal change to floating point.
7/5/00 (new feature) New option to the sound/configure/cget commands -precision, which controls at which precision sound data is stored internally.
7/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.
7/5/00 (feature change) Simultaneous sound object records now are now possible.
7/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.
7/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.
7/5/00 (new feature) Support for WAV files with Lin24, Lin32, and Float data.
7/5/00 (new feature) Support for AU files with Lin24, Lin32, and Float data.
7/5/00 (new feature) Support for AIFF files with Lin24 and Lin32 data.
7/5/00 (feature change) The procedure readProc() given to Snack_AddFileFormat()
has changed parameters.
7/5/00 (API change) New macros in the C-api, Snack_SetSampleRate(), Snack_GetSampleRate(), Snack_SetSampleEncoding(), Snack_GetSampleEncoding().
----------------- Released 2.0a1, 7/6/00 -----------------------
7/20/00 (API change) New function Snack_CreateFileFormat() which replaces Snack_AddFileFormat(), which now is deprecated.
7/20/00 (enhancement) Updated the snacksphere package to work with the new Snack 2.0 API.
7/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.
7/21/00 (bug fix) Bug fix for Windows machines with more than 4 audio devices.
7/24/00 (bug fix) Fixed problem with stereo sound output.
7/24/00 (bug fix) Fixed problem with gaps in the output stream.
7/24/00 (API change) Changed name of the snack::audio sub-command "latency" to "playLatency", which will be complemented with a future "recordLatency".
----------------- Released 2.0a2, 7/24/00 -----------------------
7/25/00 (bug fix) Fixed problem with decoding of multiple simultaneous MP3 files.
7/27/00 (enhancement) Checks are now made that the specified device is valid in the commands snack::audio/mixer select* and play/record -device.
8/1/00 (enhancement) Check for missing argument to last option, in most sound commands.
8/4/00 (enhancement) When reading ESPS files, sound data are now zero-padded at the beginning according to the start_time field.
8/5/00 (bug fix) Fixed problem with noise at the beginning of MP3 files after having played some other MP3 files.
8/5/00 (API change) New member freeHeaderProc() of struct Snack_FileFormat.
8/7/00 (new feature) New command snack::audio scaling, which can be used to scale the global output stream.
8/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.
8/13/00 (bug fix) Canvas items now clean-up properly if an unknown sound is specified with the -sound option.
8/13/00 (bug fix) Fixed bug in Snack_ResizeSoundStorage() which occured when reallocating from a small initial block to a larger one.
8/13/00 (new feature) Included an example on how to use Snack with the Python scripting language, http://www.python.org/.
8/14/00 (new feature) New filters, echo for adding echos and compose for creating composite filters.
----------------- Released 2.0b1, 8/15/00 -----------------------
8/24/00 (enhancement) The MP3 decoder can now be compiled with optimization turned on under MSVC++, which yields at least 50% decreased decoding time.
8/24/00 (configuration improvement) The project files for MS Visual C++ now contain configuration settings for Tcl8.0.
8/25/00 (bug fix) Fixed problem introduced in the previous release regarding playback of linked sounds.
8/25/00 (new feature) The filter command is now allowed to modify the length of the sound it is applied on.
8/25/00 (new feature) The compose filter can now combine more than two filters.
8/25/00 (bug fix) Fixed memory deallocation bug for the map filter.
----------------- Released 2.0b2, 8/25/00 -----------------------
9/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.
9/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.
9/16/00 (new feature) Three new filters: generator, for signal generation, and formant, a formant filter, and reverb.
9/16/00 (enhancement) Display speedup for waveform canvas items.
9/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.
9/16/00 (bug fix) Corrected bug on Linux regarding playback of very short sounds (<120ms).
9/16/00 (bug fix) Corrected bug for waveform canvas items, -progress option can now be configured to an empty string.
9/16/00 (bug fix) Corrected a couple of bugs in the snacksphere package. (Barras)
9/16/00 (bug fix) Bug fix in Snack_ResizeSoundStorage(), when going from a small initial size to 0.
9/16/00 (bug fix) Bug fix in sound configure command, -file option. Proper clean up is now done.
9/16/00 (bug fix) Bug fix in sound length command, cannot set the length of linked sounds anymore, which would cause a core dump.
9/16/00 (API change) The options "-channels" and "-rate" for the play command, changed name to "-devicechannels" and "-devicerate".
9/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.
9/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.
9/17/00 (new feature) The sound write command now also works for linked sounds.
9/17/00 (feature change) The procedure seekProc() given to Snack_AddFileFormat() now expects positions to be given as sample frames instead of bytes.
*** POTENTIAL INCOMPATIBILITY ***
9/17/00 (bug fix) Bug fix reverse command now works as intended again.
9/17/00 (bug fix) Audio and mixer device names are now parsed properly.
9/17/00 (new feature) Added new Python module written by Kevin Russell. This module provides an interface between Snack the Python language.
9/18/00 (new feature) Included project file for Metrowerks CodeWarrior to
build Snack on the Macintosh.
----------------- Released 2.0, 9/18/00 -----------------------
9/24/00 (bug fix) Waveform redraw/configure bugs fixed.
9/24/00 (bug fix) Corrected the order in which file format handlers are invoked.
9/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.
9/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.
9/24/00 (bug fix) Fixed bug in the sound pause command.
9/24/00 (bug fix) Corrected Makefile.in
9/25/00 (bug fix) Corrected output of Mulaw/Alaw/Lin8Offset sound files (Barras)
9/27/00 (API change) The putHeaderProc() member of struct Snack_FileFormat now also takes an interp argument.
9/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.
9/27/00 (bug fix) Fixed problem with playing linked files with given -start option.
----------------- Released 2.0.1, 9/27/00 -----------------------
9/29/00 (bug fix) Fixed problem handling -progress options, proper clean-up is now done.
10/9/00 (bug fix) Trying to play a sound which is linked to a non existing file now raises an error.
10/9/00 (new feature) New Tcl demo, wrap.tcl, which generates stand alone executables from Tcl scripts that use Snack. Requires freeWrap.
10/11/00 (bug fix) Fixed problem on the Macintosh with event loop blocking during playback.
10/25/00 (bug fix) An empty string can now be given with the -progress option in all commands taking that option.
----------------- Released 2.0.2, 10/25/00 -----------------------
11/1/00 (bug fix) Fixed bug in Snack_ResizeSoundStorage() which occured when reallocating from a small initial block to a larger one.
11/1/00 (bug fix) Fixed problem occuring for waveform whose sound is linked to a non-existing filename.
11/1/00 (bug fix) Section canvas item now updates correctly if unlinked from a sound object by configuring -sound "".
11/1/00 (change) New look (and arguments) for snack::timeAxis.
11/6/00 (bug fix) Sound filter command accessed samples beyond end of sound during draining.
11/6/00 (bug fix) Simultaneous playback of mono and stereo sounds corrected.
11/7/00 (bug fix) Fixed problem playing from streams.
11/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.
11/9/00 (bug fix) Spectrogram and section canvas items corrected for sounds linked to files with Alaw/Mulaw sample encoding. (Rank)
11/10/00 (bug fix) Corrected reverse command for multi channel files and added -progress option.
11/10/00 (bug fix) Corrected handling of the -progress option for the sound filter command.
11/12/00 (feature change) The internal message strings given to Snack_ProgressCallback() were changed to make them useable as default messages.
----------------- Released 2.0.3, 11/12/00 -----------------------
11/15/00 (bug fix) The echo filter now cleans-up its delay buffer.
11/15/00 (bug fix) Corrected memory allocation problem in the convert command.
11/17/00 (enhancement) Moved sound change notification out of LoadSound(). Speed improvement in some cases.
11/21/00 (bug fix) The sound filter command now initializes newly allocated storage to zero before draining out last filter samples.
11/21/00 (new feature) New command 'sound swap', which is used to efficiently swap the contents of two sounds.
12/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.
12/5/00 (bug fix) Fixed problem with the sound data command that caused raw data starting with '-' to be interpreted as an option.
12/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.
12/9/00 (bug fix) Fixed bug in the dBPowerCommand that occured when setting the -channel option to -1 (= all channels).
----------------- Released 2.0.4, 12/9/00 -----------------------
12/13/00 (bug fix) Fixed memory allocation bugs which occured during recording.
12/14/00 (bug fix) Corrected -end option within-bounds check for max/min commands.
12/15/00 (bug fix) Made sure that during recording only the amount of data currently available is read in order to avoid blocking.
12/15/00 (bug fix) Linux recording is now done in chunks with power of 2 size.
1/3/01 (bug fix) Added boundary check in MP3 decoder. (Wilkason)
1/3/01 (new feature) New Tcl demo, tomAmp.tcl, MP3 player with play-lists written by Tom Wilkason.
1/3/01 (enhancement) Trying to save sound files with an .sph extension now raises an error if the snacksphere package is loaded.
1/4/01 (bug fix) Fixed bug for stream stereo recording.
1/5/01 (bug fix) No more crashes on MP3 IDV32 tags. (Wilkason)
----------------- Released 2.0.5, 1/5/01 -----------------------
1/26/00 (bug fix) Fixed bug in option parsing for the read command.
1/26/00 (bug fix) Fixed bug in option parsing for the append command.
1/26/00 (enhancement) Snack now runs under Tcl8.3 and earlier if compiled with Tcl8.4. (Beskow)
1/26/00 (bug fix) Fixed problem that caused some raw sound files to be incorrectly treated as MP3 files.
1/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.
1/26/01 (bug fix) Fixed problem with postscript generation for waveforms.
1/29/01 (bug fix) Fixed bug in the Windows audio code which caused a crash on pre-Win2k machines after about 30 recording operations.
1/29/01 (new feature) New option -trimstart for waveform items which trims the start sample to give a nicer looking shape during scrolling.
----------------- Released 2.0.6, 1/30/01 -----------------------
2/6/01 (bug fix) Fixed bug in the Macintosh audio code. The sound stop command now stops sound output without any delay.
2/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.
3/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.
3/1/01 (bug fix) A number of fixes which gives much more stable MP3 decoding. (Wilkason)
3/1/01 (enhancement) Enhanced file format detection to discriminate between raw sound files and MP3 files.
3/1/01 (bug fix) Fixed endianess problem in tests/data.test
3/5/01 (configuration improvement) Fixed configure script for FreeBSD to not use ossaudio library.
3/9/01 (bug fix) Fixed memory leak when playing -file sounds.
3/13/01 (bug fix) Fixed problem for sounds linked to disk files with more than two channels.
3/13/01 (enhancement) Precomputed waveform shapes now handle multi-channel sounds. The shape file is now stored in AIFF format with Lin8 encoding.
3/13/01 (enhancement) The wrap.tcl demo is now more intelligent in creating its temporary work directory on the Windows platform.
3/14/01 (bug fix) Bartlett analysis window corrected. (Rank)
----------------- Released 2.0.7, 3/14/01 -----------------------
3/16/01 (bug fix) Fixed misplaced comment which caused distorted MP3 decoding. (Wilkason)
3/21/01 (bug fix) Fixed problem for spectrogram canvas items that caused a crash in some cases.
3/22/01 (bug fix) Corrected AU file format handler which incorrectly handled Lin8 files as Lin8Offset.
3/23/01 (enhancement) Added read support for files with double (8-byte) samples to AU and WAV file format handlers.
3/23/01 (bug fix) Fixed problems reading sound files containing float samples.
|