--- linuxsampler/trunk/ChangeLog 2006/12/19 19:40:45 990 +++ linuxsampler/trunk/ChangeLog 2007/10/19 17:52:15 1454 @@ -1,5 +1,30 @@ Version CVS HEAD (?) + * packaging changes: + - added autoconf checks for pthread library + - added autoconf check for pthread bug found on certain NPTL-enabled + glibc versions (see Gentoo bug report #194076) + +Version 0.5.0 (15 October 2007) + + * packaging changes: + - config.h is not going to be installed along with liblinuxsampler's + API header files anymore + - only the API relevant header (and source) files will be exported to + the Doxygen API documentation (explicitly listed in Doxyfile.in) + - added completely new XCode project files for Mac OSX which is now + capable to execute our autoconf environment, thus no need anymore + to maintain the compile time configuration file (osx/version.h) for + OSX manually (patch by Toshi Nagata) + - fixed buggy boolean --enable-foo / --disable-foo configure script + parameters + - global.h now only covers global definitions that are needed for the + C++ API header files, all implementation internal global definitions + are now in global_private.h + - atomic.h is not exposed to the C++ API anymore + - no need to include config.h anymore for using LS's API header files + - fixed warnings in API doc generation + * general changes: - replaced the old, confusing MIDI program change mechanism by a flexible MIDI instrument mapper which allows to map arbitrary @@ -17,22 +42,129 @@ MIDI instrument maps and assign each sampler channel individually a certain map, so that i.e. separation of normal instruments and drumkits is possible - - new notification events for tracking audio/MIDI device changes, - MIDI instrument map changes and MIDI instrument changes + - new notification events for tracking changes to audio/MIDI devices, + MIDI instrument maps, MIDI instruments, FX sends, global volume. - sampler was limited to load max. 200 instruments in the background due to a constant size RingBuffer FIFO which is now replaced by a dynamic (unlimited) size std::list FIFO + - added FX sends, these allow to route audio signals to arbitrary audio + output channels for being processed by external effect processors + (i.e. jack-rack), the send levels are controllable via arbitrary MIDI + controllers + - global (sampler wide) volume can now be controlled at runtime + - Implemented new, improved notification system + - fixed compilation errors regarding OSX + (patch by Toshi Nagata) + - implemented instruments database + - added support for escape sequences to the instruments database + - added highly experimental support for on-the-fly instrument editing + within the sampler's process (by using instrument editor plugins), + you'll notice the new "Registered instrument editors:" message on + startup, added a new LSCP command: + "EDIT CHANNEL INSTRUMENT " + to spawn a matching instrument editor for the instrument on the + given sampler channel, the plugin path can be overridden at compile + time with ./configure --enable-plugin-dir=/some/dir + - added experimental code for synchronizing instrument editors hosted + in the sampler's process to safely edit instruments while playing + without a crash (hopefully) by either suspending single regions + wherever possible or if unavoidable whole engine(s) + - fixed several issues in fundamental "Thread" class: set scheduling + policy and priority on thread level, set a minimum stack size for + thread (TODO: a reasonable value yet to be tested), bugfix: non-RT + threads simply inherited properties of starting thread instead of + setting their own policy and priority + - minor fix in our automatic stack trace mechanism on crashes, the + main process did not wait for the stack trace process to finish + its output + - fixed some minor memory leaks + - reenabled assembly features support, at the moment only for + enabling a fast denormal FPU mode (x86 platforms supporting SSE2) + - minor assembly fix in x86 features detection (don't use the PIC + register, to avoid relocations in the text segment at runtime) + - POSIX callback functions of Thread.h are hidden * MIDI driver: - dispatch bank select (MSB and LSB) messages + * audio driver: + - the ALSA audio output driver parameters now reflect the correct + parameter value ranges for the respective selected sound card + (patch by Till Wimmer, a bit fixed and extended) + * Gigasampler format engine: - if a filter is used and EG2 finishes before EG1, let the voice die when EG2 has finished (this fixes a problem with clicks and voice starvation for some gigs) + - playback is no longer disabled during instrument loading + - all notes playing on a channel that changes its instrument keep + playing with the old instrument until they get a note off + command + - EG fix: a release value of zero could cause noises or crash + - handle MIDI coarse tuning messages (MIDI RPN #0 MSB #2 LSB) + - EG fine tuning: when attack is zero the EG starts at a level + above max sustain level, which means that there is a decay phase + even if sustain is 100% + - more EG fixes: the level could sometimes go below zero and cause + noises or crashes + - minor fix of EGDecay (patch by Toshi Nagata) + - fixed compiler error when --enable-override-filter-type was + supplied to the configure script (fixes #46) + - disk thread: queue sizes are now proportional to CONFIG_MAX_STREAMS + instead of a fix value + - behavior fix: on MIDI CC# 65 (portamento on / off), 126 (mono mode), + 127 (solo mode) only kill voices if the respective mode really + changed + + * LSCP server: + - fixed compile time error for old Bison versions + (i.e. v1.28 found on MacOS 10.4, patch by Toshi Nagata) + - parser now supports extended ASCII character set + (up to ASCII code 255, i.e. includes now umlauts and accents) + - filename arguments in LSCP commands now allow to use escape + sequences, that is directly literal as one of: \', \", \\, \n, \r, + \f, \t, \v, or as octal ASCII code value like \132, or as hex ASCII + code value like \xf2) (fixes bug #24) + - the following LSCP commands now also support escape sequences for at + least one of their text-based parameters (i.e. name, description): + "ADD MIDI_INSTRUMENT_MAP", "MAP MIDI_INSTRUMENT", + "SET MIDI_INSTRUMENT_MAP NAME", "SET FX_SEND NAME", "CREATE FX_SEND", + "SET DB_INSTRUMENT_DIRECTORY NAME", + "SET DB_INSTRUMENT_DIRECTORY DESCRIPTION", "SET DB_INSTRUMENT NAME", + "SET DB_INSTRUMENT DESCRIPTION", "FIND DB_INSTRUMENTS", + "FIND DB_INSTRUMENT_DIRECTORIES" + - returns verbose syntax errors (line and column where syntax error + occured, the unexpected character and the actually expected, possible + character(s), the latter only if less than 5 possibilities) + - made sure that LSCP syntax is not affected by gigedit locale + settings + - bugfix regarding strings parameter lists: all comma separated lists + of strings were treated as being one string containing commas + (fixes #57) * Bug fixes: - fixed crash occurring on certain LSCP scripts (Bug 39) + - another thread safety fix for lscp "load engine" and "set + channel audio output device" + - fixed a crash which occurs when reassigning the same engine + on a sampler channel with connected MIDI device + - fixed a crash which occurs when changing the number of ports of a MIDI + device connected to a sampler channel to number less then or equal + to the index of the port to which the sampler channel is connected. + - The previous bindings were not been disconnected when altering + the ALSA_SEQ_BINDINGS parameter. Introduced a NONE keyword for + unsubscribing from all bindings (e.g. ALSA_SEQ_BINDINGS=NONE). + - The active stream/voice count statistic was incorrect. + - notification events were not been sent for some sampler + channel changes + - added default min and max values to restrict the number of allowed + audio output channels and MIDI input ports + - the connection to the PCM interface is now closed when destroying + an audio output device + - files with slash in their path or filename could not be loaded + + * test cases: + - updated and fixed (haven't been touched in a while) Version 0.4.0 (24 November 2006)