LinuxSampler - Le Bottin des Jeux Linux

LinuxSampler

Specifications

Title: LinuxSampler Type: Tool
Genre: Development Status:
Category: Development ➤ Musical composition ➤ Sampler Commercial:
Tags: Development; Musical Composition; Sampler Demo:
Released: Latest : 2.1.1 / Dev : 3805 Package Name: qsampler
Date: 2020-08-07 Extern Repo:
License: LGPL & GPL with the exception that USAGE of the source code, libraries and applications FOR COMMERCIAL HARDWARE OR SOFTWARE PRODUCTS IS NOT ALLOWED without prior written permission Repo: Debian
Perspective: Third person Package: ✓
Visual: 2D Binary: ✓
Pacing: Real Time Source: ✓
Played: Single PDA:
Quality (record): 5 stars Quality (game):
Contrib.: Goupil & Louis ID: 14224
Created: 2014-03-18 Updated: 2020-08-22

Summary

[fr]: Un échantillonneur audio apte à gérer le streaming, avec une grande stabilité et efficacité, et une latence très faible [en]: A streaming capable software audio sampler with high stability, efficiency and very low latency, providing professional grade features

Videos

Gameplay :

Links

Website & videos
[Homepage] [Dev site] [Features/About] [Screenshots] [Videos t ts gd gu id r lp g g g g g g[fr] g[de] g[ru] g[pl] g[cz] g[sp] g[pt] g[it] g[tr] g g] [WIKI] [FAQ] [RSS] [Changelog 1 2 3]

Commercial : [Support their work (Donate)]

Resources
• (see QSampler)
Technical informations
[Open Hub] [PCGamingWiki] [MobyGames]

Social
Devs (LinuxSampler Team [fr] [en]) : [Site 1 2] [mastodon] [twitter] [PeerTube] [YouTube] [Interview 1 2]
Game : [Blog] [Forums] [twitter] [YouTube]

On other sites
[Wikipedia (LinuxSampler) [fr] [en]] [de]]
[UBUNTU [fr]] [Debian] [LinuxMAO [fr] 1 2]

Reviews


News / Source of this Entry (SotE) / News (SotN)
[Changes with v. 2.1.1 (20190727)]

Description [fr]

Un échantillonneur audio apte à gérer le streaming, avec une grande stabilité et efficacité, et une latence très faible, par la LinuxSampler Team.

LinuxSampler est un échantillonneur audio apte à gérer le streaming, avec une grande stabilité et efficacité, et une latence très faible.
Il fonctionne en mode client/serveur, et nécessite à cette fin une interface externe :
• JSampler (livrée)
• ou Qsampler (en dépôts).

Le projet linuxsampler a été fondé en 2002 dans le but de produire un échantillonneur audio libre apte à gérer le streaming, avec une grande stabilité et efficacité, et une latence très faible, offrant des fonctionnalités de qualité professionnelle, et à introduire de nouvelles fonctionnalités encore indisponibles sur d'autres échantillonneurs dans le monde.

Voir aussi / See also : LinuxSampler, Qsampler,


Le projet

Le projet LinuxSampler a été fondé en 2002 dans le but de produire un échantillonneur audio libre, capable de diffuser en continu, avec une grande stabilité, une grande efficacité et une très faible latence, offrant des fonctionnalités de qualité professionnelle, comparables aux échantillonneurs matériels et logiciels Windows/Mac commerciaux, et d'introduire de nouvelles fonctionnalités qui ne sont encore disponibles par aucun autre échantillonneur dans le monde.

Le moteur
(...)



Wikipedia :

LinuxSampler est le nom d'un logiciel GPLv2 avec exception commercial est un échantillonneur, pour Linux. Il permet d'éditer les fichiers de patchs et banques d'instruments sonores au format SoundFont (.sf2) et GigaFont (.gig, également surnommé GigaSampler, GigaSamples ou encore Giga). Les développeur de ce logiciel ont également produit Gigedit à cet effet.

Un échantillonneur sert le plus souvent à jouer sur un clavier électronique en profitant d'un son extrêmement réaliste. Cela est rendu possible par la technique de l'échantillonnage, qui consiste à utiliser - en général - plusieurs centaines de fichiers sonores issus de l'enregistrement méthodique d'un véritable instrument, chaque fichier correspondant à une note, une nuance, un enchaînement, une technique de jeu. Ces fichiers sont appelés des samples dans le langage du métier, et un lecteur d'échantillons est appelé un sampler.

La quantité de fichiers sonores étant souvent considérable, leur utilisation est facilitée en les regroupant au sein d'un seul fichier. Un tel fichier est communément appelé un instrument virtuel. En l'occurrence, l'équipe de LinuxSampler s'est concentrée sur le format de fichier GigaSampler car c'est le plus complet et il est utilisé par de nombreux samplers professionnels sur MacOS et Windows.

LinuxSampler est particulièrement optimisé, si bien qu'il est capable de fonctionner sur des machines aux capacités limitées, telles que l'eeePC d'Asus. LinuxSampler rend donc possible la conception d'un instrument électronique léger, de grande qualité sonore, pour un prix raisonnable.

Il est possible de convertir son format de fichier vers le format idf du séquenceur MIDI/audio MusE via le script lscp2idf.

Architecture logicielle

LinuxSampler a un fonctionnement pouvant dérouter les personnes arrivant dans l'univers de Linux. Il est bâti sur le modèle client/serveur, architecture qui se retrouve fréquemment dans cet univers.

Ainsi, LinuxSampler tel quel est difficile à exploiter pour l'utilisateur. C'est un serveur et il est en quelque sorte invisible. Son exploitation passe par l'utilisation d'un client, qui fournit alors une interface au logiciel. Le client permet de régler divers paramètres du serveur, en lui indiquant entre autres quel instrument virtuel il doit charger. Le serveur fait le plus important : il joue les échantillons. Les principaux clients pour LinuxSampler sont JSampler et QSampler.

Le plus souvent, un sampler est commandé à l'aide d'un clavier maître MIDI, sur lequel l'utilisateur joue un morceau de musique. Toutefois, sous Linux, LinuxSampler ne peut pas se commander directement avec un tel clavier. L'utilisation de JACK est indispensable. Jack sert alors à établir un branchement virtuel entre le clavier MIDI et LinuxSampler. Cet impératif peut sembler compliquer l'utilisation de LinuxSampler, mais il permet en contrepartie une grande souplesse. En effet, il est possible, grâce à Jack, de commander LinuxSampler non seulement avec un clavier MIDI, mais aussi avec un quelconque logiciel, tel que Rosegarden. On obtient alors un son extrêmement réaliste à la lecture de simples fichiers MIDI.

Description [en]

➤ 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
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
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:
• File format: which defines how audio samples and articulation informations are stored in files exactly.
• 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:

• 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 powed 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.

• 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!

• 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
This is our graphical instrument editor based on the Gtk toolkit. It can be used stand-alone or in conjunction with LinuxSampler.
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.


Wikipedia :

LinuxSampler is a music sampler under active development, aiming to provide a pure software audio sampler with professional grade features, comparable to both hardware and commercial Windows or Mac software samplers and to introduce new features not yet available by any other sampler. Much of LinuxSampler is free software but some, such as the back-end, is non-free, as commercial reuse is restricted.

Concept

LinuxSampler was designed as a sampler back-end, decoupled from any user interface. It provides a native C++ API as well as a network interface using an ASCII based protocol called LSCP for controlling the sampler and managing sampler sessions. Also, there are already two convenient frontends for LinuxSampler, QSampler and JSampler.

Due to the decoupled design the sampler can be controlled with the GUI frontend(s) even from another computer, probably even running another OS like Windows or OS X. SMP and cluster support is planned for future releases. There is a graphical instrument editor called gigedit, based on the GUI library GTK+, which can be used to edit and create Gigasampler format instruments and can either be used as a stand-alone application or in conjunction with LinuxSampler. The latter case allows to play and edit instruments at the same time, making all modifications with gigedit immediately audible, without having to reload the instruments into the sampler.

Platforms

LinuxSampler, as the name indicates, was originally conceived to run on Linux, but thanks to the abstraction of audio and MIDI drivers and platform dependent functions, the sampler was successfully ported to Windows, OS X and FreeBSD.

The Windows version of LinuxSampler currently can work in standalone mode providing ASIO audio output and MME MIDI input and as a VSTi plugin providing full integration with VST sequencers. The OS X version currently supports jackd audio output and CoreMIDI input. The Audio Unit interface (AU plugin) is in beta.

Goals

It is planned to support all common sampler formats in LinuxSampler, but at the moment the work is concentrated on the Gigasampler format. Beside that, the goal is to design a new, sophisticated sampler format, more powerful and more flexible compared to any sampler format currently available in the world.

There is a feature list with more information about the current development plans available.

Licensing

Most components are distributed as free software, under either the GNU General Public License or the GNU Lesser General Public License. However, the software license of the sampler backend prohibits commercial use. For commercial use, permission and terms must be sought from the developers. The backend is thus not free software. The ban on commercial use does not however include banning LinuxSampler's use for commercial music production. This is explicitly allowed.

Features

☑ Operating Systems
• Linux
• Windows (we provide a convenient Windows installer for all components of the project, including native 64 bit and native 32 bit binaries, standalone and VSTi plugin versions)
• Mac OS X (gigedit is not yet available for OS X and thus not included with the installer yet)
☑ Host plugin versions of the sampler
• VSTi (Windows)
• Audio Units (Mac)
• DSSI (Linux)
• LV2 (Linux)
☑ MIDI input drivers
• ALSA (Linux)
• JACK (Linux, OSX, Windows, ...)
• CoreMIDI (Mac OS X)
• MidiShare (Linux, OS X, Windows)
• MME (Windows)
☑ Audio output drivers
• ALSA (Linux)
• JACK (Linux, OSX, Windows, ...)
• aRts (not RT safe!)
• ASIO (Windows)
• CoreAudio (Mac OS X)
☑ Sampler Engines
• Gigasampler Engine
⚬ Gig file loader
- Gig v2 format
- Gig v3 format
➥ large file support (64 bit file offsets are currently truncated to 32 bit)
➥ 24 bit samples (uncompressed as well as compressed)
➥ support for multi-file format (.gig, .gx01, .gx02, ...)
➥ support for articulation (.art) files
➥ support for Dimension Splits not equal to two
➥ up to 8 Dimensions or 256 Dimension Regions
➥ MIDI rules
⚬ Generic playback (RAM playback & disk streaming)
⚬ Dimension switching
- Sample Channel
- Layer
- Velocity
- Channel Aftertouch
- Release Trigger
- Keyboard Position
- Round Robin
- Random
- Modulation Wheel
- Breath Ctrl.
- Foot Ctrl.
- Portamento Time Ctrl.
- Effect 1 & 2 Ctrl.
- Effect 1 - 5 Depth Ctrl.
- General Purpose Ctrl. 1 - 8
- Sustain Pedal
- Portamento
- Sostenuto Pedal
- Soft Pedal
⚬ Sustain pedal interpretation
⚬ Sostenuto pedal interpretation
⚬ Key velocity <-> volume mapping
⚬ Looping
- endless loop
- limited amount of loops
- fractional looping
⚬ Pitchbend wheel support
⚬ Bidirectional voice state transition, allowing to cancel the relase stage of voices forth and back arbitrary times if needed
⚬ Filter (VCF)
- Highpass
- Bandpass
- Bandreject
- Lowpass
- Turbo lowpass
- all filter types provide extremely accurate characteristics compared to the original Gigasampler format filters
- Cutoff frequency controllable by MIDI controller
- Resonance controllable by MIDI controller
⚬ VCA Envelope Generator (Volume)
⚬ VCF Envelope Generator (Filter)
⚬ VCO Envelope Generator (Pitch)
⚬ VCA Low Frequency Oscillator (Volume)
⚬ VCF Low Frequency Oscillator (Filter Cutoff)
⚬ VCO Low Frequency Oscillator (Pitch)
⚬ Layers
⚬ Crossfades
⚬ Key Groups (a.k.a Exclusive Groups), for mutually switching off sounds i.e. for drumkits
⚬ Release Triggered Voices, specific samples that are played back when voices are released
⚬ Key Switching, which allows to map a certain range on thy keyboard as additional performance controller, i.e. for switching articulations of orchestral sounds in realtime
⚬ Voice Stealing
⚬ Portamento Mode and Solo Mode (a.k.a 'Mono Mode', can be altered via standard GM messages, that is CC5 for altering portamento time, CC65 for enabling / disabling portamento mode, CC126 for enabling solo mode and CC127 for disabling solo mode)
⚬ Scale Tuning (via standard MIDI GS SysEx message)
• DLS Engine
⚬ DLS file loader (DLS version 1 & 2)
• Akai Engine
⚬ Akai file loader (S1000, S3000 series)
☑ Control interfaces
• Native C++ API
• Custom network interface for frontends (LSCP)
☑ Time stamp event system & jitter correction
☑ Multi channel & multi engine support
☑ Pitch shifter / Interpolation
• Linear interpolation
• Cubic interpolation
☑ MIDI instrument mapper, allows to create very flexible MIDI progam change setups in a very easy way.
• MIDI program change
• MIDI bank select (automatic detection of MSB only, LSB only or full MSB+LSB)
• Load Strategy for each Item individually
⚬ On-Demand: loads the instrument only when needed, frees it immediately once not used by any sampler channel anymore
⚬ On-Demand-Hold: loads the instrument when needed and keeps it in memory, that is even if not used by a sampler channel
⚬ Persistent: loads the instrument immediately in the background (i.e. at sampler startup), allowing immediate program changes in realtime even of largest instruments, without wait time
⚬ Default: let the sampler decide
• Volume Factor for each Item, allowing to compensate the volume difference of sample library collections i.e. for live performances, without having to edit the instrument files
• Mapping of arbitrary Instrument Files, already independent of the underlying format in respect for future sampler engines
• arbitrary amount of independent MIDI instrumet maps, (i.e. for chromatic instruments, drumkits, ...), each sampler channel can be assigned to a specific MIDI map
☑ Effect Sends
• Arbitrary Amount of FX Sends on Sampler Channels
• Realtime MIDI Control of Send Level
• Arbitrary MIDI Controller assignable
• Flexible Routing i.e. to a dedicated effect audio output
☑ Instrument Database System, allowing to keep track of even the largest sample library collections
• Ordering in Categories
• Search by various Criteria
• Transparently maintained on backend side
☑ (Graphical) frontends
• JSampler a.k.a "Fantasia" (Java based frontend)
⚬ Supports all currently available features of LinuxSampler
• QSampler (C++ based frontend using Qt)
⚬ Supports all features of LinuxSampler except the following ...
⚬ MIDI Instrument Maps (qsampler does currently not yet support to create more than two MIDI instrument maps [one intended for chromatic instruments and one for drumkits])
⚬ Audio and MIDI device management (only minor thing that qsampler lacks support yet are "multiplicity" type device parameters, that is parameters which don't just accept one value, but also a list of values, i.e. for the "ALSA_SEQ_BINDINGS" parameter of the ALSA MIDI driver)
☑ Playing while Loading, i.e. allowing to play and hold notes on the keyboard while loading a new instrument on the same sampler channel at the same time
☑ Limits for max. voices and max. disk streams can be altered at runtime
☑ Instrument Editor Plugin System for 3rd Party Instrument Editors
☑ Instrument Editors
• gigedit (C++ based using gtkmm/Gtk+)
⚬ allows to modify all aspects of Gigsampler v2 and v3 format files
⚬ allows to modify existing as well as creating completely new .gig files from scratch
⚬ stand-alone mode (independent of LinuxSampler)
⚬ live-mode (attached with LinuxSampler), which makes all modifications audible in the sampler in realtime without having to reload
⚬ created / modified files are accepted by LinuxSampler as well as by Gigastudio 3
⚬ virtual MIDI keyboard (for triggering notes by mouse click and highlighting the virtual keys on external note events)