CVS log for linuxsampler/configure.in |
|
Help |
Request diff between arbitrary revisions / Display revisions graphically
* Fixed a memory leak due to EngineFactory::Destroy() not doing it as an actual destructor and just removing the engine instance from factory stock and all instances allocated via EngineFactory::Create() never got delete'd and thus their destructors never called. This bug was evident while having many mapped instruments and querying the instrument status via GET MIDI_INSTRUMENT INFO command, eating up system memory very quickly and never let it go.
* global volume can now be altered at runtime (added two new LSCP commands for this, LSCP specs updated)
* implemented MIDI instrument mapping according to latest LSCP draft
* preparations for release 0.4.0
updated dependency to latest libgig release (3.1.0)
* little configure.in fix for PPC (patch by Ebrahim Mayat)
updated dependency to latest libgig release (3.0.0)
* added compile time options to allow disabling the various audio and MIDI drivers (./configure --disable-foo-driver)
* added compile time option to disable processing of All-Notes-Off MIDI messages
* fixed some concurrency problems between the lscp thread and the audio/midi threads for these commands: load engine, set channel audio output device, set channel midi input device/port/channel and remove channel. Thanks to Vincent Bongiorno for bug reports and testing. * removed an autotools warning * fixed an iterator bug * minor code clean-ups
* added aRts audio output driver (by no means RT safe)
* added smoothing of volume changes caused by control change messages * fine tuning of the crossfade volume curve
* added linear interpolation of volume modulation inside a subfragment; this prevents clicks during voice stealing. Can be switched off with the --disable-interpolate-volume configure option.
* 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 * fixed EG3 (pitch envelope) synthesis which was neutral all the time * configure.in: do not automatically pick optimized gcc flags if the user already provided some on his own (as CXXFLAGS)
* bugfix in LSCP parser which was confused by space(s) within device parameters (e.g. "SET AUDIO_OUTPUT_CHANNEL_PARAMETER 0 0 SOMEPARAM='foo bar'") * changed version to 0.3.3cvs
change feature.h to features.h
Add test for headerfile features.h
* fixed event handling bug which was introduced by the recent synthesis optimizations (events were only processed for the first active voice) * added global volume attenuation of -9 dB (0.35f) to prevent clipping which can be overridden with --enable-global-attenuation
* 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 synthesis parameters (everything's still very buggy ATM)
fixed little bug regarding LFO benchmarking
Added a variation of LFOTriangleIntMath using abs()
* Added configure option --enable-process-muted-channels which can be used to enable the processing of muted channels
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) --- actual implementations of the new LFO solutions in LS will follow soon
* 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)
* preparation for bugfix release 0.3.3
* gcc 4.0 compilation fixes
* final preparations for bugfix release 0.3.2
* fixed 'make dist' build rule to include all necessary files
* RPM .spec script added to repository.
* hand-crafted assembly optimization code can be disabled with './configure --disable-asm' (definitely not recommended)
* updated autotools build files for conditional compilation of CoreMIDI (OS X) and MidiShare (Linux, OS X, Windows) drivers
* src/network/lscpserver.cpp: fixed segfault (patch by Grigor Iliev, fixes #17) * added man page * final preparations for the first official release (which will be 0.3.1)
* (re)implemented voice stealing algorithm "oldestvoiceonkey" and made it the default voice stealing algorithm * added new LSCP command "GET SERVER INFO" which currently returns description and version about this sampler * added some API documentation comments * minor cleanup
* All compile time options are now centrally alterable as arguments to the ./configure script. All options are C Macros beginning with CONFIG_ prefix and will be placed into auto generated config.h file.
require libgig 2.0.0
* [bug #9] Fixed for a LSCP command syntax convention
consistency, regarding the enumeration of available
sampler engines, Audio and MIDI drivers; this has
affected the semantics of the following commands:
GET AVAILABLE_ENGINES
GET AVAILABLE_AUDIO_DRIVERS
GET AVAILABLE_MIDI_DRIVERS
which are now returning an integer count of engines
and drivers, respectively, while the following
new commands are now being introduced:
LIST AVAILABLE_ENGINES
LIST AVAILABLE_AUDIO_DRIVERS
LIST AVAILABLE_MIDI_DRIVERS
taking on the previous functionality, returning
a comma separated list of names.
* LinuxSampler version bumped to 0.3.1.
* autotools build fixes for PPC architecture
* removed statically included libgig sources from the LinuxSampler code base - you now have to compile and install libgig separately * added -Wreturn-type gcc switch to avoid bugs with no returns on non void functions in future
* removed some build warnings * fixed a bug with hanging notes when using sustain pedal * release samples are not triggered anymore when sustain pedal is down
* design change: using now one sampler engine instance and one disk thread instance for all sampler channels that are connected to the same audio output device (and are using the same engine type of course) * added EngineFactory / EngineChannelFactory to remove the annoying build dependencies e.g. of the lscpserver to the actual sampler engine implementations * bumped version to 0.3.0 (current CVS state is still quite broken, previous, stable CVS version was tagged as "v0_2_0" and is also available as source tarball)
* Added first cut of instrument database query support.
* small fix for building with old JACK versions (0.94 and earlier)
* applied patch from James Klicman which fixes some issues in configure.in
* configure.in: added check for UNIX98 compatibility, check if there's at least one supported MIDI input and audio output system available, added conditionals for ALSA and JACK * src/drivers/audio/Makefile.am: ALSA and JACK drivers are only compiled respectively if they're supported by the system * MidiInputDeviceFactory.cpp, AudioOutputDeviceFactory.cpp: little workaround for reported linker problem * removed autotools generated files from CVS
src/common/Mutex.cpp only compiles on UNIX98 compatible systems
forgot to change some things which was mandatory due to the recent
directory movements ('/src/audiodriver' -> '/src/drivers/audio',
'/src/mididriver' -> '/src/drivers/midi')
* Load Instrument patch applied; this patch makes the LOAD INSTRUMENT command to return immediately, almost/always with an OK response, while spawning the proper instrument file loading in the background. * New INSTRUMENT_STATUS field on GET CHANNEL INFO result set; the instrument status value holds the load progress percentage if positive, otherwise a negative value is evidence of a load exception error. * VERSION is now set to 0.2.
forgot to commit with the last batch, needed as I added a new directory 'src/drivers'
* biquad filter parameters are now calculated outside the interpolate loop for better performance * couple of loop unroll optimizations * filter is now enabled by default * cubic interpolation is now enabled by default * reduced debug level to 1 to lower verbosity * raised default limit for voices to 128 * raised default limit for streams to 150 * added some compiler optimization flags (-ffast-math -march -mcpu)
* src/common/Thread.cpp: method StartThread() now blocks until thread actually runs, mlockall() will only be applied for realtime threads * libtoolized liblinuxsampler * initiated automatic unit tests against the LinuxSampler codebase (see src/testcases): already added a couple of tests for the Thread and Mutex classes, you have to explicitly compile the unit tests by running 'make testcases' (you need to have cppunit installed though) and then you can run the console version of the test runner by calling 'src/testcases/linuxsamplertest' * src/Sampler.h: added API documentation
* completely restructured source tree * implemented multi channel support * implemented instrument manager, which controls sharing of instruments between multiple sampler engines / sampler channels * created abstract classes 'AudioOutputDevice' and 'MidiInputDevice' for convenient implementation of further audio output driver and MIDI input driver for LinuxSampler * implemented following LSCP commands: 'SET CHANNEL MIDI INPUT TYPE', 'LOAD ENGINE', 'GET CHANNELS', 'ADD CHANNEL', 'REMOVE CHANNEL', 'SET CHANNEL AUDIO OUTPUT TYPE' * temporarily removed all command line options * LSCP server is now launched by default
* implemented parser for the LinuxSampler control protocol (LSCP) by using flex / bison (where src/network/lscp.l is the input file for lex / flex and src/network/lscp.y is the input file for yacc / bison), parser and scanner can be regenerated by 'make parser' * implemented LSCP network server (only single threaded so far), LSCP server will be launched if LinuxSampler was started with "--server" flag, implemented the following LSCP commands so far: "LOAD INSTRUMENT", "GET CHANNEL VOICE_COUNT", "GET CHANNEL STREAM_COUNT", "GET CHANNEL BUFFER_FILL", "SET CHANNEL VOLUME" and "RESET CHANNEL" * disk thread now started within the engine
* implemented bidirectional voice state transition, means voice state can
switch arbitrary times between 'Sustained'<-->'Released' within it's life
time, thus the release process of a voice can be cancelled
* src/eg_vca.cpp: extended envelope generator by additional states
('Attack_Hold', 'Decay_1' and 'Decay_2')
* applied patch from Vladimir Senkov which adds new command line parameters
('--jackout', '--alsaout' and '--samplerate')
* configure.in: fixed compiler warning
* Added JACK support: Audio rendering process is now callback based and independant of used audio output system. Interfaces to other audio output systems can be added by creating a class derived from abstract base class 'AudioIO' and embedding the new class into linuxsampler.cpp. * src/audiothread.cpp: applied patch from Vladimir Senkov which fixes hanging notes in conjunction with the sustain pedal
* src/audioio.cpp: added support for Alsa 1.0.0 * src/audiothread.cpp: fixed several bugs in sustain pedal handling * src/diskthread.cpp: fixed several bugs which occured under extreme conditions (endless loop in audiothread, freezing the whole application, outage of available disk streams) * src/voice.cpp: fixed cubic interpolation (disabled by default; you can enable it by setting USE_LINEAR_INTERPOLATION to 0 in src/voice.h) * src/configure.in: added check for Alsa version
* src/gig.cpp: fixed bug in decompression algorithm which caused it not to detect the end of a stream and let the disk streams reload forever also resulting in strange sounds at the end of disk voices (concerned only playback of compressed gig files) * src/audiothread.cpp: deallocation of voices when they reached the end of playback (thus e.g. when sustain pedal is pressed and a disk stream reached it's end) * various endian corrections needed for non intel systems * introduced debug level, you can set the debug level and thus the verbosity of LinuxSampler in src/global.h
* transition from plain Makefile to autotools, source files moved to src/ * configure.in: added test for x86 architecture * src/voice.h: x86 specific asm optimization for double to int casts only if compiling for x86 architecture
| LinuxSampler Developers |
Powered by ViewCVS |