1 |
|
Version 2.3.0 (26 Jan 2024) |
2 |
|
|
3 |
|
This is a maintenance release with various fixes. |
4 |
|
|
5 |
|
Most of the changes in this release are adoptions of API changes introduced on |
6 |
|
libgig 4.4.0 side which in turn are fixing a bunch of misbehaviours people |
7 |
|
were facing in the past, foremost multi-threading issues. |
8 |
|
|
9 |
|
This release also addresses an issue with release-triggered samples. |
10 |
|
|
11 |
|
Refer to ChangeLog file for more fixes. |
12 |
|
|
13 |
|
Version 2.2.0 (9 May 2021) |
14 |
|
|
15 |
|
There are a load of changes in this release. Many new features, many fixes, |
16 |
|
but also new requirements. |
17 |
|
|
18 |
|
Starting with this release of LinuxSampler you now need at least a C++14 |
19 |
|
compliant compiler. Originally it was planned to only raise the minimum |
20 |
|
compiler requirement to C++11 in this release, however during this development |
21 |
|
cycle some C++14 features came across which helped to reduce code complexity |
22 |
|
in the LinuxSampler code base tremendously. |
23 |
|
|
24 |
|
The NKSP real-time instrument script engine has received tremendous new |
25 |
|
features and improvements in this release. Instrument script variables of type |
26 |
|
integer (e.g. $foo) are now all 64-bit internally, which prevents unexpected |
27 |
|
side effects of script authors due to integer overflows that easily had |
28 |
|
happened before when integer script variables were just 32-bit wide. On NKSP |
29 |
|
language level there is now support for floating point variables; both scalar |
30 |
|
types (e.g. ~foo = 3.93) and floating point arrays |
31 |
|
(e.g. ?foo[] = ( 1.6, 4.7 ) ). Another huge new NKSP language feature is |
32 |
|
support for standard measuring units like Hz (Hertz), dB (Decibel), |
33 |
|
s (seconds), c (cents) in conjuction with arbitrary metric prefixes like kHz, |
34 |
|
mdB, ms, mc, etc. The newly introduced "final" operator "!" in NKSP allows to |
35 |
|
force a synthesis parameter like e.g. volume or pitch to a specific value that |
36 |
|
should not be overridden by any other modulation source (e.g. neither from |
37 |
|
patch level, nor LFOs, nor from EGs, ...). This is sometimes helpful for being |
38 |
|
able to e.g. say in a script, "hey, the volume of this voice should be exactly |
39 |
|
-3dB, period. I mean it!". Furthermore there are 23 new built-in NKSP script |
40 |
|
functions and 6 new NKSP constants/variables. There also two new event handler |
41 |
|
types for processing MIDI RPN events ("on rpn ... end on") and for MIDI NRPN |
42 |
|
events ("on nrpn ... end on") in instrument scripts. And last but not least |
43 |
|
there are now "patch" variables supported in instrument scripts which allow to |
44 |
|
expose individual script variables to instrument editors for quick and easy |
45 |
|
fine tuning of certain instrument script aspects on a per-instrument basis. |
46 |
|
|
47 |
|
The Giga format engine adds various format extensions. For instance you now |
48 |
|
have much more control over LFOs like selecting different LFO waveforms as |
49 |
|
sine, triangle, saw or square. GigaStudio had this limited to sine only. The |
50 |
|
default LFO wave form in LinuxSampler's gig engine has also changed to sine |
51 |
|
for that reason (instead of triangle in previous LinuxSampler versions). |
52 |
|
Additionally you can now also fine control the start phase of individual LFOs. |
53 |
|
In the original gig format you were only able to flip the phase. Furthermore |
54 |
|
there are now new audio filter types available for the Giga engine: new lowpass |
55 |
|
1/2/4/6-pole, new highpass 1/2/4/6-pole, new bandpass 2-pole, and finally a |
56 |
|
bandreject 2-pole filter. You might say that some of those filter types |
57 |
|
existed before, and they still do and will continue to co-exist, but they |
58 |
|
simply sound differently. Keep in mind that the audio filters for the Giga |
59 |
|
engine were very carefully designed to accurateley replicate the sounds as if |
60 |
|
being played with Tascam's GigaStudio, so that made and still makes sense. |
61 |
|
However you might simply like the sound of some of the new filter types more |
62 |
|
for certain reasons when creating your own gig instruments from scratch. And |
63 |
|
as always there are various fixes for the gig engine in this release as well. |
64 |
|
|
65 |
|
On SFZ format engine side there are corrections for the SFZ opcodes |
66 |
|
loccN/hiccN and xfin_hivel. |
67 |
|
|
68 |
|
There are various other fixes that apply to all sampler engines, please refer |
69 |
|
to the ChangeLog for more details. |
70 |
|
|
71 |
|
For package maintainers: the unit tests (which were broken before) have been |
72 |
|
fixed in this release and work now as expected. It is recommend for them to be |
73 |
|
run automatically to detect and prevent any OS issues that might cause |
74 |
|
misbehaviours for users. Just keep in mind the test cases also test the LSCP |
75 |
|
server which will listen on TCP port 8888 during the tests. So make sure this |
76 |
|
port cannot be accessed from outside for security reasons. |
77 |
|
|
78 |
|
Version 2.1.1 (27 Jul 2019) |
79 |
|
|
80 |
|
This is a maintenance release with various fixes. There are only two |
81 |
|
minor new features in this release: |
82 |
|
|
83 |
|
The Giga format engine adds a format extension which allows sound |
84 |
|
designers to define whether release trigger samples shall be played when |
85 |
|
the sustain pedal is released. In the previous release this was actually |
86 |
|
the default behaviour by the sampler, but meanwhile there was a consensus |
87 |
|
on the mailing list that release samples being triggered by sustain pedal |
88 |
|
is not the common, expected behaviour. So this is no longer the default |
89 |
|
behaviour, but you can still opt in to this old behaviour by using this |
90 |
|
new format extension option (i.e. by using latest release version of |
91 |
|
libgig and gigedit and enabling the respective checkbox for your |
92 |
|
gig instrument). If you don't enable this option then release samples are |
93 |
|
now only triggered by note-off events. |
94 |
|
|
95 |
|
The sfz engine adds support for the commonly used built-in sample |
96 |
|
'*silence' of the sfz format. It does what you think it does; it |
97 |
|
instructs the sampler to play no sound at all. This is commonly used |
98 |
|
in sfz files for instance for the lowest velocity switch to not play any |
99 |
|
sample. With the previous release trying to load sfz files which used this |
100 |
|
built-in sample caused a file loading error. There are various other |
101 |
|
commonly used built-in samples in sfz files which you can denote by the |
102 |
|
leading star character in the sample name, however the '*silence' one is |
103 |
|
currently the only supported built-in sample by our sfz engine yet. Trying |
104 |
|
to load sfz files which are using other built-in samples does not prevent |
105 |
|
your instrument from being loaded by the sampler, however you will get a |
106 |
|
warning message on the console that the built-in sample is not supported |
107 |
|
yet and the sampler will simply play silence for that non supported |
108 |
|
built-in sample. |
109 |
|
|
110 |
|
Version 2.1.0 (25 November 2017) |
111 |
|
|
112 |
|
This release adds a large amount of extensions and improvements for the |
113 |
|
real-time instrument scripting support of LinuxSampler (NKSP). |
114 |
|
For example 48 new built-in NKSP functions and 21 new built-in NKSP |
115 |
|
variables have been added. Also the NKSP language itself was extended. |
116 |
|
Most notably the script engine now has an execution scheduler which is |
117 |
|
the basis for many of the timing relevant new NKSP features in this |
118 |
|
release, like programmatically suspending and resuming scripts for an |
119 |
|
exact amount of time or triggering or killing notes at very precise |
120 |
|
times. Bitwise operators have been added to NKSP, as well as support for |
121 |
|
read only built-in variables, "synchronized" code blocks |
122 |
|
("synchronized .. end synchronized"), user declared functions and user |
123 |
|
declared const array variables have been added to the NKSP language, |
124 |
|
and automatic suspension of RT threatening scripts by the RT script engine |
125 |
|
has been implemented. Also syntax error messages with NKSP scripts have |
126 |
|
been improved to output more clear and user friendly error messages, as |
127 |
|
well as NKSP editor API has been improved which brings handy new features |
128 |
|
to gigedit's NKSP script editor like automatically graying out code blocks |
129 |
|
which are disabled by NKSP preprocessor statements. |
130 |
|
|
131 |
|
The SFZ engine now supports <global>, <master>, #define and set_ccN |
132 |
|
statements. And finally the SFZ engine now supports NKSP real-time |
133 |
|
instrument scripts as well by adding a new "script" opcode. |
134 |
|
|
135 |
|
Also the Instruments Database feature has received important maintenance |
136 |
|
fixes. Before this release the instrument DB feature was barely usable |
137 |
|
for quite some time. Fundamental instruments DB issues have been fixed in |
138 |
|
this release to finally consider this feature stable again. |
139 |
|
|
140 |
|
And finally this release provides a huge amount of general bug fixes. |
141 |
|
|
142 |
|
Version 2.0.0 (15 July 2015) |
143 |
|
|
144 |
|
The sampler's code base has seen substantial changes in the last six years, |
145 |
|
since the last release of LinuxSampler. The sampler engine code base has |
146 |
|
been unified to a set of abstract base classes which cleared the way for |
147 |
|
two new sampler engines: The SFZ2 format engine (.sfz) and the SoundFont 2 |
148 |
|
engine (.sf2). So LinuxSampler is not limited to the GigaStudio/Gigasampler |
149 |
|
format (.gig) anymore. Another major new feature is support for real-time |
150 |
|
instrument scripts, which may be bundled with sound files to extend the |
151 |
|
sampler with custom behavior for individual sounds. You may know such scripts |
152 |
|
from commercial software samplers. Find out more about instrument scripts |
153 |
|
on http://doc.linuxsampler.org/Instrument_Scripts/. At the moment this |
154 |
|
scripting feature is yet limited to the Giga format engine. Also noteworthy |
155 |
|
is the new command line application "lscp", which is a text based shell for |
156 |
|
controlling the sampler from the command line, providing colored output, |
157 |
|
type completion, help text while typing LSCP commands and other convenient |
158 |
|
features. You may now also load external effects directly into the sampler |
159 |
|
(only LADSPA plugins yet). The LSCP network protocol (v1.7) has been extended |
160 |
|
to manage such effects respectively. Also new with latest LSCP version is the |
161 |
|
ability to trigger MIDI CCs by LSCP commands. You may have heard that the |
162 |
|
GigaStudio software has seen its last version with GigaStudio 4. Tascam |
163 |
|
officially discontinued this product, its intellectual property has been sold |
164 |
|
several times among companies and there is currently no way to buy a new copy |
165 |
|
of GigaStudio anymore. However the GigaStudio format is still under active |
166 |
|
development with LinuxSampler. We not only added support for the latest |
167 |
|
features introduced with GigaStudio 4: iMIDI rules for example which allow to |
168 |
|
trigger notes by MIDI CC and allow i.e. defining a set of legato samples; for |
169 |
|
the first time ever we also added our own extensions to the Giga format: one |
170 |
|
of it is the previously mentioned new instrument scripting feature and a more |
171 |
|
minor extension is support for various other MIDI CCs which were never |
172 |
|
supported by GigaStudio before. The sampler's host plugins have also seen |
173 |
|
some enhancements: the LV2 plugin now stores and restores the sampler's |
174 |
|
overall state with your DAW application's song, the LV2 and AudioUnit |
175 |
|
plugin's outputs were increased from 2 audio channels to 16 upon request by |
176 |
|
some users and the VST plugin now uses the sampler's MIDI instrument mapping |
177 |
|
system to show a list of available sounds to allow the user to switch among |
178 |
|
them. And last but not least the VST plugin may also be used on Mac now. |
179 |
|
|
180 |
|
Version 1.0.0 (31 July 2009) |
181 |
|
|
182 |
|
This is the first release which allows the sampler to be used as audio |
183 |
|
host plugin, namely supporting the standards VST, AU, DSSI and LV2. The |
184 |
|
sampler's limits for max. voices & disk streams can now be altered at |
185 |
|
runtime by frontends, no need to recompile the sampler anymore. The Mac |
186 |
|
version now also supports CoreAudio as audio driver. The Windows version |
187 |
|
finally supports the sampler's instruments DB feature as well, however |
188 |
|
expect it still to be unstable at this point. Along to the already |
189 |
|
existing JACK audio driver, Jack MIDI support has been added in this |
190 |
|
release. The sampler allows frontends now basic MIDI control, that is to |
191 |
|
monitor incoming MIDI data on MIDI input devices and sampler channels and |
192 |
|
to send note-on and note-off MIDI events to sampler channels, which |
193 |
|
allows frontends to provide a virtual MIDI keyboard to the user. Besides |
194 |
|
these major changes there were countless bugfixes and optimizations. |
195 |
|
|
196 |
|
Version 0.5.1 (6 December 2007) |
197 |
|
|
198 |
|
This is the first release for the Windows platform, providing a MME MIDI |
199 |
|
input driver and ASIO audio output driver. Note that the instruments DB |
200 |
|
feature is not yet available for Windows systems, since the respective |
201 |
|
code base has yet to be ported. Needless to say that there still might be |
202 |
|
plenty of issues on MS systems. Beside that support for Windows, this is |
203 |
|
merely a bugfix release (i.e. fixing one serious crash) with only minor |
204 |
|
new features. |
205 |
|
|
206 |
|
Version 0.5.0 (15 October 2007) |
207 |
|
|
208 |
|
This release comes with a bunch of important new features. We implemented |
209 |
|
a very powerful and easy MIDI program change mapping, which not only |
210 |
|
allows you to define which instrument to load on which MIDI program |
211 |
|
change number (and bank select number), it also allows further parameters |
212 |
|
like whether the instrument shall be pre-cached or loaded only when needed |
213 |
|
(and likewise freed when not needed). You can create arbitrary amount of |
214 |
|
effect sends for each sampler channel, each having an arbitrary MIDI |
215 |
|
controller for controlling the effect send level in realtime and can |
216 |
|
flexible be routed to some of the sampler's audio output channel, i.e. |
217 |
|
to a dedicated one for a certain effect type. The new instruments |
218 |
|
database allows you to keep track even of largest instrument library |
219 |
|
collections. You can order them in categories and search by various |
220 |
|
criteria. The sampler now allows third party applications to offer so |
221 |
|
called 'instrument editor plugins' which the sampler can use to spawn |
222 |
|
an appropriate instrument editor application for a selected instrument |
223 |
|
and for allowing to edit instruments with such an external editor |
224 |
|
application on-the-fly, that is all modifications made with the editor |
225 |
|
will immediately be audible with the sampler. No need to reload instrument |
226 |
|
files anymore. Checkout our brand new instrument editor application called |
227 |
|
'gigedit' which you can use for this feature. Loading huge instruments may |
228 |
|
take a long time, that's why the sampler now allows to play an instrument |
229 |
|
while loading. That way you can i.e. play and hold notes on the keyboard |
230 |
|
while loading a new instrument on the same sampler channel at the same |
231 |
|
time. Beside these new features, you can find the common huge list of bug |
232 |
|
fixes and quality improvements. |
233 |
|
|
234 |
|
Version 0.4.0 (24 November 2006) |
235 |
|
|
236 |
|
Finally a new release after a long development cycle. The sampler now has |
237 |
|
a completely revised synthesis core. Note that due to this, most of the |
238 |
|
assembly code became incompatible and is thus deactivated at compile |
239 |
|
time. So don't bother trying to activate the assembly option, it won't |
240 |
|
compile! That's not an issue though, because even without assembly, the |
241 |
|
new synthesis core is faster than the old one with assembly. The |
242 |
|
Gigasampler engine now has real support for 24 bit samples, that is they |
243 |
|
won't be truncated anymore, and finally supports all filter types of the |
244 |
|
Gigasampler format. A lot of effort has been put into making all filters |
245 |
|
under all parameters being as accurate as possible, compared to the |
246 |
|
original Gigasampler ones. Analogue to hardware mixers, sampler channels |
247 |
|
can now be muted and solo-ed and there is support for GM portamento and |
248 |
|
GM mono mode (single note per channel) as well as support for sostenuto |
249 |
|
pedal. Beside LSCP, third-party applications can now also link against |
250 |
|
liblinuxsampler directly (using the sampler's C++ API). Beside these, |
251 |
|
there have been of course a huge bunch of fixes and quality improvements. |
252 |
|
|
253 |
|
Version 0.3.3 (15 July 2005) |
254 |
|
|
255 |
|
Another bug fix release. It solves one usability issue regarding small |
256 |
|
fragments / high sampling rates of audio drivers, fixes some compile time |
257 |
|
errors with GCC 4.0 and fixes a minor efficiency bug. |
258 |
|
|
259 |
Version 0.3.2 (24 June 2005) |
Version 0.3.2 (24 June 2005) |
260 |
|
|
261 |
This is more or less just a bug fix release. Beside a bunch of little |
This is more or less just a bug fix release. Beside a bunch of little |