--- linuxsampler/trunk/ChangeLog 2011/10/01 08:23:02 2277 +++ linuxsampler/trunk/ChangeLog 2012/12/14 16:04:49 2384 @@ -1,8 +1,5 @@ Version CVS HEAD (?) - * plugin changes: - - LV2 Persist + Files support (patch by David Robillard) - * packaging changes: - fixed building with newer MinGW-w64 - Mac OS X: support the new dir for Core Audio SDK @@ -18,6 +15,13 @@ - Mac OS X: made it possible to specify plugin installation dir to configure - Mac OS X: Makefile fix for the install-strip target + - fixed compilation with gcc 4.7 + - fixed configure script error with old autoconf versions + - lsatomic.h: use gcc provided atomic functions if building with + gcc 4.7 and C++11 + - modernized configure script + - fixed linkage error when building with + LDFLAGS="-Wl,--no-undefined" (#190) * general changes: - Refactoring: moved the independent code from @@ -42,6 +46,22 @@ - raised limit of program change queue from 100 to 512 (as suggested by Alex Stone) - implemented sine LFO, pulse LFO and saw LFO + - experimental support for per voice equalization + - added command line option --exec-after-init + - Introduced new C++ API method: + EngineChannel::InstrumentFileName(int index) + allowing to retrieve the whole list of files used for the loaded + instrument on an engine channel (a.k.a. part). Some GigaStudio + instruments for example are splitted over several files like + "Foo.gig", "Foo.gx01", "Foo.gx02", ... + - Added new C++ API method Sampler::GetGlobalMaxVoices(). + - Added new C++ API method Sampler::GetGlobalMaxStreams(). + - Added new C++ API method Sampler::SetGlobalMaxVoices(). + - Added new C++ API method Sampler::SetGlobalMaxStreams(). + - Various "const" and "restrict" optimizations. + - all engines: add pan CC value to instrument pan parameter before + applying panning, instead of using two separate pan functions in + series (#182) * Gigasampler format engine: - implemented the "round robin keyboard" dimension @@ -49,6 +69,12 @@ dimension zones is not a power of two - made round robin use a counter for each region instead of each key + - bugfix: pitch LFO controller "internal+aftertouch" was broken + - bugfix: filter keyboard tracking was broken + - filter performance fix (an unnecessary copy was made of the + filter parameters in each sub fragment) + - handle special case when pan parameter in gig file has max or + min value * SFZ format engine: - Initial implementation (not usable yet) @@ -121,7 +147,7 @@ - implemented opcodes ampeg_delayccN, ampeg_startccN, ampeg_attackccN, ampeg_holdccN, ampeg_decayccN, ampeg_sustainccN, ampeg_releaseccN, egN_timeX_onccY, egN_levelX_onccY - - lfoN_* and egN_* opcodes defined in group sections + - lfoN_* and egN_* opcodes defined in group sections are now taken into account - implemented curves - implemented opcodes volume_onccN, volume_curveccN @@ -170,6 +196,41 @@ cutoff_stepccN, resonance_stepccN, lfoN_freq_stepccX, lfoN_volume_stepccX, lfoN_pitch_stepccX, lfoN_pan_stepccX, lfoN_cutoff_stepccX, lfoN_resonance_stepccX + - implemented opcodes eq1_freq, eq2_freq, eq3_freq, + eq1_freqccN, eq2_freqccN, eq3_freqccN, eq1_bw, eq2_bw, eq3_bw, + eq1_bwccN, eq2_bwccN, eq3_bwccN, eq1_gain, eq2_gain, eq3_gain, + eq1_gainccN, eq2_gainccN, eq3_gainccN + - implemented opcodes delay, delay_onccN, delay_random, + delay_samples, delay_samples_onccN + - implemented opcodes egN_eq1gain, egN_eq2gain, egN_eq3gain, + egN_eq1gain_onccX, egN_eq2gain_onccX, egN_eq3gain_onccX, egN_eq1freq, + egN_eq2freq, egN_eq3freq, egN_eq1freq_onccX, egN_eq2freq_onccX, + egN_eq3freq_onccX, egN_eq1bw, egN_eq2bw, egN_eq3bw, egN_eq1bw_onccX, + egN_eq2bw_onccX, egN_eq3bw_onccX, lfoN_eq1gain, lfoN_eq2gain, + lfoN_eq3gain, lfoN_eq1gain_onccX, lfoN_eq2gain_onccX, lfoN_eq3gain_onccX, + lfoN_eq1gain_smoothccX, lfoN_eq2gain_smoothccX, lfoN_eq3gain_smoothccX, + lfoN_eq1gain_stepccX, lfoN_eq2gain_stepccX, lfoN_eq3gain_stepccX, + lfoN_eq1freq, lfoN_eq2freq, lfoN_eq3freq, lfoN_eq1freq_onccX, + lfoN_eq2freq_onccX, lfoN_eq3freq_onccX, lfoN_eq1freq_smoothccX, + lfoN_eq2freq_smoothccX, lfoN_eq3freq_smoothccX, lfoN_eq1freq_stepccX, + lfoN_eq2freq_stepccX, lfoN_eq3freq_stepccX, lfoN_eq1bw, lfoN_eq2bw, + lfoN_eq3bw, lfoN_eq1bw_onccX, lfoN_eq2bw_onccX, lfoN_eq3bw_onccX, + lfoN_eq1bw_smoothccX, lfoN_eq2bw_smoothccX, lfoN_eq3bw_smoothccX, + lfoN_eq1bw_stepccX, lfoN_eq2bw_stepccX, lfoN_eq3bw_stepccX + - implemented opcodes eq1_vel2freq, eq2_vel2freq, + eq3_vel2freq, eq1_vel2gain, eq2_vel2gain, eq3_vel2gain + - sfz parser: allow double spaces in sample filenames + - sfz parser: allow absolute paths for sample filenames + - use linear decay and release for filter and pitch EG + - bugfix: only the first amp_veltrack definition in a file was + used + - bugfix: looping was disabled if loop_start was set to 0 + - allow regions with end=-1 to turn off other regions using the + group and off_by opcodes (#168) + - made end=0 play the whole sample + - fixed support for lochan and hichan opcodes (#155) + - fixed crash when using lochan/hichan opcodes (#187) + - sfz parser: allow -200 to 200 for pan_oncc opcode (#182) * SoundFont format engine: - Initial implementation (not usable yet) @@ -178,14 +239,9 @@ - fine-tuned amplitude EG (by switching from gig to sfz EG) - initial implementation of Vibrato LFO and Modulation LFO - initial implementation of cutoff filter + - use linear decay and release for filter and pitch EG - * Gigasampler format engine: - - bugfix: pitch LFO controller "internal+aftertouch" was broken - - bugfix: filter keyboard tracking was broken - - filter performance fix (an unnecessary copy was made of the - filter parameters in each sub fragment) - - * Host plugins: + * Host plugins (VST, AU, LV2, DSSI): - AU bugfix: failed to destroy its audio/MIDI devices - Listen to all interfaces on Mac OS X (INADDR_ANY) - VST bugfix: If the host called resume() before and after @@ -199,12 +255,46 @@ - VST: made it possible to build the VST plugin for Mac - AU: link AU plugin dynamically if --disable-shared isn't specified + - LV2 "state" extension support (patch by David Robillard) + - VST bugfix: instrument loading hang and crashed the host when + the plugin was loaded a second time (#174) + - plugin bugfix: instrument loading hang when the plugin was + loaded a second time (this time it's for Linux and Mac, previous + similar fix was for Windows) + - thread safety fixes for the instrument loading thread + - LV2: use the new lv2 package if present + - VST: try to open Fantasia automatically on Linux and Mac too (on + Linux, the Fantasia jar should be placed in /share/java) + - VST: fixed crashes on Linux Ardour and EnergyXT + - DSSI bugfix: it wasn't possible to change engine type. The MIDI + port and audio channel routing for DSSI plugins are now visible. + - LV2: use urid and atom extensions instead of deprecated uri-map + and event + - LV2: lv2 package 1.0 is now required to build the LV2 plugin + - LV2: changed number of output channels to 16 stereo, just like + the VST and AU plugins + - LV2: fixed save/restore of SFZ state (patch by David Robillard) + - LV2: made LV2 plugin buildable on Windows and Mac + - VST: implemented retrieval and switching of programs using the + sampler's internal MIDI instrument mapping system * MIDI driver: - ALSA MIDI driver supports now "NAME" device parameter, for overriding the ALSA sequencer client name - removed limit of maximum amount of MIDI ports per MIDI device, since there is no reason for this limit + - MME: fixed memory handling bug found with cppcheck + - MME: removed compiler warning + - CoreMIDI: implemented driver specific port parameter "CORE_MIDI_BINDINGS", + which allows to retrieve the list of CoreMIDI clients / ports and to connect + to them a la JACK, via the usual sampler APIs + - CoreMIDI: added driver specific port parameter "AUTO_BIND", if enabled + the driver will automatically connect to other CoreMIDI clients' ports + (e.g. external MIDI devices being attached to the Mac) + - added support for MIDI note on velocity filter + - CoreMIDI: fixed memory deallocation error + - Fixed variable underflow in VirtualMidiDevice, which caused graphical + virtual keyboards in frontends / instrument editors being stuck. * audio driver: - ASIO driver fixes for newer gcc versions (fix from PortAudio) @@ -271,6 +361,23 @@ - fixed handling of rapid bank select and program change messages sent to the same sampler channel (patch from the Open Octave project, slightly adjusted) + - fixed crash when trying to create an effect instance with controls + which min and/or max values depend on the sample rate + - fixed bug #162 + - bugfix: LADSPA_PATH was not evaluated correctly when containing + multiple paths (#165) + - thread safety fixes for the instrument loading thread + - bugfix: instrument loading crashed for sfz and sf2 in Ardour + (#176) + - more thread safety fixes for the instrument loading thread + - sfz/sf2 engine: fixed crash when using small audio fragment size + - Mac OS X: fixed crash when unloading plugin on 10.7 and later + - Mac OS X: fixed process hang when unloading 32-bit plugin (bug + introduced in previous fix) + - fixed crash when a channel received a program change while + playing a note in a key group + - fixed erroneous error message piping in VoiceBase.h + (labelled "Disk stream not available in time") Version 1.0.0 (31 July 2009)