/[svn]/doc/docbase/release_notes/linuxsampler_2_2_0/01_linuxsampler_2_2_0.html
ViewVC logotype

Diff of /doc/docbase/release_notes/linuxsampler_2_2_0/01_linuxsampler_2_2_0.html

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 3887 by schoenebeck, Sun May 9 18:00:00 2021 UTC revision 3888 by schoenebeck, Sun May 9 18:18:23 2021 UTC
# Line 17  Line 17 
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
# Line 42  Line 43 
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          &nbsp;&nbsp;
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    
# Line 53  Line 55 
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          &nbsp;&nbsp;
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    
# Line 60  Line 63 
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          &nbsp;&nbsp;
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    
# Line 76  Line 82 
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>        &nbsp;&nbsp;
       <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>
# Line 129  end on Line 130  end on
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
# Line 148  end on Line 147  end on
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> (&#9003;) key you can revert those variables back to        <b>Backspace</b> (&#9003;) 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>
# Line 163  end on Line 165  end on
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
# Line 172  end on Line 173  end on
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
# Line 187  end on Line 188  end on
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>
# Line 221  end on Line 223  end on
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>
# Line 242  end on Line 244  end on
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
# Line 270  end on Line 272  end on
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>

Legend:
Removed from v.3887  
changed lines
  Added in v.3888

  ViewVC Help
Powered by ViewVC