--- web/trunk/www.linuxsampler.org/features.html 2005/05/15 15:31:45 542 +++ web/trunk/www.linuxsampler.org/features.html 2008/01/03 21:50:44 1621 @@ -88,7 +88,7 @@ bugsover = new Image(); bugsover.src = dir + "mbugshover.png"; - bugsout = new Image(); + bugsout = new Image(); bugsout.src = dir + "mbugs.png"; } --> @@ -121,8 +121,26 @@
-

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. +

+ +
    +
  1. nothing scheduled yet
  2. +
+ + + + + + + +
Done Done Partly implemented Partly implemented Not started yet No work started yet
+

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 @@ -130,38 +148,89 @@ listed below, you can write a proposol 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!

-
    +
    1. Operating Systems
      1. Linux
      2. -
      3. Mac OSX
      4. +
      5. Mac OS X (gigedit and JSampler are not yet available for OS X and thus not included with the installer yet)
      6. +
      7. Windows (we provide a convenient Windows installer for all components of the project, only the instruments DB feature is not yet supported on Windows)
    2. Sampler Engines
      1. Gigasampler Engine
          -
        1. Gig file loader
        2. -
        3. Generic playback (RAM & disk streaming)
        4. -
        5. Dimension switching
        6. -
        7. Sustain pedal support
        8. +
        9. Gig file loader +
            +
          1. Gig v2 format
          2. +
          3. Gig v3 format +
              +
            1. large file support (64 bit file offsets are currently truncated to 32 bit)
            2. +
            3. 24 bit samples (uncompressed as well as compressed)
            4. +
            5. support for multi-file format (.gig, .gx01, .gx02, ...)
            6. +
            7. support for articulation (.art) files
            8. +
            9. support for Dimension Splits not equal to two
            10. +
            11. up to 8 Dimensions or 256 Dimension Regions
            12. +
            +
          4. +
          +
        10. +
        11. Generic playback (RAM playback & disk streaming)
        12. +
        13. Dimension switching +
            +
          1. Sample Channel
          2. +
          3. Layer
          4. +
          5. Velocity
          6. +
          7. Channel Aftertouch
          8. +
          9. Release Trigger
          10. +
          11. Keyboard Position
          12. +
          13. Round Robin
          14. +
          15. Random
          16. +
          17. Modulation Wheel
          18. +
          19. Breath Ctrl.
          20. +
          21. Foot Ctrl.
          22. +
          23. Portamento Time Ctrl.
          24. +
          25. Effect 1 & 2 Ctrl.
          26. +
          27. Effect 1 - 5 Depth Ctrl.
          28. +
          29. General Purpose Ctrl. 1 - 8
          30. +
          31. Sustain Pedal
          32. +
          33. Portamento
          34. +
          35. Sostenuto Pedal
          36. +
          37. Soft Pedal
          38. +
          +
        14. +
        15. Sustain pedal interpretation
        16. +
        17. Sostenuto pedal interpretation
        18. Key velocity <-> volume mapping
        19. -
        20. Looping
        21. +
        22. Looping +
            +
          1. endless loop
          2. +
          3. limited amount of loops
          4. +
          5. fractional looping
          6. +
          +
        23. Pitchbend wheel support
        24. -
        25. Bidirectional voice state transition
        26. -
        27. Filter (VCF) +
        28. Bidirectional voice state transition, allowing + to cancel the relase stage of voices forth and back arbitrary + times if needed
        29. +
        30. Filter (VCF)
          1. Highpass
          2. Bandpass
          3. -
          4. Bandreject
          5. +
          6. Bandreject
          7. Lowpass
          8. -
          9. Turbo lowpass
          10. +
          11. Turbo lowpass
          12. +
          13. all filter types provide extremely + accurate characteristics compared to the original + Gigasampler format filters
          14. Cutoff frequency controllable by MIDI controller
          15. Resonance controllable by MIDI controller
          @@ -174,10 +243,20 @@
        31. VCO Low Frequency Oscillator (Pitch)
        32. Layers
        33. Crossfades
        34. -
        35. Key Groups (a.k.a Exclusive Groups)
        36. -
        37. Release Triggered Voices
        38. -
        39. Key Switching
        40. +
        41. Key Groups (a.k.a Exclusive Groups), + for mutually switching off sounds i.e. for drumkits
        42. +
        43. Release Triggered Voices, specific samples + that are played back when voices are released
        44. +
        45. 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
        46. Voice Stealing
        47. +
        48. 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)
        49. +
        50. Scale Tuning (via standard MIDI GS SysEx message)
      2. DLS Engine @@ -188,7 +267,7 @@
      3. Akai Engine
        1. -
        2. Akai file loader (S1000, S3000 series)
        3. +
        4. Akai file loader (S1000, S3000 series)
        5. Generic playback
      4. Custom, modular Engine
      5. @@ -196,80 +275,33 @@
      6. Control interfaces
          -
        1. ALSA MIDI input
        2. -
        3. Network remote control layer for frontends (LSCP) -
            -
          1. Events / Client Notification
          2. -
          3. Control Commands -
              -
            1. GET AVAILABLE_AUDIO_OUTPUT_DRIVERS
            2. -
            3. GET AUDIO_OUTPUT_DRIVER INFO
            4. -
            5. GET AUDIO_OUTPUT_DRIVER_PARAMETER INFO
            6. -
            7. CREATE AUDIO_OUTPUT_DEVICE
            8. -
            9. DESTROY AUDIO_OUTPUT_DEVICE
            10. -
            11. GET AUDIO_OUTPUT_DEVICES
            12. -
            13. LIST AUDIO_OUTPUT_DEVICES
            14. -
            15. GET AUDIO_OUTPUT_DEVICE INFO
            16. -
            17. SET AUDIO_OUTPUT_DEVICE_PARAMETER
            18. -
            19. GET AUDIO_OUTPUT_CHANNEL INFO
            20. -
            21. GET AUDIO_OUTPUT_CHANNEL_PARAMETER INFO
            22. -
            23. SET AUDIO_OUTPUT_CHANNEL_PARAMETER
            24. -
            25. GET AVAILABLE_MIDI_INPUT_DRIVERS
            26. -
            27. GET MIDI_INPUT_DRIVER INFO
            28. -
            29. GET MIDI_INPUT_DRIVER_PARAMETER INFO
            30. -
            31. CREATE MIDI_INPUT_DEVICE
            32. -
            33. DESTROY MIDI_INPUT_DEVICE
            34. -
            35. GET MIDI_INPUT_DEVICES
            36. -
            37. LIST MIDI_INPUT_DEVICES
            38. -
            39. GET MIDI_INPUT_DEVICE INFO
            40. -
            41. SET MIDI_INPUT_DEVICE_PARAMETER
            42. -
            43. GET MIDI_INPUT_PORT INFO
            44. -
            45. GET MIDI_INPUT_PORT_PARAMETER INFO
            46. -
            47. SET MIDI_INPUT_PORT_PARAMETER
            48. -
            49. ADD CHANNEL
            50. -
            51. GET CHANNELS
            52. -
            53. LIST CHANNELS
            54. -
            55. REMOVE CHANNEL
            56. -
            57. GET AVAILABLE_ENGINES
            58. -
            59. GET ENGINE INFO
            60. -
            61. GET CHANNEL INFO
            62. -
            63. LOAD ENGINE
            64. -
            65. LOAD INSTRUMENT
            66. -
            67. GET CHANNEL VOICE_COUNT
            68. -
            69. GET CHANNEL STREAM_COUNT
            70. -
            71. GET CHANNEL BUFFER_FILL
            72. -
            73. SET CHANNEL AUDIO_OUTPUT_DEVICE
            74. -
            75. SET CHANNEL AUDIO_OUTPUT_TYPE
            76. -
            77. SET CHANNEL AUDIO_OUTPUT_CHANNEL
            78. -
            79. SET CHANNEL MIDI_INPUT_DEVICE
            80. -
            81. SET CHANNEL MIDI_INPUT_TYPE
            82. -
            83. SET CHANNEL MIDI_INPUT_PORT
            84. -
            85. SET CHANNEL MIDI_INPUT_CHANNEL
            86. -
            87. SET CHANNEL VOLUME
            88. -
            89. RESET CHANNEL
            90. -
            91. SUBSCRIBE
            92. -
            93. UNSUBSCRIBE
            94. -
            95. SET ECHO
            96. -
            97. QUIT
            98. -
            99. RESET
            100. -
            -
          4. -
          +
        4. Native C++ API
        5. +
        6. Custom network interface for frontends (LSCP)
        7. -
        8. VSTi
        9. -
        10. MIDI over ethernet (Distributed MIDI)
        11. -
        12. CoreMIDI (Mac OSX)
        13. +
        14. OSC +
      7. -
      8. Audio output interfaces +
      9. MIDI input drivers +
          +
        1. ALSA (Linux)
        2. +
        3. JACK (Linux, OSX, Windows, ...)
        4. +
        5. VSTi
        6. +
        7. MIDI over ethernet (Distributed MIDI)
        8. +
        9. CoreMIDI (Mac OS X)
        10. +
        11. MidiShare (Linux, OS X, Windows)
        12. +
        13. MME (Windows)
        14. +
        +
      10. +
      11. Audio output drivers
          -
        1. ALSA
        2. -
        3. JACK
        4. +
        5. ALSA (Linux)
        6. +
        7. JACK (Linux, OSX, Windows, ...)
        8. +
        9. aRts (not RT safe!)
        10. +
        11. ASIO (Windows)
        12. VSTi
        13. Audio over ethernet
        14. -
        15. CoreAudio (Mac OSX)
        16. +
        17. CoreAudio (Mac OS X)
      12. Time stamp event system & jitter correction
      13. @@ -284,10 +316,79 @@
      14. Dynamic engine recompilation
      15. Extensive SMP (multi processor) support
      16. Network cluster support
      17. +
      18. MIDI instrument mapper, allows to create very flexible MIDI progam change setups in a very easy way. +
          +
        1. MIDI program change
        2. +
        3. MIDI bank select (automatic detection of MSB only, LSB only or full MSB+LSB)
        4. +
        5. Load Strategy for each Item individually +
            +
          1. On-Demand: loads the instrument only when needed, frees it immediately once not used by any sampler channel anymore
          2. +
          3. On-Demand-Hold: loads the instrument when needed and keeps it in memory, that is even if not used by a sampler channel
          4. +
          5. 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
          6. +
          7. Default: let the sampler decide
          8. +
          +
        6. +
        7. 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
        8. +
        9. Mapping of arbitrary Instrument Files, already independent of the underlying format in respect for future sampler engines
        10. +
        11. arbitrary amount of independent MIDI instrumet maps, (i.e. for chromatic instruments, drumkits, ...), each sampler channel can be assigned to a specific MIDI map
        12. +
        +
      19. +
      20. Effect Sends +
          +
        1. Arbitrary Amount of FX Sends on Sampler Channels
        2. +
        3. Realtime MIDI Control of Send Level
        4. +
        5. Arbitrary MIDI Controller assignable
        6. +
        7. Flexible Routing i.e. to a dedicated effect audio output
        8. +
        +
      21. + +
      22. Instrument Database System, allowing to keep track of even the largest sample library collections +
          +
        1. Ordering in Categories
        2. +
        3. Search by various Criteria
        4. +
        5. Transparently maintained on backend side
        6. +
        +
      23. (Graphical) frontends
          -
        1. Qt based frontend
        2. -
        3. VSTi frontend (based on the Qt frontend)
        4. +
        5. QSampler (C++ based frontend using Qt) +
            +
          1. Supports all features of LinuxSampler except the following ...
          2. +
          3. + Effect Sends (qsampler retrieves current FX send settings from the sampler, + stores FX send settings in session .lscp files and restores them, but + currently does not yet offer a widget to modify FX send settings) +
          4. +
          5. 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]) +
          6. +
          7. Instruments DB support (to ease handling of huge sample library collections)
          8. +
          9. Sampler events (to let qsampler react on certain events occuring on sampler side)
          10. +
          11. 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)
          12. +
          +
        6. +
        7. JSampler (Java based frontend) +
            +
          1. Supports all currently available features of LinuxSampler
          2. +
          +
        8. +
        9. VSTi frontend
        10. +
        +
      24. +
      25. 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
      26. +
      27. Instrument Editor Plugin System for 3rd Party Instrument Editors
      28. +
      29. Instrument Editors +
          +
        1. gigedit (C++ based using gtkmm/Gtk+) +
            +
          1. allows to modify all aspects of Gigsampler v2 and v3 format files
          2. +
          3. allows to modify existing as well as creating completely new .gig files from scratch
          4. +
          5. stand-alone mode (independent of LinuxSampler)
          6. +
          7. live-mode (attached with LinuxSampler), which makes all modifications audible in the sampler in realtime without having to reload
          8. +
          9. created / modified files are accepted by LinuxSampler as well as by Gigastudio 3
          10. +
          +
      @@ -305,7 +406,8 @@

      - (List last updated 2005-02-10, also see CVS Log for recent changes) + (Last page update on $Date: 2008-01-03 21:50:44 $ by $Author: schoenebeck $, + also see CVS Log for recent changes)