LinuxSampler for Windows     HOWTO by Benno Senoner 


December 18th, 2007

1.  Introduction
2.  Requirements
3.  Installation ...
    3.a  with Internet Connection
    3.b  without Internet
4.  Using the Applications
    4.1  Setting up MIDI Input
    4.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.

For now the sampler supports the Windows Multimedia Extensions System (MME) for MIDI input and ASIO for audio out. This means it currently runs only as a standalone application. A VST interface will follow soon, along with a 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 (except of the instruments DB feature yet) 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. It installs 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. gtk-2.10.11-win32-1.exe
  2. gtkmm-win32-runtime-2.10.11-1.exe
  3. jre-6u2-windows-i586-p.exe
  4. linuxsampler_20071207_setup.exe
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:
  1. First start the LinuxSampler backend: Click on "Start" -> "LinuxSampler" -> "LinuxSampler 0.5.1 (backend)". A black console window should immediately popup. It does what you think it does: nothing ... yet ... because this is "just" the raw sampler, without a user interface.
  2. Now start a "frontend" application to actually control the previously started sampler. For beginners and / or unpatient people, we recommend you to use JSampler: Click on "Start" -> "LinuxSampler" -> "JSampler 'Fantasia' 0.8a (frontend)". This usually takes about 20 seconds or so until the application finally appears on the screens.

4.1  Setting up MIDI Input

Once the GUI opens, click on the left round button in the MIDI devices tab. At this point a window will open where you can create a new MIDI device. Press Create. The window will close and the MIDI device will be created. (MIDI Device 0 MME). Now click on the right arrow which points downwards. You can see that a MIDI device with a single Port (Port 0) was created. Under Windows MME LinuxSampler always creates MIDI devices which are connected to a single MME port. To select the MIDI input port you must click on the field located on the left of PORT. A combobox pops-up where you can select the Windows MIDI port.

You can create an arbitrary number of MIDI input devices by repeating the procedure above. Each MIDI input device is connected to a single Windows MME MIDI port. This means LinuxSampler has no limitation in terms of number of MIDI ports. Each MIDI device can be routed to arbitrary sampler channels.

4.2  Setting up Audio Output

LinuxSampler currently only supports the ASIO driver model for audio output on Windows. ASIO drivers ensure reliable low-latency operation and are virtually available for any soundcard (see ASIO requirements tip).

Click on the left round button in the Audio Devices tab. At this point a window will open where you can create a new MIDI device. When creating the Audio device you can set several parameters: Now Press "Create". The window will close and the Audio device will be created: "AUDIO DEVICE 0 (ASIO)" appears.

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

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

LinuxSampler currently lacks a VST interface so the only way to route LinuxSampler's outs into a sequencer are 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!