88 |
bugsover = new Image(); |
bugsover = new Image(); |
89 |
bugsover.src = dir + "mbugshover.png"; |
bugsover.src = dir + "mbugshover.png"; |
90 |
|
|
91 |
bugsout = new Image(); |
bugsout = new Image();& |
92 |
bugsout.src = dir + "mbugs.png"; |
bugsout.src = dir + "mbugs.png"; |
93 |
} |
} |
94 |
--> |
--> |
124 |
<h2>LS Development Roadmap</h2> |
<h2>LS Development Roadmap</h2> |
125 |
<p class="default"> |
<p class="default"> |
126 |
The following list shows the planned work to be done until the next |
The following list shows the planned work to be done until the next |
127 |
release of LinuxSampler. There will be no release before all of them |
release of LinuxSampler. There will be no new release before all of them |
128 |
are completed. |
are completed. |
129 |
</p> |
</p> |
130 |
|
|
131 |
<ol class="default"> |
<ol class="default"> |
132 |
<li class="false">strong synthesis optimizations</li> |
<li class="false">nothing scheduled yet</li> |
|
<li class="false">instrument database system</li> |
|
133 |
</ol> |
</ol> |
134 |
|
|
135 |
<table class="default"> |
<table class="default"> |
148 |
listed below, you can write a proposol to the |
listed below, you can write a proposol to the |
149 |
<a href="http://lists.sourceforge.net/lists/listinfo/linuxsampler-devel"> |
<a href="http://lists.sourceforge.net/lists/listinfo/linuxsampler-devel"> |
150 |
developers mailing list |
developers mailing list |
151 |
</a> or even better send us your patch if you have done something. Even |
</a>, open an "enhancement" request on our |
152 |
|
<a href="http://bugs.linuxsampler.org">bug tracking system</a> |
153 |
|
or even better send us your patch if you have done something. Even |
154 |
if features are listed to be planned below, it can be that it takes a |
if features are listed to be planned below, it can be that it takes a |
155 |
while until somebody finds the time to implement it. So if you have the |
while until somebody finds the time to implement it. So if you have the |
156 |
time and will to finish one of them, let us know! |
time and will to finish one of them, let us know! |
160 |
<li class="partly"> Operating Systems |
<li class="partly"> Operating Systems |
161 |
<ol> |
<ol> |
162 |
<li class="ok">Linux</li> |
<li class="ok">Linux</li> |
163 |
<li class="ok">Mac <a href="http://www.apple.com/macosx/">OS X</a></li> |
<li class="partly">Mac <a href="http://www.apple.com/macosx/">OS X</a> (gigedit and JSampler are not yet available for OS X and thus not included with the installer yet)</li> |
164 |
|
<li class="partly">Windows</a> (we provide a convenient Windows installer for all components of the project, only the <a href="#instruments_db">instruments DB feature</a> is not yet supported on Windows)</li> |
165 |
</ol> |
</ol> |
166 |
</li> |
</li> |
167 |
<li class="partly"> Sampler Engines |
<li class="partly"> Sampler Engines |
168 |
<ol> |
<ol> |
169 |
<li class="partly"> Gigasampler Engine |
<li class="partly"> Gigasampler Engine |
170 |
<ol> |
<ol> |
171 |
<li class="ok">Gig file loader</li> |
<li class="ok">Gig file loader |
172 |
<li class="ok">Generic playback (RAM & disk streaming)</li> |
<ol> |
173 |
<li class="partly">Dimension switching</li> |
<li class="ok">Gig v2 format</li> |
174 |
<li class="ok">Sustain pedal support</li> |
<li class="partly">Gig v3 format |
175 |
|
<ol> |
176 |
|
<li class="partly">large file support (64 bit file offsets are currently truncated to 32 bit)</li> |
177 |
|
<li class="ok">24 bit samples (uncompressed as well as compressed)</li> |
178 |
|
<li class="ok">support for multi-file format (.gig, .gx01, .gx02, ...)</li> |
179 |
|
<li class="partly">support for articulation (.art) files</li> |
180 |
|
<li class="ok">support for Dimension Splits not equal to two</li> |
181 |
|
<li class="ok">up to 8 Dimensions or 256 Dimension Regions</li> |
182 |
|
</ol> |
183 |
|
</li> |
184 |
|
</ol> |
185 |
|
</li> |
186 |
|
<li class="ok">Generic playback (RAM playback & disk streaming)</li> |
187 |
|
<li class="ok">Dimension switching |
188 |
|
<ol> |
189 |
|
<li class="ok">Sample Channel</li> |
190 |
|
<li class="ok">Layer</li> |
191 |
|
<li class="ok">Velocity</li> |
192 |
|
<li class="ok">Channel Aftertouch</li> |
193 |
|
<li class="ok">Release Trigger</li> |
194 |
|
<li class="ok">Keyboard Position</li> |
195 |
|
<li class="ok">Round Robin</li> |
196 |
|
<li class="ok">Random</li> |
197 |
|
<li class="ok">Modulation Wheel</li> |
198 |
|
<li class="ok">Breath Ctrl.</li> |
199 |
|
<li class="ok">Foot Ctrl.</li> |
200 |
|
<li class="ok">Portamento Time Ctrl.</li> |
201 |
|
<li class="ok">Effect 1 & 2 Ctrl.</li> |
202 |
|
<li class="ok">Effect 1 - 5 Depth Ctrl.</li> |
203 |
|
<li class="ok">General Purpose Ctrl. 1 - 8</li> |
204 |
|
<li class="ok">Sustain Pedal</li> |
205 |
|
<li class="ok">Portamento</li> |
206 |
|
<li class="ok">Sostenuto Pedal</li> |
207 |
|
<li class="ok">Soft Pedal</li> |
208 |
|
</ol> |
209 |
|
</li> |
210 |
|
<li class="ok">Sustain pedal interpretation</li> |
211 |
|
<li class="ok">Sostenuto pedal interpretation</li> |
212 |
<li class="ok">Key velocity <-> volume mapping</li> |
<li class="ok">Key velocity <-> volume mapping</li> |
213 |
<li class="ok">Looping</li> |
<li class="ok">Looping |
214 |
|
<ol> |
215 |
|
<li class="ok">endless loop</li> |
216 |
|
<li class="ok">limited amount of loops</li> |
217 |
|
<li class="ok">fractional looping</li> |
218 |
|
</ol> |
219 |
|
</li> |
220 |
<li class="ok">Pitchbend wheel support</li> |
<li class="ok">Pitchbend wheel support</li> |
221 |
<li class="ok">Bidirectional voice state transition</li> |
<li class="ok">Bidirectional voice state transition, allowing |
222 |
<li class="partly">Filter (VCF) |
to cancel the relase stage of voices forth and back arbitrary |
223 |
|
times if needed</li> |
224 |
|
<li class="ok">Filter (VCF) |
225 |
<ol> |
<ol> |
226 |
<li class="ok">Highpass</li> |
<li class="ok">Highpass</li> |
227 |
<li class="ok">Bandpass</li> |
<li class="ok">Bandpass</li> |
228 |
<li class="false">Bandreject</li> |
<li class="ok">Bandreject</li> |
229 |
<li class="ok">Lowpass</li> |
<li class="ok">Lowpass</li> |
230 |
<li class="false">Turbo lowpass</li> |
<li class="ok">Turbo lowpass</li> |
231 |
|
<li class="ok">all filter types provide extremely |
232 |
|
accurate characteristics compared to the original |
233 |
|
Gigasampler format filters</li> |
234 |
<li class="ok">Cutoff frequency controllable by MIDI controller</li> |
<li class="ok">Cutoff frequency controllable by MIDI controller</li> |
235 |
<li class="ok">Resonance controllable by MIDI controller</li> |
<li class="ok">Resonance controllable by MIDI controller</li> |
236 |
</ol> |
</ol> |
243 |
<li class="ok">VCO Low Frequency Oscillator (Pitch)</li> |
<li class="ok">VCO Low Frequency Oscillator (Pitch)</li> |
244 |
<li class="ok">Layers</li> |
<li class="ok">Layers</li> |
245 |
<li class="ok">Crossfades</li> |
<li class="ok">Crossfades</li> |
246 |
<li class="ok">Key Groups (a.k.a Exclusive Groups)</li> |
<li class="ok">Key Groups (a.k.a Exclusive Groups), |
247 |
<li class="ok">Release Triggered Voices</li> |
for mutually switching off sounds i.e. for drumkits</li> |
248 |
<li class="ok">Key Switching</li> |
<li class="ok">Release Triggered Voices, specific samples |
249 |
|
that are played back when voices are released</li> |
250 |
|
<li class="ok">Key Switching, which allows to map a certain |
251 |
|
range on thy keyboard as additional performance controller, |
252 |
|
i.e. for switching articulations of orchestral sounds in realtime</li> |
253 |
<li class="ok">Voice Stealing</li> |
<li class="ok">Voice Stealing</li> |
254 |
|
<li class="ok">Portamento Mode and Solo Mode (a.k.a 'Mono Mode', |
255 |
|
can be altered via standard GM messages, that is CC5 for |
256 |
|
altering portamento time, CC65 for enabling / disabling |
257 |
|
portamento mode, CC126 for enabling solo mode and CC127 for |
258 |
|
disabling solo mode)</li> |
259 |
|
<li class="ok">Scale Tuning (via standard MIDI GS SysEx message)</li> |
260 |
</ol> |
</ol> |
261 |
</li> |
</li> |
262 |
<li style="partly"><a href="http://www.midi.org/about-midi/dls/abtdls.shtml">DLS</a> Engine |
<li style="partly"><a href="http://www.midi.org/about-midi/dls/abtdls.shtml">DLS</a> Engine |
267 |
</li> |
</li> |
268 |
<li class="partly">Akai Engine</li> |
<li class="partly">Akai Engine</li> |
269 |
<ol> |
<ol> |
270 |
<li class="ok"><a href="http://stud.fh-heilbronn.de/~cschoene/projects/libakai/">Akai file loader</a> (<a href="http://www.vintagesynth.org/akai/s1000.shtml">S1000</a>, <a href="http://www.vintagesynth.org/akai/s3000.shtml">S3000</a> series)</li> |
<li class="ok"><a href="http://stud.fh-heilbronn.de/~cschoene/projects/libakai/">Akai file loader</a> (<a href="http://www.vintagesynth.com/akai/s1000.shtml">S1000</a>, <a href="http://www.vintagesynth.com/akai/s3000.shtml">S3000</a> series)</li> |
271 |
<li class="false">Generic playback</li> |
<li class="false">Generic playback</li> |
272 |
</ol> |
</ol> |
273 |
<li class="false">Custom, modular Engine</li> |
<li class="false">Custom, modular Engine</li> |
275 |
</li> |
</li> |
276 |
<li class="partly">Control interfaces |
<li class="partly">Control interfaces |
277 |
<ol> |
<ol> |
278 |
|
<li class="ok">Native C++ <a href="http://en.wikipedia.org/wiki/Application_programming_interface">API</a></li> |
279 |
<li class="ok">Custom network interface for frontends (<a name="LSCP" href="http://www.linuxsampler.org/api/draft-linuxsampler-protocol.html">LSCP</a>) |
<li class="ok">Custom network interface for frontends (<a name="LSCP" href="http://www.linuxsampler.org/api/draft-linuxsampler-protocol.html">LSCP</a>) |
280 |
</li> |
</li> |
281 |
<li class="false"><a name="OSC" href="http://www.cnmat.berkeley.edu/OpenSoundControl/">OSC</a> |
<li class="false"><a name="OSC" href="http://www.cnmat.berkeley.edu/OpenSoundControl/">OSC</a> |
284 |
</li> |
</li> |
285 |
<li class="partly">MIDI input drivers |
<li class="partly">MIDI input drivers |
286 |
<ol> |
<ol> |
287 |
<li class="ok"><a href="http://www.alsa-project.org/">ALSA</a></li> |
<li class="ok"><a href="http://www.alsa-project.org/">ALSA</a> (Linux)</li> |
288 |
|
<li class="false"><a href="http://jackit.sourceforge.net/">JACK</a> (Linux, OSX, Windows, ...)</li> |
289 |
<li class="false"><a href="http://www.steinberg.net/en/support/3rdparty/">VSTi</a></li> |
<li class="false"><a href="http://www.steinberg.net/en/support/3rdparty/">VSTi</a></li> |
290 |
<li class="false">MIDI over ethernet (<a href="http://standards.ieee.org/announcements/p1639app.html">Distributed MIDI</a>)</li> |
<li class="false">MIDI over ethernet (<a href="http://standards.ieee.org/announcements/p1639app.html">Distributed MIDI</a>)</li> |
291 |
<li class="ok"><a href="http://developer.apple.com/audio/pdf/coreaudio.pdf">CoreMIDI</a> (Mac <a href="http://www.apple.com/macosx/">OS X</a>)</li> |
<li class="ok"><a href="http://developer.apple.com/audio/pdf/coreaudio.pdf">CoreMIDI</a> (Mac <a href="http://www.apple.com/macosx/">OS X</a>)</li> |
292 |
|
<li class="ok"><a href="http://midishare.sourceforge.net/">MidiShare</a> (Linux, OS X, Windows)</li> |
293 |
|
<li class="ok"><a href="http://en.wikipedia.org/wiki/MultiMedia_Extensions">MME</a> (Windows)</li> |
294 |
</ol> |
</ol> |
295 |
</li> |
</li> |
296 |
<li class="partly">Audio output drivers |
<li class="partly">Audio output drivers |
297 |
<ol> |
<ol> |
298 |
<li class="ok"><a href="http://www.alsa-project.org/">ALSA</a></li> |
<li class="ok"><a href="http://www.alsa-project.org/">ALSA</a> (Linux)</li> |
299 |
<li class="ok"><a href="http://jackit.sourceforge.net/">JACK</a></li> |
<li class="ok"><a href="http://jackit.sourceforge.net/">JACK</a> (Linux, OSX, Windows, ...)</li> |
300 |
|
<li class="ok"><a href="http://www.arts-project.org/">aRts</a> (not RT safe!)</li> |
301 |
|
<li class="ok"><a href="http://en.wikipedia.org/wiki/Audio_stream_input_output">ASIO</a> (Windows)</li> |
302 |
<li class="false"><a href="http://www.steinberg.net/en/support/3rdparty/">VSTi</a></li> |
<li class="false"><a href="http://www.steinberg.net/en/support/3rdparty/">VSTi</a></li> |
303 |
<li class="false">Audio over ethernet</li> |
<li class="false">Audio over ethernet</li> |
304 |
<li class="false"><a href="http://developer.apple.com/audio/pdf/coreaudio.pdf">CoreAudio</a> (Mac <a href="http://www.apple.com/macosx/">OS X</a>)</li> |
<li class="false"><a href="http://developer.apple.com/audio/pdf/coreaudio.pdf">CoreAudio</a> (Mac <a href="http://www.apple.com/macosx/">OS X</a>)</li> |
316 |
<li class="false">Dynamic engine recompilation</li> |
<li class="false">Dynamic engine recompilation</li> |
317 |
<li class="false">Extensive SMP (multi processor) support</li> |
<li class="false">Extensive SMP (multi processor) support</li> |
318 |
<li class="false">Network cluster support</li> |
<li class="false">Network cluster support</li> |
319 |
|
<li class="ok">MIDI instrument mapper, allows to create very flexible MIDI progam change setups in a very easy way. |
320 |
|
<ol> |
321 |
|
<li class="ok">MIDI program change</li> |
322 |
|
<li class="ok">MIDI bank select (automatic detection of MSB only, LSB only or full MSB+LSB)</li> |
323 |
|
<li class="ok">Load Strategy for each Item individually |
324 |
|
<ol> |
325 |
|
<li class="ok">On-Demand: loads the instrument only when needed, frees it immediately once not used by any sampler channel anymore</li> |
326 |
|
<li class="ok">On-Demand-Hold: loads the instrument when needed and keeps it in memory, that is even if not used by a sampler channel</li> |
327 |
|
<li class="ok">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</li> |
328 |
|
<li class="ok">Default: let the sampler decide</li> |
329 |
|
</ol> |
330 |
|
</li> |
331 |
|
<li class="ok">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</li> |
332 |
|
<li class="ok">Mapping of arbitrary Instrument Files, already independent of the underlying format in respect for future sampler engines</li> |
333 |
|
<li class="ok">arbitrary amount of independent MIDI instrumet maps, (i.e. for chromatic instruments, drumkits, ...), each sampler channel can be assigned to a specific MIDI map</li> |
334 |
|
</ol> |
335 |
|
</li> |
336 |
|
<li class="ok">Effect Sends |
337 |
|
<ol> |
338 |
|
<li class="ok">Arbitrary Amount of FX Sends on Sampler Channels</li> |
339 |
|
<li class="ok">Realtime MIDI Control of Send Level</li> |
340 |
|
<li class="ok">Arbitrary MIDI Controller assignable</li> |
341 |
|
<li class="ok">Flexible Routing i.e. to a dedicated effect audio output</li> |
342 |
|
</ol> |
343 |
|
</li> |
344 |
|
<a name="instruments_db"></a> |
345 |
|
<li class="ok">Instrument Database System, allowing to keep track of even the largest sample library collections |
346 |
|
<ol> |
347 |
|
<li class="ok">Ordering in Categories</li> |
348 |
|
<li class="ok">Search by various Criteria</li> |
349 |
|
<li class="ok">Transparently maintained on backend side</li> |
350 |
|
</ol> |
351 |
|
</li> |
352 |
<li class="partly">(Graphical) frontends |
<li class="partly">(Graphical) frontends |
353 |
<ol> |
<ol> |
354 |
<li class="ok">Qt based frontend (<a href="http://qsampler.sourceforge.net">QSampler</a>)</li> |
<li class="partly"><a href="http://qsampler.sourceforge.net">QSampler</a> (C++ based frontend using Qt) |
355 |
<li class="false">VSTi frontend (based on the Qt frontend)</li> |
<ol> |
356 |
|
<li class="ok">Supports all features of LinuxSampler except the following ...</li> |
357 |
|
<li class="partly"><a href="http://www.linuxsampler.org/api/draft-linuxsampler-protocol.html#CREATE FX_SEND"> |
358 |
|
Effect Sends</a> (qsampler retrieves current FX send settings from the sampler, |
359 |
|
stores FX send settings in session .lscp files and restores them, but |
360 |
|
currently does not yet offer a widget to modify FX send settings) |
361 |
|
</li> |
362 |
|
<li class="partly"><a href="http://www.linuxsampler.org/api/draft-linuxsampler-protocol.html#MIDI Instrument Mapping">MIDI Instrument Maps</a> |
363 |
|
(qsampler does currently not yet support to create more than two MIDI instrument maps [one intended for chromatic instruments and one for drumkits]) |
364 |
|
</li> |
365 |
|
<li class="false"><a href="http://www.linuxsampler.org/api/draft-linuxsampler-protocol.html#Managing Instruments Database">Instruments DB support</a> (to ease handling of huge sample library collections)</li> |
366 |
|
<li class="false"><a href="http://www.linuxsampler.org/api/draft-linuxsampler-protocol.html#events">Sampler events</a> (to let qsampler react on certain events occuring on sampler side)</li> |
367 |
|
<li class="partly">Audio and MIDI device management (only minor thing that qsampler lacks support yet are <a href="http://www.linuxsampler.org/api/draft-linuxsampler-protocol.html#GET MIDI_INPUT_DRIVER_PARAMETER INFO">"multiplicity"</a> 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)</li> |
368 |
|
</ol> |
369 |
|
</li> |
370 |
|
<li class="ok"><a href="http://sourceforge.net/projects/jsampler">JSampler</a> (Java based frontend) |
371 |
|
<ol> |
372 |
|
<li class="ok">Supports all currently available features of LinuxSampler</li> |
373 |
|
</ol> |
374 |
|
</li> |
375 |
|
<li class="false">VSTi frontend</li> |
376 |
|
</ol> |
377 |
|
</li> |
378 |
|
<li class="ok">Playing while Loading, i.e. allowing to play and hold notes on the keyboard |
379 |
|
while loading a new instrument on the same sampler channel at the same time</li> |
380 |
|
<li class="ok">Instrument Editor Plugin System for 3rd Party Instrument Editors</li> |
381 |
|
<li class="ok">Instrument Editors |
382 |
|
<ol> |
383 |
|
<li class="ok"><a href="http://download.linuxsampler.org/doc/gigedit/quickstart/gigedit_quickstart.html">gigedit</a> (C++ based using gtkmm/Gtk+) |
384 |
|
<ol> |
385 |
|
<li class="ok">allows to modify all aspects of Gigsampler v2 and v3 format files</li> |
386 |
|
<li class="ok">allows to modify existing as well as creating completely new .gig files from scratch</li> |
387 |
|
<li class="ok">stand-alone mode (independent of LinuxSampler)</li> |
388 |
|
<li class="ok">live-mode (attached with LinuxSampler), which makes all modifications audible in the sampler in realtime without having to reload</li> |
389 |
|
<li class="ok">created / modified files are accepted by LinuxSampler as well as by Gigastudio 3</li> |
390 |
|
</ol> |
391 |
|
</li> |
392 |
</ol> |
</ol> |
393 |
</li> |
</li> |
394 |
</ol> |
</ol> |
406 |
</p> |
</p> |
407 |
|
|
408 |
<p> |
<p> |
409 |
(Last page update on <b>$Date: 2005-06-04 18:27:05 $</b> by $Author: schoenebeck $, |
(Last page update on <b>$Date: 2008-01-03 21:50:44 $</b> by $Author: schoenebeck $, |
410 |
also see <a href="http://www.linuxsampler.org">CVS Log</a> for recent changes) |
also see <a href="http://www.linuxsampler.org">CVS Log</a> for recent changes) |
411 |
</p> |
</p> |
412 |
|
|