From ArchWiki
Revision as of 12:58, 9 July 2009 by Svoufff (talk | contribs)
Jump to: navigation, search

Tango-document-new.pngThis article is a stub.Tango-document-new.png

Notes: please use the first argument of the template to provide more detailed indications. (Discuss in Talk:LinuxSampler#)


Linuxsampler is a software audio sampler.It can be loaded with libraries in the gigasampler format (.gig). A benefit of LS compared to other samplers available for linux, is its streaming from hard disk capabilities, allowing the usage of huge libraries (several GBs..). By now, "Linuxsampler" refers to a group of software interacting together :

  • the sampler engine itself : linuxsampler
  • a gig file editor : gigedit
  • several graphical frontends : qsampler (QT based), jsampler-classic and jsampler-fantasia (both java based)


IMPORTANT NOTE 1 : Follow the installation order of theses components to get a working set of apps.

IMPORTANT NOTE 2 : All packages are available from AUR.The whole set can be grabbed as standard packages or cvs versions. Standard packages in AUR are up-to-date but the sources tarballs released by the LS team can be old. CVS versions are bleeding edge.They appear to work well in i686 and x86_64 architectures but it's never sure that all packages will build against each other at any time.

You should choose between a full set of standard packages OR cvs packages but do not mix them. Whatever you choose, but particularly with cvs packages, you should keep in a safe place a set of binary packages that work together.

The backend : Linuxsampler

It is the "engine" of the sampler, which performs all the heavy and time critical computational tasks of handling MIDI events, calculating the audio data and sending the final audio data to your sound card(s).LinuxSampler itself usually runs as own process in the background of the computer and usually does not show up anything on the screen, or at most it can be launched to show status informations and debug messages in a console window.Usually you will also need a frontend to control it.

Build and install :


and check that everything is ok :

$ linuxsampler

then CTRL-c to quit.

The editor : Gigedit

Gigedit allows you to edit and create instruments for the Gigasampler format, which can be used with LinuxSampler as well as with Tascam's Gigastudio.You can use gigedit as stand-alone application without Linuxsampler running or in live-mode, started from any frontend ("edit" button).In this case, all your modifications are audible in realtime.

Build and install (optional, you can skip this step if you don't need the editor):


and check that everything is ok :

$ gigedit

The editor should pop-up in "stand-alone" mode as indicated in the down-right corner. Close the window.

The frontend : Qsampler

This frontend provides the user a set of menus, buttons, sliders, dials, etc. to allow the user to control the sampler in a convenient way.It does not perform any signal processing tasks, so you can see it as a "face" of the sampler.From Qsampler you can load/unload .gig files into Linuxsampler and set their midi channel number, volume, jack output etc...and finally store all this setup in a file for a speedy re-opening of your "sampling orchestra".

Build and install :


Configuration via qsampler

  • Creating a default template that autoconnects to jack :

Start jack then start Qsampler.Let's define some default input/output:

Go to menu -> View -> Devices (or F11 shortcut or the green pci card icon in the toolbar)

Note : In some systems, qsampler crashes if the window is closed or even backgrounded while the Bottom-Right panel is still in view.Easy workaround : click on "Audio devices" or "Midi Devices" on the left panel before leaving or unfocusing the window.

On the left panel, click on "Audio Devices".Now we can see the audio drivers available in the right panel. Change for Jack in the Driver menu.The default config should give you a pair of audio outputs at a sample rate of 44100.Click on the Create button down the window.

On the left panel, click on "Audio Jack Device 0" , then on right panel select "Audio Jack 0" from the "Channel" drop-down list.Choose an output for the JACK_BINDINGS parameter, like "system:playback 1" Then select "Audio Jack 1" from the "Channel" drop-down list and assign JACK_BINDINGS parameter value, like system:playback 2"

Now let's create some midi binding also. On the left panel, click on "Midi Devices".On the right panel, choose "alsa" (alsa-midi) or "jack" (jack-midi) in the Driver menu then hit the create button. On the left panel, click on the "Midi Jack Device" port or "Midi Alsa Device" port you just created.On the right panel, choose a "JACK_BINDINGS" or "ALSA_SEQ_BINDINGS" parameter value as you did earlier with the audio outputs. Note that if jack-midi is not enabled on your system, you won't find it in the drop-down list.You can check in Qjackctl setup.Midi driver should be set to "seq".If it's not the case and you want jack-midi i/o


Filtering midi messages before they reach LS



If you get a message : Engine: WARNING, CONFIG_EG_MIN_RELEASE_TIME too big for current audio fragment size & sampling rate! May lead to click sounds if voice stealing chimes in! and eventually a crash after that, then it's time to reconsider latency for your souncard. On a M-audio delta44 everything working at 5,8 ms.

External Ressources