--- web/trunk/www.linuxsampler.org/features.html 2005/05/15 15:31:45 542 +++ web/trunk/www.linuxsampler.org/features.html 2009/08/04 17:00:45 1985 @@ -12,84 +12,95 @@ var dir = "gfx/"; if(document.images) { + newsover = new Image(); + newsover.src = dir + "mnewshover.png"; - newsover = new Image(); - newsover.src = dir + "mnewshover.png"; + newsout = new Image(); + newsout.src = dir + "mnews.png"; - newsout = new Image(); - newsout.src = dir + "mnews.png"; + aboutover = new Image(); + aboutover.src = dir + "mabouthover.png"; - aboutover = new Image(); - aboutover.src = dir + "mabouthover.png"; + aboutout = new Image(); + aboutout.src = dir + "mabout.png"; - aboutout = new Image(); - aboutout.src = dir + "mabout.png"; + featuresover = new Image(); + featuresover.src = dir + "mfeatureshover.png"; - featuresover = new Image(); - featuresover.src = dir + "mfeatureshover.png"; + featuresout = new Image(); + featuresout.src = dir + "mfeatures.png"; - featuresout = new Image(); - featuresout.src = dir + "mfeatures.png"; + screenshotsover = new Image(); + screenshotsover.src = dir + "mscreenshotshover.png"; - screenshotsover = new Image(); - screenshotsover.src = dir + "mscreenshotshover.png"; + screenshotsout = new Image(); + screenshotsout.src = dir + "mscreenshots.png"; - screenshotsout = new Image(); - screenshotsout.src = dir + "mscreenshots.png"; + demosover = new Image(); + demosover.src = dir + "mdemoshover.png"; - demosover = new Image(); - demosover.src = dir + "mdemoshover.png"; + demosout = new Image(); + demosout.src = dir + "mdemos.png"; - demosout = new Image(); - demosout.src = dir + "mdemos.png"; + downloadsover = new Image(); + downloadsover.src = dir + "mdownloadshover.png"; - downloadsover = new Image(); - downloadsover.src = dir + "mdownloadshover.png"; + downloadsout = new Image(); + downloadsout.src = dir + "mdownloads.png"; - downloadsout = new Image(); - downloadsout.src = dir + "mdownloads.png"; + donationsover = new Image(); + donationsover.src = dir + "mdonationshover.png"; - developersover = new Image(); - developersover.src = dir + "mdevelopershover.png"; + donationsout = new Image(); + donationsout.src = dir + "mdonations.png"; - developersout = new Image(); - developersout.src = dir + "mdevelopers.png"; + supportover = new Image(); + supportover.src = dir + "msupporthover.png"; + supportout = new Image(); + supportout.src = dir + "msupport.png"; - instrumentsover = new Image(); - instrumentsover.src = dir + "minstrumentshover.png"; + developersover = new Image(); + developersover.src = dir + "mdevelopershover.png"; - instrumentsout = new Image(); - instrumentsout.src = dir + "minstruments.png"; + developersout = new Image(); + developersout.src = dir + "mdevelopers.png"; - linksover = new Image(); - linksover.src = dir + "mlinkshover.png"; + instrumentsover = new Image(); + instrumentsover.src = dir + "minstrumentshover.png"; - linksout = new Image(); - linksout.src = dir + "mlinks.png"; + instrumentsout = new Image(); + instrumentsout.src = dir + "minstruments.png"; - documentationover = new Image(); - documentationover.src = dir + "mdocumentationhover.png"; + linksover = new Image(); + linksover.src = dir + "mlinkshover.png"; - documentationout = new Image(); - documentationout.src = dir + "mdocumentation.png"; + linksout = new Image(); + linksout.src = dir + "mlinks.png"; - creditsover = new Image(); - creditsover.src = dir + "mcreditshover.png"; + documentationover = new Image(); + documentationover.src = dir + "mdocumentationhover.png"; - creditsout = new Image(); - creditsout.src = dir + "mcredits.png"; + documentationout = new Image(); + documentationout.src = dir + "mdocumentation.png"; - faqover = new Image(); - faqover.src = dir + "mfaqhover.png"; + creditsover = new Image(); + creditsover.src = dir + "mcreditshover.png"; - faqout = new Image(); - faqout.src = dir + "mfaq.png"; + creditsout = new Image(); + creditsout.src = dir + "mcredits.png"; - bugsover = new Image(); - bugsover.src = dir + "mbugshover.png"; + faqover = new Image(); + faqover.src = dir + "mfaqhover.png"; + + faqout = new Image(); + faqout.src = dir + "mfaq.png"; + + bugsover = new Image(); + bugsover.src = dir + "mbugshover.png"; + + bugsout = new Image(); + bugsout.src = dir + "mbugs.png"; - bugsout = new Image(); - bugsout.src = dir + "mbugs.png"; } --> @@ -111,6 +122,8 @@ screenshots demos download + donations + support developers faq documentation @@ -118,50 +131,191 @@ instruments links credits + +
+
+ + + + +
+
+ + + + +
+Why donate? +
+

+

+
+ + +
+
+ +
-

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

+ 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 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. 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)
      6. +
      7. Mac OS X (gigedit and JSampler are not yet available for OS X and thus not included with the installer yet)
      8. +
      +
    2. +
    3. Host plugin versions of the sampler +
        +
      1. VSTi (Windows)
      2. +
      3. Audio Units (Mac)
      4. +
      5. DSSI (Linux)
      6. +
      7. LV2 (Linux)
      8. +
      +
    4. +
    5. MIDI input drivers +
        +
      1. ALSA (Linux)
      2. +
      3. JACK (Linux, OSX, Windows, ...)
      4. +
      5. CoreMIDI (Mac OS X)
      6. +
      7. MidiShare (Linux, OS X, Windows)
      8. +
      9. MME (Windows)
      10. +
      11. MIDI over ethernet (Distributed MIDI)
      12. +
      +
    6. +
    7. Audio output drivers +
        +
      1. ALSA (Linux)
      2. +
      3. JACK (Linux, OSX, Windows, ...)
      4. +
      5. aRts (not RT safe!)
      6. +
      7. ASIO (Windows)
      8. +
      9. CoreAudio (Mac OS X)
      10. +
      11. Audio over ethernet
    8. 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. +
            13. MIDI rules
            14. +
            15. convolution
            16. +
            +
          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 +328,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 +352,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 +360,11 @@
      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. -
        -
      7. -
      8. Audio output interfaces -
          -
        1. ALSA
        2. -
        3. JACK
        4. -
        5. VSTi
        6. -
        7. Audio over ethernet
        8. -
        9. CoreAudio (Mac OSX)
        10. +
        11. OSC +
      9. Time stamp event system & jitter correction
      10. @@ -284,10 +379,74 @@
      11. Dynamic engine recompilation
      12. Extensive SMP (multi processor) support
      13. Network cluster support
      14. -
      15. (Graphical) frontends +
      16. 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. +
        +
      17. +
      18. 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. +
        +
      19. + +
      20. Instrument Database System, allowing to keep track of even the largest sample library collections
          -
        1. Qt based frontend
        2. -
        3. VSTi frontend (based on the Qt frontend)
        4. +
        5. Ordering in Categories
        6. +
        7. Search by various Criteria
        8. +
        9. Transparently maintained on backend side
        10. +
        +
      21. +
      22. (Graphical) frontends +
          +
        1. JSampler a.k.a "Fantasia" (Java based frontend) +
            +
          1. Supports all currently available features of LinuxSampler
          2. +
          +
        2. +
        3. QSampler (C++ based frontend using Qt) +
            +
          1. Supports all features of LinuxSampler except the following ...
          2. +
          3. 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]) +
          4. +
          5. Instruments DB support (to ease handling of huge sample library collections)
          6. +
          7. 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)
          8. +
          +
        4. +
        +
      23. +
      24. 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
      25. +
      26. Limits for max. voices and max. disk streams can be altered at runtime
      27. +
      28. Instrument Editor Plugin System for 3rd Party Instrument Editors
      29. +
      30. 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. +
          11. virtual MIDI keyboard (for triggering notes by mouse click and highlighting the virtual keys on external note events)
          12. +
          +
      @@ -305,7 +464,8 @@

      - (List last updated 2005-02-10, also see CVS Log for recent changes) + (Last page update on $Date: 2009-08-04 17:00:45 $ by $Author: schoenebeck $, + also see CVS Log for recent changes)