The LinuxSampler Project
@@ -111,6 +122,8 @@ + + @@ -118,50 +131,220 @@ + + ++
Features / Development Roadmap
+LS Development Roadmap
++ The following list shows the planned work to be done until the next + release of LinuxSampler. There will be no new release before all of them + are completed. +
+ +-
+
- Abstraction of common code from existing Gigasampler engine to base classes for further sampler engines. +
- + Implementation of + SFZ(2) format sampler engine. + +
-
+ Implementation of
+ SF2 format sampler engine
(might not be finished for next release, due to low demand & priority). +
+ -
+ Implementation of
+ Akai format sampler engine
(will probably not make into next release, due to low demand & priority). +
+ -
+ Real-time instrument script support
(allows to override / customize sampler's behavior by textual, easy to write scripts included with instruments, which act like small programs, plugged into the sampler). +
+
Done | +Partly implemented | +No work started yet | +
+ Note that we frequently cast a moderated poll on our + web forum for + the next features to be implemented and problems / bugs to be + fixed soon. Don't hesitate to register to our forum and vote for + your feature! +
+ +Features
+The following list shows which features have already been implemented in - current CVS version of LinuxSampler and what is planned to be done in - (hopefully) near future. If you are missing something that is not already - listed below, you can write a proposol to the + current Subversion version of LinuxSampler and what is planned to be done + in (hopefully) near future. If you are missing something that is not + already listed below, you can write a proposal to the developers mailing list - or even better send us your patch if you have done something. Even + , open an "enhancement" request on our + bug tracking system + or even better send us your patch if you have done something. Even if features are listed to be planned below, it can be that it takes a while until somebody finds the time to implement it. So if you have the time and will to finish one of them, let us know!
--
-
- Operating Systems
+
-
+
- Operating Systems
- Linux -
- Mac OSX +
- Windows (we provide a convenient Windows installer for all components of the project, including native 64 bit and native 32 bit binaries, standalone and VSTi plugin versions) +
- Mac OS X (package provides universal binary for 64 bit Intel, 32 bit Intel and PPC, all software components are included, stand-alone sampler, VST plugin, AU plugin, QSampler & Fantasia frontends, gigedit instrument editor) +
+ - Host plugin versions of the sampler
+
-
+
- VSTi (Windows, Mac, Linux) +
- Audio Units (Mac) +
- DSSI (Linux) +
- LV2 (Linux) +
+ - MIDI input drivers + -
- Sampler Engines +
- Audio output drivers + +
- Sampler Engines
+
-
+
- Gigasampler / GigaStudio format Engine
-
-
- Gig file loader -
- Generic playback (RAM & disk streaming) -
- Dimension switching -
- Sustain pedal support +
- Gig file loader
+
-
+
- Gig v2 format +
- Gig v3 & v4 format
+
-
+
- large file support (64 bit file offsets are currently truncated to 32 bit) +
- 24 bit samples (uncompressed as well as compressed) +
- support for multi-file format (.gig, .gx01, .gx02, ...) +
- support for articulation (.art) files +
- support for Dimension Splits not equal to two +
- up to 8 Dimensions or 256 Dimension Regions +
- iMIDI rules (smart midi); Note: due its strong limitations usage of iMIDI rules is discouraged. We recommend you to consider using real-time instrument scripts instead.
+
-
+
- Controller trigger rule +
- Legato rule +
- Alternator rule +
+ - convolution +
+
+ - Generic playback (RAM playback & disk streaming) +
- Dimension switching
+
-
+
- Sample Channel +
- Layer +
- Velocity +
- Channel Aftertouch +
- Release Trigger +
- Keyboard Position +
- Round Robin +
- Round Robin Keyboard +
- Smart MIDI +
- Random +
- Modulation Wheel +
- Breath Ctrl. +
- Foot Ctrl. +
- Portamento Time Ctrl. +
- Effect 1 & 2 Ctrl. +
- Effect 1 - 5 Depth Ctrl. +
- General Purpose Ctrl. 1 - 8 +
- Sustain Pedal +
- Portamento +
- Sostenuto Pedal +
- Soft Pedal +
+ - Sustain pedal interpretation +
- Sostenuto pedal interpretation
- Key velocity <-> volume mapping -
- Looping +
- Looping
+
-
+
- endless loop +
- limited amount of loops +
- fractional looping +
- Pitchbend wheel support -
- Bidirectional voice state transition -
- Filter (VCF) +
- Bidirectional voice state transition, allowing + to cancel the relase stage of voices forth and back arbitrary + times if needed +
- Filter (VCF)
- Highpass
- Bandpass -
- Bandreject +
- Bandreject
- Lowpass -
- Turbo lowpass +
- Turbo lowpass +
- all filter types provide extremely + accurate characteristics compared to the original + Gigasampler format filters
- Cutoff frequency controllable by MIDI controller
- Resonance controllable by MIDI controller
- VCO Low Frequency Oscillator (Pitch)
- Layers
- Crossfades -
- Key Groups (a.k.a Exclusive Groups) -
- Release Triggered Voices -
- Key Switching +
- Key Groups (a.k.a Exclusive Groups), + for mutually switching off sounds i.e. for drumkits +
- Release Triggered Voices, specific samples + that are played back when voices are released +
- Key Switching, which allows to map a certain + range on thy keyboard as additional performance controller, + i.e. for switching articulations of orchestral sounds in realtime
- Voice Stealing +
- Portamento Mode and Solo Mode (a.k.a 'Mono Mode', + 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) +
- Scale Tuning (via standard MIDI GS SysEx message)
- - DLS Engine +
- DLS Engine -
- Akai Engine +
- Akai Engine
-
-
- Akai file loader (S1000, S3000 series) +
- Akai file loader (S1000, S3000 series)
- Generic playback
- Custom, modular Engine -
+ - Gigasampler / GigaStudio format Engine
- SoundFont v2 (SF2) format engine
+
-
+
- SF2 file loader +
- Generic playback +
- Articulations +
-
+
+ - SFZ v2 format engine (Note: not to be interchanged with "SoundFont" format !!)
+
-
+
- SFZ file loader +
- Generic playback +
- Articulations: Major part of opcodes have been implemented. Have a look at the SFZ status page for details. +
+ - KORG format Engine
+
-
+
- KORG format file loader (currently supports Kronos, Triton, M3 and Trinity sample based sounds). +
- Generic playback +
- - Operating Systems
- Control interfaces +
- Control interfaces
-
-
- ALSA MIDI input -
- Network remote control layer for frontends (LSCP)
-
-
-
- Events / Client Notification -
- Control Commands
-
-
-
- GET AVAILABLE_AUDIO_OUTPUT_DRIVERS -
- GET AUDIO_OUTPUT_DRIVER INFO -
- GET AUDIO_OUTPUT_DRIVER_PARAMETER INFO -
- CREATE AUDIO_OUTPUT_DEVICE -
- DESTROY AUDIO_OUTPUT_DEVICE -
- GET AUDIO_OUTPUT_DEVICES -
- LIST AUDIO_OUTPUT_DEVICES -
- GET AUDIO_OUTPUT_DEVICE INFO -
- SET AUDIO_OUTPUT_DEVICE_PARAMETER -
- GET AUDIO_OUTPUT_CHANNEL INFO -
- GET AUDIO_OUTPUT_CHANNEL_PARAMETER INFO -
- SET AUDIO_OUTPUT_CHANNEL_PARAMETER -
- GET AVAILABLE_MIDI_INPUT_DRIVERS -
- GET MIDI_INPUT_DRIVER INFO -
- GET MIDI_INPUT_DRIVER_PARAMETER INFO -
- CREATE MIDI_INPUT_DEVICE -
- DESTROY MIDI_INPUT_DEVICE -
- GET MIDI_INPUT_DEVICES -
- LIST MIDI_INPUT_DEVICES -
- GET MIDI_INPUT_DEVICE INFO -
- SET MIDI_INPUT_DEVICE_PARAMETER -
- GET MIDI_INPUT_PORT INFO -
- GET MIDI_INPUT_PORT_PARAMETER INFO -
- SET MIDI_INPUT_PORT_PARAMETER -
- ADD CHANNEL -
- GET CHANNELS -
- LIST CHANNELS -
- REMOVE CHANNEL -
- GET AVAILABLE_ENGINES -
- GET ENGINE INFO -
- GET CHANNEL INFO -
- LOAD ENGINE -
- LOAD INSTRUMENT -
- GET CHANNEL VOICE_COUNT -
- GET CHANNEL STREAM_COUNT -
- GET CHANNEL BUFFER_FILL -
- SET CHANNEL AUDIO_OUTPUT_DEVICE -
- SET CHANNEL AUDIO_OUTPUT_TYPE -
- SET CHANNEL AUDIO_OUTPUT_CHANNEL -
- SET CHANNEL MIDI_INPUT_DEVICE -
- SET CHANNEL MIDI_INPUT_TYPE -
- SET CHANNEL MIDI_INPUT_PORT -
- SET CHANNEL MIDI_INPUT_CHANNEL -
- SET CHANNEL VOLUME -
- RESET CHANNEL -
- SUBSCRIBE -
- UNSUBSCRIBE -
- SET ECHO -
- QUIT -
- RESET -
-
- Native C++ API +
- Custom network interface for frontends (LSCP) -
- VSTi -
- MIDI over ethernet (Distributed MIDI) -
- CoreMIDI (Mac OSX) -
- - Audio output interfaces -
- Time stamp event system & jitter correction
- Multi channel & multi engine support -
- Pitch shifter / Interpolation +
- Pitch shifter / Interpolation
- Linear interpolation
- Cubic interpolation
- Formant frequency correction / formant manipulation
- - Dynamic engine recompilation -
- Extensive SMP (multi processor) support +
- Extensive SMP (multi processor) support +
- User can explicitly run individual sampler parts on different CPUs/cores. +
- Automatic SMP voice pooling. +
- Network cluster support -
- (Graphical) frontends +
- MIDI instrument mapper, allows to create very flexible MIDI progam change setups in a very easy way.
+
-
+
- MIDI program change +
- MIDI bank select (automatic detection of MSB only, LSB only or full MSB+LSB) +
- Load Strategy for each Item individually
+
-
+
- On-Demand: loads the instrument only when needed, frees it immediately once not used by any sampler channel anymore +
- On-Demand-Hold: loads the instrument when needed and keeps it in memory, that is even if not used by a sampler channel +
- Persistent: loads the instrument immediately in the background (i.e. at sampler startup), allowing immediate program changes in realtime even of largest instruments, without wait time +
- Default: let the sampler decide +
+ - Volume Factor for each Item, allowing to compensate the volume difference of sample library collections i.e. for live performances, without having to edit the instrument files +
- Mapping of arbitrary Instrument Files, already independent of the underlying format in respect for future sampler engines +
- arbitrary amount of independent MIDI instrumet maps, (i.e. for chromatic instruments, drumkits, ...), each sampler channel can be assigned to a specific MIDI map +
+ - Effect Sends
+
-
+
- Arbitrary Amount of FX Sends on Sampler Channels +
- Realtime MIDI Control of Send Level +
- Arbitrary MIDI Controller assignable +
- Flexible Routing i.e. to a dedicated effect audio output +
+
+ - Instrument Database System, allowing to keep track of even the largest sample library collections
-
-
- Qt based frontend -
- VSTi frontend (based on the Qt frontend) +
- Ordering in Categories +
- Search by various Criteria +
- Transparently maintained on backend side +
+ - (Graphical) frontends
+
-
+
- JSampler a.k.a "Fantasia" (Java based frontend)
+
-
+
- Supports all currently available features of LinuxSampler +
+ - QSampler (C++ based frontend using Qt)
+
-
+
- Supports all features of LinuxSampler except the following ... +
- MIDI Instrument Maps + (qsampler does currently not yet support to create more than two MIDI instrument maps [one intended for chromatic instruments and one for drumkits]) + +
- Instruments DB support (to ease handling of huge sample library collections) +
- Audio and MIDI device management (only minor thing that qsampler lacks support yet are "multiplicity" type device parameters, that is parameters which don't just accept one value, but also a list of values, i.e. for the "ALSA_SEQ_BINDINGS" parameter of the ALSA MIDI driver) +
+
+ - JSampler a.k.a "Fantasia" (Java based frontend)
+
- Playing while Loading, i.e. allowing to play and hold notes on the keyboard + while loading a new instrument on the same sampler channel at the same time +
- Limits for max. voices and max. disk streams can be altered at runtime +
- Instrument Editor Plugin System for 3rd Party Instrument Editors +
- Instrument Editors
+
-
+
- gigedit (C++ based using gtkmm/Gtk+)
+
-
+
- allows to modify all aspects of Gigsampler/GigaStudio v2, v3 and v4 format files +
- allows to modify existing as well as creating completely new .gig files from scratch +
- stand-alone mode (independent of LinuxSampler) +
- live-mode (attached with LinuxSampler), which makes all modifications audible in the sampler in realtime without having to reload +
- created / modified files are accepted by LinuxSampler as well as by Gigastudio 3 & 4 +
- virtual MIDI keyboard (for triggering notes by mouse click and highlighting the virtual keys on external note events) +
- Support for managing and editing real-time instrument scripts (LinuxSampler extension of the original GigaStudio format). +
+ - gigedit (C++ based using gtkmm/Gtk+)
+
- Real-time instrument script support
(allows to override / customize sampler's behavior by textual, easy to write scripts included with instruments, which act like small programs, plugged into the sampler).
-
+
@@ -305,7 +517,8 @@
- (List last updated 2005-02-10, also see CVS Log for recent changes) + (Last page update on $Date$ by $Author$, + also see Subversion Log for recent changes)