--- linuxsampler/trunk/ChangeLog 2005/06/15 00:01:28 649 +++ linuxsampler/trunk/ChangeLog 2006/07/23 16:44:08 906 @@ -1,10 +1,130 @@ Version CVS HEAD (?) * packaging changes: + - changed deprecated copyright attribute to license; added ldconfig + to post-(un)install steps; added devel package for liblinuxsampler; + to linuxsampler.spec (RPM) + - install necessary development header files for allowing 3rd party + applications to link against liblinuxsampler + - liblinuxsampler's API documentation can be generated with 'make docs' + (Doxygen required) + - added benchmark to automatically detect the best triangle LFO + implementation (currently either an integer math solution or a + di-harmonic approximation), automatic detection can be overriden + with --enable-signed-triang-algo=x and --enable-unsigned-triang-algo=x + configure script argument though (mandatory for cross-compilation) + - do not automatically pick optimized gcc flags if the user already + provided some on his own (as CXXFLAGS) + - added compile time option to disable processing of All-Notes-Off MIDI + messages + - added compile time options to allow disabling the various audio and + MIDI drivers + + * Gigasampler format engine: + - extensive synthesis optimization + (reimplementation of EGs and LFO(s), removed synthesis parameter + prerendering and the synthesis parameter matrix in general, splitting + each audio fragment into subfragments now where each subfragment uses + constant pitch and filter coefficients. The volume coefficient is + linearly interpolated inside a subfragment, unless + --disable-interpolate-volume is set.) + - fine tuning of the EG modulation parameters + - improved filter cutoff calculation by adding support for the + following gig parameters: Cutoff freq (used when no cutoff + controller is defined), Control invert, Minimum cutoff, Velocity + curve and Velocity range. The keyboard tracking now scales + cutoff frequency instead of resonance. + - added support for gig parameter Resonance. + - fixed bug in sysex handling (patch by Juan Linietsky) + - added global volume attenuation of -9 dB (0.35f) to prevent clipping + which can be overridden with --enable-global-attenuation + - EG fixes: made the length of "attack hold" stage more + accurate. Release stage can now start before attack stage + ends. Cancel release didn't work when sustain was zero. Attack + time now has a minimal value to prevent clicks. + - fixed pitch changes larger than one octave + - fixed EG3 (pitch envelope) synthesis which was neutral all the time + - implemented portamento mode and solo mode (a.k.a 'mono mode'): + all modes can be altered via standard GM messages, that is CC5 for + altering portamento time, CC65 for enabling / disabling portamento + mode, CC126 for enabling solo mode and CC127 for disabling solo mode + - fine tuning of the curves for volume (CC7), pan (CC10 and gig + parameter) and crossfade + - added support for the "attenuation controller threshold" gig + parameter + - added smoothing of volume changes caused by control change + messages + - sample loop parameters are now taken from the DimensionRegion + instead of the wave chunk + - fixed keyswitching for v3 gigs with a number of keyswitch splits + not equal to a power of two + - reimplementation of the filter algorithm. The new filter is more + accurate and supports all gig filter types, including bandreject + and lowpass turbo. + - real support for 24 bit samples - samples are not truncated to + 16 bits anymore + - support for aftertouch (channel pressure, not polyphonic + aftertouch) + + * LSCP server: + - fixed application exit on broken pipe error (fixes bug #20) + - fixed the notification messages delay due to lack of + network activity (fixes bug #26) + - fixed parser bug which occured on space(s) within device parameters + (e.g. "SET AUDIO_OUTPUT_CHANNEL_PARAMETER 0 0 SOMEPARAM='foo bar'") + + * audio driver: + - added aRts audio output driver (by no means RT safe) + + * MIDI driver: + - fixed legacy sysex code which caused dispatching of MIDI SysEx + messages several times instead of once + - API extension for MIDI drivers which already supply exact time stamps + for events (i.e. for offline rendering based MIDI drivers) + + * linuxsampler application: + - show available sampler engine types on startup + + * general changes: + - support for muting sampler channels and solo mode of the same, two new + LSCP commands ("SET CHANNEL MUTE" and "SET CHANNEL SOLO") and two new + fields ("MUTE" and "SOLO") for command "GET CHANNEL INFO" were + introduced for this, the behavior is the same like on a mixer console + (patch by Grigor Iliev, a bit adjusted). Also added configure option + --enable-process-muted-channels which can be used to enable the + processing of muted channels. + - support for sostenuto pedal + - support for monitoring the total number of active voices + (new LSCP commands: GET TOTAL_VOICE_COUNT, GET TOTAL_VOICE_COUNT_MAX, + SUBSCRIBE TOTAL_VOICE_COUNT, UNSUBSCRIBE TOTAL_VOICE_COUNT) + - fixed some memory management errors + - fixed some concurrency problems that could lead to crashes when + LSCP commands were executed + +Version 0.3.3 (15 July 2005) + + * packaging changes: + - fixed compilation with gcc 4.0 + + * Gigasampler format engine: + - LFO preprocessing was performed even though the respective LFO was + disabled by the instrument patch (minor efficiency fix) + - if period time of chosen audio device is too small (< MIN_RELEASE_TIME) + for volume ramp downs in the same fragment (needed for current voice + stealing implementation) then simply inform the user with a warning + about possible click sounds and reduce the volume ramp down + appropriately instead of cancelling the audio device connection + +Version 0.3.2 (24 June 2005) + + * packaging changes: - updated autotools build files to compile on OS X (conditional compilation of CoreMIDI and MidiShare drivers) - hand-crafted assembly optimization code can be disabled with './configure --disable-asm' (definitely not recommended) + - fixed 'make dist' rule to include all necessary files + - require automake (>= 1.5) for 'make -f Makefile.cvs' + (due to 'dist-bzip2' automake option) * Gigasampler format engine: - support for the gig parameters for "release velocity response" curves @@ -12,10 +132,27 @@ - volume of release triggered samples now depends on note-on velocity, note length and gig parameter "release trigger decay" instead of note-off velocity. - - revised voice stealing (fixes crash caused by voice stealing) - + - revised voice stealing + (fixes crash and endless loop caused by voice stealing) + - don't reset scale tuning on instrument or audio output device change + - handle key group conflicts right at the beginning of each fragment + instead of when the respective voice is actually launched + (fixes undefined behavior if stolen voices belonged to a key group - + this case was followed by a "killed voice survived" error message) + - fixed minor issue with null/silence samples + (those stole voices even though they don't need a voice at all which + resulted in "voice stealing didn't work out" messages) + - don't reset volume, pan, pitch and MIDI controller values on + instrument or audio output device change + * LSCP server: - - fixed some crashes (patch by Grigor Iliev, fixes #19) + - fixed some crashes (patch by Grigor Iliev, fixes #19) + - fixed LSCP event "CHANNEL_INFO" notification + (e.g. did not notify on volume changes or MIDI program change events) + + * linuxsampler application: + - added command line parameters --lscp-addr and --lscp-port to override + default IP address and port of LSCP server Version 0.3.1 (24 May 2005)