--- linuxsampler/trunk/ChangeLog 2007/08/17 12:55:37 1298 +++ linuxsampler/trunk/ChangeLog 2008/01/19 16:55:03 1644 @@ -1,6 +1,89 @@ Version CVS HEAD (?) * packaging changes: + - autoconf bugfix: the PKG_CONFIG variable wasn't initialized properly, + causing e.g. the libgig test to fail when + "./configure --disable-jack-driver" was used + (patch by Alexis Ballier) + + * general changes: + - bugfix: on some POSIX systems instrument editor plugins refused to + load as we used a non-portable Linux specific struct field + (fixes bug #70, patch by Ronald Baljeu) + - fixed endless loop which occured when loading an instrument editor + plugin DLL on Windows systems failed + - fixed memory leaks that occurred when liblinuxsampler was unloaded + - optimized the SynchronizedConfig class so it doesn't wait + unnecessarily long after an update + + * audio driver: + - removed the nonsense audio channel constraint (which was hard coded to + max. 100 audio channels) for most audio drivers + - JACK audio driver did not offer a device parameter "SAMPLERATE" as + opposed to the LSCP specs + - bugfix: the SAMPLERATE parameter of some drivers (e.g. JACK) + reflected the wrong value + - fixed a memory management bug in ASIO driver + + * instruments database: + - avoid time consuming samples scanning when adding instruments + to the instruments database + + * Gigasampler format engine: + - fixed a memory leak that could happen when a channel was deleted + while notes were playing + +Version 0.5.1 (6 December 2007) + + * 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) + - added autoconf checks for MS Windows + + * general changes: + - bugfix: the thread used by an editor plugin didn't die when the + editor closed + - bugfix: Ringbuffer.h: fill_write_space_with_null() did not zero + out all the space. operator--() did not apply size_mask after + decrementing the read_ptr. DEFAULT_WRAP_ELEMENTS set to 0 in + order to avoid problems with the _NonVolatileReader functions. + - bugfix: Stream.h: added a missing divide by BytesPerSample in + GetWriteSpace(). Since this function is currently only used in + the stream's qsort() compare function, it didn't trigger any + bugs. + - Resampler.h, Synthesizer.h: cubic interpolation now works in + 24bit mode too. Faster method to read 24bit words on little + endian machines (x86): replaced 3 byte reads + shifts with a 1 + unaligned 32bit read and shift + - experimental support for MS Windows (MIDI input via MME, AUDIO + output via ASIO) + - made handling of SIGINT signal (Ctrl-C) a bit more robust + - support for monitoring the total number of active disk streams + (new LSCP commands: GET TOTAL_STREAM_COUNT, + SUBSCRIBE TOTAL_STREAM_COUNT, UNSUBSCRIBE TOTAL_STREAM_COUNT) + + * AUDIO driver: + - added Windows ASIO low latency audio driver + + * MIDI driver: + - added MME Windows MIDI driver + + * LSCP server: + - added support for Windows style path / filenames, however with + forward slash path separators instead of backslash + (i.e. "C:/foo/bar.gig") + - allow naughty liblscp to send non-string device parameters within + apostrophes as well + - added new LSCP commands: "GET FILE INSTRUMENTS ", + "LIST FILE INSTRUMENTS " and + "GET FILE INSTRUMENT INFO " for retrieving informations + about an arbitrary instrument file on the system where the sampler is + running on + +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 @@ -9,6 +92,14 @@ 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 @@ -41,13 +132,19 @@ - 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 INSTRUMENT " + 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 @@ -59,6 +156,9 @@ - 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 @@ -86,6 +186,11 @@ - 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 @@ -96,9 +201,22 @@ 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) @@ -115,6 +233,11 @@ - 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)