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