/[svn]/doc/docbase/instrument_scripts/01_instrument_scripts.html
ViewVC logotype

Annotation of /doc/docbase/instrument_scripts/01_instrument_scripts.html

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2732 - (hide annotations) (download) (as text)
Sun Apr 26 20:54:00 2015 UTC (8 years, 11 months ago) by schoenebeck
File MIME type: text/html
File size: 6992 byte(s)
* Initial import of doc.linuxsampler.org.

1 schoenebeck 2732 <html>
2     <head>
3     <meta name="author" content="Christian Schoenebeck">
4     <title>Instrument Scripts</title>
5     <meta name="description" content="Introduction to real-time instrument scripts.">
6     </head>
7     <body>
8     <h1>Real-Time Instrument Scripts</h1>
9     <p>
10     The sampler technology is constantly evolving to satisfy new feature
11     requirements of sound designer in order to allow them creating more and
12     more realistic sounds. As an example you might look at state of the art
13     orchestra libraries. They not only allow you pick one of the individual
14     instrument sounds of an orchestra, they also allow you to control the
15     articulation of the respective orchestra instrument while playing them
16     live with your keyboard. So you might start playing an interesting intro
17     with a string ensemble in
18     <i title="Technique that uses a bowing style that leaves the string clearly to produce a light 'bouncing' sound.">spiccato</i>
19     playing style, then you might go over into a slow bridge part where the
20     string ensemble is resembling a
21     <i title="Of successive notes in performance, connected without any intervening silence of articulation.">legato</i>
22     articulation or even
23     <i title="Portamento is a continous pitch sliding from one note to another.">portamento</i>
24     in between, which makes that part of the song very calm and
25     relaxed, and then you shock your audience all of a sudden with a loud
26     <i title="Staccato signifies a note of shortened duration, separated from the note that may follow by silence.">staccato</i>,
27     automatically supported by kettledrum and brass sounds, that wakes up even
28     the last one in the back row. And the best thing: you did not switch to
29     another instrument during that entire song.
30     </p>
31    
32     <h3>Technical Challenge</h3>
33     <p>
34     Adding these kinds of features to a sampler had long been a challenge for
35     software developers. On one hand you need to provide the musician
36     additional controls to let him switch between such kind of orchestra
37     articulations. Sound designers came up with various ideas to let the
38     keyboard player do this. For example by
39     <ul>
40     <li>using continous controllers like the keyboard's modulation wheel</li>
41     <li>using a dedicated keys section on the keyboard where each key selects another playing style</li>
42     <li>utilizing aftertouch support of keyboards</li>
43     </ul>
44     and some more. And on the other hand developers needed to extend the
45     sampler software and the instrument file format to deal with all those
46     extensions. Thinking about <i>portamento</i> for example, the sampler not
47     only has to pick the right sample for the first key the keyboard player
48     hits, the sampler also has to detect the next note and needs to pick a
49     special dedicated portamento sample that goes specifically from that one
50     note to that other note. If the sampler would do that synthetically
51     instead, then it would sound synthetically.
52     </p>
53     <p>
54     And if that was not enough, sound designers started even to ask for very
55     exotic features, specifically for just a bunch of sounds or even for just
56     one single sound of
57     theirs, for example
58     a specific note pattern that shall automatically be added by the sampler
59     to each note being played by the keyboard player.
60     The requested feature set became such large, that sampler developers
61     failed to put all this into their stock sampler software package.
62     A completely new solution was required.
63     </p>
64    
65     <h3>Scripts as Solution</h3>
66     <p>
67     Instead of bloating the sampler engine with more and more suboptimal
68     features that not really suited anybody, the sampler developers turned the
69     way around and opened the sampler engine for sound designers, so that they
70     could add their own custom software components and bundle them with their
71     sounds. These kinds of software plugins that are directly glued and
72     shipped with sounds are called <i>Instrument Scripts</i>, they extend
73     the sampler software with new software features required by the
74     respective sound.
75     </p>
76     <p>
77     Sound designers were finally free to add their own features to the sampler
78     and used <i>Instrument Scripts</i> extensively to create stunning new
79     sounds. For example they came up with a feature called
80     <i title="Sympathetic resonance is a harmonic phenomenon wherein a formerly passive string responds to external vibrations to which it has a harmonic likeness.">
81     symphatetic resonance
82     </i> for their piano sound libraries, which brought piano sounds another
83     great leap forward to match their real, physical counter parts.
84     </p>
85    
86     <h2>Using Scripts with LinuxSampler</h2>
87     <p>
88     LinuxSampler allows you to write and use such <i>Instrument Scripts</i>
89     as well. At this point however, support for instrument scripts is limited
90     to the GigaStudio format engine of LinuxSampler yet. The script engine was
91     developed in a very modular design, where most of the script engine's
92     software is independent from the actual sampler format and the
93     respective sampler format engine is just adding its format specific
94     extensions to the script language. For example the GigaStudio format
95     engine adds scripting functions to allow the sound designer to control the
96     dimension region by scripts.
97     </p>
98     <p>
99     In other words: adding script support to the SFZ format engine for
100     example would not be much work. Simply nobody so far had time and
101     passion to add the scripting feature to the SFZ engine yet.
102     </p>
103    
104     <h3>Bundling Scripts with Sounds</h3>
105     <p>
106     Our graphical instrument editor for the GigaStudio format - <i>gigedit</i> -
107     includes an instrument script editor and allows you to attach
108     instrument scripts to individual GigaStudio format sounds. Refer to the
109     gigedit manual for <a href="gigedit_scripts.html">how to manage instrument scripts with gigedit.</a>
110     </p>
111    
112     <h3>Learning the Script Language</h3>
113     <p>
114     You certainly find some instrument scripts ready to be used on the
115     Internet. So you can simply download and attach them to your sounds with
116     <i>gigedit</i>. In order to write your own custom instrument scripts though, you
117     need to get in touch with the scripting language. Refer to the
118     <a href="nksp.html">NKSP Language Tour</a>
119     for learning how to write your own scripts.
120     </p>
121    
122     <h3>Script Language Reference</h3>
123     <p>
124     If you are already familiar with the instrument script language basics,
125     and just need details and examples to the individual built-in functions
126     and built-in variables, then refer to the
127     <a href="nksp_reference.html">NKSP Reference Manual</a>.
128     </p>
129    
130     </body>
131     </html>

  ViewVC Help
Powered by ViewVC