LinuxSampler 2.1.0 had been released after two years of development.
Real-Time Instrument Scripts
In the previous release a major new feature called Real-Time Instrument Scripts was added, which are essentially small programs that may be bundled with sound files to extend the sampler with custom behavior specifically intended for individual sounds.
These programs are written by sound designers in a script language called NKSP. In this release a large amount of extensions and improvements have been added for this real-time instrument scripting support of LinuxSampler. For example 48 new built-in functions and 21 new built-in variables have been added (Find out more).
Also, the NKSP language and the underlying engine itself was extended. Most notably the script engine now has an execution scheduler which is the basis for many of the timing relevant new NKSP features in this release, like programmatically suspending and resuming scripts for an exact duration or at an exact point of time or triggering or killing notes at very precise times (all with microsecond accuracy). You can now even launch new threads in your NKSP scripts by calling the new built-in function fork (). Furthermore bitwise operators have been added to NKSP, as well as support for read only built-in variables, "synchronized" code blocks, as well as user declared functions and user declared const array variables have been added to the NKSP language, and finally automatic suspension of RT threatening scripts by the RT script engine has been implemented. The latter ensures that the sampler remains stable, and does not cause audio dropouts, even while you are working on heavy and extremely buggy scripts. Also syntax error messages with NKSP scripts have been improved to output more clear and user friendly error messages, as well as the NKSP editor API has been improved which brings handy new features to gigedit's NKSP script editor, which will further be described below, along with gigedit's new features.
The SFZ engine now supports <global>, <master> sections, #define statement and set_ccN opcode. And finally the SFZ engine now supports NKSP real-time instrument scripts as well by adding a new script opcode for this purpose. So NKSP scripts are no longer limited to our Giga engine.
New GigaStudio format features
The equally named software on Windows has gone years ago, but the format lives on with LinuxSampler and this release adds yet some more new extensions to the gig format.
Most notably you now have options to control envelope generators' state machines. For example you can now define whether a certain EG state should either be aborted or continued to its end when a note off arrived. These controls are especially useful for certain kinds of sounds like percussive instruments.
Accordingly you will now find new check boxes for this in gigedit. As these are extensions of the original format, setting these options will only work with LinuxSampler and would be ignored with the original GigaStudio software.
Also the Instruments Database feature has received important maintenance fixes. Before this release, the instrument DB feature was barely usable for quite some time. Fundamental instruments DB issues have been fixed in this release to finally consider this feature stable again as well.
Gigedit 1.1.0 & libgig 4.1.0
Gigedit, the instrument editor for the GigaStudio/Gigasampler format, had been enhanced quite a lot. Plus, the fundamental file access C++ library libgig has also received some major improvements. More information about these updates can be found in the release notes.