--- web/trunk/www.linuxsampler.org/features.html 2005/05/15 15:31:45 542 +++ web/trunk/www.linuxsampler.org/features.html 2014/06/15 13:44:56 2636 @@ -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"; } --> @@ -98,7 +109,7 @@ -
LinuxSampler +
LinuxSampler

@@ -111,6 +122,8 @@ screenshots demos download + donations + support developers faq documentation @@ -118,50 +131,220 @@ instruments links credits + +
+
+ + + + +
+
+ + + + +
+ + + +
BitcoinsOr donate Bitcoins at:
+
1Q9CK7xUhMNWryqYTZLbUTXbrjpYYtwvng
+
+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. Abstraction of common code from existing Gigasampler engine to base classes for further sampler engines.
  2. +
  3. + Implementation of + SFZ(2) format sampler engine. +
  4. +
  5. + Implementation of + SF2 format sampler engine
    (might not be finished for next release, due to low demand & priority). +
  6. +
  7. + Implementation of + Akai format sampler engine
    (will probably not make into next release, due to low demand & priority). +
  8. +
  9. + 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). +
  10. +
+ + + + + + + +
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 + 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!

-
    -
  1. Operating Systems +
      +
    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 (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)
      8. +
      +
    2. +
    3. Host plugin versions of the sampler +
        +
      1. VSTi (Windows, Mac, Linux)
      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)
    6. -
    7. Sampler Engines +
    8. Audio output drivers
        -
      1. Gigasampler Engine +
      2. ALSA (Linux)
      3. +
      4. JACK (Linux, OSX, Windows, ...)
      5. +
      6. aRts (not RT safe!)
      7. +
      8. ASIO (Windows)
      9. +
      10. CoreAudio (Mac OS X)
      11. +
      12. Audio over ethernet
      13. +
      +
    9. +
    10. Sampler Engines +
        +
      1. Gigasampler / GigaStudio format 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 & v4 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. 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. +
                +
              1. Controller trigger rule
              2. +
              3. Legato rule
              4. +
              5. Alternator rule
              6. +
              +
            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. Round Robin Keyboard
          16. +
          17. Smart MIDI
          18. +
          19. Random
          20. +
          21. Modulation Wheel
          22. +
          23. Breath Ctrl.
          24. +
          25. Foot Ctrl.
          26. +
          27. Portamento Time Ctrl.
          28. +
          29. Effect 1 & 2 Ctrl.
          30. +
          31. Effect 1 - 5 Depth Ctrl.
          32. +
          33. General Purpose Ctrl. 1 - 8
          34. +
          35. Sustain Pedal
          36. +
          37. Portamento
          38. +
          39. Sostenuto Pedal
          40. +
          41. Soft Pedal
          42. +
          +
        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,122 +357,151 @@
        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. -
      3. DLS Engine +
      4. DLS Engine
        1. DLS file loader (DLS version 1 & 2)
        2. Generic playback
      5. -
      6. Akai Engine
      7. +
      8. Akai Engine
          -
        1. Akai file loader (S1000, S3000 series)
        2. +
        3. Akai file loader (S1000, S3000 series)
        4. Generic playback
        -
      9. Custom, modular Engine
      10. -
      +
    11. +
    12. SoundFont v2 (SF2) format engine +
        +
      1. SF2 file loader
      2. +
      3. Generic playback
      4. +
      5. Articulations
      6. +
          + +
        1. SFZ v2 format engine (Note: not to be interchanged with "SoundFont" format !!) +
            +
          1. SFZ file loader
          2. +
          3. Generic playback
          4. +
          5. Articulations: Major part of opcodes have been implemented. Have a look at the SFZ status page for details.
          6. +
          +
        2. +
        3. KORG format Engine +
            +
          1. KORG format file loader (currently supports Kronos, Triton, M3 and Trinity sample based sounds).
          2. +
          3. Generic playback
          4. +
          +
        4. -
        5. Control interfaces +
        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. Multi channel & multi engine support
        11. -
        12. Pitch shifter / Interpolation +
        13. Pitch shifter / Interpolation
          1. Linear interpolation
          2. Cubic interpolation
          3. Formant frequency correction / formant manipulation
        14. -
        15. Dynamic engine recompilation
        16. -
        17. Extensive SMP (multi processor) support
        18. +
        19. Extensive SMP (multi processor) support
        20. +
            +
          1. User can explicitly run individual sampler parts on different CPUs/cores.
          2. +
          3. Automatic SMP voice pooling.
          4. +
        21. Network cluster support
        22. -
        23. (Graphical) frontends +
        24. 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. +
          +
        25. +
        26. 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. +
          +
        27. + +
        28. 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. +
          +
        29. +
        30. (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. +
          +
        31. +
        32. 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
        33. +
        34. Limits for max. voices and max. disk streams can be altered at runtime
        35. +
        36. Instrument Editor Plugin System for 3rd Party Instrument Editors
        37. +
        38. Instrument Editors +
            +
          1. gigedit (C++ based using gtkmm/Gtk+) +
              +
            1. allows to modify all aspects of Gigsampler/GigaStudio v2, v3 and v4 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 & 4
            10. +
            11. virtual MIDI keyboard (for triggering notes by mouse click and highlighting the virtual keys on external note events) +
            12. Support for managing and editing real-time instrument scripts (LinuxSampler extension of the original GigaStudio format).
            13. +
            +
        39. +
        40. 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)