LinuxSampler for Windows     HOWTO by Benno Senoner 


August 14, 2009

1.  Introduction
2.  Requirements
3.  Installation ...
    3.a  with Internet Connection
    3.b  without Internet
4.  Using the Applications
    4.1  VST plugin Mode
    4.2  Standalone Mode
        4.2.1  Setting up MIDI Input
        4.2.2  Setting up Audio Output
    4.3  Loading Samples
    4.4  Saving a Sampler Session
    4.5  Routing LinuxSampler Outs Into Sequencer
5.  Installation Troubleshooting
6.  Detailed Documentation
7.  Bugs, Problems and Feature Requests
8.  Contact

1.  Introduction

The LinuxSampler development team is happy to announce that LinuxSampler, the most advanced free, open source sampler finally runs on MS Windows too. More information will be added here soon, so check back frequently.

The sampler can work in standalone mode or as a VSTi plugin. In standalone mode it uses the Windows Multimedia Extensions System (MME) for MIDI input and ASIO for audio out. In VST mode it it can be loaded in any VST compatible sequencer. It uses intelligent resource sharing where a single LinuxSampler engine can serve multiple VST instance offering maximum performance and better memory utilization. The VST plugin provides user definable effect sends which can be MIDI controlled and routed to any LinuxSampler's VST audio out channels. That way you can use the sequencer's internal FXes or VST effects to ie. add reverb, chorus, delay and other kind of effects which are all MIDI controllable in real time. For example one can use a large General MIDI sample set and for faithful playback of GM MIDI files including effects. Planned additions are network module to run multiple sampler slaves distributed on Windows or Linux machines (Linux provides better performance) all controlled from a Windows box i.e. running the VST sequencer.

LinuxSampler is implemented as a client/server application. This means the sampling engine (the server / backend) runs independently from the GUI (the client / frontend). Sampling engine and client can be run on the same box or on different machines too, connected over the network.

The MS Windows version provides all the features of the Linux version since it is built from the same source code base. This means when new features will come out the Windows version will usually provide the same feature set as the Linux version. This was made possible by the very modular design of both low level, operating system functions and flexible audio / MIDI driver system.

The Windows version comes as a self extracting .exe file which will install all the necessary modules to run both the server ( linuxsampler.exe ) and the GUI client. In addition it installs the VST plugin ( LinuxSampler.dll ) in the default VST path (which usually is C:\Program Files\Steinberg\VstPlugins ).
LinuxSampler provides 2 GUI clients: At the moment JSampler is more advanced than QSampler as it implements all the functionality present in the LinuxSampler engine. Due to the Java virtual machine however it occupies a bit more RAM than the QSsampler GUI (around 30MB or so) and takes a bit longer for startup, but on a 1GB+ RAM box the difference should be negligible.

2.  Requirements

Tip: For consumer audio cards which do not come with their own ASIO drivers you can install ASIO4ALL to be able to use LinuxSampler with your soundcard. We recommend to use version 2.7, perhaps on Vista 2.8beta1 works better but we did not perform tests on Vista so we cannot tell it. Please let us know about your results so we can share them here!

3.a  Installation with Internet Connection

Simply download the latest version of the LinuxSampler Windows installer from the LinuxSampler Download Page, execute the installer and follow the instructions. It will automatically detect if the required software components are already installed. If not, it will download them from the internet and install them on your computer.

3.b  Installation without Internet

First download the required components with a machine which has connection to the internet: Transfer the downloaded files to the computer where you want to install LinuxSampler and install them in the following order:
  1. the JAVA runtime environment
  2. linuxsampler setup EXE file
The order is important, since the components depend on each other and would otherwise try to download the missing component from the internet.

4.  Using the Applications

Now that we installed everything, let's get wet and start the applications:

4.1 VST plugin Mode

  1. Figure out where your default VST plugin path resides. The installer looks at the registry key Software\VST\VSTPluginsPath and if this key does not exist then it uses the default path C:\Program Files\Steinberg\VstPlugins. In this directory you should find a file LinuxSampler.dll which is the LinuxSampler VST plugin.
  2. Add the path to your sequencer's VST paths and rescan the plugin list (in some cases restarting the sequencer app is probably better). LinuxSampler should now appear in the list of your plugins.
  3. Load the LinuxSampler VST plugin into the sequencer. After a short delay the Fantasia LinuxSampler GUI should appear and you are ready to go. Please skip to the Loading Samples section.
Important: don't start the LinuxSampler standalone backend when using the VST plugin or don't set up MIDI and Audio ports in the GUI (The VST plugin does it automatically), otherwise it not work correctly.

4.2 Standalone Mode

4.3  Loading Samples

In the middle of the screen below the volume slider, you see the sampler channel strip pane. press on the round button located on the left. This will create a new sampler channel. Click on "Load Instrument". This opens a dialog which allows you to select an instrument to be loaded in the sampler channel (for information on how to use "orchestras" click here, but note: orchestras, a.k.a "instruments database" is not yet supported in this first Windows version of LinuxSampler, but will certainly be on the next Windows release). On the row  "Select instrument from file" click on the orange icon located on the right side. This opens a file dialog which allows you to select a sample to be loaded (currently only the GIG format is supported). Select the sample to be loaded and then click on "Open". At this point the fields Instrument file shows the filename. You can click on the Instrument index and select the specific instrument contained in the instrument file. Now press "OK".

While it loads you see: "Loading" .. "90%" .. "100%"

Once loaded, you see the Instrument's name: i.e. "FreePiano"

On the left side of the sampler channel click on the arrow below "Options". This pane permits to set MIDI input device, port and channel and oudio output channel. Notice that under Windows MME the Port value is always 0. So the only values you can change is "MIDI device" (normally 0 if you created only a single MIDI input device) and the MIDI channel (from 1 to 16).

4.4  Saving a Sampler Session

When in VST plugin mode saving the current LinuxSampler session happens transparently. Just save the session in your sequencer and it will automatically save the current settings and loaded samples in LinuxSampler too. When you load the session in your VST sequencer LinuxSampler reloads all the settings and samples accordingly.

When running LinuxSampler in standalone mode you can load and save LSCP files from within the Fantasia GUI:
Click on the 3rd icon from the left on the row where you see the round icon with the LinuxSampler "S"-shape logo. Now select the directory where you want to save the file to (extension .lscp = Linux Sampler Control Protocol). Enter the name and press save (add .lscp at end of file otherwise you will not see it in the file-open dialog later, when you want to load it again).

Next time you can load a sampler session by clicking on the second icon from the left, then select a .lscp file in the file dialog and press "Open". This will automatically set up the MIDI devices and audio devices, create the sampler channels and load all the samples that were previously loaded by you in the saved sampler session.

4.5  Routing LinuxSampler Outs Into Sequencer

When running LinuxSampler as a VST plugin it is fully integrated within the VST sequencer so for routing refer to the documentation that comes with your sequencer. If you run LinuxSampler in standalone mode you can route the audio into your sequencer either by using physical cables or internal routing via ASIO. Some audio cards offer this feature.
The Reaper sequencer allows ASIO routing by implementing a virtual ASIO based driver independently from the soundcard type (ReaRoute). Basically in LinuxSampler you select the ReaRoute as ASIO output driver which appear as input ports in Reaper. Coupled with the MIDI controllable FX sends in LinuxSampler you can use Reaper's FX egine to add reverb, chorus etc to LinuxSampler instruments, fully MIDI controllable, similar to other MIDI based modules.
Our forum user moonskin (thanks Graham!) has described the steps needed to perform in order to set up the routing. See here

5.  Installation Troubleshooting

6.  Detailed Documentation

You find more detailed documentation about our software, i.e. about JSampler or gigedit on our official LinuxSampler documentation site.

7.  Bugs, Problems and Feature Requests

Our Forum is a good place to ask for help:

    https://bb.linuxsampler.org

We have a dedicated forum section for newbies and support.

Since the Windows port of LinuxSampler is very young, there could be several bugs which we hope to root out soon. Please report them using our bug tracking system:

    http://bugs.linuxsampler.org/

Some bugs and problems I discovered so far:

8.  Contact

If you have questions or want to help us to improve the sampler, subscribe to the LinuxSampler Developer's mailing list. Alternatively, since I did most of of the Windows porting, you can write me (Benno) directly about Windows related issues. You can find my email address here:

    http://www.linuxsampler.org/developers.html

That's it, enjoy!