LinuxSampler for Windows HOWTO by Benno Senoner
August 14, 2009
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:
- One is QSampler, a light-weight frontend based on the
cross-platform Qt4 GUI toolkit with native OS GUI widgets
- Another is JSampler "Fantasia", a Java based GUI client called,
providing a modern skin-based user interface
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:
- the JAVA runtime environment
- 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
- 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.
- 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.
- 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
- 1. First start the LinuxSampler backend: Click on "Start" ->
"LinuxSampler" -> "LinuxSampler (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' (frontend)". This usually takes about
20 seconds or so until the application finally appears on the
screens.
-
4.2.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.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:
- CARD : The name of the soundcard, in case you have multiple cards
installed. It will show the default value (first card found).
- CHANNELS : Number of audio output channels, can range from 1 to
maximum number of channels your soundcard supports. We recommend to
leave the default value which is the maximum number of channels your
soundcard supports.
- FRAGMENTSIZE : ASIO buffer size in samples. The card's default
value is shown. If you experience clicks and pops during audio
playback then initialize the audio output device with bigger values.
(better if it's always a power of 2: e.g. 256, 512, 1024)
- SAMPLERATE : Sets the samplerate. The default value is shown.
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
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:
- when adding a channel there noises could occur while playing on other
channels
- if you overload the sampler (CPU overload or disk overload) it
produces noises
- when editing an instrument using gigedit, after saving it, it could
happen that LinuxSampler does not accept commands from the GUI anymore.
if this happens close the GUI and the LinuxSampler console window and
restart both.
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!