17 |
release. |
release. |
18 |
</p> |
</p> |
19 |
|
|
20 |
<h3 id="cpp14">C++11/C++14 Requirement</h3> |
<h3 id="cpp14">C++11 / C++14 Requirement</h3> |
21 |
<p> |
<p> |
22 |
Starting with Gigedit 1.2.0 and libgig 4.3.0 you now need at least a C++11 |
Starting with <b>Gigedit 1.2.0</b> and <b>libgig 4.3.0</b> you now need at |
23 |
|
least a <b>C++11</b> |
24 |
compliant compiler to build them from source; and for building |
compliant compiler to build them from source; and for building |
25 |
LinuxSampler 2.2.0 you now need at least a C++14 compliant compiler. |
<b>LinuxSampler 2.2.0</b> you now need at least a <b>C++14</b> compliant compiler. |
26 |
Originally it was planned to only raise the minimum compiler |
Originally it was planned to only raise the minimum compiler |
27 |
requirement to C++11 for LinuxSampler in this release as well, however |
requirement to C++11 for LinuxSampler in this release as well, however |
28 |
during this development cycle, some C++14 features came across which helped |
during this development cycle, some C++14 features came across which helped |
43 |
are now all 64-bit internally, which prevents unexpected side effects of |
are now all 64-bit internally, which prevents unexpected side effects of |
44 |
script authors due to potential integer overflows that easily had happened |
script authors due to potential integer overflows that easily had happened |
45 |
before when integer script variables were just 32-bit wide. |
before when integer script variables were just 32-bit wide. |
46 |
|
|
47 |
<a href="01_nksp_real_unit_final.html#64bit">Find out more ...</a> |
<a href="01_nksp_real_unit_final.html#64bit">Find out more ...</a> |
48 |
</p> |
</p> |
49 |
|
|
55 |
) and floating point arrays (e.g. |
) and floating point arrays (e.g. |
56 |
<code lang="nksp">declare ?foo[] = ( 1.6, 4.7 )</code> |
<code lang="nksp">declare ?foo[] = ( 1.6, 4.7 )</code> |
57 |
). |
). |
58 |
|
|
59 |
<a href="01_nksp_real_unit_final.html#real_numbers">Find out more ...</a> |
<a href="01_nksp_real_unit_final.html#real_numbers">Find out more ...</a> |
60 |
</p> |
</p> |
61 |
|
|
63 |
<p> |
<p> |
64 |
Another huge new NKSP language feature is |
Another huge new NKSP language feature is |
65 |
<a href="01_nksp_real_unit_final.html#units">support for standard measuring units</a> |
<a href="01_nksp_real_unit_final.html#units">support for standard measuring units</a> |
66 |
like <code>Hz</code> (Hertz), <code>dB</code> (Decibel), |
like <code lang="none">Hz</code> (Hertz), <code lang="none">dB</code> (Decibel), |
67 |
<code>s</code> (seconds), <code>c</code> (cents) in conjuction with |
<code lang="none">s</code> (seconds), <code lang="none">c</code> (cents) in conjuction with |
68 |
arbitrary metric prefixes like <code>kHz</code>, <code>mdB</code>, |
arbitrary metric prefixes like <code lang="none">kHz</code>, <code lang="none">mdB</code>, |
69 |
<code>ms</code>, <code>mc</code>, etc. For instance previously for pausing |
<code lang="none">ms</code>, <code lang="none">mc</code>, etc.<br> |
70 |
a script for one second, you had to write <code>wait(1000000)</code>, |
<br> |
71 |
which still works, but now you can also just write <code>wait(1s)</code>. |
For instance previously for pausing |
72 |
|
a script for one second, you had to write <code lang="nksp">wait(1000000)</code>, |
73 |
|
which still works, but now you can also just write <code lang="nksp">wait(1s)</code>. |
74 |
|
|
75 |
<a href="01_nksp_real_unit_final.html#units">Find out more ...</a> |
<a href="01_nksp_real_unit_final.html#units">Find out more ...</a> |
76 |
</p> |
</p> |
77 |
|
|
82 |
that should not be overridden by any other modulation source (e.g. neither |
that should not be overridden by any other modulation source (e.g. neither |
83 |
from patch level, nor LFOs, nor from EGs, ...). This is sometimes helpful |
from patch level, nor LFOs, nor from EGs, ...). This is sometimes helpful |
84 |
for being able to e.g. say in a script, "hey, the volume of this voice |
for being able to e.g. say in a script, "hey, the volume of this voice |
85 |
should be exactly -3dB, period. I mean it!": |
should be exactly -3dB, period. I mean it!", which is as simple as |
86 |
</p> |
<code lang="nksp">change_vol($EVENT_ID, !-3dB)</code> |
87 |
<p> |
|
|
<code lang="nksp"> |
|
|
on note |
|
|
change_vol($EVENT_ID, !-3dB) |
|
|
end note |
|
|
</code> |
|
|
</p> |
|
|
<p> |
|
88 |
<a href="01_nksp_real_unit_final.html#finalness">Find out more ...</a> |
<a href="01_nksp_real_unit_final.html#finalness">Find out more ...</a> |
89 |
</p> |
</p> |
90 |
|
<img src="nksp_multi_mods_fin.png" caption="Force 'Finalness' by Script"> |
91 |
|
|
92 |
<h3 id="functions">New Built-In NKSP Functions</h3> |
<h3 id="functions">New Built-In NKSP Functions</h3> |
93 |
<p> |
<p> |
94 |
Furthermore there are <b>23 new</b> |
Furthermore there are <b>23 new</b> |
95 |
<a href="01_nksp_reference.html#functions">built-in NKSP script functions</a> |
<a href="01_nksp_reference.html#functions">built-in NKSP script functions</a> |
96 |
and <b>6 new</b> <a href="01_nksp_reference.html#variables">NKSP constants/variables</a>. |
and <b>6 new</b> <a href="01_nksp_reference.html#variables">NKSP constants/variables</a>.<br> |
97 |
|
<br> |
98 |
There also <b>2 new event handler types</b> for processing MIDI <b>RPN events</b>: |
There also <b>2 new event handler types</b> for processing MIDI <b>RPN events</b>: |
99 |
</p> |
</p> |
100 |
<p> |
<p> |
130 |
parameters on the other hand, hard coded into the sampler engines and |
parameters on the other hand, hard coded into the sampler engines and |
131 |
supported already by the underlying file format allow very quick and |
supported already by the underlying file format allow very quick and |
132 |
convenient parameter changes, e.g. simply by few clicks in the Gigedit |
convenient parameter changes, e.g. simply by few clicks in the Gigedit |
133 |
instrument editor. What about having both? |
instrument editor. What about having both?<br> |
134 |
</p> |
<br> |
|
<p> |
|
|
<img src="nksp_new_patch_script_example_shot.png"> |
|
135 |
This is what the new NKSP "patch" variables are for. By simply declaring |
This is what the new NKSP "patch" variables are for. By simply declaring |
136 |
an instrument script variable with the new NKSP keyword <code>patch</code> |
an instrument script variable with the new NKSP keyword <code>patch</code> |
137 |
you are publishing and exposing that variable as parameter in the |
you are publishing and exposing that variable as parameter in the |
147 |
By selecting one of the overridden variables and hitting the |
By selecting one of the overridden variables and hitting the |
148 |
<b>Backspace</b> (⌫) key you can revert those variables back to |
<b>Backspace</b> (⌫) key you can revert those variables back to |
149 |
their default values. |
their default values. |
150 |
<img src="gigedit_new_patch_vars_cut.png"> |
</p> |
151 |
|
<p> |
152 |
|
<img src="nksp_new_patch_script_example_shot.png" caption="NKSP Code Example using 'patch' qualifier"> |
153 |
|
<img src="gigedit_new_patch_vars_cut.png" caption="Overriding 'patch' variables in Gigedit"> |
154 |
</p> |
</p> |
155 |
|
|
156 |
<h2 id="gig">GigaStudio Format Engine</h2> |
<h2 id="gig">GigaStudio Format Engine</h2> |
165 |
|
|
166 |
<h3 id="lfo">LFO Extensions</h3> |
<h3 id="lfo">LFO Extensions</h3> |
167 |
<p> |
<p> |
|
<img src="gigedit_new_lfo_wave_forms.png"> |
|
168 |
You now have much more control over LFOs with the gig engine like |
You now have much more control over LFOs with the gig engine like |
169 |
selecting different LFO waveforms as sine, triangle, saw or square. |
selecting different LFO waveforms as sine, triangle, saw or square. |
170 |
GigaStudio had this limited to sine only. The default LFO wave form in |
GigaStudio had this limited to sine only. The default LFO wave form in |
173 |
can now also fine control the start phase of individual LFOs. In the |
can now also fine control the start phase of individual LFOs. In the |
174 |
original gig format you were only able to flip the phase. |
original gig format you were only able to flip the phase. |
175 |
</p> |
</p> |
176 |
|
<img src="gigedit_new_lfo_wave_forms.png"> |
177 |
|
|
178 |
<h3 id="filters">New Filter Types</h3> |
<h3 id="filters">New Filter Types</h3> |
179 |
<p> |
<p> |
|
<img src="gigedit_new_audio_filter_types.png"> |
|
180 |
Furthermore there are now new audio filter types available for the Giga |
Furthermore there are now new audio filter types available for the Giga |
181 |
engine: new lowpass 1/2/4/6-pole, new highpass 1/2/4/6-pole, new bandpass |
engine: new lowpass 1/2/4/6-pole, new highpass 1/2/4/6-pole, new bandpass |
182 |
2-pole, and finally a bandreject 2-pole filter. You might say that some of |
2-pole, and finally a bandreject 2-pole filter. You might say that some of |
188 |
some of the new filter types more for certain reasons when creating your |
some of the new filter types more for certain reasons when creating your |
189 |
own gig instruments from scratch. |
own gig instruments from scratch. |
190 |
</p> |
</p> |
191 |
|
<img src="gigedit_new_audio_filter_types.png"> |
192 |
|
|
193 |
<h2 id="sfz">SFZ Format Engine</h2> |
<h2 id="sfz">SFZ Format Engine</h2> |
194 |
<p> |
<p> |
223 |
|
|
224 |
<h3 id="script_tab">New "Script" Tab</h3> |
<h3 id="script_tab">New "Script" Tab</h3> |
225 |
<p> |
<p> |
|
<img src="gigedit_new_patch_vars.png"> |
|
226 |
On the right hand side of Gigedit (the main working area actually) there |
On the right hand side of Gigedit (the main working area actually) there |
227 |
is now a new tab "Script" which reveals a list of so called NKSP "patch" |
is now a new tab "Script" which reveals a list of so called NKSP "patch" |
228 |
variables which have been <a href="#patch_variables">described above</a> |
variables which have been <a href="#patch_variables">described above</a> |
229 |
among LinuxSampler's new features. |
among LinuxSampler's new features. |
230 |
</p> |
</p> |
231 |
|
<img src="gigedit_new_patch_vars.png" caption="Gigedit's new 'Script' tab"> |
232 |
|
|
233 |
<h3 id="sample_info">Sample Properties Dialog</h3> |
<h3 id="sample_info">Sample Properties Dialog</h3> |
234 |
<p> |
<p> |
244 |
|
|
245 |
<h3 id="gain">More Flexible Gain</h3> |
<h3 id="gain">More Flexible Gain</h3> |
246 |
<p> |
<p> |
247 |
Gain can now be set to any arbitary value between -96 dB .. +96 dB. |
Gain can now be set to any arbitary value between -96 dB .. +96 dB. |
248 |
|
Previously it was only possible to set gain to max. 0 dB and there was a |
249 |
|
checkbox which allowed a hard coded boost to exactly +6 dB. The previous |
250 |
|
appearance replicated the appearance of GigaStudio's original instrument editor. |
251 |
</p> |
</p> |
252 |
<p> |
<p> |
253 |
<img src="gigedit_more_flexible_gain_setting.png"> |
<img src="gigedit_more_flexible_gain_setting.png"> |
254 |
Previously it was only possible to set gain to max. 0 dB and there was a checkbox which |
The previous limitation of having just a single possible value for positive gain |
|
allowed a hard coded boost to exactly +6 dB. The previous appearance |
|
|
replicated the appearance of GigaStudio's original instrument editor. The |
|
|
previous limitation of having just a single possible value for positive gain |
|
255 |
was unfortunate, but as it turned out this was actually not a limitation of |
was unfortunate, but as it turned out this was actually not a limitation of |
256 |
the original gig file format. And in fact we have not added any gig file |
the original gig file format. And in fact we have not added any gig file |
257 |
format extension for this reason to achieve this new freedom of arbitrary gain |
format extension for this reason to achieve this new freedom of arbitrary gain |
272 |
actually have two distinct operations per button: a regular left-mouse click |
actually have two distinct operations per button: a regular left-mouse click |
273 |
for small changes and middle-mouse click for larger changes. Both have been |
for small changes and middle-mouse click for larger changes. Both have been |
274 |
adjusted appropriately for the individual synthesis parameters they control. |
adjusted appropriately for the individual synthesis parameters they control. |
275 |
|
<img src="gigedit_spinbox_fine_tuning_steps.png"> |
276 |
</p> |
</p> |
|
<img src="gigedit_spinbox_fine_tuning_steps.png"> |
|
277 |
|
|
278 |
<h2 id="libgig">libgig 4.3.0</h2> |
<h2 id="libgig">libgig 4.3.0</h2> |
279 |
<p> |
<p> |