Parent Directory | Revision Log
Links to HEAD: | (view) (download) (annotate) |
Sticky Revision: |
This commit was manufactured by cvs2svn to create branch 'v0_2_0'.
* bunch of fixes for OSX (patch by Stephane Letz)
* Updated implementation for real time notify messages: VOICE_COUNT, STREAM_COUNT, BUFFER_FILL
* architecture independence fixes, should now compile again for non x86 systems * tiny fix of command line switch --version
* Added some profiling capabilities, bugs.
* introduced 'synthesis mode' to reduce the amount of code and conditionals for the current synthesis case in the main synthesis loop * support for MMX and SSE(1) in the core synthesis algorithms (CPU feature detection at runtime, only x86 so far)
* libgig: fixed panorama value in DimensionRegion (invalid conversion from signed 7 bit to signed 8 bit) * src/linuxsampler.cpp: stacktrace is now automatically shown on fatal errors (that is segmentation faults, etc.), gdb should be installed for this to work * gig::Voice: tiny accuracy fix of pan calculation * replaced old pool classes by completely new ones which now offer Iterator abstraction
* src/drivers/DeviceParameter.cpp: fixed return values for classes 'DeviceRuntimeParameterString' and 'DeviceCreationParameterString' which returned their values without being encapsulated into apostrophes, fixed return values for 'DeviceRuntimeParameterBool' and 'DeviceCreationParameterBool' to be returned in lower case (as defined in the LSCP documentation) * src/network/lscp.y: key value pairs now also allow strings (without spaces) to be not encapsulated into apostrophes (e.g. foo=bar instead of foo='bar') * src/linuxsampler.cpp: show on the console which TCP port the LSCP server is using
* src/linuxsampler.cpp: tidied up a bit, "initialization completed" message shown only after the server is actually running * src/testcases/: print the name of each test suite before running the tests of the suite, added first tests against the LSCP server using a socket connection to the LSCP server (tests for the following LSCP commands: "ADD CHANNEL", "GET CHANNELS", "REMOVE CHANNEL")
* src/linuxsampler.cpp: print out LinuxSampler version and show all registered MIDI input drivers * renamed class 'InputOutputDevice' -> 'Device'
forgot to change some things which was mandatory due to the recent directory movements ('/src/audiodriver' -> '/src/drivers/audio', '/src/mididriver' -> '/src/drivers/midi')
* src/common: added template class 'optional<>' which can be used e.g. as return type whenever a value might be returned, but don't has to; this template class pretty much acts like a pointer of the given type, but is much more safer than a simple pointer * src/audiodriver: added static class AudioDeviceFactory to create audio devices at runtime by using a string and to obtain driver informations of drivers at runtime, driver classes should simply use the macro REGISTER_AUDIO_OUTPUT_DRIVER(DriverName,DriverClass) in their cpp file to register the driver to LinuxSampler (no changes needed anymore in the LS code to add a new audio output driver) * src/drivers: added classes to dynamically manage driver parameters; there are two different kinds of parameters: parameters which are need to create a new device (DeviceCreationParameterX) used to e.g. create an audio output device or a MIDI input device and parameters which are only available at runtime, means when a device is already created (DeviceRuntimeParameterX) which will be e.g. used as audio channel parameters and MIDI port parameters * src/linuxsampler.cpp: all registered audio output drivers will be shown on the console on startup * src/network: implemented configuration of audio output devices via LSCP
forgot to update copyright header for 2004 for following files: src/linuxsampler.cpp, src/Sampler.h, src/Sampler.cpp, src/network/lscpscanner.cpp
* 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
removed unnecessary dependencies
* 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
* added command line switch --volume to set the global volume level * added command line switch --inputclient to connect to an Alsa sequencer input client on startup (e.g. a MIDI port with a keyboard) * added command line switch --instrument to select an instrument in case the instrument file provides more than one instrument
* 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/voice.cpp: fixed bug which caused a voice not free it's disk stream when the whole sample was already played back and the voice was going to free itself resulting in outage of unused disk streams after a while * src/audioio.cpp: implemented automatic fallback to ALSA plughw when the sound card doesn't support one of the hardware parameters * src/linuxsampler.cpp: solved segmentation fault issue when receiving a SIGINT which was caused due to the fact that all threads entered the signal handler (there still seems to occur a segfault on some certain circumstances though) * added print out of all-time maximum usage of voices and streams and the current number of unused streams * src/thread.cpp: the StopThread() method will now block until the associated thread actually stopped it's execution
* 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
* src/audiothread.cpp, src/audiothread.h: added Sustain Pedal support implemented by postponing note-offs and leting multiple voices play on the same MIDI key. * added the RTELMemoryPool Class which is a fast RT-safe memory allocator and list manger * src/linuxsampler.cpp: added a voice and stream counter debug message
* 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
This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, enter a numeric revision.
ViewVC Help | |
Powered by ViewVC |