LinuxSampler

About
news about features screenshots demos download donations support developers faq documentation bugs instruments links credits
Bitcoins Or donate Bitcoins at:
1Q9CK7xUhMNWryqYTZLbUTXbrjpYYtwvng

Why donate?

The Project

The LinuxSampler project was founded in 2002 with the goal to produce a free, streaming capable open source pure software audio sampler with high stability, efficiency and very low latency, providing professional grade features, comparable to both hardware and commercial Windows/Mac software samplers and to introduce new features not yet available by any other sampler in the world.

The Engine

LinuxSampler was designed very modular, especially (and in contrast to other samplers) it was decoupled from any user interface. 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:



That means LinuxSampler itself is the "engine" of the sampler, it is the software component 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). We call LinuxSampler the sampler backend.

The Face(s)

Obviously you need some way to control the sampler. That's where a 2nd application comes into game, which we call a sampler frontend application. A frontend is (usually) a graphical application, visible on the screen, providing the user a set of e.g. menus, buttons, sliders, dials, etc. to allow the user to control the sampler in a convenient way. It merely sends the user requests to the sampler engine (LinuxSampler) and in turn shows the engine's status informations on the screen. A frontend does not perform any signal processing tasks, so you can see it as a "face" of the sampler.

For luxury we already provide you two different frontends / "faces" for LinuxSampler:

  • QSampler is a light-weight frontend written in C++, using straightforward native graphical controls of the underlying operating system. That way the appearance of QSampler on the screen is very fast and it only consumes very little resources. Due to its utilization of the operating system's common GUI controls, it looks slightly different on every operating system (also dependent of the user's selected theme on his OS):

     

    Note however, QSampler does not fully support all features of the sampler engine (LinuxSampler) yet. Most notably the engine's instruments database feature is not yet covered by QSampler. But if you don't need that particular feature, you're certainly fine with QSampler as well.

  • JSampler is a full-fledged frontend for LinuxSampler, written in Java and currently comes in two flavors: JSampler "Classic" offers straightforward GUI controls whereas JSampler "Fantasia" provides a modern skin based user interface:


    JSampler supports all features currently available in the sampler engine (LinuxSampler). Also note that even though JSampler is written in Java and slightly more hungry regarding resources (compared to QSampler), this usually does not have any impact on the audio rendering performance of the sampler, since the engine runs completely independently and with much higher CPU priority than the frontend(s).

It's completely up to you which frontend to use. You could even use both parallel at the same time for the same sampler engine instance, really! ;-) You're concerned that your sampler frontend might waste precious resources of your computer? No problem, just setup the sampler session for your needs and then quit the frontend application. The sampler engine doesn't care! It continues to do its job. You need to change something? Start the frontend again (or another frontend) and you see what you expect to see: the current setup and state of the running sampler engine.

Sampler Formats

Virtual instruments (i.e. pianos, drums, orchestra ensembles) based on sampler software are created and distributed as files, which essentially contain recorded audio samples plus so called articulation informations. The latter are a very important factor to make audio samples assemble a realistic sound of i.e. natural instruments. The are defining when and how exactly the individual audio samples shall be played back and modified by the sampler. So a sampler format is made up of two things:

  1. File format: which defines how audio samples and articulation informations are stored in files exactly.
  2. Synthesis model: which defines what the sampler sampler can do with audio samples, and how the sampler should interpret the articulation informations stored in files.

It is planned to support all common sampler formats in LinuxSampler. At the moment the sampler supports the following three:

  1. GigaStudio/GigaSampler Format: First format ever supported by LinuxSampler and hence probably the most mature option in LinuxSampler right now. When we started to develop LinuxSampler back in 2002, we chose to concentrate on this commercial sampler format first, because at that point it was (in our opinion) the most popular and "best" sampler format in regards of quality and features, especially for the synthesis of natural instruments like pianos, brass and bowed instruments. Some of the best sounding orchestra libraries were made in this format at that time.

    In contrast to all those commercial samplers out there who claim to support the GigaStudio/GigaSampler format, we invested many years and a lot of effort to reassemble the original sound of this format as exactly as possible, as it was with the original GigaStudio PC software. Other samplers usually provide only raw sample playback for this format and - if at all - only limited support for its articulations and synthesis model. LinuxSampler however is providing i.e. envelopes and filters with very precise characteristics and accuracy of the original ones used in the original GigaStudio software. We even reassembled the "warty" parts of the format, that is strange aspects of the format. All this just to fulfill one goal: playing back your huge collection of high class .gig instruments with LinuxSampler exactly as they sounded like with GigaStudio! And as of to date there is probably no other sampler out there which does that job better.

  2. SoundFont Format: Being a very popular sampler format, supported by numerous hardware devices and sampler software products for many years, we also added support for the SoundFont format. However, since this format is fairly old and limited we did not spend as much effort on it than on the other formats. So there is currently not full support for all aspects of this format yet. Be invited to help us on finishing support for this format!

  3. SFZ Format: Not to be interchanged with the SoundFont format! Even though their names suggest them to be similar, and also being initiated by the same company, the SFZ format does not have much in common with the SoundFont format! The SFZ format is a quite new one, an open format that is also used as basis in many commercial sampler products. It has the potential to become a broad standard format among sampler products. It is extensible for custom features, provides articulation information in human-readable text form and samples are usually stored as separate files along to the articulation files. The latter also allows a variety of audio formats to be used and gives sound designers and their customers various advantages to work with.

    Due to its high potential we recently spent a lot of time in supporting this format in LinuxSampler. A lot of this format is already supported (v1 and v2) in LinuxSampler, also extensions of commercial samplers, and we continue to evolve support for this format.

Along to these formats, we have been thinking about creating our own, new sampler format from scratch, for providing new sampler features currently not available in any sampler yet. However when we started adding support for SFZ, we realized such features should rather be implemented as extension to the SFZ format.

Instrument Editors

For creating new virtual instruments and for adjusting your existing ones, you may want to use an instrument editor. LinuxSampler was designed decoupled from instrument editors, but provides extensive support for cooperation with instrument editor applications. Especially for the aspect of being able to edit an instrument while playing it in the sampler, and for making all changes audible immediately and without reloading the sounds into sampler.

Currently we implemented the following instrument editor application:

gigedit allows you to edit and create instruments for the GigaStudio/Gigasampler format, which can be used with LinuxSampler as well as with Tascam's original Gigastudio software. Following our line of modularity we also made this instrument editor an independent application. Because let's face it: every sampler format is different, so in our opinion it is better to honor the specific features of one format with its own instrument editor application instead of trying to fiddle everything into one single bloated application. So gigedit is our first editor, dedicated to the .gig format:


You can use gigedit as stand-alone application or in conjunction with LinuxSampler. For the latter case gigedit installs a plugin into the sampler engine, so the engine (and with it the frontends) knows that gigedit actually exists and can handle the .gig format. So even though we decoupled the sampler's components into independent applications, they all work seamlessly together. Just press the "Edit" button on a channel strip of a frontend and gigedit will automatically popup on the screen and you're immediately ready to edit your selected instrument, making all your modifications audible in realtime. Even when editing huge instruments of 1GB or more, tweak the instrument with gigedit and immediately hear it while playing on the keyboard at the same time. And the good thing: even with new sampler formats we're going to add soon (and with it new editors), you don't have to remember which instrument you loaded uses which format. Simply click on "Edit" in a frontend and the sampler engine will choose the right instrument editor application for the respective instrument for you.

Technical Interfaces

As the components of the sampler are independent applications, there must be a way to let the applications communicate with each other. For this LinuxSampler provides a native C++ API as well as a network interface using an ASCII based protocol which we call "LSCP" for controlling the sampler engine and managing sampler sessions. Our frontends support that network interface, which also allows to control the sampler engine with the GUI frontend(s) remotely from another computer, probably even running a completely different Operating System. And compared to other remote control solutions, the frontend won't feel sluggish, as the frontend is running on your local machine.

You can also configure your computer to automatically start the sampler engine and loading your prefered sampler session without any frontend, simply by using a LSCP session file. How do you get such a "LSCP session file"? Both frontends write LSCP session files for you when you request them to save your current sampler session. And as those LSCP session files are ordinary human readable text files, you can adjust them with any text editor if you want.

Compatibility & Cross Platform

LinuxSampler is available for the most popular operating systems and already supports a variety of audio and MIDI driver systems on each OS. It does not require any special dedicated device drivers from the sound card manufacturers, so you can also use it with cheap consumer cards. Due to its clean design the sampler can be ported to other operating systems and extended for further driver systems with a minimum of effort. So we're prepared for the future!

Sequencer & DAW Plugin Support

The sampler can be run stand alone as well as host plugin in popular sequencer or digital audio workstations like Cubase, Logic, Ardour, QTractor, Reaper and many more. At the moment the sampler supports the host plugin formats VSTi (v2), AudiUnit (AU), DSSI and LV2.

You can also load effect plugins into the sampler, for them being used on parts or as master effects. Currently only the LADSPA plugin format is supported for sampler internal effects.

Community

You need a helping hand? You certainly get the answers on your personal questions on our web forum.

All applications are under active development. However we all work on this project for fun in our spare time. There are still so many things to do and our hands are limited. So don't hesitate on participating to the project! You don't necessarily need to be a skilled programmer to help the project. Testing the applications, reporting bugs, writing documentation, providing artwork, themes for frontends, etc. helps us and all users a lot! Simply subscribe to our developers mailing list and we'll of course take you by the hand in case you want to participate with active source code development. Don't be afraid! You have your own ideas and concepts for making the sampler better? Great, share them with us!