/[svn]/web/trunk/www.linuxsampler.org/api/lscp-1.6.html
ViewVC logotype

Annotation of /web/trunk/www.linuxsampler.org/api/lscp-1.6.html

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2498 - (hide annotations) (download) (as text)
Thu Jan 9 22:05:21 2014 UTC (10 years, 3 months ago) by schoenebeck
File MIME type: text/html
File size: 520441 byte(s)
* New LSCP specs (LSCP 1.6).

1 schoenebeck 2498 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2     <html lang="en"><head><title>LinuxSampler Control Protocol</title>
3     <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
4     <meta name="description" content="LinuxSampler Control Protocol">
5     <meta name="keywords" content="LSCP">
6     <meta name="generator" content="xml2rfc v1.35 (http://xml.resource.org/)">
7     <style type='text/css'><!--
8     body {
9     font-family: verdana, charcoal, helvetica, arial, sans-serif;
10     font-size: small; color: #000; background-color: #FFF;
11     margin: 2em;
12     }
13     h1, h2, h3, h4, h5, h6 {
14     font-family: helvetica, monaco, "MS Sans Serif", arial, sans-serif;
15     font-weight: bold; font-style: normal;
16     }
17     h1 { color: #900; background-color: transparent; text-align: right; }
18     h3 { color: #333; background-color: transparent; }
19    
20     td.RFCbug {
21     font-size: x-small; text-decoration: none;
22     width: 30px; height: 30px; padding-top: 2px;
23     text-align: justify; vertical-align: middle;
24     background-color: #000;
25     }
26     td.RFCbug span.RFC {
27     font-family: monaco, charcoal, geneva, "MS Sans Serif", helvetica, verdana, sans-serif;
28     font-weight: bold; color: #666;
29     }
30     td.RFCbug span.hotText {
31     font-family: charcoal, monaco, geneva, "MS Sans Serif", helvetica, verdana, sans-serif;
32     font-weight: normal; text-align: center; color: #FFF;
33     }
34    
35     table.TOCbug { width: 30px; height: 15px; }
36     td.TOCbug {
37     text-align: center; width: 30px; height: 15px;
38     color: #FFF; background-color: #900;
39     }
40     td.TOCbug a {
41     font-family: monaco, charcoal, geneva, "MS Sans Serif", helvetica, sans-serif;
42     font-weight: bold; font-size: x-small; text-decoration: none;
43     color: #FFF; background-color: transparent;
44     }
45    
46     td.header {
47     font-family: arial, helvetica, sans-serif; font-size: x-small;
48     vertical-align: top; width: 33%;
49     color: #FFF; background-color: #666;
50     }
51     td.author { font-weight: bold; font-size: x-small; margin-left: 4em; }
52     td.author-text { font-size: x-small; }
53    
54     /* info code from SantaKlauss at http://www.madaboutstyle.com/tooltip2.html */
55     a.info {
56     /* This is the key. */
57     position: relative;
58     z-index: 24;
59     text-decoration: none;
60     }
61     a.info:hover {
62     z-index: 25;
63     color: #FFF; background-color: #900;
64     }
65     a.info span { display: none; }
66     a.info:hover span.info {
67     /* The span will display just on :hover state. */
68     display: block;
69     position: absolute;
70     font-size: smaller;
71     top: 2em; left: -5em; width: 15em;
72     padding: 2px; border: 1px solid #333;
73     color: #900; background-color: #EEE;
74     text-align: left;
75     }
76    
77     a { font-weight: bold; }
78     a:link { color: #900; background-color: transparent; }
79     a:visited { color: #633; background-color: transparent; }
80     a:active { color: #633; background-color: transparent; }
81    
82     p { margin-left: 2em; margin-right: 2em; }
83     p.copyright { font-size: x-small; }
84     p.toc { font-size: small; font-weight: bold; margin-left: 3em; }
85     table.toc { margin: 0 0 0 3em; padding: 0; border: 0; vertical-align: text-top; }
86     td.toc { font-size: small; font-weight: bold; vertical-align: text-top; }
87    
88     ol.text { margin-left: 2em; margin-right: 2em; }
89     ul.text { margin-left: 2em; margin-right: 2em; }
90     li { margin-left: 3em; }
91    
92     /* RFC-2629 <spanx>s and <artwork>s. */
93     em { font-style: italic; }
94     strong { font-weight: bold; }
95     dfn { font-weight: bold; font-style: normal; }
96     cite { font-weight: normal; font-style: normal; }
97     tt { color: #036; }
98     tt, pre, pre dfn, pre em, pre cite, pre span {
99     font-family: "Courier New", Courier, monospace; font-size: small;
100     }
101     pre {
102     text-align: left; padding: 4px;
103     color: #000; background-color: #CCC;
104     }
105     pre dfn { color: #900; }
106     pre em { color: #66F; background-color: #FFC; font-weight: normal; }
107     pre .key { color: #33C; font-weight: bold; }
108     pre .id { color: #900; }
109     pre .str { color: #000; background-color: #CFF; }
110     pre .val { color: #066; }
111     pre .rep { color: #909; }
112     pre .oth { color: #000; background-color: #FCF; }
113     pre .err { background-color: #FCC; }
114    
115     /* RFC-2629 <texttable>s. */
116     table.all, table.full, table.headers, table.none {
117     font-size: small; text-align: center; border-width: 2px;
118     vertical-align: top; border-collapse: collapse;
119     }
120     table.all, table.full { border-style: solid; border-color: black; }
121     table.headers, table.none { border-style: none; }
122     th {
123     font-weight: bold; border-color: black;
124     border-width: 2px 2px 3px 2px;
125     }
126     table.all th, table.full th { border-style: solid; }
127     table.headers th { border-style: none none solid none; }
128     table.none th { border-style: none; }
129     table.all td {
130     border-style: solid; border-color: #333;
131     border-width: 1px 2px;
132     }
133     table.full td, table.headers td, table.none td { border-style: none; }
134    
135     hr { height: 1px; }
136     hr.insert {
137     width: 80%; border-style: none; border-width: 0;
138     color: #CCC; background-color: #CCC;
139     }
140     --></style>
141     </head>
142     <body>
143     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
144     <table summary="layout" width="66%" border="0" cellpadding="0" cellspacing="0"><tr><td><table summary="layout" width="100%" border="0" cellpadding="2" cellspacing="1">
145     <tr><td class="header">LinuxSampler Developers</td><td class="header">C. Schoenebeck</td></tr>
146     <tr><td class="header">Internet-Draft</td><td class="header">LinuxSampler.org</td></tr>
147     <tr><td class="header">Intended status: Standards Track</td><td class="header">January 9, 2014</td></tr>
148     <tr><td class="header">Expires: July 13, 2014</td><td class="header">&nbsp;</td></tr>
149     </table></td></tr></table>
150     <h1><br />LinuxSampler Control Protocol<br />LSCP 1.6</h1>
151    
152     <h3>Abstract</h3>
153    
154     <p>The LinuxSampler Control Protocol (LSCP) is an
155     application-level protocol primarily intended for local and
156     remote controlling the LinuxSampler backend application, which is a
157     sophisticated server-like console application essentially playing
158     back audio samples and manipulating the samples in real time to
159     certain extent.
160     </p>
161     <h3>Status of this Memo</h3>
162     <p>
163     By submitting this Internet-Draft,
164     each author represents that any applicable patent or other IPR claims of which
165     he or she is aware have been or will be disclosed,
166     and any of which he or she becomes aware will be disclosed,
167     in accordance with Section&nbsp;6 of BCP&nbsp;79.</p>
168     <p>
169     Internet-Drafts are working documents of the Internet Engineering
170     Task Force (IETF). Note that other groups may also distribute
171     working documents as Internet-Drafts. The list of current
172     Internet-Drafts is at http://datatracker.ietf.org/drafts/current/.</p>
173     <p>
174     Internet-Drafts are draft documents valid for a maximum of six months
175     and may be updated, replaced, or obsoleted by other documents at any time.
176     It is inappropriate to use Internet-Drafts as reference material or to cite
177     them other than as &ldquo;work in progress.&rdquo;</p>
178     <p>
179     This Internet-Draft will expire on July 13, 2014.</p>
180     <a name="toc"></a><br /><hr />
181     <h3>Table of Contents</h3>
182     <p class="toc">
183     <a href="#anchor1">1.</a>&nbsp;
184     Requirements notation<br />
185     <a href="#LSCP versioning">2.</a>&nbsp;
186     Versioning of this specification<br />
187     <a href="#anchor2">3.</a>&nbsp;
188     Introduction<br />
189     <a href="#anchor3">4.</a>&nbsp;
190     Focus of this protocol<br />
191     <a href="#anchor4">5.</a>&nbsp;
192     Communication Overview<br />
193     &nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor5">5.1.</a>&nbsp;
194     Request/response communication method<br />
195     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor6">5.1.1.</a>&nbsp;
196     Result format<br />
197     &nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor7">5.2.</a>&nbsp;
198     Subscribe/notify communication method<br />
199     <a href="#control_commands">6.</a>&nbsp;
200     Description for control commands<br />
201     &nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor8">6.1.</a>&nbsp;
202     Ignored lines and comments<br />
203     &nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor9">6.2.</a>&nbsp;
204     Configuring audio drivers<br />
205     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET AVAILABLE_AUDIO_OUTPUT_DRIVERS">6.2.1.</a>&nbsp;
206     Getting amount of available audio output drivers<br />
207     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#LIST AVAILABLE_AUDIO_OUTPUT_DRIVERS">6.2.2.</a>&nbsp;
208     Getting all available audio output drivers<br />
209     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET AUDIO_OUTPUT_DRIVER INFO">6.2.3.</a>&nbsp;
210     Getting information about a specific audio
211     output driver<br />
212     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET AUDIO_OUTPUT_DRIVER_PARAMETER INFO">6.2.4.</a>&nbsp;
213     Getting information about specific audio
214     output driver parameter<br />
215     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#CREATE AUDIO_OUTPUT_DEVICE">6.2.5.</a>&nbsp;
216     Creating an audio output device<br />
217     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#DESTROY AUDIO_OUTPUT_DEVICE">6.2.6.</a>&nbsp;
218     Destroying an audio output device<br />
219     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET AUDIO_OUTPUT_DEVICES">6.2.7.</a>&nbsp;
220     Getting all created audio output device count<br />
221     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#LIST AUDIO_OUTPUT_DEVICES">6.2.8.</a>&nbsp;
222     Getting all created audio output device list<br />
223     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET AUDIO_OUTPUT_DEVICE INFO">6.2.9.</a>&nbsp;
224     Getting current settings of an audio output device<br />
225     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET AUDIO_OUTPUT_DEVICE_PARAMETER">6.2.10.</a>&nbsp;
226     Changing settings of audio output devices<br />
227     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET AUDIO_OUTPUT_CHANNEL INFO">6.2.11.</a>&nbsp;
228     Getting information about an audio channel<br />
229     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET AUDIO_OUTPUT_CHANNEL_PARAMETER INFO">6.2.12.</a>&nbsp;
230     Getting information about specific audio channel parameter<br />
231     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET AUDIO_OUTPUT_CHANNEL_PARAMETER">6.2.13.</a>&nbsp;
232     Changing settings of audio output channels<br />
233     &nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor10">6.3.</a>&nbsp;
234     Configuring MIDI input drivers<br />
235     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET AVAILABLE_MIDI_INPUT_DRIVERS">6.3.1.</a>&nbsp;
236     Getting amount of available MIDI input drivers<br />
237     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#LIST AVAILABLE_MIDI_INPUT_DRIVERS">6.3.2.</a>&nbsp;
238     Getting all available MIDI input drivers<br />
239     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET MIDI_INPUT_DRIVER INFO">6.3.3.</a>&nbsp;
240     Getting information about a specific MIDI input driver<br />
241     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET MIDI_INPUT_DRIVER_PARAMETER INFO">6.3.4.</a>&nbsp;
242     Getting information about specific MIDI input driver parameter<br />
243     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#CREATE MIDI_INPUT_DEVICE">6.3.5.</a>&nbsp;
244     Creating a MIDI input device<br />
245     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#DESTROY MIDI_INPUT_DEVICE">6.3.6.</a>&nbsp;
246     Destroying a MIDI input device<br />
247     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET MIDI_INPUT_DEVICES">6.3.7.</a>&nbsp;
248     Getting all created MIDI input device count<br />
249     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#LIST MIDI_INPUT_DEVICES">6.3.8.</a>&nbsp;
250     Getting all created MIDI input device list<br />
251     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET MIDI_INPUT_DEVICE INFO">6.3.9.</a>&nbsp;
252     Getting current settings of a MIDI input device<br />
253     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET MIDI_INPUT_DEVICE_PARAMETER">6.3.10.</a>&nbsp;
254     Changing settings of MIDI input devices<br />
255     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET MIDI_INPUT_PORT INFO">6.3.11.</a>&nbsp;
256     Getting information about a MIDI port<br />
257     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET MIDI_INPUT_PORT_PARAMETER INFO">6.3.12.</a>&nbsp;
258     Getting information about specific MIDI port parameter<br />
259     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET MIDI_INPUT_PORT_PARAMETER">6.3.13.</a>&nbsp;
260     Changing settings of MIDI input ports<br />
261     &nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor11">6.4.</a>&nbsp;
262     Configuring sampler channels<br />
263     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#LOAD INSTRUMENT">6.4.1.</a>&nbsp;
264     Loading an instrument<br />
265     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#LOAD ENGINE">6.4.2.</a>&nbsp;
266     Loading a sampler engine<br />
267     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET CHANNELS">6.4.3.</a>&nbsp;
268     Getting all created sampler channel count<br />
269     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#LIST CHANNELS">6.4.4.</a>&nbsp;
270     Getting all created sampler channel list<br />
271     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ADD CHANNEL">6.4.5.</a>&nbsp;
272     Adding a new sampler channel<br />
273     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#REMOVE CHANNEL">6.4.6.</a>&nbsp;
274     Removing a sampler channel<br />
275     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET AVAILABLE_ENGINES">6.4.7.</a>&nbsp;
276     Getting amount of available engines<br />
277     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#LIST AVAILABLE_ENGINES">6.4.8.</a>&nbsp;
278     Getting all available engines<br />
279     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET ENGINE INFO">6.4.9.</a>&nbsp;
280     Getting information about an engine<br />
281     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET CHANNEL INFO">6.4.10.</a>&nbsp;
282     Getting sampler channel information<br />
283     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET CHANNEL VOICE_COUNT">6.4.11.</a>&nbsp;
284     Current number of active voices<br />
285     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET CHANNEL STREAM_COUNT">6.4.12.</a>&nbsp;
286     Current number of active disk streams<br />
287     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET CHANNEL BUFFER_FILL">6.4.13.</a>&nbsp;
288     Current fill state of disk stream buffers<br />
289     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET CHANNEL AUDIO_OUTPUT_DEVICE">6.4.14.</a>&nbsp;
290     Setting audio output device<br />
291     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET CHANNEL AUDIO_OUTPUT_TYPE">6.4.15.</a>&nbsp;
292     Setting audio output type<br />
293     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET CHANNEL AUDIO_OUTPUT_CHANNEL">6.4.16.</a>&nbsp;
294     Setting audio output channel<br />
295     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ADD CHANNEL MIDI_INPUT">6.4.17.</a>&nbsp;
296     Add MIDI input to sampler channel<br />
297     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#REMOVE CHANNEL MIDI_INPUT">6.4.18.</a>&nbsp;
298     Remove MIDI input(s) from sampler channel<br />
299     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#LIST CHANNEL MIDI_INPUTS">6.4.19.</a>&nbsp;
300     Getting all MIDI inputs of a sampler channel<br />
301     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET CHANNEL MIDI_INPUT_DEVICE">6.4.20.</a>&nbsp;
302     Setting MIDI input device<br />
303     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET CHANNEL MIDI_INPUT_TYPE">6.4.21.</a>&nbsp;
304     Setting MIDI input type<br />
305     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET CHANNEL MIDI_INPUT_PORT">6.4.22.</a>&nbsp;
306     Setting MIDI input port<br />
307     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET CHANNEL MIDI_INPUT_CHANNEL">6.4.23.</a>&nbsp;
308     Setting MIDI input channel<br />
309     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET CHANNEL VOLUME">6.4.24.</a>&nbsp;
310     Setting channel volume<br />
311     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET CHANNEL MUTE">6.4.25.</a>&nbsp;
312     Muting a sampler channel<br />
313     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET CHANNEL SOLO">6.4.26.</a>&nbsp;
314     Soloing a sampler channel<br />
315     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET CHANNEL MIDI_INSTRUMENT_MAP">6.4.27.</a>&nbsp;
316     Assigning a MIDI instrument map to a sampler channel<br />
317     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#CREATE FX_SEND">6.4.28.</a>&nbsp;
318     Adding an effect send to a sampler channel<br />
319     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#DESTROY FX_SEND">6.4.29.</a>&nbsp;
320     Removing an effect send from a sampler channel<br />
321     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET FX_SENDS">6.4.30.</a>&nbsp;
322     Getting amount of effect sends on a sampler channel<br />
323     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#LIST FX_SENDS">6.4.31.</a>&nbsp;
324     Listing all effect sends on a sampler channel<br />
325     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET FX_SEND INFO">6.4.32.</a>&nbsp;
326     Getting effect send information<br />
327     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET FX_SEND NAME">6.4.33.</a>&nbsp;
328     Changing effect send's name<br />
329     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET FX_SEND AUDIO_OUTPUT_CHANNEL">6.4.34.</a>&nbsp;
330     Altering effect send's audio routing<br />
331     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET FX_SEND EFFECT">6.4.35.</a>&nbsp;
332     Assigning destination effect to an effect send<br />
333     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#REMOVE FX_SEND EFFECT">6.4.36.</a>&nbsp;
334     Removing destination effect from an effect send<br />
335     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET FX_SEND MIDI_CONTROLLER">6.4.37.</a>&nbsp;
336     Altering effect send's MIDI controller<br />
337     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET FX_SEND LEVEL">6.4.38.</a>&nbsp;
338     Altering effect send's send level<br />
339     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SEND CHANNEL MIDI_DATA">6.4.39.</a>&nbsp;
340     Sending MIDI messages to sampler channel<br />
341     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#RESET CHANNEL">6.4.40.</a>&nbsp;
342     Resetting a sampler channel<br />
343     &nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor12">6.5.</a>&nbsp;
344     Controlling connection<br />
345     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE">6.5.1.</a>&nbsp;
346     Register front-end for receiving event messages<br />
347     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#UNSUBSCRIBE">6.5.2.</a>&nbsp;
348     Unregister front-end for not receiving event messages<br />
349     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET ECHO">6.5.3.</a>&nbsp;
350     Enable or disable echo of commands<br />
351     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#QUIT">6.5.4.</a>&nbsp;
352     Close client connection<br />
353     &nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor13">6.6.</a>&nbsp;
354     Global commands<br />
355     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET TOTAL_VOICE_COUNT">6.6.1.</a>&nbsp;
356     Current number of active voices<br />
357     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET TOTAL_VOICE_COUNT_MAX">6.6.2.</a>&nbsp;
358     Maximum amount of active voices<br />
359     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET TOTAL_STREAM_COUNT">6.6.3.</a>&nbsp;
360     Current number of active disk streams<br />
361     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#RESET">6.6.4.</a>&nbsp;
362     Reset sampler<br />
363     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET SERVER INFO">6.6.5.</a>&nbsp;
364     General sampler informations<br />
365     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET VOLUME">6.6.6.</a>&nbsp;
366     Getting global volume attenuation<br />
367     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET VOLUME">6.6.7.</a>&nbsp;
368     Setting global volume attenuation<br />
369     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET VOICES">6.6.8.</a>&nbsp;
370     Getting global voice limit<br />
371     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET VOICES">6.6.9.</a>&nbsp;
372     Setting global voice limit<br />
373     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET STREAMS">6.6.10.</a>&nbsp;
374     Getting global disk stream limit<br />
375     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET STREAMS">6.6.11.</a>&nbsp;
376     Setting global disk stream limit<br />
377     &nbsp;&nbsp;&nbsp;&nbsp;<a href="#MIDI Instrument Mapping">6.7.</a>&nbsp;
378     MIDI Instrument Mapping<br />
379     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ADD MIDI_INSTRUMENT_MAP">6.7.1.</a>&nbsp;
380     Create a new MIDI instrument map<br />
381     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#REMOVE MIDI_INSTRUMENT_MAP">6.7.2.</a>&nbsp;
382     Delete one particular or all MIDI instrument maps<br />
383     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET MIDI_INSTRUMENT_MAPS">6.7.3.</a>&nbsp;
384     Get amount of existing MIDI instrument maps<br />
385     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#LIST MIDI_INSTRUMENT_MAPS">6.7.4.</a>&nbsp;
386     Getting all created MIDI instrument maps<br />
387     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET MIDI_INSTRUMENT_MAP INFO">6.7.5.</a>&nbsp;
388     Getting MIDI instrument map information<br />
389     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET MIDI_INSTRUMENT_MAP NAME">6.7.6.</a>&nbsp;
390     Renaming a MIDI instrument map<br />
391     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#MAP MIDI_INSTRUMENT">6.7.7.</a>&nbsp;
392     Create or replace a MIDI instrument map entry<br />
393     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET MIDI_INSTRUMENTS">6.7.8.</a>&nbsp;
394     Getting amount of MIDI instrument map entries<br />
395     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#LIST MIDI_INSTRUMENTS">6.7.9.</a>&nbsp;
396     Getting indeces of all entries of a MIDI instrument map<br />
397     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#UNMAP MIDI_INSTRUMENT">6.7.10.</a>&nbsp;
398     Remove an entry from the MIDI instrument map<br />
399     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET MIDI_INSTRUMENT INFO">6.7.11.</a>&nbsp;
400     Get current settings of MIDI instrument map entry<br />
401     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#CLEAR MIDI_INSTRUMENTS">6.7.12.</a>&nbsp;
402     Clear MIDI instrument map<br />
403     &nbsp;&nbsp;&nbsp;&nbsp;<a href="#Managing Instruments Database">6.8.</a>&nbsp;
404     Managing Instruments Database<br />
405     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ADD DB_INSTRUMENT_DIRECTORY">6.8.1.</a>&nbsp;
406     Creating a new instrument directory<br />
407     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#REMOVE DB_INSTRUMENT_DIRECTORY">6.8.2.</a>&nbsp;
408     Deleting an instrument directory<br />
409     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET DB_INSTRUMENT_DIRECTORIES">6.8.3.</a>&nbsp;
410     Getting amount of instrument directories<br />
411     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#LIST DB_INSTRUMENT_DIRECTORIES">6.8.4.</a>&nbsp;
412     Listing all directories in specific directory<br />
413     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET DB_INSTRUMENT_DIRECTORY INFO">6.8.5.</a>&nbsp;
414     Getting instrument directory information<br />
415     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET DB_INSTRUMENT_DIRECTORY NAME">6.8.6.</a>&nbsp;
416     Renaming an instrument directory<br />
417     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#MOVE DB_INSTRUMENT_DIRECTORY">6.8.7.</a>&nbsp;
418     Moving an instrument directory<br />
419     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#COPY DB_INSTRUMENT_DIRECTORY">6.8.8.</a>&nbsp;
420     Copying instrument directories<br />
421     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET DB_INSTRUMENT_DIRECTORY DESCRIPTION">6.8.9.</a>&nbsp;
422     Changing the description of directory<br />
423     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#FIND DB_INSTRUMENT_DIRECTORIES">6.8.10.</a>&nbsp;
424     Finding directories<br />
425     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ADD DB_INSTRUMENTS">6.8.11.</a>&nbsp;
426     Adding instruments to the instruments database<br />
427     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#REMOVE DB_INSTRUMENT">6.8.12.</a>&nbsp;
428     Removing an instrument<br />
429     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET DB_INSTRUMENTS">6.8.13.</a>&nbsp;
430     Getting amount of instruments<br />
431     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#LIST DB_INSTRUMENTS">6.8.14.</a>&nbsp;
432     Listing all instruments in specific directory<br />
433     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET DB_INSTRUMENT INFO">6.8.15.</a>&nbsp;
434     Getting instrument information<br />
435     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET DB_INSTRUMENT NAME">6.8.16.</a>&nbsp;
436     Renaming an instrument<br />
437     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#MOVE DB_INSTRUMENT">6.8.17.</a>&nbsp;
438     Moving an instrument<br />
439     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#COPY DB_INSTRUMENT">6.8.18.</a>&nbsp;
440     Copying instruments<br />
441     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET DB_INSTRUMENT DESCRIPTION">6.8.19.</a>&nbsp;
442     Changing the description of instrument<br />
443     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#FIND DB_INSTRUMENTS">6.8.20.</a>&nbsp;
444     Finding instruments<br />
445     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET DB_INSTRUMENTS_JOB INFO">6.8.21.</a>&nbsp;
446     Getting job status information<br />
447     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#FORMAT INSTRUMENTS_DB">6.8.22.</a>&nbsp;
448     Formatting the instruments database<br />
449     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#FIND LOST DB_INSTRUMENT_FILES">6.8.23.</a>&nbsp;
450     Checking for lost instrument files<br />
451     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET DB_INSTRUMENT FILE_PATH">6.8.24.</a>&nbsp;
452     Replacing an instrument file<br />
453     &nbsp;&nbsp;&nbsp;&nbsp;<a href="#editing_instruments">6.9.</a>&nbsp;
454     Editing Instruments<br />
455     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#EDIT INSTRUMENT">6.9.1.</a>&nbsp;
456     Opening an appropriate instrument editor application<br />
457     &nbsp;&nbsp;&nbsp;&nbsp;<a href="#file_management">6.10.</a>&nbsp;
458     Managing Files<br />
459     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET FILE INSTRUMENTS">6.10.1.</a>&nbsp;
460     Retrieving amount of instruments of a file<br />
461     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#LIST FILE INSTRUMENTS">6.10.2.</a>&nbsp;
462     Retrieving all instruments of a file<br />
463     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET FILE INSTRUMENT INFO">6.10.3.</a>&nbsp;
464     Retrieving informations about one instrument in a file<br />
465     &nbsp;&nbsp;&nbsp;&nbsp;<a href="#effects">6.11.</a>&nbsp;
466     Managing Effects<br />
467     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET AVAILABLE_EFFECTS">6.11.1.</a>&nbsp;
468     Retrieve amount of available effects<br />
469     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#LIST AVAILABLE_EFFECTS">6.11.2.</a>&nbsp;
470     Get list of available effects<br />
471     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET EFFECT INFO">6.11.3.</a>&nbsp;
472     Retrieving general information about an effect<br />
473     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#CREATE EFFECT_INSTANCE">6.11.4.</a>&nbsp;
474     Creating an instance of an effect by its portable ID<br />
475     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#CREATE EFFECT_INSTANCE (non-portable)">6.11.5.</a>&nbsp;
476     Creating an instance of an effect by its numerical ID<br />
477     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#DESTROY EFFECT_INSTANCE">6.11.6.</a>&nbsp;
478     Destroy an effect instance<br />
479     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET EFFECT_INSTANCES">6.11.7.</a>&nbsp;
480     Retrieve amount of effect instances<br />
481     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#LIST EFFECT_INSTANCES">6.11.8.</a>&nbsp;
482     Get list of effect instances<br />
483     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET EFFECT_INSTANCE INFO">6.11.9.</a>&nbsp;
484     Retrieving current information about an effect instance<br />
485     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET EFFECT_INSTANCE_INPUT_CONTROL INFO">6.11.10.</a>&nbsp;
486     Retrieving information about an effect parameter<br />
487     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET EFFECT_INSTANCE_INPUT_CONTROL VALUE">6.11.11.</a>&nbsp;
488     Altering an effect parameter<br />
489     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET SEND_EFFECT_CHAINS">6.11.12.</a>&nbsp;
490     Retrieve amount of send effect chains<br />
491     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#LIST SEND_EFFECT_CHAINS">6.11.13.</a>&nbsp;
492     Retrieve list of send effect chains<br />
493     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ADD SEND_EFFECT_CHAIN">6.11.14.</a>&nbsp;
494     Add send effect chain<br />
495     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#REMOVE SEND_EFFECT_CHAIN">6.11.15.</a>&nbsp;
496     Remove send effect chain<br />
497     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET SEND_EFFECT_CHAIN INFO">6.11.16.</a>&nbsp;
498     Retrieving information about a send effect chain<br />
499     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#APPEND SEND_EFFECT_CHAIN EFFECT">6.11.17.</a>&nbsp;
500     Append effect instance to a send effect chain<br />
501     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#INSERT SEND_EFFECT_CHAIN EFFECT">6.11.18.</a>&nbsp;
502     Insert effect instance to a send effect chain<br />
503     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#REMOVE SEND_EFFECT_CHAIN EFFECT">6.11.19.</a>&nbsp;
504     Remove effect instance from send effect chain<br />
505     <a href="#command_syntax">7.</a>&nbsp;
506     Command Syntax<br />
507     &nbsp;&nbsp;&nbsp;&nbsp;<a href="#character_set">7.1.</a>&nbsp;
508     Character Set and Escape Sequences<br />
509     <a href="#events">8.</a>&nbsp;
510     Events<br />
511     &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE AUDIO_OUTPUT_DEVICE_COUNT">8.1.</a>&nbsp;
512     Number of audio output devices changed<br />
513     &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE AUDIO_OUTPUT_DEVICE_INFO">8.2.</a>&nbsp;
514     Audio output device's settings changed<br />
515     &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE MIDI_INPUT_DEVICE_COUNT">8.3.</a>&nbsp;
516     Number of MIDI input devices changed<br />
517     &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE MIDI_INPUT_DEVICE_INFO">8.4.</a>&nbsp;
518     MIDI input device's settings changed<br />
519     &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE CHANNEL_COUNT">8.5.</a>&nbsp;
520     Number of sampler channels changed<br />
521     &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE CHANNEL_MIDI">8.6.</a>&nbsp;
522     MIDI data on a sampler channel arrived<br />
523     &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE DEVICE_MIDI">8.7.</a>&nbsp;
524     MIDI data on a MIDI input device arrived<br />
525     &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE VOICE_COUNT">8.8.</a>&nbsp;
526     Number of active voices changed<br />
527     &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE STREAM_COUNT">8.9.</a>&nbsp;
528     Number of active disk streams changed<br />
529     &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE BUFFER_FILL">8.10.</a>&nbsp;
530     Disk stream buffer fill state changed<br />
531     &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE CHANNEL_INFO">8.11.</a>&nbsp;
532     Channel information changed<br />
533     &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE FX_SEND_COUNT">8.12.</a>&nbsp;
534     Number of effect sends changed<br />
535     &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE FX_SEND_INFO">8.13.</a>&nbsp;
536     Effect send information changed<br />
537     &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE TOTAL_VOICE_COUNT">8.14.</a>&nbsp;
538     Total number of active voices changed<br />
539     &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE TOTAL_STREAM_COUNT">8.15.</a>&nbsp;
540     Total number of active disk streams changed<br />
541     &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE MIDI_INSTRUMENT_MAP_COUNT">8.16.</a>&nbsp;
542     Number of MIDI instrument maps changed<br />
543     &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE MIDI_INSTRUMENT_MAP_INFO">8.17.</a>&nbsp;
544     MIDI instrument map information changed<br />
545     &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE MIDI_INSTRUMENT_COUNT">8.18.</a>&nbsp;
546     Number of MIDI instruments changed<br />
547     &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE MIDI_INSTRUMENT_INFO">8.19.</a>&nbsp;
548     MIDI instrument information changed<br />
549     &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE GLOBAL_INFO">8.20.</a>&nbsp;
550     Global settings changed<br />
551     &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE DB_INSTRUMENT_DIRECTORY_COUNT">8.21.</a>&nbsp;
552     Number of database instrument directories changed<br />
553     &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE DB_INSTRUMENT_DIRECTORY_INFO">8.22.</a>&nbsp;
554     Database instrument directory information changed<br />
555     &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE DB_INSTRUMENT_COUNT">8.23.</a>&nbsp;
556     Number of database instruments changed<br />
557     &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE DB_INSTRUMENT_INFO">8.24.</a>&nbsp;
558     Database instrument information changed<br />
559     &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE DB_INSTRUMENTS_JOB_INFO">8.25.</a>&nbsp;
560     Database job status information changed<br />
561     &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE EFFECT_INSTANCE_COUNT">8.26.</a>&nbsp;
562     Number of effect instances changed<br />
563     &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE EFFECT_INSTANCE_INFO">8.27.</a>&nbsp;
564     Effect instance information changed<br />
565     &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE SEND_EFFECT_CHAIN_COUNT">8.28.</a>&nbsp;
566     Number of send effect chains changed<br />
567     &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE SEND_EFFECT_CHAIN_INFO">8.29.</a>&nbsp;
568     Send effect chain information changed<br />
569     &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE MISCELLANEOUS">8.30.</a>&nbsp;
570     Miscellaneous and debugging events<br />
571     <a href="#anchor14">9.</a>&nbsp;
572     Security Considerations<br />
573     <a href="#anchor15">10.</a>&nbsp;
574     Acknowledgments<br />
575     <a href="#rfc.references1">11.</a>&nbsp;
576     References<br />
577     <a href="#rfc.authors">&#167;</a>&nbsp;
578     Author's Address<br />
579     <a href="#rfc.copyright">&#167;</a>&nbsp;
580     Intellectual Property and Copyright Statements<br />
581     </p>
582     <br clear="all" />
583    
584     <a name="anchor1"></a><br /><hr />
585     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
586     <a name="rfc.section.1"></a><h3>1.&nbsp;
587     Requirements notation</h3>
588    
589     <p>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL",
590     "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY",
591     and "OPTIONAL" in this document are to be interpreted as
592     described in <a class='info' href='#RFC2119'>[RFC2119]<span> (</span><span class='info'>Bradner, S., &ldquo;Key words for use in RFCs to Indicate Requirement Levels,&rdquo; 1997.</span><span>)</span></a>.
593     </p>
594     <p>This protocol is always case-sensitive if not explicitly
595     claimed the opposite.
596     </p>
597     <p>In examples, "C:" and "S:" indicate lines sent by the client
598     (front-end) and server (LinuxSampler) respectively. Lines in
599     examples must be interpreted as every line being CRLF
600     terminated (carriage return character followed by line feed
601     character as defined in the ASCII standard <a class='info' href='#RFC20'>[RFC20]<span> (</span><span class='info'>UCLA, &ldquo;ASCII format for Network Interchange,&rdquo; 1969.</span><span>)</span></a>),
602     thus the following example:
603     </p>
604     <p>
605     </p>
606     <blockquote class="text">
607     <p>C: "some line"
608     </p>
609     <p>&nbsp;&nbsp;&nbsp;"another line"
610     </p>
611     </blockquote><p>
612    
613     </p>
614     <p>must actually be interpreted as client sending the following
615     message:
616     </p>
617     <p>
618     </p>
619     <blockquote class="text">
620     <p>"some line&lt;CR&gt;&lt;LF&gt;another
621     line&lt;CR&gt;&lt;LF&gt;"
622     </p>
623     </blockquote><p>
624    
625     </p>
626     <p>where &lt;CR&gt; symbolizes the carriage return character and
627     &lt;LF&gt; the line feed character as defined in the ASCII
628     standard.
629     </p>
630     <p>Due to technical reasons, messages can arbitrary be
631     fragmented, means the following example:
632     </p>
633     <p>
634     </p>
635     <blockquote class="text">
636     <p>S: "abcd"
637     </p>
638     </blockquote><p>
639    
640     </p>
641     <p>could also happen to be sent in three messages like in the
642     following sequence scenario:
643     </p>
644     <p>
645     </p>
646     <ul class="text">
647     <li>server sending message "a"
648     </li>
649     <li>followed by a delay (pause) with
650     arbitrary duration
651     </li>
652     <li>followed by server sending message
653     "bcd&lt;CR&gt;"
654     </li>
655     <li>again followed by a delay (pause) with arbitrary
656     duration
657     </li>
658     <li>followed by server sending the message
659     "&lt;LF&gt;"
660     </li>
661     </ul><p>
662    
663     </p>
664     <p>where again &lt;CR&gt; and &lt;LF&gt; symbolize the carriage
665     return and line feed characters respectively.
666     </p>
667     <a name="LSCP versioning"></a><br /><hr />
668     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
669     <a name="rfc.section.2"></a><h3>2.&nbsp;
670     Versioning of this specification</h3>
671    
672     <p>LSCP will certainly be extended and enhanced by-and-by. Each official
673     release of the LSCP specification will be tagged with a unique version
674     tuple. The version tuple consists at least of a major and minor version
675     number like:
676    
677     </p>
678     <p>
679     </p>
680     <blockquote class="text">
681     <p>"1.2"
682     </p>
683     </blockquote><p>
684    
685     </p>
686     <p>
687     In this example the major version number would be "1" and the minor
688     version number would be "2". Note that the version tuple might also
689     have more than two elements. The major version number defines a
690     group of backward compatible versions. That means a frontend is
691     compatible to the connected sampler if and only if the LSCP versions
692     to which each of the two parties complies to, match both of the
693     following rules:
694    
695     </p>
696     <p>Compatibility:
697     </p>
698     <p>
699     </p>
700     <ol class="text">
701     <li>The frontend's LSCP major version and the sampler's LSCP
702     major version are exactly equal.
703     </li>
704     <li>The frontend's LSCP minor version is less or equal than
705     the sampler's LSCP minor version.
706     </li>
707     </ol><p>
708    
709     </p>
710     <p>
711     Compatibility can only be claimed if both rules are true.
712     The frontend can use the
713     <a class='info' href='#GET SERVER INFO'>"GET SERVER INFO"<span> (</span><span class='info'>General sampler informations</span><span>)</span></a> command to
714     get the version of the LSCP specification the sampler complies with.
715    
716     </p>
717     <a name="anchor2"></a><br /><hr />
718     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
719     <a name="rfc.section.3"></a><h3>3.&nbsp;
720     Introduction</h3>
721    
722     <p>LinuxSampler is a so called software sampler application
723     capable to playback audio samples from a computer's Random
724     Access Memory (RAM) as well as directly streaming it from disk.
725     LinuxSampler is designed to be modular. It provides several so
726     called "sampler engines" where each engine is specialized for a
727     certain purpose. LinuxSampler has virtual channels which will be
728     referred in this document as "sampler channels". The channels
729     are in such way virtual as they can be connected to an
730     arbitrary MIDI input method and arbitrary MIDI channel (e.g.
731     sampler channel 17 could be connected to an ALSA sequencer
732     device 64:0 and listening to MIDI channel 1 there). Each sampler
733     channel will be associated with an instance of one of the available
734     sampler engines (e.g. GigEngine, DLSEngine). The audio output of
735     each sampler channel can be routed to an arbitrary audio output
736     method (ALSA / JACK) and an arbitrary audio output channel
737     there.
738     </p>
739     <a name="anchor3"></a><br /><hr />
740     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
741     <a name="rfc.section.4"></a><h3>4.&nbsp;
742     Focus of this protocol</h3>
743    
744     <p>Main focus of this protocol is to provide a way to configure
745     a running LinuxSampler instance and to retrieve information
746     about it. The focus of this protocol is not to provide a way to
747     control synthesis parameters or even to trigger or release
748     notes. Or in other words; the focus are those functionalities
749     which are not covered by MIDI or which may at most be handled
750     via MIDI System Exclusive Messages.
751     </p>
752     <a name="anchor4"></a><br /><hr />
753     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
754     <a name="rfc.section.5"></a><h3>5.&nbsp;
755     Communication Overview</h3>
756    
757     <p>There are two distinct methods of communication between a
758     running instance of LinuxSampler and one or more control
759     applications, so called "front-ends": a simple request/response
760     communication method used by the clients to give commands to the
761     server as well as to inquire about server's status and a
762     subscribe/notify communication method used by the client to
763     subscribe to and receive notifications of certain events as they
764     happen on the server. The latter needs more effort to be
765     implemented in the front-end application. The two communication
766     methods will be described next.
767     </p>
768     <a name="anchor5"></a><br /><hr />
769     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
770     <a name="rfc.section.5.1"></a><h3>5.1.&nbsp;
771     Request/response communication method</h3>
772    
773     <p>This simple communication method is based on
774     <a class='info' href='#RFC793'>TCP<span> (</span><span class='info'>Defense Advanced Research Projects Agency, &ldquo;TRANSMISSION CONTROL PROTOCOL,&rdquo; 1981.</span><span>)</span></a> [RFC793]. The
775     front-end application establishes a TCP connection to the
776     LinuxSampler instance on a certain host system. Then the
777     front-end application will send certain ASCII based commands
778     as defined in this document (every command line must be CRLF
779     terminated - see "Conventions used in this document" at the
780     beginning of this document) and the LinuxSampler application
781     will response after a certain process time with an
782     appropriate ASCII based answer, also as defined in this
783     document. So this TCP communication is simply based on query
784     and answer paradigm. That way LinuxSampler is only able to
785     answer on queries from front-ends, but not able to
786     automatically send messages to the client if it's not asked
787     to. The fronted should not reconnect to LinuxSampler for
788     every single command, instead it should keep the connection
789     established and simply resend message(s) for subsequent
790     commands. To keep information in the front-end up-to-date
791     the front-end has to periodically send new requests to get
792     the current information from the LinuxSampler instance. This
793     is often referred to as "polling". While polling is simple
794     to implement and may be OK to use in some cases, there may
795     be disadvantages to polling such as network traffic overhead
796     and information being out of date.
797     It is possible for a client or several clients to open more
798     than one connection to the server at the same time. It is
799     also possible to send more than one request to the server
800     at the same time but if those requests are sent over the
801     same connection server MUST execute them sequentially. Upon
802     executing a request server will produce a result set and
803     send it to the client. Each and every request made by the
804     client MUST result in a result set being sent back to the
805     client. No other data other than a result set may be sent by
806     a server to a client. No result set may be sent to a client
807     without the client sending request to the server first. On
808     any particular connection, result sets MUST be sent in their
809     entirety without being interrupted by other result sets. If
810     several requests got queued up at the server they MUST be
811     processed in the order they were received and result sets
812     MUST be sent back in the same order.
813     </p>
814     <a name="anchor6"></a><br /><hr />
815     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
816     <a name="rfc.section.5.1.1"></a><h3>5.1.1.&nbsp;
817     Result format</h3>
818    
819     <p>Result set could be one of the following types:
820     </p>
821     <p>
822     </p>
823     <ol class="text">
824     <li>Normal
825     </li>
826     <li>Warning
827     </li>
828     <li>Error
829     </li>
830     </ol><p>
831    
832     </p>
833     <p>Warning and Error result sets MUST be single line and
834     have the following format:
835     </p>
836     <p>
837     </p>
838     <ul class="text">
839     <li>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;"
840     </li>
841     <li>"ERR:&lt;error-code&gt;:&lt;error-message&gt;"
842     </li>
843     </ul><p>
844    
845     </p>
846     <p>Where &lt;warning-code&gt; and &lt;error-code&gt; are
847     numeric unique identifiers of the warning or error and
848     &lt;warning-message&gt; and &lt;error-message&gt; are
849     human readable descriptions of the warning or error
850     respectively.
851     </p>
852     <p>Examples:
853     </p>
854     <p>
855     </p>
856     <blockquote class="text">
857     <p>C: "LOAD INSTRUMENT '/home/me/Boesendorfer24bit.gig" 0 0
858     </p>
859     <p>S: "WRN:32:This is a 24 bit patch which is not supported natively yet."
860     </p>
861     </blockquote><p>
862    
863     </p>
864     <p>
865     </p>
866     <blockquote class="text">
867     <p>C: "GET AUDIO_OUTPUT_DRIVER_PARAMETER INFO ALSA EAR"
868     </p>
869     <p>S: "ERR:3456:Audio output driver 'ALSA' does not have a parameter 'EAR'."
870     </p>
871     </blockquote><p>
872    
873     </p>
874     <p>
875     </p>
876     <blockquote class="text">
877     <p>C: "GET AUDIO_OUTPUT_DEVICE INFO 123456"
878     </p>
879     <p>S: "ERR:9:There is no audio output device with index 123456."
880     </p>
881     </blockquote><p>
882    
883     </p>
884     <p>Normal result sets could be:
885     </p>
886     <p>
887     </p>
888     <ol class="text">
889     <li>Empty
890     </li>
891     <li>Single line
892     </li>
893     <li>Multi-line
894     </li>
895     </ol><p>
896    
897     </p>
898     <p> Empty result set is issued when the server only
899     needed to acknowledge the fact that the request was
900     received and it was processed successfully and no
901     additional information is available. This result set has
902     the following format:
903     </p>
904     <p>
905     </p>
906     <blockquote class="text">
907     <p>"OK"
908     </p>
909     </blockquote><p>
910    
911     </p>
912     <p>Example:
913     </p>
914     <p>
915     </p>
916     <blockquote class="text">
917     <p>C: "SET AUDIO_OUTPUT_DEVICE_PARAMETER 0 CHANNELS=4"
918     </p>
919     <p>S: "OK"
920     </p>
921     </blockquote><p>
922    
923     </p>
924     <p>Single line result sets are command specific. One
925     example of a single line result set is an empty line.
926     Multi-line result sets are command specific and may
927     include one or more lines of information. They MUST
928     always end with the following line:
929     </p>
930     <p>
931     </p>
932     <blockquote class="text">
933     <p>"."
934     </p>
935     </blockquote><p>
936    
937     </p>
938     <p>Example:
939     </p>
940     <p>
941     </p>
942     <blockquote class="text">
943     <p>C: "GET AUDIO_OUTPUT_DEVICE INFO 0"
944     </p>
945     <p>S: "DRIVER: ALSA"
946     </p>
947     <p>&nbsp;&nbsp;&nbsp;"CHANNELS: 2"
948     </p>
949     <p>&nbsp;&nbsp;&nbsp;"SAMPLERATE: 44100"
950     </p>
951     <p>&nbsp;&nbsp;&nbsp;"ACTIVE: true"
952     </p>
953     <p>&nbsp;&nbsp;&nbsp;"FRAGMENTS: 2"
954     </p>
955     <p>&nbsp;&nbsp;&nbsp;"FRAGMENTSIZE: 128"
956     </p>
957     <p>&nbsp;&nbsp;&nbsp;"CARD: '0,0'"
958     </p>
959     <p>&nbsp;&nbsp;&nbsp;"."
960     </p>
961     </blockquote><p>
962    
963     </p>
964     <p>In addition to above mentioned formats, warnings and
965     empty result sets MAY be indexed. In this case, they
966     have the following formats respectively:
967     </p>
968     <p>
969     </p>
970     <ul class="text">
971     <li>"WRN[&lt;index&gt;]:&lt;warning-code&gt;:&lt;warning-message&gt;"
972     </li>
973     <li>"OK[&lt;index&gt;]"
974     </li>
975     </ul><p>
976    
977     </p>
978     <p>where &lt;index&gt; is command specific and is used
979     to indicate channel number that the result set was
980     related to or other integer value.
981     </p>
982     <p>Each line of the result set MUST end with
983     &lt;CRLF&gt;.
984     </p>
985     <p>Examples:
986     </p>
987     <p>
988     </p>
989     <blockquote class="text">
990     <p>C: "ADD CHANNEL"
991     </p>
992     <p>S: "OK[12]"
993     </p>
994     </blockquote><p>
995    
996     </p>
997     <p>
998     </p>
999     <blockquote class="text">
1000     <p>C: "CREATE AUDIO_OUTPUT_DEVICE ALSA SAMPLERATE=96000"
1001     </p>
1002     <p>S: "WRN[0]:32:Sample rate not supported, using 44100 instead."
1003     </p>
1004     </blockquote><p>
1005    
1006     </p>
1007     <a name="anchor7"></a><br /><hr />
1008     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
1009     <a name="rfc.section.5.2"></a><h3>5.2.&nbsp;
1010     Subscribe/notify communication method</h3>
1011    
1012     <p>This more sophisticated communication method is actually
1013     only an extension of the simple request/response
1014     communication method. The front-end still uses a TCP
1015     connection and sends the same commands on the TCP
1016     connection. Two extra commands are SUBSCRIBE and UNSUBSCRIBE
1017     commands that allow a client to tell the server that it is
1018     interested in receiving notifications about certain events
1019     as they happen on the server. The SUBSCRIBE command has the
1020     following syntax:
1021     </p>
1022     <p>
1023     </p>
1024     <blockquote class="text">
1025     <p>SUBSCRIBE &lt;event-id&gt;
1026     </p>
1027     </blockquote><p>
1028    
1029     </p>
1030     <p>where &lt;event-id&gt; will be replaced by the respective
1031     event that client wants to subscribe to. Upon receiving such
1032     request, server SHOULD respond with OK and start sending
1033     EVENT notifications when a given even has occurred to the
1034     front-end when an event has occurred. It MAY be possible
1035     certain events may be sent before OK response during real
1036     time nature of their generation. Event messages have the
1037     following format:
1038     </p>
1039     <p>
1040     </p>
1041     <blockquote class="text">
1042     <p>NOTIFY:&lt;event-id&gt;:&lt;custom-event-data&gt;
1043     </p>
1044     </blockquote><p>
1045    
1046     </p>
1047     <p>where &lt;event-id&gt; uniquely identifies the event that
1048     has occurred and &lt;custom-event-data&gt; is event
1049     specific.
1050     </p>
1051     <p>Several rules must be followed by the server when
1052     generating events:
1053     </p>
1054     <p>
1055     </p>
1056     <ol class="text">
1057     <li>Events MUST NOT be sent to any client who has not
1058     issued an appropriate SUBSCRIBE command.
1059     </li>
1060     <li>Events MUST only be sent using the same
1061     connection that was used to subscribe to them.
1062     </li>
1063     <li>When response is being sent to the client, event
1064     MUST be inserted in the stream before or after the
1065     response, but NOT in the middle. Same is true about
1066     the response. It should never be inserted in the
1067     middle of the event message as well as any other
1068     response.
1069     </li>
1070     </ol><p>
1071    
1072     </p>
1073     <p>If the client is not interested in a particular event
1074     anymore it MAY issue UNSUBSCRIBE command using the following
1075     syntax:
1076     </p>
1077     <p>
1078     </p>
1079     <blockquote class="text">
1080     <p>UNSUBSCRIBE &lt;event-id&gt;
1081     </p>
1082     </blockquote><p>
1083    
1084     </p>
1085     <p>where &lt;event-id&gt; will be replace by the respective
1086     event that client is no longer interested in receiving. For
1087     a list of supported events see <a class='info' href='#events'>Section&nbsp;8<span> (</span><span class='info'>Events</span><span>)</span></a>.
1088     </p>
1089     <p>Example: the fill states of disk stream buffers have
1090     changed on sampler channel 4 and the LinuxSampler instance
1091     will react by sending the following message to all clients
1092     who subscribed to this event:
1093     </p>
1094     <p>
1095     </p>
1096     <blockquote class="text">
1097     <p>NOTIFY:CHANNEL_BUFFER_FILL:4 [35]62%,[33]80%,[37]98%
1098     </p>
1099     </blockquote><p>
1100    
1101     </p>
1102     <p>Which means there are currently three active streams on
1103     sampler channel 4, where the stream with ID "35" is filled
1104     by 62%, stream with ID 33 is filled by 80% and stream with
1105     ID 37 is filled by 98%.
1106     </p>
1107     <p>Clients may choose to open more than one connection to
1108     the server and use some connections to receive notifications
1109     while using other connections to issue commands to the
1110     back-end. This is entirely legal and up to the
1111     implementation. This does not change the protocol in any way
1112     and no special restrictions exist on the server to allow or
1113     disallow this or to track what connections belong to what
1114     front-ends. Server will listen on a single port, accept
1115     multiple connections and support protocol described in this
1116     specification in it's entirety on this single port on each
1117     connection that it accepted.
1118     </p>
1119     <p>Due to the fact that TCP is used for this communication,
1120     dead peers will be detected automatically by the OS TCP
1121     stack. While it may take a while to detect dead peers if no
1122     traffic is being sent from server to client (TCP keep-alive
1123     timer is set to 2 hours on many OSes) it will not be an
1124     issue here as when notifications are sent by the server,
1125     dead client will be detected quickly.
1126     </p>
1127     <p>When connection is closed for any reason server MUST
1128     forget all subscriptions that were made on this connection.
1129     If client reconnects it MUST resubscribe to all events that
1130     it wants to receive.
1131     </p>
1132     <a name="control_commands"></a><br /><hr />
1133     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
1134     <a name="rfc.section.6"></a><h3>6.&nbsp;
1135     Description for control commands</h3>
1136    
1137     <p>This chapter will describe the available control commands
1138     that can be sent on the TCP connection in detail. Some certain
1139     commands (e.g. <a class='info' href='#GET CHANNEL INFO'>"GET CHANNEL INFO"<span> (</span><span class='info'>Getting sampler channel information</span><span>)</span></a>
1140     or <a class='info' href='#GET ENGINE INFO'>"GET ENGINE INFO"<span> (</span><span class='info'>Getting information about an engine</span><span>)</span></a>) lead to
1141     multiple-line responses. In this case LinuxSampler signals the
1142     end of the response by a "." (single dot) line.
1143     </p>
1144     <a name="anchor8"></a><br /><hr />
1145     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
1146     <a name="rfc.section.6.1"></a><h3>6.1.&nbsp;
1147     Ignored lines and comments</h3>
1148    
1149     <p>White lines, that is lines which only contain space and
1150     tabulator characters, and lines that start with a "#"
1151     character are ignored, thus it's possible for example to
1152     group commands and to place comments in a LSCP script
1153     file.
1154     </p>
1155     <a name="anchor9"></a><br /><hr />
1156     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
1157     <a name="rfc.section.6.2"></a><h3>6.2.&nbsp;
1158     Configuring audio drivers</h3>
1159    
1160     <p>Instances of drivers in LinuxSampler are called devices.
1161     You can use multiple audio devices simultaneously, e.g. to
1162     output the sound of one sampler channel using the ALSA audio
1163     output driver, and on another sampler channel you might want
1164     to use the JACK audio output driver. For particular audio
1165     output systems it's also possible to create several devices
1166     of the same audio output driver, e.g. two separate ALSA
1167     audio output devices for using two different sound cards at
1168     the same time. This chapter describes all commands to
1169     configure LinuxSampler's audio output devices and their
1170     parameters.
1171     </p>
1172     <p>Instead of defining commands and parameters for each
1173     driver individually, all possible parameters, their meanings
1174     and possible values have to be obtained at runtime. This
1175     makes the protocol a bit abstract, but has the advantage,
1176     that front-ends can be written independently of what drivers
1177     are currently implemented and what parameters these drivers
1178     are actually offering. This means front-ends can even handle
1179     drivers which are implemented somewhere in future without
1180     modifying the front-end at all.
1181     </p>
1182     <p>Note: examples in this chapter showing particular
1183     parameters of drivers are not meant as specification of the
1184     drivers' parameters. Driver implementations in LinuxSampler
1185     might have complete different parameter names and meanings
1186     than shown in these examples or might change in future, so
1187     these examples are only meant for showing how to retrieve
1188     what parameters drivers are offering, how to retrieve their
1189     possible values, etc.
1190     </p>
1191     <a name="GET AVAILABLE_AUDIO_OUTPUT_DRIVERS"></a><br /><hr />
1192     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
1193     <a name="rfc.section.6.2.1"></a><h3>6.2.1.&nbsp;
1194     Getting amount of available audio output drivers</h3>
1195    
1196     <p>Use the following command to get the number of
1197     audio output drivers currently available for the
1198     LinuxSampler instance:
1199     </p>
1200     <p>
1201     </p>
1202     <blockquote class="text">
1203     <p>GET AVAILABLE_AUDIO_OUTPUT_DRIVERS
1204     </p>
1205     </blockquote><p>
1206    
1207     </p>
1208     <p>Possible Answers:
1209     </p>
1210     <p>
1211     </p>
1212     <blockquote class="text">
1213     <p>LinuxSampler will answer by sending the
1214     number of audio output drivers.
1215     </p>
1216     </blockquote><p>
1217    
1218     </p>
1219     <p>Example:
1220     </p>
1221     <p>
1222     </p>
1223     <blockquote class="text">
1224     <p>C: "GET AVAILABLE_AUDIO_OUTPUT_DRIVERS"
1225     </p>
1226     <p>S: "2"
1227     </p>
1228     </blockquote><p>
1229    
1230     </p>
1231     <a name="LIST AVAILABLE_AUDIO_OUTPUT_DRIVERS"></a><br /><hr />
1232     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
1233     <a name="rfc.section.6.2.2"></a><h3>6.2.2.&nbsp;
1234     Getting all available audio output drivers</h3>
1235    
1236     <p>Use the following command to list all audio output
1237     drivers currently available for the LinuxSampler
1238     instance:
1239     </p>
1240     <p>
1241     </p>
1242     <blockquote class="text">
1243     <p>LIST AVAILABLE_AUDIO_OUTPUT_DRIVERS
1244     </p>
1245     </blockquote><p>
1246    
1247     </p>
1248     <p>Possible Answers:
1249     </p>
1250     <p>
1251     </p>
1252     <blockquote class="text">
1253     <p>LinuxSampler will answer by sending comma
1254     separated character strings, each symbolizing an
1255     audio output driver.
1256     </p>
1257     </blockquote><p>
1258    
1259     </p>
1260     <p>Example:
1261     </p>
1262     <p>
1263     </p>
1264     <blockquote class="text">
1265     <p>C: "LIST AVAILABLE_AUDIO_OUTPUT_DRIVERS"
1266     </p>
1267     <p>S: "ALSA,JACK"
1268     </p>
1269     </blockquote><p>
1270    
1271     </p>
1272     <a name="GET AUDIO_OUTPUT_DRIVER INFO"></a><br /><hr />
1273     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
1274     <a name="rfc.section.6.2.3"></a><h3>6.2.3.&nbsp;
1275     Getting information about a specific audio
1276     output driver</h3>
1277    
1278     <p>Use the following command to get detailed information
1279     about a specific audio output driver:
1280     </p>
1281     <p>
1282     </p>
1283     <blockquote class="text">
1284     <p>GET AUDIO_OUTPUT_DRIVER INFO
1285     &lt;audio-output-driver&gt;
1286     </p>
1287     </blockquote><p>
1288    
1289     </p>
1290     <p>Where &lt;audio-output-driver&gt; is the name of the
1291     audio output driver, returned by the
1292     <a class='info' href='#LIST AVAILABLE_AUDIO_OUTPUT_DRIVERS'>"LIST AVAILABLE_AUDIO_OUTPUT_DRIVERS"<span> (</span><span class='info'>Getting all available audio output drivers</span><span>)</span></a> command.
1293     </p>
1294     <p>Possible Answers:
1295     </p>
1296     <p>
1297     </p>
1298     <blockquote class="text">
1299     <p>LinuxSampler will answer by sending a
1300     &lt;CRLF&gt; separated list. Each answer line
1301     begins with the information category name
1302     followed by a colon and then a space character
1303     &lt;SP&gt; and finally the info character string
1304     to that info category. At the moment the
1305     following information categories are
1306     defined:
1307     </p>
1308     <p>
1309     </p>
1310     <blockquote class="text">
1311     <p>DESCRIPTION -
1312     </p>
1313     <blockquote class="text">
1314     <p> character string describing the
1315     audio output driver
1316     </p>
1317     </blockquote>
1318    
1319    
1320     <p>VERSION -
1321     </p>
1322     <blockquote class="text">
1323     <p>character string reflecting the
1324     driver's version
1325     </p>
1326     </blockquote>
1327    
1328    
1329     <p>PARAMETERS -
1330     </p>
1331     <blockquote class="text">
1332     <p>comma separated list of all
1333     parameters available for the given
1334     audio output driver, at least
1335     parameters 'channels', 'samplerate'
1336     and 'active' are offered by all audio
1337     output drivers
1338     </p>
1339     </blockquote>
1340    
1341    
1342     </blockquote>
1343    
1344    
1345     <p>The mentioned fields above don't have to be
1346     in particular order.
1347     </p>
1348     </blockquote><p>
1349    
1350     </p>
1351     <p>Example:
1352     </p>
1353     <p>
1354     </p>
1355     <blockquote class="text">
1356     <p>C: "GET AUDIO_OUTPUT_DRIVER INFO ALSA"
1357     </p>
1358     <p>S: "DESCRIPTION: Advanced Linux Sound
1359     Architecture"
1360     </p>
1361     <p>&nbsp;&nbsp;&nbsp;"VERSION: 1.0"
1362     </p>
1363     <p>&nbsp;&nbsp;&nbsp;"PARAMETERS:
1364     DRIVER,CHANNELS,SAMPLERATE,ACTIVE,FRAGMENTS,
1365     FRAGMENTSIZE,CARD"
1366     </p>
1367     <p>&nbsp;&nbsp;&nbsp;"."
1368     </p>
1369     </blockquote><p>
1370    
1371     </p>
1372     <a name="GET AUDIO_OUTPUT_DRIVER_PARAMETER INFO"></a><br /><hr />
1373     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
1374     <a name="rfc.section.6.2.4"></a><h3>6.2.4.&nbsp;
1375     Getting information about specific audio
1376     output driver parameter</h3>
1377    
1378     <p>Use the following command to get detailed information
1379     about a specific audio output driver parameter:
1380     </p>
1381     <p>
1382     </p>
1383     <blockquote class="text">
1384     <p>GET AUDIO_OUTPUT_DRIVER_PARAMETER INFO &lt;audio&gt; &lt;prm&gt; [&lt;deplist&gt;]
1385     </p>
1386     </blockquote><p>
1387    
1388     </p>
1389     <p>Where &lt;audio&gt; is the name of the audio output
1390     driver as returned by the <a class='info' href='#LIST AVAILABLE_AUDIO_OUTPUT_DRIVERS'>"LIST AVAILABLE_AUDIO_OUTPUT_DRIVERS"<span> (</span><span class='info'>Getting all available audio output drivers</span><span>)</span></a> command,
1391     &lt;prm&gt; a specific parameter name for which information should be
1392     obtained (as returned by the
1393     <a class='info' href='#GET AUDIO_OUTPUT_DRIVER INFO'>"GET AUDIO_OUTPUT_DRIVER INFO"<span> (</span><span class='info'>Getting information about a specific audio output driver</span><span>)</span></a> command) and
1394     &lt;deplist&gt; is an optional list of parameters on which the sought
1395     parameter &lt;prm&gt; depends on, &lt;deplist&gt; is a list of key-value
1396     pairs in form of "key1=val1 key2=val2 ...", where character string values
1397     are encapsulated into apostrophes ('). Arguments given with &lt;deplist&gt;
1398     which are not dependency parameters of &lt;prm&gt; will be ignored, means
1399     the front-end application can simply put all parameters into &lt;deplist&gt;
1400     with the values already selected by the user.
1401     </p>
1402     <p>Possible Answers:
1403     </p>
1404     <p>
1405     </p>
1406     <blockquote class="text">
1407     <p>LinuxSampler will answer by sending a
1408     &lt;CRLF&gt; separated list.
1409     Each answer line begins with the information category name
1410     followed by a colon and then a space character &lt;SP&gt; and
1411     finally
1412     the info character string to that info category. There are
1413     information which is always returned, independently of the
1414     given driver parameter and there are optional information
1415     which is only shown dependently to given driver parameter. At
1416     the moment the following information categories are defined:
1417     </p>
1418     </blockquote><p>
1419    
1420     </p>
1421     <p>
1422     </p>
1423     <blockquote class="text">
1424     <p>TYPE -
1425     </p>
1426     <blockquote class="text">
1427     <p>either "BOOL" for boolean value(s) or
1428     "INT" for integer
1429     value(s) or "FLOAT" for dotted number(s) or "STRING" for
1430     character string(s)
1431     (always returned, no matter which driver parameter)
1432     </p>
1433     </blockquote>
1434    
1435    
1436     <p>DESCRIPTION -
1437     </p>
1438     <blockquote class="text">
1439     <p>arbitrary text describing the purpose of the parameter
1440     (always returned, no matter which driver parameter)
1441     </p>
1442     </blockquote>
1443    
1444    
1445     <p>MANDATORY -
1446     </p>
1447     <blockquote class="text">
1448     <p>either true or false, defines if this parameter must be
1449     given when the device is to be created with the
1450     <a class='info' href='#CREATE AUDIO_OUTPUT_DEVICE'>'CREATE AUDIO_OUTPUT_DEVICE'<span> (</span><span class='info'>Creating an audio output device</span><span>)</span></a>
1451     command (always returned, no matter which driver parameter)
1452     </p>
1453     </blockquote>
1454    
1455    
1456     <p>FIX -
1457     </p>
1458     <blockquote class="text">
1459     <p>either true or false, if false then this parameter can
1460     be changed at any time, once the device is created by
1461     the <a class='info' href='#CREATE AUDIO_OUTPUT_DEVICE'>'CREATE AUDIO_OUTPUT_DEVICE'<span> (</span><span class='info'>Creating an audio output device</span><span>)</span></a>
1462     command (always returned, no matter which driver parameter)
1463     </p>
1464     </blockquote>
1465    
1466    
1467     <p>MULTIPLICITY -
1468     </p>
1469     <blockquote class="text">
1470     <p>either true or false, defines if this parameter allows
1471     only one value or a list of values, where true means
1472     multiple values and false only a single value allowed
1473     (always returned, no matter which driver parameter)
1474     </p>
1475     </blockquote>
1476    
1477    
1478     <p>DEPENDS -
1479     </p>
1480     <blockquote class="text">
1481     <p>comma separated list of parameters this parameter depends
1482     on, means the values for fields 'DEFAULT', 'RANGE_MIN',
1483     'RANGE_MAX' and 'POSSIBILITIES' might depend on these
1484     listed parameters, for example assuming that an audio
1485     driver (like the ALSA driver) offers parameters 'card'
1486     and 'samplerate' then parameter 'samplerate' would
1487     depend on 'card' because the possible values for
1488     'samplerate' depends on the sound card which can be
1489     chosen by the 'card' parameter
1490     (optionally returned, dependent to driver parameter)
1491     </p>
1492     </blockquote>
1493    
1494    
1495     <p>DEFAULT -
1496     </p>
1497     <blockquote class="text">
1498     <p>reflects the default value for this parameter which is
1499     used when the device is created and not explicitly
1500     given with the <a class='info' href='#CREATE AUDIO_OUTPUT_DEVICE'>'CREATE AUDIO_OUTPUT_DEVICE'<span> (</span><span class='info'>Creating an audio output device</span><span>)</span></a> command,
1501     in case of MULTIPLCITY=true, this is a comma separated
1502     list, that's why character strings are encapsulated into
1503     apostrophes (')
1504     (optionally returned, dependent to driver parameter)
1505     </p>
1506     </blockquote>
1507    
1508    
1509     <p>RANGE_MIN -
1510     </p>
1511     <blockquote class="text">
1512     <p>defines lower limit of the allowed value range for this
1513     parameter, can be an integer value as well as a dotted
1514     number, this parameter is often used in conjunction
1515     with RANGE_MAX, but may also appear without
1516     (optionally returned, dependent to driver parameter)
1517     </p>
1518     </blockquote>
1519    
1520    
1521     <p>RANGE_MAX -
1522     </p>
1523     <blockquote class="text">
1524     <p>defines upper limit of the allowed value range for this
1525     parameter, can be an integer value as well as a dotted
1526     number, this parameter is often used in conjunction with
1527     RANGE_MIN, but may also appear without
1528     (optionally returned, dependent to driver parameter)
1529     </p>
1530     </blockquote>
1531    
1532    
1533     <p>POSSIBILITIES -
1534     </p>
1535     <blockquote class="text">
1536     <p>comma separated list of possible values for this
1537     parameter, character strings are encapsulated into
1538     apostrophes
1539     (optionally returned, dependent to driver parameter)
1540     </p>
1541     </blockquote>
1542    
1543    
1544     </blockquote><p>
1545    
1546     </p>
1547     <p>The mentioned fields above don't have to be in particular order.
1548     </p>
1549     <p>Examples:
1550     </p>
1551     <p>
1552     </p>
1553     <blockquote class="text">
1554     <p>C: "GET AUDIO_OUTPUT_DRIVER_PARAMETER INFO ALSA CARD"
1555     </p>
1556     <p>S: "DESCRIPTION: sound card to be used"
1557     </p>
1558     <p>&nbsp;&nbsp;&nbsp;"TYPE: STRING"
1559     </p>
1560     <p>&nbsp;&nbsp;&nbsp;"MANDATORY: false"
1561     </p>
1562     <p>&nbsp;&nbsp;&nbsp;"FIX: true"
1563     </p>
1564     <p>&nbsp;&nbsp;&nbsp;"MULTIPLICITY: false"
1565     </p>
1566     <p>&nbsp;&nbsp;&nbsp;"DEFAULT: '0,0'"
1567     </p>
1568     <p>&nbsp;&nbsp;&nbsp;"POSSIBILITIES: '0,0','1,0','2,0'"
1569     </p>
1570     <p>&nbsp;&nbsp;&nbsp;"."
1571     </p>
1572     </blockquote><p>
1573    
1574     </p>
1575     <p>
1576     </p>
1577     <blockquote class="text">
1578     <p>C: "GET AUDIO_OUTPUT_DRIVER_PARAMETER INFO ALSA SAMPLERATE"
1579     </p>
1580     <p>S: "DESCRIPTION: output sample rate in Hz"
1581     </p>
1582     <p>&nbsp;&nbsp;&nbsp;"TYPE: INT"
1583     </p>
1584     <p>&nbsp;&nbsp;&nbsp;"MANDATORY: false"
1585     </p>
1586     <p>&nbsp;&nbsp;&nbsp;"FIX: false"
1587     </p>
1588     <p>&nbsp;&nbsp;&nbsp;"MULTIPLICITY: false"
1589     </p>
1590     <p>&nbsp;&nbsp;&nbsp;"DEPENDS: card"
1591     </p>
1592     <p>&nbsp;&nbsp;&nbsp;"DEFAULT: 44100"
1593     </p>
1594     <p>&nbsp;&nbsp;&nbsp;"."
1595     </p>
1596     </blockquote><p>
1597    
1598     </p>
1599     <p>
1600     </p>
1601     <blockquote class="text">
1602     <p>C: "GET AUDIO_OUTPUT_DRIVER_PARAMETER INFO ALSA SAMPLERATE CARD='0,0'"
1603     </p>
1604     <p>S: "DESCRIPTION: output sample rate in Hz"
1605     </p>
1606     <p>&nbsp;&nbsp;&nbsp;"TYPE: INT"
1607     </p>
1608     <p>&nbsp;&nbsp;&nbsp;"MANDATORY: false"
1609     </p>
1610     <p>&nbsp;&nbsp;&nbsp;"FIX: false"
1611     </p>
1612     <p>&nbsp;&nbsp;&nbsp;"MULTIPLICITY: false"
1613     </p>
1614     <p>&nbsp;&nbsp;&nbsp;"DEPENDS: card"
1615     </p>
1616     <p>&nbsp;&nbsp;&nbsp;"DEFAULT: 44100"
1617     </p>
1618     <p>&nbsp;&nbsp;&nbsp;"RANGE_MIN: 22050"
1619     </p>
1620     <p>&nbsp;&nbsp;&nbsp;"RANGE_MAX: 96000"
1621     </p>
1622     <p>&nbsp;&nbsp;&nbsp;"."
1623     </p>
1624     </blockquote><p>
1625    
1626     </p>
1627     <a name="CREATE AUDIO_OUTPUT_DEVICE"></a><br /><hr />
1628     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
1629     <a name="rfc.section.6.2.5"></a><h3>6.2.5.&nbsp;
1630     Creating an audio output device</h3>
1631    
1632     <p>Use the following command to create a new audio output device for the desired audio output system:
1633     </p>
1634     <p>
1635     </p>
1636     <blockquote class="text">
1637     <p>CREATE AUDIO_OUTPUT_DEVICE &lt;audio-output-driver&gt; [&lt;param-list&gt;]
1638     </p>
1639     </blockquote><p>
1640    
1641     </p>
1642     <p>Where &lt;audio-output-driver&gt; should be replaced by the desired audio
1643     output system as returned by the
1644     <a class='info' href='#LIST AVAILABLE_AUDIO_OUTPUT_DRIVERS'>"LIST AVAILABLE_AUDIO_OUTPUT_DRIVERS"<span> (</span><span class='info'>Getting all available audio output drivers</span><span>)</span></a>
1645     command and &lt;param-list&gt; by an optional list of driver
1646     specific parameters in form of "key1=val1 key2=val2 ...", where
1647     character string values should be encapsulated into apostrophes (').
1648     Note that there might be drivers which require parameter(s) to be
1649     given with this command. Use the previously described commands in
1650     this chapter to get this information.
1651     </p>
1652     <p>Possible Answers:
1653     </p>
1654     <p>
1655     </p>
1656     <blockquote class="text">
1657     <p>"OK[&lt;device-id&gt;]" -
1658     </p>
1659     <blockquote class="text">
1660     <p>in case the device was successfully created, where
1661     &lt;device-id&gt; is the numerical ID of the new device
1662     </p>
1663     </blockquote>
1664    
1665    
1666     <p>"WRN[&lt;device-id&gt;]:&lt;warning-code&gt;:&lt;warning-message&gt;" -
1667     </p>
1668     <blockquote class="text">
1669     <p>in case the device was created successfully, where
1670     &lt;device-id&gt; is the numerical ID of the new device, but there
1671     are noteworthy issue(s) related (e.g. sound card doesn't
1672     support given hardware parameters and the driver is using
1673     fall-back values), providing an appropriate warning code and
1674     warning message
1675     </p>
1676     </blockquote>
1677    
1678    
1679     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
1680     </p>
1681     <blockquote class="text">
1682     <p>in case it failed, providing an appropriate error code and error message
1683     </p>
1684     </blockquote>
1685    
1686    
1687     </blockquote><p>
1688    
1689     </p>
1690     <p>Examples:
1691     </p>
1692     <p>
1693     </p>
1694     <blockquote class="text">
1695     <p>C: "CREATE AUDIO_OUTPUT_DEVICE ALSA"
1696     </p>
1697     <p>S: "OK[0]"
1698     </p>
1699     </blockquote><p>
1700    
1701     </p>
1702     <p>
1703     </p>
1704     <blockquote class="text">
1705     <p>C: "CREATE AUDIO_OUTPUT_DEVICE ALSA CARD='2,0' SAMPLERATE=96000"
1706     </p>
1707     <p>S: "OK[1]"
1708     </p>
1709     </blockquote><p>
1710    
1711     </p>
1712     <a name="DESTROY AUDIO_OUTPUT_DEVICE"></a><br /><hr />
1713     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
1714     <a name="rfc.section.6.2.6"></a><h3>6.2.6.&nbsp;
1715     Destroying an audio output device</h3>
1716    
1717     <p>Use the following command to destroy a created output device:
1718     </p>
1719     <p>
1720     </p>
1721     <blockquote class="text">
1722     <p>DESTROY AUDIO_OUTPUT_DEVICE &lt;device-id&gt;
1723     </p>
1724     </blockquote><p>
1725    
1726     </p>
1727     <p>Where &lt;device-id&gt; should be replaced by the numerical ID of the
1728     audio output device as given by the
1729     <a class='info' href='#CREATE AUDIO_OUTPUT_DEVICE'>"CREATE AUDIO_OUTPUT_DEVICE"<span> (</span><span class='info'>Creating an audio output device</span><span>)</span></a>
1730     or <a class='info' href='#LIST AUDIO_OUTPUT_DEVICES'>"LIST AUDIO_OUTPUT_DEVICES"<span> (</span><span class='info'>Getting all created audio output device list</span><span>)</span></a>
1731     command.
1732     </p>
1733     <p>Possible Answers:
1734     </p>
1735     <p>
1736     </p>
1737     <blockquote class="text">
1738     <p>"OK" -
1739     </p>
1740     <blockquote class="text">
1741     <p>in case the device was successfully destroyed
1742     </p>
1743     </blockquote>
1744    
1745    
1746     <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
1747     </p>
1748     <blockquote class="text">
1749     <p>in case the device was destroyed successfully, but there are
1750     noteworthy issue(s) related (e.g. an audio over ethernet
1751     driver was unloaded but the other host might not be
1752     informed about this situation), providing an appropriate
1753     warning code and warning message
1754     </p>
1755     </blockquote>
1756    
1757    
1758     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
1759     </p>
1760     <blockquote class="text">
1761     <p>in case it failed, providing an appropriate error code and
1762     error message
1763     </p>
1764     </blockquote>
1765    
1766    
1767     </blockquote><p>
1768    
1769     </p>
1770     <p>Example:
1771     </p>
1772     <p>
1773     </p>
1774     <blockquote class="text">
1775     <p>C: "DESTROY AUDIO_OUTPUT_DEVICE 0"
1776     </p>
1777     <p>S: "OK"
1778     </p>
1779     </blockquote><p>
1780    
1781     </p>
1782     <a name="GET AUDIO_OUTPUT_DEVICES"></a><br /><hr />
1783     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
1784     <a name="rfc.section.6.2.7"></a><h3>6.2.7.&nbsp;
1785     Getting all created audio output device count</h3>
1786    
1787     <p>Use the following command to count all created audio output devices:
1788     </p>
1789     <p>
1790     </p>
1791     <blockquote class="text">
1792     <p>GET AUDIO_OUTPUT_DEVICES
1793     </p>
1794     </blockquote><p>
1795    
1796     </p>
1797     <p>Possible Answers:
1798     </p>
1799     <p>
1800     </p>
1801     <blockquote class="text">
1802     <p>LinuxSampler will answer by sending the current number of all
1803     audio output devices.
1804     </p>
1805     </blockquote><p>
1806    
1807     </p>
1808     <p>Example:
1809     </p>
1810     <p>
1811     </p>
1812     <blockquote class="text">
1813     <p>C: "GET AUDIO_OUTPUT_DEVICES"
1814     </p>
1815     <p>S: "4"
1816     </p>
1817     </blockquote><p>
1818    
1819     </p>
1820     <a name="LIST AUDIO_OUTPUT_DEVICES"></a><br /><hr />
1821     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
1822     <a name="rfc.section.6.2.8"></a><h3>6.2.8.&nbsp;
1823     Getting all created audio output device list</h3>
1824    
1825     <p>Use the following command to list all created audio output devices:
1826     </p>
1827     <p>
1828     </p>
1829     <blockquote class="text">
1830     <p>LIST AUDIO_OUTPUT_DEVICES
1831     </p>
1832     </blockquote><p>
1833    
1834     </p>
1835     <p>Possible Answers:
1836     </p>
1837     <p>
1838     </p>
1839     <blockquote class="text">
1840     <p>LinuxSampler will answer by sending a comma separated list with
1841     the numerical IDs of all audio output devices.
1842     </p>
1843     </blockquote><p>
1844    
1845     </p>
1846     <p>Example:
1847     </p>
1848     <p>
1849     </p>
1850     <blockquote class="text">
1851     <p>C: "LIST AUDIO_OUTPUT_DEVICES"
1852     </p>
1853     <p>S: "0,1,4,5"
1854     </p>
1855     </blockquote><p>
1856    
1857     </p>
1858     <a name="GET AUDIO_OUTPUT_DEVICE INFO"></a><br /><hr />
1859     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
1860     <a name="rfc.section.6.2.9"></a><h3>6.2.9.&nbsp;
1861     Getting current settings of an audio output device</h3>
1862    
1863     <p>Use the following command to get current settings of a specific, created audio output device:
1864     </p>
1865     <p>
1866     </p>
1867     <blockquote class="text">
1868     <p>GET AUDIO_OUTPUT_DEVICE INFO &lt;device-id&gt;
1869     </p>
1870     </blockquote><p>
1871    
1872     </p>
1873     <p>Where &lt;device-id&gt; should be replaced by numerical ID
1874     of the audio output device as e.g. returned by the
1875     <a class='info' href='#LIST AUDIO_OUTPUT_DEVICES'>"LIST AUDIO_OUTPUT_DEVICES"<span> (</span><span class='info'>Getting all created audio output device list</span><span>)</span></a> command.
1876     </p>
1877     <p>Possible Answers:
1878     </p>
1879     <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
1880     Each answer line begins with the information category name
1881     followed by a colon and then a space character &lt;SP&gt; and finally
1882     the info character string to that info category. As some
1883     parameters might allow multiple values, character strings are
1884     encapsulated into apostrophes ('). At the moment the following
1885     information categories are defined (independently of device):
1886     </p>
1887     <p>
1888     </p>
1889     <blockquote class="text">
1890     <p>DRIVER -
1891     </p>
1892     <blockquote class="text">
1893     <p>identifier of the used audio output driver, as also
1894     returned by the
1895     <a class='info' href='#LIST AVAILABLE_AUDIO_OUTPUT_DRIVERS'>"LIST AVAILABLE_AUDIO_OUTPUT_DRIVERS"<span> (</span><span class='info'>Getting all available audio output drivers</span><span>)</span></a>
1896     command
1897     </p>
1898     </blockquote>
1899    
1900    
1901     <p>CHANNELS -
1902     </p>
1903     <blockquote class="text">
1904     <p>amount of audio output channels this device currently
1905     offers
1906     </p>
1907     </blockquote>
1908    
1909    
1910     <p>SAMPLERATE -
1911     </p>
1912     <blockquote class="text">
1913     <p>playback sample rate the device uses
1914     </p>
1915     </blockquote>
1916    
1917    
1918     <p>ACTIVE -
1919     </p>
1920     <blockquote class="text">
1921     <p>either true or false, if false then the audio device is
1922     inactive and doesn't output any sound, nor do the
1923     sampler channels connected to this audio device render
1924     any audio
1925     </p>
1926     </blockquote>
1927    
1928    
1929     </blockquote><p>
1930    
1931     </p>
1932     <p>The mentioned fields above don't have to be in particular
1933     order. The fields above are only those fields which are
1934     returned by all audio output devices. Every audio output driver
1935     might have its own, additional driver specific parameters (see
1936     <a class='info' href='#GET AUDIO_OUTPUT_DRIVER INFO'>Section&nbsp;6.2.3<span> (</span><span class='info'>Getting information about a specific audio output driver</span><span>)</span></a>)
1937     which are also returned by this command.
1938     </p>
1939     <p>Example:
1940     </p>
1941     <p>
1942     </p>
1943     <blockquote class="text">
1944     <p>C: "GET AUDIO_OUTPUT_DEVICE INFO 0"
1945     </p>
1946     <p>S: "DRIVER: ALSA"
1947     </p>
1948     <p>&nbsp;&nbsp;&nbsp;"CHANNELS: 2"
1949     </p>
1950     <p>&nbsp;&nbsp;&nbsp;"SAMPLERATE: 44100"
1951     </p>
1952     <p>&nbsp;&nbsp;&nbsp;"ACTIVE: true"
1953     </p>
1954     <p>&nbsp;&nbsp;&nbsp;"FRAGMENTS: 2"
1955     </p>
1956     <p>&nbsp;&nbsp;&nbsp;"FRAGMENTSIZE: 128"
1957     </p>
1958     <p>&nbsp;&nbsp;&nbsp;"CARD: '0,0'"
1959     </p>
1960     <p>&nbsp;&nbsp;&nbsp;"."
1961     </p>
1962     </blockquote><p>
1963    
1964     </p>
1965     <a name="SET AUDIO_OUTPUT_DEVICE_PARAMETER"></a><br /><hr />
1966     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
1967     <a name="rfc.section.6.2.10"></a><h3>6.2.10.&nbsp;
1968     Changing settings of audio output devices</h3>
1969    
1970     <p>Use the following command to alter a specific setting of a created audio output device:
1971     </p>
1972     <p>
1973     </p>
1974     <blockquote class="text">
1975     <p>SET AUDIO_OUTPUT_DEVICE_PARAMETER &lt;device-id&gt; &lt;key&gt;=&lt;value&gt;
1976     </p>
1977     </blockquote><p>
1978    
1979     </p>
1980     <p>Where &lt;device-id&gt; should be replaced by the numerical ID of the
1981     audio output device as given by the
1982     <a class='info' href='#CREATE AUDIO_OUTPUT_DEVICE'>"CREATE AUDIO_OUTPUT_DEVICE"<span> (</span><span class='info'>Creating an audio output device</span><span>)</span></a>
1983     or <a class='info' href='#LIST AUDIO_OUTPUT_DEVICES'>"LIST AUDIO_OUTPUT_DEVICES"<span> (</span><span class='info'>Getting all created audio output device list</span><span>)</span></a>
1984     command, &lt;key&gt; by the name of the parameter to change
1985     and &lt;value&gt; by the new value for this parameter.
1986     </p>
1987     <p>Possible Answers:
1988     </p>
1989     <p>
1990     </p>
1991     <blockquote class="text">
1992     <p>"OK" -
1993     </p>
1994     <blockquote class="text">
1995     <p>in case setting was successfully changed
1996     </p>
1997     </blockquote>
1998    
1999    
2000     <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
2001     </p>
2002     <blockquote class="text">
2003     <p>in case setting was changed successfully, but there are
2004     noteworthy issue(s) related, providing an appropriate
2005     warning code and warning message
2006     </p>
2007     </blockquote>
2008    
2009    
2010     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
2011     </p>
2012     <blockquote class="text">
2013     <p>in case it failed, providing an appropriate error code and
2014     error message
2015     </p>
2016     </blockquote>
2017    
2018    
2019     </blockquote><p>
2020    
2021     </p>
2022     <p>Example:
2023     </p>
2024     <p>
2025     </p>
2026     <blockquote class="text">
2027     <p>C: "SET AUDIO_OUTPUT_DEVICE_PARAMETER 0 FRAGMENTSIZE=128"
2028     </p>
2029     <p>S: "OK"
2030     </p>
2031     </blockquote><p>
2032    
2033     </p>
2034     <a name="GET AUDIO_OUTPUT_CHANNEL INFO"></a><br /><hr />
2035     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
2036     <a name="rfc.section.6.2.11"></a><h3>6.2.11.&nbsp;
2037     Getting information about an audio channel</h3>
2038    
2039     <p>Use the following command to get information about an audio channel:
2040     </p>
2041     <p>
2042     </p>
2043     <blockquote class="text">
2044     <p>GET AUDIO_OUTPUT_CHANNEL INFO &lt;device-id&gt; &lt;audio-chan&gt;
2045     </p>
2046     </blockquote><p>
2047    
2048     </p>
2049     <p>Where &lt;device-id&gt; is the numerical ID of the audio output device as given by the
2050     <a class='info' href='#CREATE AUDIO_OUTPUT_DEVICE'>"CREATE AUDIO_OUTPUT_DEVICE"<span> (</span><span class='info'>Creating an audio output device</span><span>)</span></a>
2051     or <a class='info' href='#LIST AUDIO_OUTPUT_DEVICES'>"LIST AUDIO_OUTPUT_DEVICES"<span> (</span><span class='info'>Getting all created audio output device list</span><span>)</span></a>
2052     command and &lt;audio-chan&gt; the audio channel number.
2053     </p>
2054     <p>Possible Answers:
2055     </p>
2056     <p>
2057     </p>
2058     <blockquote class="text">
2059     <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
2060     Each answer line begins with the information category name
2061     followed by a colon and then a space character &lt;SP&gt; and finally
2062     the info character string to that info category. At the moment
2063     the following information categories are defined:
2064     </p>
2065     <p>
2066     </p>
2067     <blockquote class="text">
2068     <p>NAME -
2069     </p>
2070     <blockquote class="text">
2071     <p>arbitrary character string naming the channel, which
2072     doesn't have to be unique (always returned by all audio channels)
2073     </p>
2074     </blockquote>
2075    
2076    
2077     <p>IS_MIX_CHANNEL -
2078     </p>
2079     <blockquote class="text">
2080     <p>either true or false, a mix-channel is not a real,
2081     independent audio channel, but a virtual channel which
2082     is mixed to another real channel, this mechanism is
2083     needed for sampler engines which need more audio
2084     channels than the used audio system might be able to offer
2085     (always returned by all audio channels)
2086     </p>
2087     </blockquote>
2088    
2089    
2090     <p>MIX_CHANNEL_DESTINATION -
2091     </p>
2092     <blockquote class="text">
2093     <p>numerical ID (positive integer including 0)
2094     which reflects the real audio channel (of the same audio
2095     output device) this mix channel refers to, means where
2096     the audio signal actually will be routed / added to
2097     (only returned in case the audio channel is mix channel)
2098     </p>
2099     </blockquote>
2100    
2101    
2102     </blockquote>
2103    
2104    
2105     </blockquote><p>
2106    
2107     </p>
2108     <p>The mentioned fields above don't have to be in particular
2109     order. The fields above are only those fields which are
2110     generally returned for the described cases by all audio
2111     channels regardless of the audio driver. Every audio channel
2112     might have its own, additional driver and channel specific
2113     parameters.
2114     </p>
2115     <p>Examples:
2116     </p>
2117     <p>
2118     </p>
2119     <blockquote class="text">
2120     <p>C: "GET AUDIO_OUTPUT_CHANNEL INFO 0 0"
2121     </p>
2122     <p>S: "NAME: studio monitor left"
2123     </p>
2124     <p>&nbsp;&nbsp;&nbsp;"IS_MIX_CHANNEL: false"
2125     </p>
2126     <p>&nbsp;&nbsp;&nbsp;"."
2127     </p>
2128     </blockquote><p>
2129    
2130     </p>
2131     <p>
2132     </p>
2133     <blockquote class="text">
2134     <p>C: "GET AUDIO_OUTPUT_CHANNEL INFO 0 1"
2135     </p>
2136     <p>S: "NAME: studio monitor right"
2137     </p>
2138     <p>&nbsp;&nbsp;&nbsp;"IS_MIX_CHANNEL: false"
2139     </p>
2140     <p>&nbsp;&nbsp;&nbsp;"."
2141     </p>
2142     </blockquote><p>
2143    
2144     </p>
2145     <p>
2146     </p>
2147     <blockquote class="text">
2148     <p>C: "GET AUDIO_OUTPUT_CHANNEL INFO 0 2"
2149     </p>
2150     <p>S: "NAME: studio monitor left"
2151     </p>
2152     <p>&nbsp;&nbsp;&nbsp;"IS_MIX_CHANNEL: true"
2153     </p>
2154     <p>&nbsp;&nbsp;&nbsp;"MIX_CHANNEL_DESTINATION: 1"
2155     </p>
2156     <p>&nbsp;&nbsp;&nbsp;"."
2157     </p>
2158     </blockquote><p>
2159    
2160     </p>
2161     <p>
2162     </p>
2163     <blockquote class="text">
2164     <p>C: "GET AUDIO_OUTPUT_CHANNEL INFO 1 0"
2165     </p>
2166     <p>S: "NAME: 'ardour (left)'"
2167     </p>
2168     <p>&nbsp;&nbsp;&nbsp;"IS_MIX_CHANNEL: false"
2169     </p>
2170     <p>&nbsp;&nbsp;&nbsp;"JACK_BINDINGS: 'ardour:0'"
2171     </p>
2172     <p>&nbsp;&nbsp;&nbsp;"."
2173     </p>
2174     </blockquote><p>
2175    
2176     </p>
2177     <a name="GET AUDIO_OUTPUT_CHANNEL_PARAMETER INFO"></a><br /><hr />
2178     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
2179     <a name="rfc.section.6.2.12"></a><h3>6.2.12.&nbsp;
2180     Getting information about specific audio channel parameter</h3>
2181    
2182     <p>Use the following command to get detailed information about specific audio channel parameter:
2183     </p>
2184     <p>
2185     </p>
2186     <blockquote class="text">
2187     <p>GET AUDIO_OUTPUT_CHANNEL_PARAMETER INFO &lt;dev-id&gt; &lt;chan&gt; &lt;param&gt;
2188     </p>
2189     </blockquote><p>
2190    
2191     </p>
2192     <p>Where &lt;dev-id&gt; is the numerical ID of the audio output device as returned by the
2193     <a class='info' href='#CREATE AUDIO_OUTPUT_DEVICE'>"CREATE AUDIO_OUTPUT_DEVICE"<span> (</span><span class='info'>Creating an audio output device</span><span>)</span></a>
2194     or <a class='info' href='#LIST AUDIO_OUTPUT_DEVICES'>"LIST AUDIO_OUTPUT_DEVICES"<span> (</span><span class='info'>Getting all created audio output device list</span><span>)</span></a>
2195     command, &lt;chan&gt; the audio channel number
2196     and &lt;param&gt; a specific channel parameter name for which information should
2197     be obtained (as returned by the <a class='info' href='#GET AUDIO_OUTPUT_CHANNEL INFO'>"GET AUDIO_OUTPUT_CHANNEL INFO"<span> (</span><span class='info'>Getting information about an audio channel</span><span>)</span></a> command).
2198     </p>
2199     <p>Possible Answers:
2200     </p>
2201     <p>
2202     </p>
2203     <blockquote class="text">
2204     <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
2205     Each answer line begins with the information category name
2206     followed by a colon and then a space character &lt;SP&gt; and finally
2207     the info character string to that info category. There are
2208     information which is always returned, independently of the
2209     given channel parameter and there is optional information
2210     which is only shown dependently to the given audio channel. At
2211     the moment the following information categories are defined:
2212     </p>
2213     <p>
2214     </p>
2215     <blockquote class="text">
2216     <p>TYPE -
2217     </p>
2218     <blockquote class="text">
2219     <p>either "BOOL" for boolean value(s) or "INT" for integer
2220     value(s) or "FLOAT" for dotted number(s) or "STRING" for
2221     character string(s)
2222     (always returned)
2223     </p>
2224     </blockquote>
2225    
2226    
2227     <p>DESCRIPTION -
2228     </p>
2229     <blockquote class="text">
2230     <p>arbitrary text describing the purpose of the parameter (always returned)
2231     </p>
2232     </blockquote>
2233    
2234    
2235     <p>FIX -
2236     </p>
2237     <blockquote class="text">
2238     <p>either true or false, if true then this parameter is
2239     read only, thus cannot be altered
2240     (always returned)
2241     </p>
2242     </blockquote>
2243    
2244    
2245     <p>MULTIPLICITY -
2246     </p>
2247     <blockquote class="text">
2248     <p>either true or false, defines if this parameter allows
2249     only one value or a list of values, where true means
2250     multiple values and false only a single value allowed
2251     (always returned)
2252     </p>
2253     </blockquote>
2254    
2255    
2256     <p>RANGE_MIN -
2257     </p>
2258     <blockquote class="text">
2259     <p>defines lower limit of the allowed value range for this
2260     parameter, can be an integer value as well as a dotted
2261     number, usually used in conjunction with 'RANGE_MAX',
2262     but may also appear without
2263     (optionally returned, dependent to driver and channel
2264     parameter)
2265     </p>
2266     </blockquote>
2267    
2268    
2269     <p>RANGE_MAX -
2270     </p>
2271     <blockquote class="text">
2272     <p>defines upper limit of the allowed value range for this
2273     parameter, can be an integer value as well as a dotted
2274     number, usually used in conjunction with 'RANGE_MIN',
2275     but may also appear without
2276     (optionally returned, dependent to driver and channel
2277     parameter)
2278     </p>
2279     </blockquote>
2280    
2281    
2282     <p>POSSIBILITIES -
2283     </p>
2284     <blockquote class="text">
2285     <p>comma separated list of possible values for this
2286     parameter, character strings are encapsulated into
2287     apostrophes
2288     (optionally returned, dependent to driver and channel
2289     parameter)
2290     </p>
2291     </blockquote>
2292    
2293    
2294     </blockquote>
2295    
2296    
2297     <p>The mentioned fields above don't have to be in particular order.
2298     </p>
2299     </blockquote><p>
2300    
2301     </p>
2302     <p>Example:
2303     </p>
2304     <p>
2305     </p>
2306     <blockquote class="text">
2307     <p>C: "GET AUDIO_OUTPUT_CHANNEL_PARAMETER INFO 1 0 JACK_BINDINGS"
2308     </p>
2309     <p>S: "DESCRIPTION: bindings to other JACK clients"
2310     </p>
2311     <p>&nbsp;&nbsp;&nbsp;"TYPE: STRING"
2312     </p>
2313     <p>&nbsp;&nbsp;&nbsp;"FIX: false"
2314     </p>
2315     <p>&nbsp;&nbsp;&nbsp;"MULTIPLICITY: true"
2316     </p>
2317     <p>&nbsp;&nbsp;&nbsp;"POSSIBILITIES: 'PCM:0','PCM:1','ardour:0','ardour:1'"
2318     </p>
2319     <p>&nbsp;&nbsp;&nbsp;"."
2320     </p>
2321     </blockquote><p>
2322    
2323     </p>
2324     <a name="SET AUDIO_OUTPUT_CHANNEL_PARAMETER"></a><br /><hr />
2325     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
2326     <a name="rfc.section.6.2.13"></a><h3>6.2.13.&nbsp;
2327     Changing settings of audio output channels</h3>
2328    
2329     <p>Use the following command to alter a specific setting of an audio output channel:
2330     </p>
2331     <p>
2332     </p>
2333     <blockquote class="text">
2334     <p>SET AUDIO_OUTPUT_CHANNEL_PARAMETER &lt;dev-id&gt; &lt;chn&gt; &lt;key&gt;=&lt;value&gt;
2335     </p>
2336     </blockquote><p>
2337    
2338     </p>
2339     <p>Where &lt;dev-id&gt; should be replaced by the numerical ID of the audio output device as returned by the
2340     <a class='info' href='#CREATE AUDIO_OUTPUT_DEVICE'>"CREATE AUDIO_OUTPUT_DEVICE"<span> (</span><span class='info'>Creating an audio output device</span><span>)</span></a>
2341     or <a class='info' href='#LIST AUDIO_OUTPUT_DEVICES'>"LIST AUDIO_OUTPUT_DEVICES"<span> (</span><span class='info'>Getting all created audio output device list</span><span>)</span></a>
2342     command, &lt;chn&gt; by the audio channel number, &lt;key&gt; by the name of the
2343     parameter to change and &lt;value&gt; by the new value for this parameter.
2344     </p>
2345     <p>Possible Answers:
2346     </p>
2347     <p>
2348     </p>
2349     <blockquote class="text">
2350     <p>"OK" -
2351     </p>
2352     <blockquote class="text">
2353     <p>in case setting was successfully changed
2354     </p>
2355     </blockquote>
2356    
2357    
2358     <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
2359     </p>
2360     <blockquote class="text">
2361     <p>in case setting was changed successfully, but there are
2362     noteworthy issue(s) related, providing an appropriate
2363     warning code and warning message
2364     </p>
2365     </blockquote>
2366    
2367    
2368     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
2369     </p>
2370     <blockquote class="text">
2371     <p>in case it failed, providing an appropriate error code and
2372     error message
2373     </p>
2374     </blockquote>
2375    
2376    
2377     </blockquote><p>
2378    
2379     </p>
2380     <p>Example:
2381     </p>
2382     <p>
2383     </p>
2384     <blockquote class="text">
2385     <p>C: "SET AUDIO_OUTPUT_CHANNEL PARAMETER 0 0 JACK_BINDINGS='PCM:0'"
2386     </p>
2387     <p>S: "OK"
2388     </p>
2389     </blockquote><p>
2390    
2391     </p>
2392     <p>
2393     </p>
2394     <blockquote class="text">
2395     <p>C: "SET AUDIO_OUTPUT_CHANNEL PARAMETER 0 0 NAME='monitor left'"
2396     </p>
2397     <p>S: "OK"
2398     </p>
2399     </blockquote><p>
2400    
2401     </p>
2402     <a name="anchor10"></a><br /><hr />
2403     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
2404     <a name="rfc.section.6.3"></a><h3>6.3.&nbsp;
2405     Configuring MIDI input drivers</h3>
2406    
2407     <p>Instances of drivers in LinuxSampler are called devices. You can use
2408     multiple MIDI devices simultaneously, e.g. to use MIDI over ethernet as
2409     MIDI input on one sampler channel and ALSA as MIDI input on another sampler
2410     channel. For particular MIDI input systems it's also possible to create
2411     several devices of the same MIDI input type. This chapter describes all
2412     commands to configure LinuxSampler's MIDI input devices and their parameters.
2413     </p>
2414     <p>Instead of defining commands and parameters for each driver individually,
2415     all possible parameters, their meanings and possible values have to be obtained
2416     at runtime. This makes the protocol a bit abstract, but has the advantage, that
2417     front-ends can be written independently of what drivers are currently implemented
2418     and what parameters these drivers are actually offering. This means front-ends can
2419     even handle drivers which are implemented somewhere in future without modifying
2420     the front-end at all.
2421     </p>
2422     <p>Commands for configuring MIDI input devices are pretty much the same as the
2423     commands for configuring audio output drivers, already described in the last
2424     chapter.
2425     </p>
2426     <p>Note: examples in this chapter showing particular parameters of drivers are
2427     not meant as specification of the drivers' parameters. Driver implementations in
2428     LinuxSampler might have complete different parameter names and meanings than shown
2429     in these examples or might change in future, so these examples are only meant for
2430     showing how to retrieve what parameters drivers are offering, how to retrieve their
2431     possible values, etc.
2432     </p>
2433     <a name="GET AVAILABLE_MIDI_INPUT_DRIVERS"></a><br /><hr />
2434     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
2435     <a name="rfc.section.6.3.1"></a><h3>6.3.1.&nbsp;
2436     Getting amount of available MIDI input drivers</h3>
2437    
2438     <p>Use the following command to get the number of
2439     MIDI input drivers currently available for the
2440     LinuxSampler instance:
2441     </p>
2442     <p>
2443     </p>
2444     <blockquote class="text">
2445     <p>GET AVAILABLE_MIDI_INPUT_DRIVERS
2446     </p>
2447     </blockquote><p>
2448    
2449     </p>
2450     <p>Possible Answers:
2451     </p>
2452     <p>
2453     </p>
2454     <blockquote class="text">
2455     <p>LinuxSampler will answer by sending the
2456     number of available MIDI input drivers.
2457     </p>
2458     </blockquote><p>
2459    
2460     </p>
2461     <p>Example:
2462     </p>
2463     <p>
2464     </p>
2465     <blockquote class="text">
2466     <p>C: "GET AVAILABLE_MIDI_INPUT_DRIVERS"
2467     </p>
2468     <p>S: "2"
2469     </p>
2470     </blockquote><p>
2471    
2472     </p>
2473     <a name="LIST AVAILABLE_MIDI_INPUT_DRIVERS"></a><br /><hr />
2474     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
2475     <a name="rfc.section.6.3.2"></a><h3>6.3.2.&nbsp;
2476     Getting all available MIDI input drivers</h3>
2477    
2478     <p>Use the following command to list all MIDI input drivers currently available
2479     for the LinuxSampler instance:
2480     </p>
2481     <p>
2482     </p>
2483     <blockquote class="text">
2484     <p>LIST AVAILABLE_MIDI_INPUT_DRIVERS
2485     </p>
2486     </blockquote><p>
2487    
2488     </p>
2489     <p>Possible Answers:
2490     </p>
2491     <p>
2492     </p>
2493     <blockquote class="text">
2494     <p>LinuxSampler will answer by sending comma separated character
2495     strings, each symbolizing a MIDI input driver.
2496     </p>
2497     </blockquote><p>
2498    
2499     </p>
2500     <p>Example:
2501     </p>
2502     <p>
2503     </p>
2504     <blockquote class="text">
2505     <p>C: "LIST AVAILABLE_MIDI_INPUT_DRIVERS"
2506     </p>
2507     <p>S: "ALSA,JACK"
2508     </p>
2509     </blockquote><p>
2510    
2511     </p>
2512     <a name="GET MIDI_INPUT_DRIVER INFO"></a><br /><hr />
2513     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
2514     <a name="rfc.section.6.3.3"></a><h3>6.3.3.&nbsp;
2515     Getting information about a specific MIDI input driver</h3>
2516    
2517     <p>Use the following command to get detailed information about a specific MIDI input driver:
2518     </p>
2519     <p>
2520     </p>
2521     <blockquote class="text">
2522     <p>GET MIDI_INPUT_DRIVER INFO &lt;midi-input-driver&gt;
2523     </p>
2524     </blockquote><p>
2525    
2526     </p>
2527     <p>Where &lt;midi-input-driver&gt; is the name of the MIDI input driver as returned
2528     by the <a class='info' href='#LIST AVAILABLE_MIDI_INPUT_DRIVERS'>"LIST AVAILABLE_MIDI_INPUT_DRIVERS"<span> (</span><span class='info'>Getting all available MIDI input drivers</span><span>)</span></a> command.
2529     </p>
2530     <p>Possible Answers:
2531     </p>
2532     <p>
2533     </p>
2534     <blockquote class="text">
2535     <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
2536     Each answer line begins with the information category name
2537     followed by a colon and then a space character &lt;SP&gt; and finally
2538     the info character string to that info category. At the moment
2539     the following information categories are defined:
2540     </p>
2541     <p>
2542     </p>
2543     <blockquote class="text">
2544     <p>DESCRIPTION -
2545     </p>
2546     <blockquote class="text">
2547     <p>arbitrary description text about the MIDI input driver
2548     </p>
2549     </blockquote>
2550    
2551    
2552     <p>VERSION -
2553     </p>
2554     <blockquote class="text">
2555     <p>arbitrary character string regarding the driver's version
2556     </p>
2557     </blockquote>
2558    
2559    
2560     <p>PARAMETERS -
2561     </p>
2562     <blockquote class="text">
2563     <p>comma separated list of all parameters available for the given MIDI input driver
2564     </p>
2565     </blockquote>
2566    
2567    
2568     </blockquote>
2569    
2570    
2571     <p>The mentioned fields above don't have to be in particular order.
2572     </p>
2573     </blockquote><p>
2574    
2575     </p>
2576     <p>Example:
2577     </p>
2578     <p>
2579     </p>
2580     <blockquote class="text">
2581     <p>C: "GET MIDI_INPUT_DRIVER INFO ALSA"
2582     </p>
2583     <p>S: "DESCRIPTION: Advanced Linux Sound Architecture"
2584     </p>
2585     <p>&nbsp;&nbsp;&nbsp;"VERSION: 1.0"
2586     </p>
2587     <p>&nbsp;&nbsp;&nbsp;"PARAMETERS: DRIVER,ACTIVE"
2588     </p>
2589     <p>&nbsp;&nbsp;&nbsp;"."
2590     </p>
2591     </blockquote><p>
2592    
2593     </p>
2594     <a name="GET MIDI_INPUT_DRIVER_PARAMETER INFO"></a><br /><hr />
2595     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
2596     <a name="rfc.section.6.3.4"></a><h3>6.3.4.&nbsp;
2597     Getting information about specific MIDI input driver parameter</h3>
2598    
2599     <p>Use the following command to get detailed information about a specific parameter of a specific MIDI input driver:
2600     </p>
2601     <p>
2602     </p>
2603     <blockquote class="text">
2604     <p>GET MIDI_INPUT_DRIVER_PARAMETER INFO &lt;midit&gt; &lt;param&gt; [&lt;deplist&gt;]
2605     </p>
2606     </blockquote><p>
2607    
2608     </p>
2609     <p>Where &lt;midit&gt; is the name of the MIDI input driver as returned
2610     by the <a class='info' href='#LIST AVAILABLE_MIDI_INPUT_DRIVERS'>"LIST AVAILABLE_MIDI_INPUT_DRIVERS"<span> (</span><span class='info'>Getting all available MIDI input drivers</span><span>)</span></a> command, &lt;param&gt; a specific
2611     parameter name for which information should be obtained (as returned by the
2612     <a class='info' href='#GET MIDI_INPUT_DRIVER INFO'>"GET MIDI_INPUT_DRIVER INFO"<span> (</span><span class='info'>Getting information about a specific MIDI input driver</span><span>)</span></a> command) and &lt;deplist&gt; is an optional list
2613     of parameters on which the sought parameter &lt;param&gt; depends on,
2614     &lt;deplist&gt; is a key-value pair list in form of "key1=val1 key2=val2 ...",
2615     where character string values are encapsulated into apostrophes ('). Arguments
2616     given with &lt;deplist&gt; which are not dependency parameters of &lt;param&gt;
2617     will be ignored, means the front-end application can simply put all parameters
2618     in &lt;deplist&gt; with the values selected by the user.
2619     </p>
2620     <p>Possible Answers:
2621     </p>
2622     <p>LinuxSampler will answer by sending a &lt;CRLF> separated list.
2623     Each answer line begins with the information category name
2624     followed by a colon and then a space character &lt;SP> and finally
2625     the info character string to that info category. There is
2626     information which is always returned, independent of the
2627     given driver parameter and there is optional information
2628     which is only shown dependent to given driver parameter. At
2629     the moment the following information categories are defined:
2630     </p>
2631     <p>
2632     </p>
2633     <blockquote class="text">
2634     <p>TYPE -
2635     </p>
2636     <blockquote class="text">
2637     <p>either "BOOL" for boolean value(s) or "INT" for integer
2638     value(s) or "FLOAT" for dotted number(s) or "STRING" for
2639     character string(s)
2640     (always returned, no matter which driver parameter)
2641     </p>
2642     </blockquote>
2643    
2644    
2645     <p>DESCRIPTION -
2646     </p>
2647     <blockquote class="text">
2648     <p>arbitrary text describing the purpose of the parameter
2649     (always returned, no matter which driver parameter)
2650     </p>
2651     </blockquote>
2652    
2653    
2654     <p>MANDATORY -
2655     </p>
2656     <blockquote class="text">
2657     <p>either true or false, defines if this parameter must be
2658     given when the device is to be created with the
2659     <a class='info' href='#CREATE MIDI_INPUT_DEVICE'>'CREATE MIDI_INPUT_DEVICE'<span> (</span><span class='info'>Creating a MIDI input device</span><span>)</span></a> command
2660     (always returned, no matter which driver parameter)
2661     </p>
2662     </blockquote>
2663    
2664    
2665     <p>FIX -
2666     </p>
2667     <blockquote class="text">
2668     <p>either true or false, if false then this parameter can
2669     be changed at any time, once the device is created by
2670     the <a class='info' href='#CREATE MIDI_INPUT_DEVICE'>'CREATE MIDI_INPUT_DEVICE'<span> (</span><span class='info'>Creating a MIDI input device</span><span>)</span></a> command
2671     (always returned, no matter which driver parameter)
2672     </p>
2673     </blockquote>
2674    
2675    
2676     <p>MULTIPLICITY -
2677     </p>
2678     <blockquote class="text">
2679     <p>either true or false, defines if this parameter allows
2680     only one value or a list of values, where true means
2681     multiple values and false only a single value allowed
2682     (always returned, no matter which driver parameter)
2683     </p>
2684     </blockquote>
2685    
2686    
2687     <p>DEPENDS -
2688     </p>
2689     <blockquote class="text">
2690     <p>comma separated list of parameters this parameter depends
2691     on, means the values for fields 'DEFAULT', 'RANGE_MIN',
2692     'RANGE_MAX' and 'POSSIBILITIES' might depend on these
2693     listed parameters, for example assuming that an audio
2694     driver (like the ALSA driver) offers parameters 'card'
2695     and 'samplerate' then parameter 'samplerate' would
2696     depend on 'card' because the possible values for
2697     'samplerate' depends on the sound card which can be
2698     chosen by the 'card' parameter
2699     (optionally returned, dependent to driver parameter)
2700     </p>
2701     </blockquote>
2702    
2703    
2704     <p>DEFAULT -
2705     </p>
2706     <blockquote class="text">
2707     <p>reflects the default value for this parameter which is
2708     used when the device is created and not explicitly
2709     given with the <a class='info' href='#CREATE MIDI_INPUT_DEVICE'>'CREATE MIDI_INPUT_DEVICE'<span> (</span><span class='info'>Creating a MIDI input device</span><span>)</span></a> command,
2710     in case of MULTIPLCITY=true, this is a comma separated
2711     list, that's why character strings are encapsulated into
2712     apostrophes (')
2713     (optionally returned, dependent to driver parameter)
2714     </p>
2715     </blockquote>
2716    
2717    
2718     <p>RANGE_MIN -
2719     </p>
2720     <blockquote class="text">
2721     <p>defines lower limit of the allowed value range for this
2722     parameter, can be an integer value as well as a dotted
2723     number, this parameter is often used in conjunction
2724     with RANGE_MAX, but may also appear without
2725     (optionally returned, dependent to driver parameter)
2726     </p>
2727     </blockquote>
2728    
2729    
2730     <p>RANGE_MAX -
2731     </p>
2732     <blockquote class="text">
2733     <p>defines upper limit of the allowed value range for this
2734     parameter, can be an integer value as well as a dotted
2735     number, this parameter is often used in conjunction with
2736     RANGE_MIN, but may also appear without
2737     (optionally returned, dependent to driver parameter)
2738     </p>
2739     </blockquote>
2740    
2741    
2742     <p>POSSIBILITIES -
2743     </p>
2744     <blockquote class="text">
2745     <p>comma separated list of possible values for this
2746     parameter, character strings are encapsulated into
2747     apostrophes
2748     (optionally returned, dependent to driver parameter)
2749     </p>
2750     </blockquote>
2751    
2752    
2753     </blockquote><p>
2754    
2755     </p>
2756     <p>The mentioned fields above don't have to be in particular order.
2757     </p>
2758     <p>Example:
2759     </p>
2760     <p>
2761     </p>
2762     <blockquote class="text">
2763     <p>C: "GET MIDI_INPUT_DRIVER_PARAMETER INFO ALSA ACTIVE"
2764     </p>
2765     <p>S: "DESCRIPTION: Whether device is enabled"
2766     </p>
2767     <p>&nbsp;&nbsp;&nbsp;"TYPE: BOOL"
2768     </p>
2769     <p>&nbsp;&nbsp;&nbsp;"MANDATORY: false"
2770     </p>
2771     <p>&nbsp;&nbsp;&nbsp;"FIX: false"
2772     </p>
2773     <p>&nbsp;&nbsp;&nbsp;"MULTIPLICITY: false"
2774     </p>
2775     <p>&nbsp;&nbsp;&nbsp;"DEFAULT: true"
2776     </p>
2777     <p>&nbsp;&nbsp;&nbsp;"."
2778     </p>
2779     </blockquote><p>
2780    
2781     </p>
2782     <a name="CREATE MIDI_INPUT_DEVICE"></a><br /><hr />
2783     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
2784     <a name="rfc.section.6.3.5"></a><h3>6.3.5.&nbsp;
2785     Creating a MIDI input device</h3>
2786    
2787     <p>Use the following command to create a new MIDI input device for the desired MIDI input system:
2788     </p>
2789     <p>
2790     </p>
2791     <blockquote class="text">
2792     <p>CREATE MIDI_INPUT_DEVICE &lt;midi-input-driver&gt; [&lt;param-list&gt;]
2793     </p>
2794     </blockquote><p>
2795    
2796     </p>
2797     <p>Where &lt;midi-input-driver&gt; should be replaced by the desired MIDI input system as returned
2798     by the <a class='info' href='#LIST AVAILABLE_MIDI_INPUT_DRIVERS'>"LIST AVAILABLE_MIDI_INPUT_DRIVERS"<span> (</span><span class='info'>Getting all available MIDI input drivers</span><span>)</span></a> command and &lt;param-list&gt; by an
2799     optional list of driver specific parameters in form of "key1=val1 key2=val2 ...", where
2800     character string values should be encapsulated into apostrophes (').
2801     Note that there might be drivers which require parameter(s) to be
2802     given with this command. Use the previously described commands in
2803     this chapter to get that information.
2804     </p>
2805     <p>Possible Answers:
2806     </p>
2807     <p>
2808     </p>
2809     <blockquote class="text">
2810     <p>"OK[&lt;device-id&gt;]" -
2811     </p>
2812     <blockquote class="text">
2813     <p>in case the device was successfully created, where
2814     &lt;device-id&gt; is the numerical ID of the new device
2815     </p>
2816     </blockquote>
2817    
2818    
2819     <p>"WRN[&lt;device-id&gt;]:&lt;warning-code&gt;:&lt;warning-message&gt;" -
2820     </p>
2821     <blockquote class="text">
2822     <p>in case the driver was loaded successfully, where
2823     &lt;device-id&gt; is the numerical ID of the new device, but
2824     there are noteworthy issue(s) related, providing an
2825     appropriate warning code and warning message
2826     </p>
2827     </blockquote>
2828    
2829    
2830     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
2831     </p>
2832     <blockquote class="text">
2833     <p>in case it failed, providing an appropriate error code and error message
2834     </p>
2835     </blockquote>
2836    
2837    
2838     </blockquote><p>
2839    
2840     </p>
2841     <p>Example:
2842     </p>
2843     <p>
2844     </p>
2845     <blockquote class="text">
2846     <p>C: "CREATE MIDI_INPUT_DEVICE ALSA"
2847     </p>
2848     <p>S: "OK[0]"
2849     </p>
2850     </blockquote><p>
2851    
2852     </p>
2853     <a name="DESTROY MIDI_INPUT_DEVICE"></a><br /><hr />
2854     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
2855     <a name="rfc.section.6.3.6"></a><h3>6.3.6.&nbsp;
2856     Destroying a MIDI input device</h3>
2857    
2858     <p>Use the following command to destroy a created MIDI input device:
2859     </p>
2860     <p>
2861     </p>
2862     <blockquote class="text">
2863     <p>DESTROY MIDI_INPUT_DEVICE &lt;device-id&gt;
2864     </p>
2865     </blockquote><p>
2866    
2867     </p>
2868     <p>Where &lt;device-id&gt; should be replaced by the device's numerical ID as returned by the
2869     <a class='info' href='#CREATE MIDI_INPUT_DEVICE'>"CREATE MIDI_INPUT_DEVICE"<span> (</span><span class='info'>Creating a MIDI input device</span><span>)</span></a>
2870     or <a class='info' href='#LIST MIDI_INPUT_DEVICES'>"LIST MIDI_INPUT_DEVICES"<span> (</span><span class='info'>Getting all created MIDI input device list</span><span>)</span></a>
2871     command.
2872     </p>
2873     <p>Possible Answers:
2874     </p>
2875     <p>
2876     </p>
2877     <blockquote class="text">
2878     <p>"OK" -
2879     </p>
2880     <blockquote class="text">
2881     <p>in case the device was successfully destroyed
2882     </p>
2883     </blockquote>
2884    
2885    
2886     <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
2887     </p>
2888     <blockquote class="text">
2889     <p>in case the device was destroyed, but there are noteworthy
2890     issue(s) related, providing an appropriate warning code and
2891     warning message
2892     </p>
2893     </blockquote>
2894    
2895    
2896     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
2897     </p>
2898     <blockquote class="text">
2899     <p>in case it failed, providing an appropriate error code and error message
2900     </p>
2901     </blockquote>
2902    
2903    
2904     </blockquote><p>
2905    
2906     </p>
2907     <p>Example:
2908     </p>
2909     <p>
2910     </p>
2911     <blockquote class="text">
2912     <p>C: "DESTROY MIDI_INPUT_DEVICE 0"
2913     </p>
2914     <p>S: "OK"
2915     </p>
2916     </blockquote><p>
2917    
2918     </p>
2919     <a name="GET MIDI_INPUT_DEVICES"></a><br /><hr />
2920     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
2921     <a name="rfc.section.6.3.7"></a><h3>6.3.7.&nbsp;
2922     Getting all created MIDI input device count</h3>
2923    
2924     <p>Use the following command to count all created MIDI input devices:
2925     </p>
2926     <p>
2927     </p>
2928     <blockquote class="text">
2929     <p>GET MIDI_INPUT_DEVICES
2930     </p>
2931     </blockquote><p>
2932    
2933     </p>
2934     <p>Possible Answers:
2935     </p>
2936     <p>
2937     </p>
2938     <blockquote class="text">
2939     <p>LinuxSampler will answer by sending the current number of all
2940     MIDI input devices.
2941     </p>
2942     </blockquote><p>
2943    
2944     </p>
2945     <p>Example:
2946     </p>
2947     <p>
2948     </p>
2949     <blockquote class="text">
2950     <p>C: "GET MIDI_INPUT_DEVICES"
2951     </p>
2952     <p>S: "3"
2953     </p>
2954     </blockquote><p>
2955    
2956     </p>
2957     <a name="LIST MIDI_INPUT_DEVICES"></a><br /><hr />
2958     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
2959     <a name="rfc.section.6.3.8"></a><h3>6.3.8.&nbsp;
2960     Getting all created MIDI input device list</h3>
2961    
2962     <p>Use the following command to list all created MIDI input devices:
2963     </p>
2964     <p>
2965     </p>
2966     <blockquote class="text">
2967     <p>LIST MIDI_INPUT_DEVICES
2968     </p>
2969     </blockquote><p>
2970    
2971     </p>
2972     <p>Possible Answers:
2973     </p>
2974     <p>
2975     </p>
2976     <blockquote class="text">
2977     <p>LinuxSampler will answer by sending a comma separated list
2978     with the numerical Ids of all created MIDI input devices.
2979     </p>
2980     </blockquote><p>
2981    
2982     </p>
2983     <p>Examples:
2984     </p>
2985     <p>
2986     </p>
2987     <blockquote class="text">
2988     <p>C: "LIST MIDI_INPUT_DEVICES"
2989     </p>
2990     <p>S: "0,1,2"
2991     </p>
2992     </blockquote><p>
2993    
2994     </p>
2995     <p>
2996     </p>
2997     <blockquote class="text">
2998     <p>C: "LIST MIDI_INPUT_DEVICES"
2999     </p>
3000     <p>S: "1,3"
3001     </p>
3002     </blockquote><p>
3003    
3004     </p>
3005     <a name="GET MIDI_INPUT_DEVICE INFO"></a><br /><hr />
3006     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
3007     <a name="rfc.section.6.3.9"></a><h3>6.3.9.&nbsp;
3008     Getting current settings of a MIDI input device</h3>
3009    
3010     <p>Use the following command to get current settings of a specific, created MIDI input device:
3011     </p>
3012     <p>
3013     </p>
3014     <blockquote class="text">
3015     <p>GET MIDI_INPUT_DEVICE INFO &lt;device-id&gt;
3016     </p>
3017     </blockquote><p>
3018    
3019     </p>
3020     <p>Where &lt;device-id&gt; is the numerical ID of the MIDI input device as returned by the
3021     <a class='info' href='#CREATE MIDI_INPUT_DEVICE'>"CREATE MIDI_INPUT_DEVICE"<span> (</span><span class='info'>Creating a MIDI input device</span><span>)</span></a>
3022     or <a class='info' href='#LIST MIDI_INPUT_DEVICES'>"LIST MIDI_INPUT_DEVICES"<span> (</span><span class='info'>Getting all created MIDI input device list</span><span>)</span></a>
3023     command.
3024     </p>
3025     <p>Possible Answers:
3026     </p>
3027     <p>
3028     </p>
3029     <blockquote class="text">
3030     <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
3031     Each answer line begins with the information category name
3032     followed by a colon and then a space character &lt;SP&gt; and finally
3033     the info character string to that info category. As some
3034     parameters might allow multiple values, character strings are
3035     encapsulated into apostrophes ('). At the moment the following
3036     information categories are defined (independent of driver):
3037     </p>
3038     <p>
3039     </p>
3040     <blockquote class="text">
3041     <p>DRIVER -
3042     </p>
3043     <blockquote class="text">
3044     <p>identifier of the used MIDI input driver, as e.g.
3045     returned by the <a class='info' href='#LIST AVAILABLE_MIDI_INPUT_DRIVERS'>"LIST AVAILABLE_MIDI_INPUT_DRIVERS"<span> (</span><span class='info'>Getting all available MIDI input drivers</span><span>)</span></a>
3046     command
3047     </p>
3048     </blockquote>
3049    
3050    
3051     </blockquote>
3052    
3053     <blockquote class="text">
3054     <p>ACTIVE -
3055     </p>
3056     <blockquote class="text">
3057     <p>either true or false, if false then the MIDI device is
3058     inactive and doesn't listen to any incoming MIDI events
3059     and thus doesn't forward them to connected sampler
3060     channels
3061     </p>
3062     </blockquote>
3063    
3064    
3065     </blockquote>
3066    
3067    
3068     </blockquote><p>
3069    
3070     </p>
3071     <p>The mentioned fields above don't have to be in particular
3072     order. The fields above are only those fields which are
3073     returned by all MIDI input devices. Every MIDI input driver
3074     might have its own, additional driver specific parameters (see
3075     <a class='info' href='#GET MIDI_INPUT_DRIVER INFO'>"GET MIDI_INPUT_DRIVER INFO"<span> (</span><span class='info'>Getting information about a specific MIDI input driver</span><span>)</span></a> command) which are also returned
3076     by this command.
3077     </p>
3078     <p>Example:
3079     </p>
3080     <p>
3081     </p>
3082     <blockquote class="text">
3083     <p>C: "GET MIDI_INPUT_DEVICE INFO 0"
3084     </p>
3085     <p>S: "DRIVER: ALSA"
3086     </p>
3087     <p>&nbsp;&nbsp;&nbsp;"ACTIVE: true"
3088     </p>
3089     <p>&nbsp;&nbsp;&nbsp;"."
3090     </p>
3091     </blockquote><p>
3092    
3093     </p>
3094     <a name="SET MIDI_INPUT_DEVICE_PARAMETER"></a><br /><hr />
3095     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
3096     <a name="rfc.section.6.3.10"></a><h3>6.3.10.&nbsp;
3097     Changing settings of MIDI input devices</h3>
3098    
3099     <p>Use the following command to alter a specific setting of a created MIDI input device:
3100     </p>
3101     <p>
3102     </p>
3103     <blockquote class="text">
3104     <p>SET MIDI_INPUT_DEVICE_PARAMETER &lt;device-id&gt; &lt;key&gt;=&lt;value&gt;
3105     </p>
3106     </blockquote><p>
3107    
3108     </p>
3109     <p>Where &lt;device-id&gt; should be replaced by the numerical ID of the
3110     MIDI input device as returned by the
3111     <a class='info' href='#CREATE MIDI_INPUT_DEVICE'>"CREATE MIDI_INPUT_DEVICE"<span> (</span><span class='info'>Creating a MIDI input device</span><span>)</span></a>
3112     or <a class='info' href='#LIST MIDI_INPUT_DEVICES'>"LIST MIDI_INPUT_DEVICES"<span> (</span><span class='info'>Getting all created MIDI input device list</span><span>)</span></a>
3113     command, &lt;key&gt; by the name of the parameter to change and
3114     &lt;value&gt; by the new value for this parameter.
3115     </p>
3116     <p>Possible Answers:
3117     </p>
3118     <p>
3119     </p>
3120     <blockquote class="text">
3121     <p>"OK" -
3122     </p>
3123     <blockquote class="text">
3124     <p>in case setting was successfully changed
3125     </p>
3126     </blockquote>
3127    
3128    
3129     <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
3130     </p>
3131     <blockquote class="text">
3132     <p>in case setting was changed successfully, but there are
3133     noteworthy issue(s) related, providing an appropriate
3134     warning code and warning message
3135     </p>
3136     </blockquote>
3137    
3138    
3139     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
3140     </p>
3141     <blockquote class="text">
3142     <p>in case it failed, providing an appropriate error code and error message
3143     </p>
3144     </blockquote>
3145    
3146    
3147     </blockquote><p>
3148    
3149     </p>
3150     <p>Example:
3151     </p>
3152     <p>
3153     </p>
3154     <blockquote class="text">
3155     <p>C: "SET MIDI_INPUT_DEVICE_PARAMETER 0 ACTIVE=false"
3156     </p>
3157     <p>S: "OK"
3158     </p>
3159     </blockquote><p>
3160    
3161     </p>
3162     <a name="GET MIDI_INPUT_PORT INFO"></a><br /><hr />
3163     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
3164     <a name="rfc.section.6.3.11"></a><h3>6.3.11.&nbsp;
3165     Getting information about a MIDI port</h3>
3166    
3167     <p>Use the following command to get information about a MIDI port:
3168     </p>
3169     <p>
3170     </p>
3171     <blockquote class="text">
3172     <p>GET MIDI_INPUT_PORT INFO &lt;device-id&gt; &lt;midi-port&gt;
3173     </p>
3174     </blockquote><p>
3175    
3176     </p>
3177     <p>Where &lt;device-id&gt; is the numerical ID of the MIDI input device as returned by the
3178     <a class='info' href='#CREATE MIDI_INPUT_DEVICE'>"CREATE MIDI_INPUT_DEVICE"<span> (</span><span class='info'>Creating a MIDI input device</span><span>)</span></a>
3179     or <a class='info' href='#LIST MIDI_INPUT_DEVICES'>"LIST MIDI_INPUT_DEVICES"<span> (</span><span class='info'>Getting all created MIDI input device list</span><span>)</span></a>
3180     command and &lt;midi-port&gt; the MIDI input port number.
3181     </p>
3182     <p>Possible Answers:
3183     </p>
3184     <p>
3185     </p>
3186     <blockquote class="text">
3187     <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
3188     Each answer line begins with the information category name
3189     followed by a colon and then a space character &lt;SP&gt; and finally
3190     the info character string to that info category. At the moment
3191     the following information categories are defined:
3192     </p>
3193     <p>NAME -
3194     </p>
3195     <blockquote class="text">
3196     <p>arbitrary character string naming the port
3197     </p>
3198     </blockquote>
3199    
3200    
3201     </blockquote><p>
3202    
3203     </p>
3204     <p>The field above is only the one which is returned by all MIDI
3205     ports regardless of the MIDI driver and port. Every MIDI port
3206     might have its own, additional driver and port specific
3207     parameters.
3208     </p>
3209     <p>Example:
3210     </p>
3211     <p>
3212     </p>
3213     <blockquote class="text">
3214     <p>C: "GET MIDI_INPUT_PORT INFO 0 0"
3215     </p>
3216     <p>S: "NAME: 'Masterkeyboard'"
3217     </p>
3218     <p>&nbsp;&nbsp;&nbsp;"ALSA_SEQ_BINDINGS: '64:0'"
3219     </p>
3220     <p>&nbsp;&nbsp;&nbsp;"."
3221     </p>
3222     </blockquote><p>
3223    
3224     </p>
3225     <a name="GET MIDI_INPUT_PORT_PARAMETER INFO"></a><br /><hr />
3226     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
3227     <a name="rfc.section.6.3.12"></a><h3>6.3.12.&nbsp;
3228     Getting information about specific MIDI port parameter</h3>
3229    
3230     <p>Use the following command to get detailed information about specific MIDI port parameter:
3231     </p>
3232     <p>
3233     </p>
3234     <blockquote class="text">
3235     <p>GET MIDI_INPUT_PORT_PARAMETER INFO &lt;dev-id&gt; &lt;port&gt; &lt;param&gt;
3236     </p>
3237     </blockquote><p>
3238    
3239     </p>
3240     <p>Where &lt;dev-id&gt; is the numerical ID of the MIDI input device as returned by the
3241     <a class='info' href='#CREATE MIDI_INPUT_DEVICE'>"CREATE MIDI_INPUT_DEVICE"<span> (</span><span class='info'>Creating a MIDI input device</span><span>)</span></a>
3242     or <a class='info' href='#LIST MIDI_INPUT_DEVICES'>"LIST MIDI_INPUT_DEVICES"<span> (</span><span class='info'>Getting all created MIDI input device list</span><span>)</span></a>
3243     command, &lt;port&gt; the MIDI port number and
3244     &lt;param&gt; a specific port parameter name for which information should be
3245     obtained (as returned by the <a class='info' href='#GET MIDI_INPUT_PORT INFO'>"GET MIDI_INPUT_PORT INFO"<span> (</span><span class='info'>Getting information about a MIDI port</span><span>)</span></a> command).
3246     </p>
3247     <p>Possible Answers:
3248     </p>
3249     <p>
3250     </p>
3251     <blockquote class="text">
3252     <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
3253     Each answer line begins with the information category name
3254     followed by a colon and then a space character &lt;SP&gt; and finally
3255     the info character string to that info category. There is
3256     information which is always returned, independently of the
3257     given channel parameter and there is optional information
3258     which are only shown dependently to the given MIDI port. At the
3259     moment the following information categories are defined:
3260     </p>
3261     <p>TYPE -
3262     </p>
3263     <blockquote class="text">
3264     <p>either "BOOL" for boolean value(s) or "INT" for integer
3265     value(s) or "FLOAT" for dotted number(s) or "STRING" for
3266     character string(s)
3267     (always returned)
3268     </p>
3269     </blockquote>
3270    
3271    
3272     <p>DESCRIPTION -
3273     </p>
3274     <blockquote class="text">
3275     <p>arbitrary text describing the purpose of the parameter
3276     (always returned)
3277     </p>
3278     </blockquote>
3279    
3280    
3281     <p>FIX -
3282     </p>
3283     <blockquote class="text">
3284     <p>either true or false, if true then this parameter is
3285     read only, thus cannot be altered
3286     (always returned)
3287     </p>
3288     </blockquote>
3289    
3290    
3291     <p>MULTIPLICITY -
3292     </p>
3293     <blockquote class="text">
3294     <p>either true or false, defines if this parameter allows
3295     only one value or a list of values, where true means
3296     multiple values and false only a single value allowed
3297     (always returned)
3298     </p>
3299     </blockquote>
3300    
3301    
3302     <p>RANGE_MIN -
3303     </p>
3304     <blockquote class="text">
3305     <p>defines lower limit of the allowed value range for this
3306     parameter, can be an integer value as well as a dotted
3307     number, this parameter is usually used in conjunction
3308     with 'RANGE_MAX' but may also appear without
3309     (optionally returned, dependent to driver and port
3310     parameter)
3311     </p>
3312     </blockquote>
3313    
3314    
3315     <p>RANGE_MAX -
3316     </p>
3317     <blockquote class="text">
3318     <p>defines upper limit of the allowed value range for this
3319     parameter, can be an integer value as well as a dotted
3320     number, this parameter is usually used in conjunction
3321     with 'RANGE_MIN' but may also appear without
3322     (optionally returned, dependent to driver and port
3323     parameter)
3324     </p>
3325     </blockquote>
3326    
3327    
3328     <p>POSSIBILITIES -
3329     </p>
3330     <blockquote class="text">
3331     <p>comma separated list of possible values for this
3332     parameter, character strings are encapsulated into
3333     apostrophes
3334     (optionally returned, dependent to device and port
3335     parameter)
3336     </p>
3337     </blockquote>
3338    
3339    
3340     </blockquote><p>
3341    
3342     </p>
3343     <p>The mentioned fields above don't have to be in particular order.
3344     </p>
3345     <p>Example:
3346     </p>
3347     <p>
3348     </p>
3349     <blockquote class="text">
3350     <p>C: "GET MIDI_INPUT_PORT_PARAMETER INFO 0 0 ALSA_SEQ_BINDINGS"
3351     </p>
3352     <p>S: "DESCRIPTION: bindings to other ALSA sequencer clients"
3353     </p>
3354     <p>&nbsp;&nbsp;&nbsp;"TYPE: STRING"
3355     </p>
3356     <p>&nbsp;&nbsp;&nbsp;"FIX: false"
3357     </p>
3358     <p>&nbsp;&nbsp;&nbsp;"MULTIPLICITY: true"
3359     </p>
3360     <p>&nbsp;&nbsp;&nbsp;"POSSIBILITIES: '64:0','68:0','68:1'"
3361     </p>
3362     <p>&nbsp;&nbsp;&nbsp;"."
3363     </p>
3364     </blockquote><p>
3365    
3366     </p>
3367     <a name="SET MIDI_INPUT_PORT_PARAMETER"></a><br /><hr />
3368     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
3369     <a name="rfc.section.6.3.13"></a><h3>6.3.13.&nbsp;
3370     Changing settings of MIDI input ports</h3>
3371    
3372     <p>Use the following command to alter a specific setting of a MIDI input port:
3373     </p>
3374     <p>
3375     </p>
3376     <blockquote class="text">
3377     <p>SET MIDI_INPUT_PORT_PARAMETER &lt;device-id&gt; &lt;port&gt; &lt;key&gt;=&lt;value&gt;
3378     </p>
3379     </blockquote><p>
3380    
3381     </p>
3382     <p>Where &lt;device-id&gt; should be replaced by the numerical ID of the
3383     MIDI device as returned by the
3384     <a class='info' href='#CREATE MIDI_INPUT_DEVICE'>"CREATE MIDI_INPUT_DEVICE"<span> (</span><span class='info'>Creating a MIDI input device</span><span>)</span></a>
3385     or <a class='info' href='#LIST MIDI_INPUT_DEVICES'>"LIST MIDI_INPUT_DEVICES"<span> (</span><span class='info'>Getting all created MIDI input device list</span><span>)</span></a>
3386     command, &lt;port&gt; by the MIDI port number, &lt;key&gt; by the name of
3387     the parameter to change and &lt;value&gt; by the new value for this
3388     parameter (encapsulated into apostrophes) or NONE (not encapsulated into apostrophes)
3389     for specifying no value for parameters allowing a list of values.
3390     </p>
3391     <p>Possible Answers:
3392     </p>
3393     <p>
3394     </p>
3395     <blockquote class="text">
3396     <p>"OK" -
3397     </p>
3398     <blockquote class="text">
3399     <p>in case setting was successfully changed
3400     </p>
3401     </blockquote>
3402    
3403    
3404     <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
3405     </p>
3406     <blockquote class="text">
3407     <p>in case setting was changed successfully, but there are
3408     noteworthy issue(s) related, providing an appropriate
3409     warning code and warning message
3410     </p>
3411     </blockquote>
3412    
3413    
3414     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
3415     </p>
3416     <blockquote class="text">
3417     <p>in case it failed, providing an appropriate error code and error message
3418     </p>
3419     </blockquote>
3420    
3421    
3422     </blockquote><p>
3423    
3424     </p>
3425     <p>Example:
3426     </p>
3427     <p>
3428     </p>
3429     <blockquote class="text">
3430     <p>C: "SET MIDI_INPUT_PORT_PARAMETER 0 0 ALSA_SEQ_BINDINGS='20:0'"
3431     </p>
3432     <p>S: "OK"
3433     </p>
3434     </blockquote><p>
3435    
3436     </p>
3437     <p>
3438     </p>
3439     <blockquote class="text">
3440     <p>C: "SET MIDI_INPUT_PORT_PARAMETER 0 0 ALSA_SEQ_BINDINGS=NONE"
3441     </p>
3442     <p>S: "OK"
3443     </p>
3444     </blockquote><p>
3445    
3446     </p>
3447     <a name="anchor11"></a><br /><hr />
3448     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
3449     <a name="rfc.section.6.4"></a><h3>6.4.&nbsp;
3450     Configuring sampler channels</h3>
3451    
3452     <p>The following commands describe how to add and remove sampler channels, associate a
3453     sampler channel with a sampler engine, load instruments and connect sampler channels to
3454     MIDI and audio devices.
3455     </p>
3456     <a name="LOAD INSTRUMENT"></a><br /><hr />
3457     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
3458     <a name="rfc.section.6.4.1"></a><h3>6.4.1.&nbsp;
3459     Loading an instrument</h3>
3460    
3461     <p>An instrument file can be loaded and assigned to a sampler channel by one of the following commands:
3462     </p>
3463     <p>
3464     </p>
3465     <blockquote class="text">
3466     <p>LOAD INSTRUMENT [NON_MODAL] '&lt;filename&gt;' &lt;instr-index&gt; &lt;sampler-channel&gt;
3467     </p>
3468     </blockquote><p>
3469    
3470     </p>
3471     <p>Where &lt;filename&gt; is the name of the instrument file on the
3472     LinuxSampler instance's host system, &lt;instr-index&gt; the index of the
3473     instrument in the instrument file and &lt;sampler-channel> is the
3474     number of the sampler channel the instrument should be assigned to.
3475     Each sampler channel can only have one instrument.
3476     </p>
3477     <p>Notice: since LSCP 1.2 the &lt;filename&gt; argument supports
3478     escape characters for special characters (see chapter
3479     "<a class='info' href='#character_set'>Character Set and Escape Sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>"
3480     for details) and accordingly backslash characters in the filename
3481     MUST now be escaped as well!
3482     </p>
3483     <p>The difference between regular and NON_MODAL versions of the command
3484     is that the regular command returns OK only after the instrument has been
3485     fully loaded and the channel is ready to be used while NON_MODAL version
3486     returns immediately and a background process is launched to load the instrument
3487     on the channel. The <a class='info' href='#GET CHANNEL INFO'>GET CHANNEL INFO<span> (</span><span class='info'>Getting sampler channel information</span><span>)</span></a>
3488     command can be used to obtain loading
3489     progress from INSTRUMENT_STATUS field. LOAD command will perform sanity checks
3490     such as making sure that the file could be read and it is of a proper format
3491     and SHOULD return ERR and SHOULD not launch the background process should any
3492     errors be detected at that point.
3493     </p>
3494     <p>Possible Answers:
3495     </p>
3496     <p>
3497     </p>
3498     <blockquote class="text">
3499     <p>"OK" -
3500     </p>
3501     <blockquote class="text">
3502     <p>in case the instrument was successfully loaded
3503     </p>
3504     </blockquote>
3505    
3506    
3507     <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
3508     </p>
3509     <blockquote class="text">
3510     <p>in case the instrument was loaded successfully, but there
3511     are noteworthy issue(s) related (e.g. Engine doesn't support
3512     one or more patch parameters provided by the loaded
3513     instrument file), providing an appropriate warning code and
3514     warning message
3515     </p>
3516     </blockquote>
3517    
3518    
3519     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
3520     </p>
3521     <blockquote class="text">
3522     <p>in case it failed, providing an appropriate error code and error message
3523     </p>
3524     </blockquote>
3525    
3526    
3527     </blockquote><p>
3528    
3529     </p>
3530     <p>Example (Unix):
3531     </p>
3532     <p>
3533     </p>
3534     <blockquote class="text">
3535     <p>C: LOAD INSTRUMENT '/home/joe/gigs/cello.gig' 0 0
3536     </p>
3537     <p>S: OK
3538     </p>
3539     </blockquote><p>
3540    
3541     </p>
3542     <p>Example (Windows):
3543     </p>
3544     <p>
3545     </p>
3546     <blockquote class="text">
3547     <p>C: LOAD INSTRUMENT 'D:/MySounds/cello.gig' 0 0
3548     </p>
3549     <p>S: OK
3550     </p>
3551     </blockquote><p>
3552    
3553     </p>
3554     <a name="LOAD ENGINE"></a><br /><hr />
3555     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
3556     <a name="rfc.section.6.4.2"></a><h3>6.4.2.&nbsp;
3557     Loading a sampler engine</h3>
3558    
3559     <p>A sampler engine type can be associated to a specific sampler
3560     channel by the following command:
3561     </p>
3562     <p>
3563     </p>
3564     <blockquote class="text">
3565     <p>LOAD ENGINE &lt;engine-name&gt; &lt;sampler-channel&gt;
3566     </p>
3567     </blockquote><p>
3568    
3569     </p>
3570     <p>Where &lt;engine-name&gt; is an engine name as obtained by the
3571     <a class='info' href='#LIST AVAILABLE_ENGINES'>"LIST AVAILABLE_ENGINES"<span> (</span><span class='info'>Getting all available engines</span><span>)</span></a> command and &lt;sampler-channel&gt;
3572     the sampler channel as returned by the
3573     <a class='info' href='#ADD CHANNEL'>"ADD CHANNEL"<span> (</span><span class='info'>Adding a new sampler channel</span><span>)</span></a> or
3574     <a class='info' href='#LIST CHANNELS'>"LIST CHANNELS"<span> (</span><span class='info'>Getting all created sampler channel list</span><span>)</span></a> command where
3575     the engine type should be assigned to. This command should be issued
3576     after adding a new sampler channel and before any other control
3577     commands on the new sampler channel. It can also be used to change
3578     the engine type of a sampler channel. This command has (currently) no
3579     way to define or force if a new engine instance should be created and
3580     assigned to the given sampler channel or if an already existing
3581     instance of that engine type, shared with other sampler channels,
3582     should be used.
3583     </p>
3584     <p>Possible Answers:
3585     </p>
3586     <p>
3587     </p>
3588     <blockquote class="text">
3589     <p>"OK" -
3590     </p>
3591     <blockquote class="text">
3592     <p>in case the engine was successfully deployed
3593     </p>
3594     </blockquote>
3595    
3596    
3597     <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
3598     </p>
3599     <blockquote class="text">
3600     <p>in case the engine was deployed successfully, but there
3601     are noteworthy issue(s) related, providing an appropriate
3602     warning code and warning message
3603     </p>
3604     </blockquote>
3605    
3606    
3607     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
3608     </p>
3609     <blockquote class="text">
3610     <p>in case it failed, providing an appropriate error code and
3611     error message
3612     </p>
3613     </blockquote>
3614    
3615    
3616     </blockquote><p>
3617    
3618     </p>
3619     <p>Example:
3620     </p>
3621     <p>
3622     </p>
3623     <blockquote class="text">
3624     <p>
3625     </p>
3626     </blockquote><p>
3627    
3628     </p>
3629     <a name="GET CHANNELS"></a><br /><hr />
3630     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
3631     <a name="rfc.section.6.4.3"></a><h3>6.4.3.&nbsp;
3632     Getting all created sampler channel count</h3>
3633    
3634     <p>The number of sampler channels can change on runtime. To get the
3635     current amount of sampler channels, the front-end can send the
3636     following command:
3637     </p>
3638     <p>
3639     </p>
3640     <blockquote class="text">
3641     <p>GET CHANNELS
3642     </p>
3643     </blockquote><p>
3644    
3645     </p>
3646     <p>Possible Answers:
3647     </p>
3648     <p>
3649     </p>
3650     <blockquote class="text">
3651     <p>LinuxSampler will answer by returning the current number of sampler channels.
3652     </p>
3653     </blockquote><p>
3654    
3655     </p>
3656     <p>Example:
3657     </p>
3658     <p>
3659     </p>
3660     <blockquote class="text">
3661     <p>C: "GET CHANNELS"
3662     </p>
3663     <p>S: "12"
3664     </p>
3665     </blockquote><p>
3666    
3667     </p>
3668     <a name="LIST CHANNELS"></a><br /><hr />
3669     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
3670     <a name="rfc.section.6.4.4"></a><h3>6.4.4.&nbsp;
3671     Getting all created sampler channel list</h3>
3672    
3673     <p>The number of sampler channels can change on runtime. To get the
3674     current list of sampler channels, the front-end can send the
3675     following command:
3676     </p>
3677     <p>
3678     </p>
3679     <blockquote class="text">
3680     <p>LIST CHANNELS
3681     </p>
3682     </blockquote><p>
3683    
3684     </p>
3685     <p>Possible Answers:
3686     </p>
3687     <p>
3688     </p>
3689     <blockquote class="text">
3690     <p>LinuxSampler will answer by returning a comma separated list
3691     with all sampler channels numerical IDs.
3692     </p>
3693     </blockquote><p>
3694    
3695     </p>
3696     <p>Example:
3697     </p>
3698     <p>
3699     </p>
3700     <blockquote class="text">
3701     <p>C: "LIST CHANNELS"
3702     </p>
3703     <p>S: "0,1,2,3,4,5,6,9,10,11,15,20"
3704     </p>
3705     </blockquote><p>
3706    
3707     </p>
3708     <a name="ADD CHANNEL"></a><br /><hr />
3709     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
3710     <a name="rfc.section.6.4.5"></a><h3>6.4.5.&nbsp;
3711     Adding a new sampler channel</h3>
3712    
3713     <p>A new sampler channel can be added to the end of the sampler
3714     channel list by sending the following command:
3715     </p>
3716     <p>
3717     </p>
3718     <blockquote class="text">
3719     <p>ADD CHANNEL
3720     </p>
3721     </blockquote><p>
3722    
3723     </p>
3724     <p>This will increment the sampler channel count by one and the new
3725     sampler channel will be appended to the end of the sampler channel
3726     list. The front-end should send the respective, related commands
3727     right after to e.g. load an engine, load an instrument and setting
3728     input, output method and eventually other commands to initialize
3729     the new channel. The front-end should use the sampler channel
3730     returned by the answer of this command to perform the previously
3731     recommended commands, to avoid race conditions e.g. with other
3732     front-ends that might also have sent an "ADD CHANNEL" command.
3733     </p>
3734     <p>Possible Answers:
3735     </p>
3736     <p>
3737     </p>
3738     <blockquote class="text">
3739     <p>"OK[&lt;sampler-channel&gt;]" -
3740     </p>
3741     <blockquote class="text">
3742     <p>in case a new sampler channel could be added, where
3743     &lt;sampler-channel&gt; reflects the channel number of the new
3744     created sampler channel which should be used to set up
3745     the sampler channel by sending subsequent initialization
3746     commands
3747     </p>
3748     </blockquote>
3749    
3750    
3751     <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
3752     </p>
3753     <blockquote class="text">
3754     <p>in case a new channel was added successfully, but there are
3755     noteworthy issue(s) related, providing an appropriate
3756     warning code and warning message
3757     </p>
3758     </blockquote>
3759    
3760    
3761     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
3762     </p>
3763     <blockquote class="text">
3764     <p>in case it failed, providing an appropriate error code and
3765     error message
3766     </p>
3767     </blockquote>
3768    
3769    
3770     </blockquote><p>
3771    
3772     </p>
3773     <p>Example:
3774     </p>
3775     <p>
3776     </p>
3777     <blockquote class="text">
3778     <p>
3779     </p>
3780     </blockquote><p>
3781    
3782     </p>
3783     <a name="REMOVE CHANNEL"></a><br /><hr />
3784     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
3785     <a name="rfc.section.6.4.6"></a><h3>6.4.6.&nbsp;
3786     Removing a sampler channel</h3>
3787    
3788     <p>A sampler channel can be removed by sending the following command:
3789     </p>
3790     <p>
3791     </p>
3792     <blockquote class="text">
3793     <p>REMOVE CHANNEL &lt;sampler-channel&gt;
3794     </p>
3795     </blockquote><p>
3796    
3797     </p>
3798     <p>Where &lt;sampler-channel&gt; should be replaced by the
3799     number of the sampler channel as given by the
3800     <a class='info' href='#ADD CHANNEL'>"ADD CHANNEL"<span> (</span><span class='info'>Adding a new sampler channel</span><span>)</span></a>
3801     or <a class='info' href='#LIST CHANNELS'>"LIST CHANNELS"<span> (</span><span class='info'>Getting all created sampler channel list</span><span>)</span></a>
3802     command. The channel numbers of all subsequent sampler channels
3803     remain the same.
3804     </p>
3805     <p>Possible Answers:
3806     </p>
3807     <p>
3808     </p>
3809     <blockquote class="text">
3810     <p>"OK" -
3811     </p>
3812     <blockquote class="text">
3813     <p>in case the given sampler channel could be removed
3814     </p>
3815     </blockquote>
3816    
3817    
3818     <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
3819     </p>
3820     <blockquote class="text">
3821     <p>in case the given channel was removed, but there are
3822     noteworthy issue(s) related, providing an appropriate
3823     warning code and warning message
3824     </p>
3825     </blockquote>
3826    
3827    
3828     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
3829     </p>
3830     <blockquote class="text">
3831     <p>in case it failed, providing an appropriate error code and
3832     error message
3833     </p>
3834     </blockquote>
3835    
3836    
3837     </blockquote><p>
3838    
3839     </p>
3840     <p>Example:
3841     </p>
3842     <p>
3843     </p>
3844     <blockquote class="text">
3845     <p>
3846     </p>
3847     </blockquote><p>
3848    
3849     </p>
3850     <a name="GET AVAILABLE_ENGINES"></a><br /><hr />
3851     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
3852     <a name="rfc.section.6.4.7"></a><h3>6.4.7.&nbsp;
3853     Getting amount of available engines</h3>
3854    
3855     <p>The front-end can ask for the number of available engines by sending the following command:
3856     </p>
3857     <p>
3858     </p>
3859     <blockquote class="text">
3860     <p>GET AVAILABLE_ENGINES
3861     </p>
3862     </blockquote><p>
3863    
3864     </p>
3865     <p>Possible Answers:
3866     </p>
3867     <p>
3868     </p>
3869     <blockquote class="text">
3870     <p>LinuxSampler will answer by sending the number of available engines.
3871     </p>
3872     </blockquote><p>
3873    
3874     </p>
3875     <p>Example:
3876     </p>
3877     <p>
3878     </p>
3879     <blockquote class="text">
3880     <p>C: "GET AVAILABLE_ENGINES"
3881     </p>
3882     <p>S: "4"
3883     </p>
3884     </blockquote><p>
3885    
3886     </p>
3887     <a name="LIST AVAILABLE_ENGINES"></a><br /><hr />
3888     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
3889     <a name="rfc.section.6.4.8"></a><h3>6.4.8.&nbsp;
3890     Getting all available engines</h3>
3891    
3892     <p>The front-end can ask for a list of all available engines by sending the following command:
3893     </p>
3894     <p>
3895     </p>
3896     <blockquote class="text">
3897     <p>LIST AVAILABLE_ENGINES
3898     </p>
3899     </blockquote><p>
3900    
3901     </p>
3902     <p>Possible Answers:
3903     </p>
3904     <p>
3905     </p>
3906     <blockquote class="text">
3907     <p>LinuxSampler will answer by sending a comma separated list
3908     of the engines' names encapsulated into apostrophes (').
3909     Engine names can consist of lower and upper cases,
3910     digits and underlines ("_" character).
3911     </p>
3912     </blockquote><p>
3913    
3914     </p>
3915     <p>Example:
3916     </p>
3917     <p>
3918     </p>
3919     <blockquote class="text">
3920     <p>C: "LIST AVAILABLE_ENGINES"
3921     </p>
3922     <p>S: "'gig','sfz','sf2'"
3923     </p>
3924     </blockquote><p>
3925    
3926     </p>
3927     <a name="GET ENGINE INFO"></a><br /><hr />
3928     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
3929     <a name="rfc.section.6.4.9"></a><h3>6.4.9.&nbsp;
3930     Getting information about an engine</h3>
3931    
3932     <p>The front-end can ask for information about a specific engine by
3933     sending the following command:
3934     </p>
3935     <p>
3936     </p>
3937     <blockquote class="text">
3938     <p>GET ENGINE INFO &lt;engine-name&gt;
3939     </p>
3940     </blockquote><p>
3941    
3942     </p>
3943     <p>Where &lt;engine-name&gt; is an engine name as obtained by the
3944     <a class='info' href='#LIST AVAILABLE_ENGINES'>"LIST AVAILABLE_ENGINES"<span> (</span><span class='info'>Getting all available engines</span><span>)</span></a> command.
3945     </p>
3946     <p>Possible Answers:
3947     </p>
3948     <p>
3949     </p>
3950     <blockquote class="text">
3951     <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
3952     Each answer line begins with the information category name
3953     followed by a colon and then a space character &lt;SP&gt; and finally
3954     the info character string to that info category. At the moment
3955     the following categories are defined:
3956     </p>
3957     <p>
3958     </p>
3959     <blockquote class="text">
3960     <p>DESCRIPTION -
3961     </p>
3962     <blockquote class="text">
3963     <p>arbitrary description text about the engine
3964     (note that the character string may contain
3965     <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>)
3966     </p>
3967     </blockquote>
3968    
3969    
3970     <p>VERSION -
3971     </p>
3972     <blockquote class="text">
3973     <p>arbitrary character string regarding the engine's version
3974     </p>
3975     </blockquote>
3976    
3977    
3978     </blockquote>
3979    
3980    
3981     </blockquote><p>
3982    
3983     </p>
3984     <p>The mentioned fields above don't have to be in particular order.
3985     </p>
3986     <p>Examples:
3987     </p>
3988     <p>
3989     </p>
3990     <blockquote class="text">
3991     <p>C: "GET ENGINE INFO gig"
3992     </p>
3993     <p>S: "DESCRIPTION: GigaSampler Format Engine"
3994     </p>
3995     <p>&nbsp;&nbsp;&nbsp;"VERSION: 1.110"
3996     </p>
3997     <p>&nbsp;&nbsp;&nbsp;"."
3998     </p>
3999     <p>C: "GET ENGINE INFO sf2"
4000     </p>
4001     <p>S: "DESCRIPTION: SoundFont Format Engine"
4002     </p>
4003     <p>&nbsp;&nbsp;&nbsp;"VERSION: 1.4"
4004     </p>
4005     <p>&nbsp;&nbsp;&nbsp;"."
4006     </p>
4007     <p>C: "GET ENGINE INFO sfz"
4008     </p>
4009     <p>S: "DESCRIPTION: SFZ Format Engine"
4010     </p>
4011     <p>&nbsp;&nbsp;&nbsp;"VERSION: 1.11"
4012     </p>
4013     <p>&nbsp;&nbsp;&nbsp;"."
4014     </p>
4015     </blockquote><p>
4016    
4017     </p>
4018     <a name="GET CHANNEL INFO"></a><br /><hr />
4019     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
4020     <a name="rfc.section.6.4.10"></a><h3>6.4.10.&nbsp;
4021     Getting sampler channel information</h3>
4022    
4023     <p>The front-end can ask for the current settings of a sampler channel
4024     by sending the following command:
4025     </p>
4026     <p>
4027     </p>
4028     <blockquote class="text">
4029     <p>GET CHANNEL INFO &lt;sampler-channel&gt;
4030     </p>
4031     </blockquote><p>
4032    
4033     </p>
4034     <p>Where &lt;sampler-channel&gt; is the sampler channel number the front-end is interested in
4035     as returned by the <a class='info' href='#ADD CHANNEL'>"ADD CHANNEL"<span> (</span><span class='info'>Adding a new sampler channel</span><span>)</span></a>
4036     or <a class='info' href='#LIST CHANNELS'>"LIST CHANNELS"<span> (</span><span class='info'>Getting all created sampler channel list</span><span>)</span></a> command.
4037     </p>
4038     <p>Possible Answers:
4039     </p>
4040     <p>
4041     </p>
4042     <blockquote class="text">
4043     <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
4044     Each answer line begins with the settings category name
4045     followed by a colon and then a space character &lt;SP&gt; and finally
4046     the info character string to that setting category. At the
4047     moment the following categories are defined:
4048     </p>
4049     <p>
4050     </p>
4051     <blockquote class="text">
4052     <p>ENGINE_NAME -
4053     </p>
4054     <blockquote class="text">
4055     <p>name of the engine that is associated with the sampler
4056     channel, "NONE" if there's no engine associated yet for
4057     this sampler channel
4058     </p>
4059     </blockquote>
4060    
4061    
4062     <p>AUDIO_OUTPUT_DEVICE -
4063     </p>
4064     <blockquote class="text">
4065     <p>numerical ID of the audio output device which is
4066     currently connected to this sampler channel to output
4067     the audio signal, "-1" if there's no device
4068     connected to this sampler channel
4069     </p>
4070     </blockquote>
4071    
4072    
4073     <p>AUDIO_OUTPUT_CHANNELS -
4074     </p>
4075     <blockquote class="text">
4076     <p>number of output channels the sampler channel offers
4077     (dependent to used sampler engine and loaded instrument)
4078     </p>
4079     </blockquote>
4080    
4081    
4082     <p>AUDIO_OUTPUT_ROUTING -
4083     </p>
4084     <blockquote class="text">
4085     <p>comma separated list which reflects to which audio
4086     channel of the selected audio output device each
4087     sampler output channel is routed to, e.g. "0,3" would
4088     mean the engine's output channel 0 is routed to channel
4089     0 of the audio output device and the engine's output
4090     channel 1 is routed to the channel 3 of the audio
4091     output device
4092     </p>
4093     </blockquote>
4094    
4095    
4096     <p>INSTRUMENT_FILE -
4097     </p>
4098     <blockquote class="text">
4099     <p>the file name of the loaded instrument, "NONE" if
4100     there's no instrument yet loaded for this sampler
4101     channel (note: since LSCP 1.2 this path may contain
4102     <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>)
4103     </p>
4104     </blockquote>
4105    
4106    
4107     <p>INSTRUMENT_NR -
4108     </p>
4109     <blockquote class="text">
4110     <p>the instrument index number of the loaded instrument,
4111     "-1" if there's no instrument loaded for this sampler
4112     channel
4113     </p>
4114     </blockquote>
4115    
4116    
4117     <p>INSTRUMENT_NAME -
4118     </p>
4119     <blockquote class="text">
4120     <p>the instrument name of the loaded instrument
4121     (note: since LSCP 1.2 this character string may contain
4122     <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>)
4123     </p>
4124     </blockquote>
4125    
4126    
4127     <p>INSTRUMENT_STATUS -
4128     </p>
4129     <blockquote class="text">
4130     <p>Integer values 0 to 100 indicating loading progress
4131     percentage for the instrument. Negative
4132     value indicates a loading exception (also returns "-1" in case no
4133     instrument was yet to be loaded on the sampler channel).
4134     Value of 100 indicates that the instrument is fully
4135     loaded.
4136     </p>
4137     </blockquote>
4138    
4139    
4140     <p>MIDI_INPUT_DEVICE -
4141     </p>
4142     <blockquote class="text">
4143     <p>numerical ID of the MIDI input device which is
4144     currently connected to this sampler channel to deliver
4145     MIDI input commands, "-1" if there's no device
4146     connected to this sampler channel
4147     </p>
4148     </blockquote>
4149    
4150    
4151     <p>MIDI_INPUT_PORT -
4152     </p>
4153     <blockquote class="text">
4154     <p>port number of the MIDI input device (in case a
4155     MIDI device was already assigned to the sampler
4156     channel)
4157     </p>
4158     </blockquote>
4159    
4160    
4161     <p>MIDI_INPUT_CHANNEL -
4162     </p>
4163     <blockquote class="text">
4164     <p>the MIDI input channel number this sampler channel
4165     should listen to or "ALL" to listen on all MIDI channels
4166     </p>
4167     </blockquote>
4168    
4169    
4170     <p>VOLUME -
4171     </p>
4172     <blockquote class="text">
4173     <p>optionally dotted number for the channel volume factor
4174     (where a value &lt; 1.0 means attenuation and a value >
4175     1.0 means amplification)
4176     </p>
4177     </blockquote>
4178    
4179    
4180     <p>MUTE -
4181     </p>
4182     <blockquote class="text">
4183     <p>Determines whether the channel is muted, "true" if the
4184     channel is muted, "false" if the channel is not muted, and
4185     "MUTED_BY_SOLO" if the channel is muted because of the
4186     presence of a solo channel and will be unmuted when
4187     there are no solo channels left
4188     </p>
4189     </blockquote>
4190    
4191    
4192     <p>SOLO -
4193     </p>
4194     <blockquote class="text">
4195     <p>Determines whether this is a solo channel, "true" if
4196     the channel is a solo channel; "false" otherwise
4197     </p>
4198     </blockquote>
4199    
4200    
4201     <p>MIDI_INSTRUMENT_MAP -
4202     </p>
4203     <blockquote class="text">
4204     <p>Determines to which MIDI instrument map this sampler
4205     channel is assigned to. Read chapter
4206     <a class='info' href='#SET CHANNEL MIDI_INSTRUMENT_MAP'>"SET CHANNEL MIDI_INSTRUMENT_MAP"<span> (</span><span class='info'>Assigning a MIDI instrument map to a sampler channel</span><span>)</span></a>
4207     for a list of possible values.
4208     </p>
4209     </blockquote>
4210    
4211    
4212     </blockquote>
4213    
4214    
4215     </blockquote><p>
4216    
4217     </p>
4218     <p>The mentioned fields above don't have to be in particular order.
4219     </p>
4220     <p>Example:
4221     </p>
4222     <p>
4223     </p>
4224     <blockquote class="text">
4225     <p>C: "GET CHANNEL INFO 34"
4226     </p>
4227     <p>S: "ENGINE_NAME: gig"
4228     </p>
4229     <p>&nbsp;&nbsp;&nbsp;"VOLUME: 1.0"
4230     </p>
4231     <p>&nbsp;&nbsp;&nbsp;"AUDIO_OUTPUT_DEVICE: 0"
4232     </p>
4233     <p>&nbsp;&nbsp;&nbsp;"AUDIO_OUTPUT_CHANNELS: 2"
4234     </p>
4235     <p>&nbsp;&nbsp;&nbsp;"AUDIO_OUTPUT_ROUTING: 0,1"
4236     </p>
4237     <p>&nbsp;&nbsp;&nbsp;"INSTRUMENT_FILE: /home/joe/FazioliPiano.gig"
4238     </p>
4239     <p>&nbsp;&nbsp;&nbsp;"INSTRUMENT_NR: 0"
4240     </p>
4241     <p>&nbsp;&nbsp;&nbsp;"INSTRUMENT_NAME: Fazioli Piano"
4242     </p>
4243     <p>&nbsp;&nbsp;&nbsp;"INSTRUMENT_STATUS: 100"
4244     </p>
4245     <p>&nbsp;&nbsp;&nbsp;"MIDI_INPUT_DEVICE: 0"
4246     </p>
4247     <p>&nbsp;&nbsp;&nbsp;"MIDI_INPUT_PORT: 0"
4248     </p>
4249     <p>&nbsp;&nbsp;&nbsp;"MIDI_INPUT_CHANNEL: 5"
4250     </p>
4251     <p>&nbsp;&nbsp;&nbsp;"VOLUME: 1.0"
4252     </p>
4253     <p>&nbsp;&nbsp;&nbsp;"MUTE: false"
4254     </p>
4255     <p>&nbsp;&nbsp;&nbsp;"SOLO: false"
4256     </p>
4257     <p>&nbsp;&nbsp;&nbsp;"MIDI_INSTRUMENT_MAP: NONE"
4258     </p>
4259     <p>&nbsp;&nbsp;&nbsp;"."
4260     </p>
4261     </blockquote><p>
4262    
4263     </p>
4264     <a name="GET CHANNEL VOICE_COUNT"></a><br /><hr />
4265     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
4266     <a name="rfc.section.6.4.11"></a><h3>6.4.11.&nbsp;
4267     Current number of active voices</h3>
4268    
4269     <p>The front-end can ask for the current number of active voices on a
4270     sampler channel by sending the following command:
4271     </p>
4272     <p>
4273     </p>
4274     <blockquote class="text">
4275     <p>GET CHANNEL VOICE_COUNT &lt;sampler-channel&gt;
4276     </p>
4277     </blockquote><p>
4278    
4279     </p>
4280     <p>Where &lt;sampler-channel&gt; is the sampler channel number the front-end is interested in
4281     as returned by the <a class='info' href='#ADD CHANNEL'>"ADD CHANNEL"<span> (</span><span class='info'>Adding a new sampler channel</span><span>)</span></a>
4282     or <a class='info' href='#LIST CHANNELS'>"LIST CHANNELS"<span> (</span><span class='info'>Getting all created sampler channel list</span><span>)</span></a> command.
4283     </p>
4284     <p>Possible Answers:
4285     </p>
4286     <p>
4287     </p>
4288     <blockquote class="text">
4289     <p>LinuxSampler will answer by returning the number of active
4290     voices on that channel.
4291     </p>
4292     </blockquote><p>
4293    
4294     </p>
4295     <p>Example:
4296     </p>
4297     <p>
4298     </p>
4299     <blockquote class="text">
4300     <p>
4301     </p>
4302     </blockquote><p>
4303    
4304     </p>
4305     <a name="GET CHANNEL STREAM_COUNT"></a><br /><hr />
4306     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
4307     <a name="rfc.section.6.4.12"></a><h3>6.4.12.&nbsp;
4308     Current number of active disk streams</h3>
4309    
4310     <p>The front-end can ask for the current number of active disk streams
4311     on a sampler channel by sending the following command:
4312     </p>
4313     <p>
4314     </p>
4315     <blockquote class="text">
4316     <p>GET CHANNEL STREAM_COUNT &lt;sampler-channel&gt;
4317     </p>
4318     </blockquote><p>
4319    
4320     </p>
4321     <p>Where &lt;sampler-channel&gt; is the sampler channel number the front-end is interested in
4322     as returned by the <a class='info' href='#ADD CHANNEL'>"ADD CHANNEL"<span> (</span><span class='info'>Adding a new sampler channel</span><span>)</span></a>
4323     or <a class='info' href='#LIST CHANNELS'>"LIST CHANNELS"<span> (</span><span class='info'>Getting all created sampler channel list</span><span>)</span></a> command.
4324     </p>
4325     <p>Possible Answers:
4326     </p>
4327     <p>
4328     </p>
4329     <blockquote class="text">
4330     <p>LinuxSampler will answer by returning the number of active
4331     disk streams on that channel in case the engine supports disk
4332     streaming, if the engine doesn't support disk streaming it will
4333     return "NA" for not available.
4334     </p>
4335     </blockquote><p>
4336    
4337     </p>
4338     <p>Example:
4339     </p>
4340     <p>
4341     </p>
4342     <blockquote class="text">
4343     <p>
4344     </p>
4345     </blockquote><p>
4346    
4347     </p>
4348     <a name="GET CHANNEL BUFFER_FILL"></a><br /><hr />
4349     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
4350     <a name="rfc.section.6.4.13"></a><h3>6.4.13.&nbsp;
4351     Current fill state of disk stream buffers</h3>
4352    
4353     <p>The front-end can ask for the current fill state of all disk streams
4354     on a sampler channel by sending the following command:
4355     </p>
4356     <p>
4357     </p>
4358     <blockquote class="text">
4359     <p>GET CHANNEL BUFFER_FILL BYTES &lt;sampler-channel&gt;
4360     </p>
4361     </blockquote><p>
4362    
4363     </p>
4364     <p>to get the fill state in bytes or
4365     </p>
4366     <p>
4367     </p>
4368     <blockquote class="text">
4369     <p>GET CHANNEL BUFFER_FILL PERCENTAGE &lt;sampler-channel&gt;
4370     </p>
4371     </blockquote><p>
4372    
4373     </p>
4374     <p>to get the fill state in percent, where &lt;sampler-channel&gt; is the
4375     sampler channel number the front-end is interested in
4376     as returned by the <a class='info' href='#ADD CHANNEL'>"ADD CHANNEL"<span> (</span><span class='info'>Adding a new sampler channel</span><span>)</span></a>
4377     or <a class='info' href='#LIST CHANNELS'>"LIST CHANNELS"<span> (</span><span class='info'>Getting all created sampler channel list</span><span>)</span></a> command.
4378     </p>
4379     <p>Possible Answers:
4380     </p>
4381     <p>
4382     </p>
4383     <blockquote class="text">
4384     <p>LinuxSampler will either answer by returning a comma separated
4385     string with the fill state of all disk stream buffers on that
4386     channel or an empty line if there are no active disk streams or
4387     "NA" for *not available* in case the engine which is deployed
4388     doesn't support disk streaming. Each entry in the answer list
4389     will begin with the stream's ID in brackets followed by the
4390     numerical representation of the fill size (either in bytes or
4391     percentage). Note: due to efficiency reasons the fill states in
4392     the response are not in particular order, thus the front-end has
4393     to sort them by itself if necessary.
4394     </p>
4395     </blockquote><p>
4396    
4397     </p>
4398     <p>Examples:
4399     </p>
4400     <p>
4401     </p>
4402     <blockquote class="text">
4403     <p>C: "GET CHANNEL BUFFER_FILL BYTES 4"
4404     </p>
4405     <p>S: "[115]420500,[116]510300,[75]110000,[120]230700"
4406     </p>
4407     </blockquote><p>
4408    
4409     </p>
4410     <blockquote class="text">
4411     <p>C: "GET CHANNEL BUFFER_FILL PERCENTAGE 4"
4412     </p>
4413     <p>S: "[115]90%,[116]98%,[75]40%,[120]62%"
4414     </p>
4415     </blockquote><p>
4416    
4417     </p>
4418     <blockquote class="text">
4419     <p>C: "GET CHANNEL BUFFER_FILL PERCENTAGE 4"
4420     </p>
4421     <p>S: ""
4422     </p>
4423     </blockquote><p>
4424    
4425     </p>
4426     <a name="SET CHANNEL AUDIO_OUTPUT_DEVICE"></a><br /><hr />
4427     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
4428     <a name="rfc.section.6.4.14"></a><h3>6.4.14.&nbsp;
4429     Setting audio output device</h3>
4430    
4431     <p>The front-end can set the audio output device on a specific sampler
4432     channel by sending the following command:
4433     </p>
4434     <p>
4435     </p>
4436     <blockquote class="text">
4437     <p>SET CHANNEL AUDIO_OUTPUT_DEVICE &lt;sampler-channel&gt; &lt;audio-device-id&gt;
4438     </p>
4439     </blockquote><p>
4440    
4441     </p>
4442     <p>Where &lt;sampler-channel&gt; is the respective sampler channel
4443     number as returned by the <a class='info' href='#ADD CHANNEL'>"ADD CHANNEL"<span> (</span><span class='info'>Adding a new sampler channel</span><span>)</span></a>
4444     or <a class='info' href='#LIST CHANNELS'>"LIST CHANNELS"<span> (</span><span class='info'>Getting all created sampler channel list</span><span>)</span></a> command and
4445     &lt;audio-device-id&gt; is the numerical ID of the audio output device as given by the
4446     <a class='info' href='#CREATE AUDIO_OUTPUT_DEVICE'>"CREATE AUDIO_OUTPUT_DEVICE"<span> (</span><span class='info'>Creating an audio output device</span><span>)</span></a>
4447     or <a class='info' href='#LIST AUDIO_OUTPUT_DEVICES'>"LIST AUDIO_OUTPUT_DEVICES"<span> (</span><span class='info'>Getting all created audio output device list</span><span>)</span></a>
4448     command.
4449     </p>
4450     <p>Possible Answers:
4451     </p>
4452     <p>
4453     </p>
4454     <blockquote class="text">
4455     <p>"OK" -
4456     </p>
4457     <blockquote class="text">
4458     <p>on success
4459     </p>
4460     </blockquote>
4461    
4462    
4463     <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
4464     </p>
4465     <blockquote class="text">
4466     <p>if audio output device was set, but there are noteworthy
4467     issue(s) related, providing an appropriate warning code and
4468     warning message
4469     </p>
4470     </blockquote>
4471    
4472    
4473     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
4474     </p>
4475     <blockquote class="text">
4476     <p>in case it failed, providing an appropriate error code and error message
4477     </p>
4478     </blockquote>
4479    
4480    
4481     </blockquote><p>
4482    
4483     </p>
4484     <p>Examples:
4485     </p>
4486     <p>
4487     </p>
4488     <blockquote class="text">
4489     <p>
4490     </p>
4491     </blockquote><p>
4492    
4493     </p>
4494     <a name="SET CHANNEL AUDIO_OUTPUT_TYPE"></a><br /><hr />
4495     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
4496     <a name="rfc.section.6.4.15"></a><h3>6.4.15.&nbsp;
4497     Setting audio output type</h3>
4498    
4499     <p>DEPRECATED: THIS COMMAND WILL DISAPPEAR!
4500     </p>
4501     <p>The front-end can alter the audio output type on a specific sampler
4502     channel by sending the following command:
4503     </p>
4504     <p>
4505     </p>
4506     <blockquote class="text">
4507     <p>SET CHANNEL AUDIO_OUTPUT_TYPE &lt;sampler-channel&gt; &lt;audio-output-type&gt;
4508     </p>
4509     </blockquote><p>
4510    
4511     </p>
4512     <p>Where &lt;audio-output-type&gt; is currently either "ALSA" or "JACK" and
4513     &lt;sampler-channel&gt; is the respective sampler channel number.
4514     </p>
4515     <p>Possible Answers:
4516     </p>
4517     <p>
4518     </p>
4519     <blockquote class="text">
4520     <p>"OK" -
4521     </p>
4522     <blockquote class="text">
4523     <p>on success
4524     </p>
4525     </blockquote>
4526    
4527    
4528     <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
4529     </p>
4530     <blockquote class="text">
4531     <p>if audio output type was set, but there are noteworthy
4532     issue(s) related, providing an appropriate warning code and
4533     warning message
4534     </p>
4535     </blockquote>
4536    
4537    
4538     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
4539     </p>
4540     <blockquote class="text">
4541     <p>in case it failed, providing an appropriate error code and error message
4542     </p>
4543     </blockquote>
4544    
4545    
4546     </blockquote><p>
4547    
4548     </p>
4549     <p>Examples:
4550     </p>
4551     <p>
4552     </p>
4553     <blockquote class="text">
4554     <p>
4555     </p>
4556     </blockquote><p>
4557    
4558     </p>
4559     <p>Deprecated:
4560     </p>
4561     <p>
4562     </p>
4563     <blockquote class="text">
4564     <p>Should not be used anymore. This command is currently only preserved for backward compatibility.
4565     </p>
4566     <p>This command is a relict from times where there was no sophisticated driver management yet. Use <a class='info' href='#CREATE AUDIO_OUTPUT_DEVICE'>"CREATE AUDIO_OUTPUT_DEVICE"<span> (</span><span class='info'>Creating an audio output device</span><span>)</span></a> and <a class='info' href='#SET CHANNEL AUDIO_OUTPUT_DEVICE'>"SET CHANNEL AUDIO_OUTPUT_DEVICE"<span> (</span><span class='info'>Setting audio output device</span><span>)</span></a> instead.
4567     </p>
4568     </blockquote><p>
4569    
4570     </p>
4571     <a name="SET CHANNEL AUDIO_OUTPUT_CHANNEL"></a><br /><hr />
4572     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
4573     <a name="rfc.section.6.4.16"></a><h3>6.4.16.&nbsp;
4574     Setting audio output channel</h3>
4575    
4576     <p>The front-end can alter the audio output channel on a specific
4577     sampler channel by sending the following command:
4578     </p>
4579     <p>
4580     </p>
4581     <blockquote class="text">
4582     <p>SET CHANNEL AUDIO_OUTPUT_CHANNEL &lt;sampler-chan&gt; &lt;audio-out&gt; &lt;audio-in&gt;
4583     </p>
4584     </blockquote><p>
4585    
4586     </p>
4587     <p>Where &lt;sampler-chan&gt; is the sampler channel number
4588     as returned by the <a class='info' href='#ADD CHANNEL'>"ADD CHANNEL"<span> (</span><span class='info'>Adding a new sampler channel</span><span>)</span></a>
4589     or <a class='info' href='#LIST CHANNELS'>"LIST CHANNELS"<span> (</span><span class='info'>Getting all created sampler channel list</span><span>)</span></a> command, &lt;audio-out&gt; is the
4590     numerical ID of the sampler channel's audio output channel which should be
4591     rerouted and &lt;audio-in&gt; is the numerical ID of the audio channel of the selected audio
4592     output device where &lt;audio-out&gt; should be routed to.
4593     </p>
4594     <p>Possible Answers:
4595     </p>
4596     <p>
4597     </p>
4598     <blockquote class="text">
4599     <p>"OK" -
4600     </p>
4601     <blockquote class="text">
4602     <p>on success
4603     </p>
4604     </blockquote>
4605    
4606    
4607     <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
4608     </p>
4609     <blockquote class="text">
4610     <p>if audio output channel was set, but there are noteworthy
4611     issue(s) related, providing an appropriate warning code and
4612     warning message
4613     </p>
4614     </blockquote>
4615    
4616    
4617     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
4618     </p>
4619     <blockquote class="text">
4620     <p>in case it failed, providing an appropriate error code and error message
4621     </p>
4622     </blockquote>
4623    
4624    
4625     </blockquote><p>
4626    
4627     </p>
4628     <p>Examples:
4629     </p>
4630     <p>
4631     </p>
4632     <blockquote class="text">
4633     <p>
4634     </p>
4635     </blockquote><p>
4636    
4637     </p>
4638     <a name="ADD CHANNEL MIDI_INPUT"></a><br /><hr />
4639     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
4640     <a name="rfc.section.6.4.17"></a><h3>6.4.17.&nbsp;
4641     Add MIDI input to sampler channel</h3>
4642    
4643     <p>The front-end can add a MIDI input on a specific sampler
4644     channel by sending the following command:
4645     </p>
4646     <p>
4647     </p>
4648     <blockquote class="text">
4649     <p>ADD CHANNEL MIDI_INPUT &lt;sampler-channel&gt; &lt;midi-device-id&gt; [&lt;midi-input-port&gt;]
4650     </p>
4651     </blockquote><p>
4652    
4653     </p>
4654     <p>Where &lt;sampler-channel&gt; is the sampler channel number
4655     as returned by the <a class='info' href='#ADD CHANNEL'>"ADD CHANNEL"<span> (</span><span class='info'>Adding a new sampler channel</span><span>)</span></a>
4656     or <a class='info' href='#LIST CHANNELS'>"LIST CHANNELS"<span> (</span><span class='info'>Getting all created sampler channel list</span><span>)</span></a> command
4657     and &lt;midi-device-id&gt; is the numerical ID of the MIDI input
4658     device as returned by the
4659     <a class='info' href='#CREATE MIDI_INPUT_DEVICE'>"CREATE MIDI_INPUT_DEVICE"<span> (</span><span class='info'>Creating a MIDI input device</span><span>)</span></a>
4660     or <a class='info' href='#LIST MIDI_INPUT_DEVICES'>"LIST MIDI_INPUT_DEVICES"<span> (</span><span class='info'>Getting all created MIDI input device list</span><span>)</span></a> command,
4661     and &lt;midi-input-port&gt; is an optional MIDI input port number of that
4662     MIDI input device. If &lt;midi-input-port&gt; is omitted,
4663     then the MIDI input device's first port (port number 0) is
4664     used.
4665    
4666     </p>
4667     <p>Possible Answers:
4668     </p>
4669     <p>
4670     </p>
4671     <blockquote class="text">
4672     <p>"OK" -
4673     </p>
4674     <blockquote class="text">
4675     <p>on success
4676     </p>
4677     </blockquote>
4678    
4679    
4680     <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
4681     </p>
4682     <blockquote class="text">
4683     <p>if MIDI input port was connected, but there are noteworthy
4684     issue(s) related, providing an appropriate warning code and
4685     warning message
4686     </p>
4687     </blockquote>
4688    
4689    
4690     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
4691     </p>
4692     <blockquote class="text">
4693     <p>in case it failed, providing an appropriate error code and error message
4694     </p>
4695     </blockquote>
4696    
4697    
4698     </blockquote><p>
4699    
4700     </p>
4701     <p>Examples:
4702     </p>
4703     <p>
4704     </p>
4705     <blockquote class="text">
4706     <p>C: "ADD CHANNEL MIDI_INPUT 0 0"
4707     </p>
4708     <p>S: "OK"
4709     </p>
4710     <p>C: "ADD CHANNEL MIDI_INPUT 1 0"
4711     </p>
4712     <p>S: "OK"
4713     </p>
4714     <p>C: "ADD CHANNEL MIDI_INPUT 1 1 1"
4715     </p>
4716     <p>S: "OK"
4717     </p>
4718     <p>C: "ADD CHANNEL MIDI_INPUT 1 2 0"
4719     </p>
4720     <p>S: "OK"
4721     </p>
4722     </blockquote><p>
4723    
4724     </p>
4725     <p>Since:
4726     </p>
4727     <p>
4728     </p>
4729     <blockquote class="text">
4730     <p>Introduced with LSCP v1.6
4731     </p>
4732     </blockquote><p>
4733    
4734     </p>
4735     <a name="REMOVE CHANNEL MIDI_INPUT"></a><br /><hr />
4736     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
4737     <a name="rfc.section.6.4.18"></a><h3>6.4.18.&nbsp;
4738     Remove MIDI input(s) from sampler channel</h3>
4739    
4740     <p>The front-end can remove one ore more MIDI input(s) on a
4741     specific sampler channel by sending the following command:
4742     </p>
4743     <p>
4744     </p>
4745     <blockquote class="text">
4746     <p>REMOVE CHANNEL MIDI_INPUT &lt;sampler-channel&gt; [&lt;midi-device-id&gt; [&lt;midi-input-port&gt;]]
4747     </p>
4748     </blockquote><p>
4749    
4750     </p>
4751     <p>Where &lt;sampler-channel&gt; is the sampler channel number
4752     as returned by the <a class='info' href='#ADD CHANNEL'>"ADD CHANNEL"<span> (</span><span class='info'>Adding a new sampler channel</span><span>)</span></a>
4753     or <a class='info' href='#LIST CHANNELS'>"LIST CHANNELS"<span> (</span><span class='info'>Getting all created sampler channel list</span><span>)</span></a> command
4754     and &lt;midi-device-id&gt; and &lt;midi-input-port&gt; are
4755     optional numerical IDs defining the MIDI input device and
4756     one of its MIDI ports as returned by the
4757     <a class='info' href='#LIST CHANNEL MIDI_INPUTS'>"LIST CHANNEL MIDI_INPUTS"<span> (</span><span class='info'>Getting all MIDI inputs of a sampler channel</span><span>)</span></a> command.
4758    
4759     </p>
4760     <p>
4761     If &lt;midi-input-port&gt; is omitted, then all MIDI input
4762     ports of &lt;midi-device-id&gt; are disconnected from this
4763     sampler channel.
4764    
4765     </p>
4766     <p>
4767     If both, &lt;midi-device-id&gt; and &lt;midi-input-port&gt;
4768     are omitted, then all MIDI input ports currently connected
4769     to this sampler channel are disconnected from this sampler
4770     channel.
4771    
4772     </p>
4773     <p>Possible Answers:
4774     </p>
4775     <p>
4776     </p>
4777     <blockquote class="text">
4778     <p>"OK" -
4779     </p>
4780     <blockquote class="text">
4781     <p>on success
4782     </p>
4783     </blockquote>
4784    
4785    
4786     <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
4787     </p>
4788     <blockquote class="text">
4789     <p>if MIDI input porst were disconnected, but there are noteworthy
4790     issue(s) related, providing an appropriate warning code and
4791     warning message
4792     </p>
4793     </blockquote>
4794    
4795    
4796     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
4797     </p>
4798     <blockquote class="text">
4799     <p>in case it failed, providing an appropriate error code and error message
4800     </p>
4801     </blockquote>
4802    
4803    
4804     </blockquote><p>
4805    
4806     </p>
4807     <p>Examples:
4808     </p>
4809     <p>
4810     </p>
4811     <blockquote class="text">
4812     <p>C: "REMOVE CHANNEL MIDI_INPUT 0"
4813     </p>
4814     <p>S: "OK"
4815     </p>
4816     <p>C: "REMOVE CHANNEL MIDI_INPUT 1"
4817     </p>
4818     <p>S: "OK"
4819     </p>
4820     <p>C: "REMOVE CHANNEL MIDI_INPUT 1 2 0"
4821     </p>
4822     <p>S: "OK"
4823     </p>
4824     </blockquote><p>
4825    
4826     </p>
4827     <p>Since:
4828     </p>
4829     <p>
4830     </p>
4831     <blockquote class="text">
4832     <p>Introduced with LSCP v1.6
4833     </p>
4834     </blockquote><p>
4835    
4836     </p>
4837     <a name="LIST CHANNEL MIDI_INPUTS"></a><br /><hr />
4838     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
4839     <a name="rfc.section.6.4.19"></a><h3>6.4.19.&nbsp;
4840     Getting all MIDI inputs of a sampler channel</h3>
4841    
4842     <p>The front-end can query a list of all currently connected
4843     MIDI inputs of a certain sampler channel by sending the following
4844     command:
4845     </p>
4846     <p>
4847     </p>
4848     <blockquote class="text">
4849     <p>LIST CHANNEL MIDI_INPUTS &lt;sampler-channel&gt;
4850     </p>
4851     </blockquote><p>
4852    
4853     </p>
4854     <p>Where &lt;sampler-channel&gt; is the sampler channel number
4855     as returned by the <a class='info' href='#ADD CHANNEL'>"ADD CHANNEL"<span> (</span><span class='info'>Adding a new sampler channel</span><span>)</span></a>
4856     or <a class='info' href='#LIST CHANNELS'>"LIST CHANNELS"<span> (</span><span class='info'>Getting all created sampler channel list</span><span>)</span></a> command.
4857    
4858     </p>
4859     <p>Possible Answers:
4860     </p>
4861     <p>
4862     </p>
4863     <blockquote class="text">
4864     <p>The sampler will answer by sending a comma separated
4865     list of MIDI input device ID - MIDI input port number pairs, where
4866     each pair is encapsulated into curly braces. The
4867     list is returned in one single line. The MIDI input
4868     device ID corresponds to the number returned by
4869     <a class='info' href='#LIST MIDI_INPUT_DEVICES'>"LIST MIDI_INPUT_DEVICES"<span> (</span><span class='info'>Getting all created MIDI input device list</span><span>)</span></a>
4870     and the port number is the index of the respective MIDI
4871     port of that MIDI input device.
4872     </p>
4873     </blockquote><p>
4874    
4875     </p>
4876     <p>Example:
4877     </p>
4878     <p>
4879     </p>
4880     <blockquote class="text">
4881     <p>C: "LIST CHANNEL MIDI_INPUTS 0"
4882     </p>
4883     <p>S: "{0,0},{1,3},{2,0}"
4884     </p>
4885     </blockquote><p>
4886    
4887     </p>
4888     <p>Since:
4889     </p>
4890     <p>
4891     </p>
4892     <blockquote class="text">
4893     <p>Introduced with LSCP v1.6
4894     </p>
4895     </blockquote><p>
4896    
4897     </p>
4898     <a name="SET CHANNEL MIDI_INPUT_DEVICE"></a><br /><hr />
4899     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
4900     <a name="rfc.section.6.4.20"></a><h3>6.4.20.&nbsp;
4901     Setting MIDI input device</h3>
4902    
4903     <p>DEPRECATED: THIS COMMAND WILL DISAPPEAR!
4904     </p>
4905     <p>The front-end can set the MIDI input device on a specific sampler
4906     channel by sending the following command:
4907     </p>
4908     <p>
4909     </p>
4910     <blockquote class="text">
4911     <p>SET CHANNEL MIDI_INPUT_DEVICE &lt;sampler-channel&gt; &lt;midi-device-id&gt;
4912     </p>
4913     </blockquote><p>
4914    
4915     </p>
4916     <p>Where &lt;sampler-channel&gt; is the sampler channel number
4917     as returned by the <a class='info' href='#ADD CHANNEL'>"ADD CHANNEL"<span> (</span><span class='info'>Adding a new sampler channel</span><span>)</span></a>
4918     or <a class='info' href='#LIST CHANNELS'>"LIST CHANNELS"<span> (</span><span class='info'>Getting all created sampler channel list</span><span>)</span></a> command
4919     and &lt;midi-device-id&gt; is the numerical ID of the MIDI input device as returned by the
4920     <a class='info' href='#CREATE MIDI_INPUT_DEVICE'>"CREATE MIDI_INPUT_DEVICE"<span> (</span><span class='info'>Creating a MIDI input device</span><span>)</span></a>
4921     or <a class='info' href='#LIST MIDI_INPUT_DEVICES'>"LIST MIDI_INPUT_DEVICES"<span> (</span><span class='info'>Getting all created MIDI input device list</span><span>)</span></a> command.
4922     </p>
4923     <p>
4924     If more than 1 MIDI inputs are currently connected to this
4925     sampler channel: Sending this command will disconnect ALL
4926     currently connected MIDI input ports connected to this
4927     sampler channel before establishing the new MIDI input
4928     connection. So this command does NOT add the connection,
4929     it replaces all existing ones instead. This behavior is due
4930     to preserving full behavior backward compatibility.
4931    
4932     </p>
4933     <p>Possible Answers:
4934     </p>
4935     <p>
4936     </p>
4937     <blockquote class="text">
4938     <p>"OK" -
4939     </p>
4940     <blockquote class="text">
4941     <p>on success
4942     </p>
4943     </blockquote>
4944    
4945    
4946     <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
4947     </p>
4948     <blockquote class="text">
4949     <p>if MIDI input device was set, but there are noteworthy
4950     issue(s) related, providing an appropriate warning code and
4951     warning message
4952     </p>
4953     </blockquote>
4954    
4955    
4956     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
4957     </p>
4958     <blockquote class="text">
4959     <p>in case it failed, providing an appropriate error code and error message
4960     </p>
4961     </blockquote>
4962    
4963    
4964     </blockquote><p>
4965    
4966     </p>
4967     <p>Examples:
4968     </p>
4969     <p>
4970     </p>
4971     <blockquote class="text">
4972     <p>
4973     </p>
4974     </blockquote><p>
4975    
4976     </p>
4977     <p>Deprecated:
4978     </p>
4979     <p>
4980     </p>
4981     <blockquote class="text">
4982     <p>Should not be used anymore as of LSCP v1.6 and younger. This command is currently only preserved for backward compatibility.
4983     </p>
4984     <p>This command is a relict from times where only one MIDI input per sampler channel was allowed. Use <a class='info' href='#ADD CHANNEL MIDI_INPUT'>"ADD CHANNEL MIDI_INPUT"<span> (</span><span class='info'>Add MIDI input to sampler channel</span><span>)</span></a> and <a class='info' href='#REMOVE CHANNEL MIDI_INPUT'>"REMOVE CHANNEL MIDI_INPUT"<span> (</span><span class='info'>Remove MIDI input(s) from sampler channel</span><span>)</span></a> instead.
4985     </p>
4986     </blockquote><p>
4987    
4988     </p>
4989     <a name="SET CHANNEL MIDI_INPUT_TYPE"></a><br /><hr />
4990     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
4991     <a name="rfc.section.6.4.21"></a><h3>6.4.21.&nbsp;
4992     Setting MIDI input type</h3>
4993    
4994     <p>DEPRECATED: THIS COMMAND WILL DISAPPEAR!
4995     </p>
4996     <p>The front-end can alter the MIDI input type on a specific sampler
4997     channel by sending the following command:
4998     </p>
4999     <p>
5000     </p>
5001     <blockquote class="text">
5002     <p>SET CHANNEL MIDI_INPUT_TYPE &lt;sampler-channel&gt; &lt;midi-input-type&gt;
5003     </p>
5004     </blockquote><p>
5005    
5006     </p>
5007     <p>Where &lt;midi-input-type&gt; is currently only "ALSA" and
5008     &lt;sampler-channel&gt; is the respective sampler channel number.
5009     </p>
5010     <p>
5011     If more than 1 MIDI inputs are currently connected to this
5012     sampler channel: Sending this command will disconnect ALL
5013     currently connected MIDI input ports connected to this
5014     sampler channel before establishing the new MIDI input
5015     connection. So this command does NOT add the connection,
5016     it replaces all existing ones instead. This behavior is due
5017     to preserving full behavior backward compatibility.
5018    
5019     </p>
5020     <p>Possible Answers:
5021     </p>
5022     <p>
5023     </p>
5024     <blockquote class="text">
5025     <p>"OK" -
5026     </p>
5027     <blockquote class="text">
5028     <p>on success
5029     </p>
5030     </blockquote>
5031    
5032    
5033     <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
5034     </p>
5035     <blockquote class="text">
5036     <p>if MIDI input type was set, but there are noteworthy
5037     issue(s) related, providing an appropriate warning code and
5038     warning message
5039     </p>
5040     </blockquote>
5041    
5042    
5043     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
5044     </p>
5045     <blockquote class="text">
5046     <p>in case it failed, providing an appropriate error code and error message
5047     </p>
5048     </blockquote>
5049    
5050    
5051     </blockquote><p>
5052    
5053     </p>
5054     <p>Examples:
5055     </p>
5056     <p>
5057     </p>
5058     <blockquote class="text">
5059     <p>
5060     </p>
5061     </blockquote><p>
5062    
5063     </p>
5064     <p>Deprecated:
5065     </p>
5066     <p>
5067     </p>
5068     <blockquote class="text">
5069     <p>Should not be used anymore. This command is currently only preserved for backward compatibility.
5070     </p>
5071     <p>This command is a relict from times where only 1 MIDI input per sampler channels was allowed and where no sophisticated driver management existed yet. Use <a class='info' href='#ADD CHANNEL MIDI_INPUT'>"ADD CHANNEL MIDI_INPUT"<span> (</span><span class='info'>Add MIDI input to sampler channel</span><span>)</span></a> and <a class='info' href='#REMOVE CHANNEL MIDI_INPUT'>"REMOVE CHANNEL MIDI_INPUT"<span> (</span><span class='info'>Remove MIDI input(s) from sampler channel</span><span>)</span></a> instead.
5072     </p>
5073     </blockquote><p>
5074    
5075     </p>
5076     <a name="SET CHANNEL MIDI_INPUT_PORT"></a><br /><hr />
5077     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
5078     <a name="rfc.section.6.4.22"></a><h3>6.4.22.&nbsp;
5079     Setting MIDI input port</h3>
5080    
5081     <p>DEPRECATED: THIS COMMAND WILL DISAPPEAR!
5082     </p>
5083     <p>The front-end can alter the MIDI input port on a specific sampler
5084     channel by sending the following command:
5085     </p>
5086     <p>
5087     </p>
5088     <blockquote class="text">
5089     <p>SET CHANNEL MIDI_INPUT_PORT &lt;sampler-channel&gt; &lt;midi-input-port&gt;
5090     </p>
5091     </blockquote><p>
5092    
5093     </p>
5094     <p>Where &lt;midi-input-port&gt; is a MIDI input port number of the
5095     MIDI input device connected to the sampler channel given by
5096     &lt;sampler-channel&gt;.
5097     </p>
5098     <p>
5099     If more than 1 MIDI inputs are currently connected to this
5100     sampler channel: Sending this command will switch the
5101     connection of the first (and only the first) MIDI input port
5102     currently being connected to this sampler channel, to
5103     another port of the same MIDI input device. Or in other
5104     words: the first MIDI input port currently connected to
5105     this sampler channel will be disconnected, and the requested
5106     other port of its MIDI input device will be connected to
5107     this sampler channel instead. This behavior is due
5108     to preserving full behavior backward compatibility.
5109    
5110     </p>
5111     <p>Possible Answers:
5112     </p>
5113     <p>
5114     </p>
5115     <blockquote class="text">
5116     <p>"OK" -
5117     </p>
5118     <blockquote class="text">
5119     <p>on success
5120     </p>
5121     </blockquote>
5122    
5123    
5124     <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
5125     </p>
5126     <blockquote class="text">
5127     <p>if MIDI input port was set, but there are noteworthy
5128     issue(s) related, providing an appropriate warning code and
5129     warning message
5130     </p>
5131     </blockquote>
5132    
5133    
5134     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
5135     </p>
5136     <blockquote class="text">
5137     <p>in case it failed, providing an appropriate error code and error message
5138     </p>
5139     </blockquote>
5140    
5141    
5142     </blockquote><p>
5143    
5144     </p>
5145     <p>Examples:
5146     </p>
5147     <p>
5148     </p>
5149     <blockquote class="text">
5150     <p>
5151     </p>
5152     </blockquote><p>
5153    
5154     </p>
5155     <p>Deprecated:
5156     </p>
5157     <p>
5158     </p>
5159     <blockquote class="text">
5160     <p>Should not be used anymore. This command is currently only preserved for backward compatibility.
5161     </p>
5162     <p>This command is a relict from times where only one MIDI input per sampler channel was allowed. Use <a class='info' href='#ADD CHANNEL MIDI_INPUT'>"ADD CHANNEL MIDI_INPUT"<span> (</span><span class='info'>Add MIDI input to sampler channel</span><span>)</span></a> and <a class='info' href='#REMOVE CHANNEL MIDI_INPUT'>"REMOVE CHANNEL MIDI_INPUT"<span> (</span><span class='info'>Remove MIDI input(s) from sampler channel</span><span>)</span></a> instead.
5163     </p>
5164     </blockquote><p>
5165    
5166     </p>
5167     <a name="SET CHANNEL MIDI_INPUT_CHANNEL"></a><br /><hr />
5168     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
5169     <a name="rfc.section.6.4.23"></a><h3>6.4.23.&nbsp;
5170     Setting MIDI input channel</h3>
5171    
5172     <p>The front-end can alter the MIDI channel a sampler channel should
5173     listen to by sending the following command:
5174     </p>
5175     <p>
5176     </p>
5177     <blockquote class="text">
5178     <p>SET CHANNEL MIDI_INPUT_CHANNEL &lt;sampler-channel&gt; &lt;midi-input-chan&gt;
5179     </p>
5180     </blockquote><p>
5181    
5182     </p>
5183     <p>Where &lt;midi-input-chan&gt; is the number
5184     of the new MIDI input channel (zero indexed!) where
5185     &lt;sampler-channel&gt; should listen to, or "ALL" to listen on all 16 MIDI
5186     channels.
5187     </p>
5188     <p>Possible Answers:
5189     </p>
5190     <p>
5191     </p>
5192     <blockquote class="text">
5193     <p>"OK" -
5194     </p>
5195     <blockquote class="text">
5196     <p>on success
5197     </p>
5198     </blockquote>
5199    
5200    
5201     <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
5202     </p>
5203     <blockquote class="text">
5204     <p>if MIDI input channel was set, but there are noteworthy
5205     issue(s) related, providing an appropriate warning code and
5206     warning message
5207     </p>
5208     </blockquote>
5209    
5210    
5211     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
5212     </p>
5213     <blockquote class="text">
5214     <p>in case it failed, providing an appropriate error code and error message
5215     </p>
5216     </blockquote>
5217    
5218    
5219     </blockquote><p>
5220    
5221     </p>
5222     <p>Examples:
5223     </p>
5224     <p>
5225     </p>
5226     <blockquote class="text">
5227     <p>C: "SET CHANNEL MIDI_INPUT_CHANNEL 0 0"
5228     </p>
5229     <p>S: "OK"
5230     </p>
5231     <p>C: "SET CHANNEL MIDI_INPUT_CHANNEL 1 ALL"
5232     </p>
5233     <p>S: "OK"
5234     </p>
5235     </blockquote><p>
5236    
5237     </p>
5238     <a name="SET CHANNEL VOLUME"></a><br /><hr />
5239     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
5240     <a name="rfc.section.6.4.24"></a><h3>6.4.24.&nbsp;
5241     Setting channel volume</h3>
5242    
5243     <p>The front-end can alter the volume of a sampler channel by sending
5244     the following command:
5245     </p>
5246     <p>
5247     </p>
5248     <blockquote class="text">
5249     <p>SET CHANNEL VOLUME &lt;sampler-channel&gt; &lt;volume&gt;
5250     </p>
5251     </blockquote><p>
5252    
5253     </p>
5254     <p>Where &lt;volume&gt; is an optionally dotted positive number (a value
5255     smaller than 1.0 means attenuation, whereas a value greater than
5256     1.0 means amplification) and &lt;sampler-channel&gt; defines the sampler
5257     channel where this volume factor should be set.
5258     </p>
5259     <p>Possible Answers:
5260     </p>
5261     <p>
5262     </p>
5263     <blockquote class="text">
5264     <p>"OK" -
5265     </p>
5266     <blockquote class="text">
5267     <p>on success
5268     </p>
5269     </blockquote>
5270    
5271    
5272     <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
5273     </p>
5274     <blockquote class="text">
5275     <p>if channel volume was set, but there are noteworthy
5276     issue(s) related, providing an appropriate warning code and
5277     warning message
5278     </p>
5279     </blockquote>
5280    
5281    
5282     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
5283     </p>
5284     <blockquote class="text">
5285     <p>in case it failed, providing an appropriate error code and error message
5286     </p>
5287     </blockquote>
5288    
5289    
5290     </blockquote><p>
5291    
5292     </p>
5293     <p>Examples:
5294     </p>
5295     <p>
5296     </p>
5297     <blockquote class="text">
5298     <p>
5299     </p>
5300     </blockquote><p>
5301    
5302     </p>
5303     <a name="SET CHANNEL MUTE"></a><br /><hr />
5304     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
5305     <a name="rfc.section.6.4.25"></a><h3>6.4.25.&nbsp;
5306     Muting a sampler channel</h3>
5307    
5308     <p>The front-end can mute/unmute a specific sampler
5309     channel by sending the following command:
5310     </p>
5311     <p>
5312     </p>
5313     <blockquote class="text">
5314     <p>SET CHANNEL MUTE &lt;sampler-channel&gt; &lt;mute&gt;
5315     </p>
5316     </blockquote><p>
5317    
5318     </p>
5319     <p>Where &lt;sampler-channel&gt; is the respective sampler channel
5320     number as returned by the <a class='info' href='#ADD CHANNEL'>"ADD CHANNEL"<span> (</span><span class='info'>Adding a new sampler channel</span><span>)</span></a>
5321     or <a class='info' href='#LIST CHANNELS'>"LIST CHANNELS"<span> (</span><span class='info'>Getting all created sampler channel list</span><span>)</span></a> command and
5322     &lt;mute&gt; should be replaced either by "1" to mute the channel or "0"
5323     to unmute the channel.
5324     </p>
5325     <p>Possible Answers:
5326     </p>
5327     <p>
5328     </p>
5329     <blockquote class="text">
5330     <p>"OK" -
5331     </p>
5332     <blockquote class="text">
5333     <p>on success
5334     </p>
5335     </blockquote>
5336    
5337    
5338     <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
5339     </p>
5340     <blockquote class="text">
5341     <p>if the channel was muted/unmuted, but there are noteworthy
5342     issue(s) related, providing an appropriate warning code and
5343     warning message
5344     </p>
5345     </blockquote>
5346    
5347    
5348     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
5349     </p>
5350     <blockquote class="text">
5351     <p>in case it failed, providing an appropriate error code and error message
5352     </p>
5353     </blockquote>
5354    
5355    
5356     </blockquote><p>
5357    
5358     </p>
5359     <p>Examples:
5360     </p>
5361     <p>
5362     </p>
5363     <blockquote class="text">
5364     <p>
5365     </p>
5366     </blockquote><p>
5367    
5368     </p>
5369     <a name="SET CHANNEL SOLO"></a><br /><hr />
5370     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
5371     <a name="rfc.section.6.4.26"></a><h3>6.4.26.&nbsp;
5372     Soloing a sampler channel</h3>
5373    
5374     <p>The front-end can solo/unsolo a specific sampler channel
5375     by sending the following command:
5376     </p>
5377     <p>
5378     </p>
5379     <blockquote class="text">
5380     <p>SET CHANNEL SOLO &lt;sampler-channel&gt; &lt;solo&gt;
5381     </p>
5382     </blockquote><p>
5383    
5384     </p>
5385     <p>Where &lt;sampler-channel&gt; is the respective sampler channel
5386     number as returned by the <a class='info' href='#ADD CHANNEL'>"ADD CHANNEL"<span> (</span><span class='info'>Adding a new sampler channel</span><span>)</span></a>
5387     or <a class='info' href='#LIST CHANNELS'>"LIST CHANNELS"<span> (</span><span class='info'>Getting all created sampler channel list</span><span>)</span></a> command and
5388     &lt;solo&gt; should be replaced either by "1" to solo the channel or "0"
5389     to unsolo the channel.
5390     </p>
5391     <p>Possible Answers:
5392     </p>
5393     <p>
5394     </p>
5395     <blockquote class="text">
5396     <p>"OK" -
5397     </p>
5398     <blockquote class="text">
5399     <p>on success
5400     </p>
5401     </blockquote>
5402    
5403    
5404     <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
5405     </p>
5406     <blockquote class="text">
5407     <p>if the channel was soloed/unsoloed, but there are noteworthy
5408     issue(s) related, providing an appropriate warning code and
5409     warning message
5410     </p>
5411     </blockquote>
5412    
5413    
5414     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
5415     </p>
5416     <blockquote class="text">
5417     <p>in case it failed, providing an appropriate error code and error message
5418     </p>
5419     </blockquote>
5420    
5421    
5422     </blockquote><p>
5423    
5424     </p>
5425     <p>Examples:
5426     </p>
5427     <p>
5428     </p>
5429     <blockquote class="text">
5430     <p>
5431     </p>
5432     </blockquote><p>
5433    
5434     </p>
5435     <a name="SET CHANNEL MIDI_INSTRUMENT_MAP"></a><br /><hr />
5436     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
5437     <a name="rfc.section.6.4.27"></a><h3>6.4.27.&nbsp;
5438     Assigning a MIDI instrument map to a sampler channel</h3>
5439    
5440     <p>The front-end can assign a MIDI instrument map to a specific sampler channel
5441     by sending the following command:
5442     </p>
5443     <p>
5444     </p>
5445     <blockquote class="text">
5446     <p>SET CHANNEL MIDI_INSTRUMENT_MAP &lt;sampler-channel&gt; &lt;map&gt;
5447     </p>
5448     </blockquote><p>
5449    
5450     </p>
5451     <p>Where &lt;sampler-channel&gt; is the respective sampler channel
5452     number as returned by the <a class='info' href='#ADD CHANNEL'>"ADD CHANNEL"<span> (</span><span class='info'>Adding a new sampler channel</span><span>)</span></a>
5453     or <a class='info' href='#LIST CHANNELS'>"LIST CHANNELS"<span> (</span><span class='info'>Getting all created sampler channel list</span><span>)</span></a> command and
5454     &lt;map&gt; can have the following possibilites:
5455     </p>
5456     <p>
5457     </p>
5458     <blockquote class="text">
5459     <p>"NONE" -
5460     </p>
5461     <blockquote class="text">
5462     <p>This is the default setting. In this case
5463     the sampler channel is not assigned any MIDI
5464     instrument map and thus will ignore all MIDI
5465     program change messages.
5466     </p>
5467     </blockquote>
5468    
5469    
5470     <p>"DEFAULT" -
5471     </p>
5472     <blockquote class="text">
5473     <p>The sampler channel will always use the
5474     default MIDI instrument map to handle MIDI
5475     program change messages.
5476     </p>
5477     </blockquote>
5478    
5479    
5480     <p>numeric ID -
5481     </p>
5482     <blockquote class="text">
5483     <p>You can assign a specific MIDI instrument map
5484     by replacing &lt;map&gt; with the respective numeric
5485     ID of the MIDI instrument map as returned by the
5486     <a class='info' href='#LIST MIDI_INSTRUMENT_MAPS'>"LIST MIDI_INSTRUMENT_MAPS"<span> (</span><span class='info'>Getting all created MIDI instrument maps</span><span>)</span></a>
5487     command. Once that map will be deleted, the sampler
5488     channel would fall back to "NONE".
5489     </p>
5490     </blockquote>
5491    
5492    
5493     </blockquote><p>
5494    
5495     </p>
5496     <p>Read chapter <a class='info' href='#MIDI Instrument Mapping'>"MIDI Instrument Mapping"<span> (</span><span class='info'>MIDI Instrument Mapping</span><span>)</span></a>
5497     for details regarding MIDI instrument mapping.
5498     </p>
5499     <p>Possible Answers:
5500     </p>
5501     <p>
5502     </p>
5503     <blockquote class="text">
5504     <p>"OK" -
5505     </p>
5506     <blockquote class="text">
5507     <p>on success
5508     </p>
5509     </blockquote>
5510    
5511    
5512     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
5513     </p>
5514     <blockquote class="text">
5515     <p>in case it failed, providing an appropriate error code and error message
5516     </p>
5517     </blockquote>
5518    
5519    
5520     </blockquote><p>
5521    
5522     </p>
5523     <p>Examples:
5524     </p>
5525     <p>
5526     </p>
5527     <blockquote class="text">
5528     <p>
5529     </p>
5530     </blockquote><p>
5531    
5532     </p>
5533     <a name="CREATE FX_SEND"></a><br /><hr />
5534     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
5535     <a name="rfc.section.6.4.28"></a><h3>6.4.28.&nbsp;
5536     Adding an effect send to a sampler channel</h3>
5537    
5538     <p>The front-end can create an additional effect send on a specific sampler channel
5539     by sending the following command:
5540     </p>
5541     <p>
5542     </p>
5543     <blockquote class="text">
5544     <p>CREATE FX_SEND &lt;sampler-channel&gt; &lt;midi-ctrl&gt; [&lt;name&gt;]
5545     </p>
5546     </blockquote><p>
5547    
5548     </p>
5549     <p>Where &lt;sampler-channel&gt; is the respective sampler channel
5550     number as returned by the <a class='info' href='#ADD CHANNEL'>"ADD CHANNEL"<span> (</span><span class='info'>Adding a new sampler channel</span><span>)</span></a>
5551     or <a class='info' href='#LIST CHANNELS'>"LIST CHANNELS"<span> (</span><span class='info'>Getting all created sampler channel list</span><span>)</span></a> command, that is the
5552     sampler channel on which the effect send should be created on, &lt;midi-ctrl&gt;
5553     is a number between 0..127 defining the MIDI controller which can alter the
5554     effect send level and &lt;name&gt; is an optional argument defining a name
5555     for the effect send entity. The name does not have to be unique, but MUST be
5556     encapsulated into apostrophes and supports escape sequences as described in chapter
5557     "<a class='info' href='#character_set'>Character Set and Escape Sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>".
5558     </p>
5559     <p>By default, that is as initial routing, the effect send's audio channels
5560     are automatically routed to the last audio channels of the sampler channel's
5561     audio output device, that way you can i.e. first increase the amount of audio
5562     channels on the audio output device for having dedicated effect send output
5563     channels and when "CREATE FX_SEND" is called, those channels will automatically
5564     be picked. You can alter the destination channels however with
5565     <a class='info' href='#SET FX_SEND AUDIO_OUTPUT_CHANNEL'>"SET FX_SEND AUDIO_OUTPUT_CHANNEL"<span> (</span><span class='info'>Altering effect send's audio routing</span><span>)</span></a>.
5566    
5567     </p>
5568     <p>Note: Create effect sends on a sampler channel only when needed, because having effect
5569     sends on a sampler channel will decrease runtime performance, because for implementing channel
5570     effect sends, separate (sampler channel local) audio buffers are needed to render and mix
5571     the voices and route the audio signal afterwards to the master outputs and effect send
5572     outputs (along with their respective effect send levels). A sampler channel without effect
5573     sends however can mix its voices directly into the audio output devices's audio buffers
5574     and is thus faster.
5575    
5576     </p>
5577     <p>Possible Answers:
5578     </p>
5579     <p>
5580     </p>
5581     <blockquote class="text">
5582     <p>"OK[&lt;fx-send-id&gt;]" -
5583     </p>
5584     <blockquote class="text">
5585     <p>in case a new effect send could be added to the
5586     sampler channel, where &lt;fx-send-id&gt; reflects the
5587     unique ID of the newly created effect send entity
5588     </p>
5589     </blockquote>
5590    
5591    
5592     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
5593     </p>
5594     <blockquote class="text">
5595     <p>when a new effect send could not be added, i.e.
5596     due to invalid parameters
5597     </p>
5598     </blockquote>
5599    
5600    
5601     </blockquote><p>
5602    
5603     </p>
5604     <p>Examples:
5605     </p>
5606     <p>
5607     </p>
5608     <blockquote class="text">
5609     <p>C: "CREATE FX_SEND 0 91 'Reverb Send'"
5610     </p>
5611     <p>S: "OK[0]"
5612     </p>
5613     </blockquote><p>
5614    
5615     </p>
5616     <p>
5617     </p>
5618     <blockquote class="text">
5619     <p>C: "CREATE FX_SEND 0 93"
5620     </p>
5621     <p>S: "OK[1]"
5622     </p>
5623     </blockquote><p>
5624    
5625     </p>
5626     <a name="DESTROY FX_SEND"></a><br /><hr />
5627     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
5628     <a name="rfc.section.6.4.29"></a><h3>6.4.29.&nbsp;
5629     Removing an effect send from a sampler channel</h3>
5630    
5631     <p>The front-end can remove an existing effect send on a specific sampler channel
5632     by sending the following command:
5633     </p>
5634     <p>
5635     </p>
5636     <blockquote class="text">
5637     <p>DESTROY FX_SEND &lt;sampler-channel&gt; &lt;fx-send-id&gt;
5638     </p>
5639     </blockquote><p>
5640    
5641     </p>
5642     <p>Where &lt;sampler-channel&gt; is the respective sampler channel
5643     number as returned by the <a class='info' href='#ADD CHANNEL'>"ADD CHANNEL"<span> (</span><span class='info'>Adding a new sampler channel</span><span>)</span></a>
5644     or <a class='info' href='#LIST CHANNELS'>"LIST CHANNELS"<span> (</span><span class='info'>Getting all created sampler channel list</span><span>)</span></a> command, that is the
5645     sampler channel from which the effect send should be removed from and
5646     &lt;fx-send-id&gt; is the respective effect send number as returned by the
5647     <a class='info' href='#CREATE FX_SEND'>"CREATE FX_SEND"<span> (</span><span class='info'>Adding an effect send to a sampler channel</span><span>)</span></a>
5648     or <a class='info' href='#LIST FX_SENDS'>"LIST FX_SENDS"<span> (</span><span class='info'>Listing all effect sends on a sampler channel</span><span>)</span></a> command.
5649     </p>
5650     <p>Possible Answers:
5651     </p>
5652     <p>
5653     </p>
5654     <blockquote class="text">
5655     <p>"OK" -
5656     </p>
5657     <blockquote class="text">
5658     <p>on success
5659     </p>
5660     </blockquote>
5661    
5662    
5663     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
5664     </p>
5665     <blockquote class="text">
5666     <p>in case it failed, providing an appropriate error code and
5667     error message
5668     </p>
5669     </blockquote>
5670    
5671    
5672     </blockquote><p>
5673    
5674     </p>
5675     <p>Example:
5676     </p>
5677     <p>
5678     </p>
5679     <blockquote class="text">
5680     <p>C: "DESTROY FX_SEND 0 0"
5681     </p>
5682     <p>S: "OK"
5683     </p>
5684     </blockquote><p>
5685    
5686     </p>
5687     <a name="GET FX_SENDS"></a><br /><hr />
5688     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
5689     <a name="rfc.section.6.4.30"></a><h3>6.4.30.&nbsp;
5690     Getting amount of effect sends on a sampler channel</h3>
5691    
5692     <p>The front-end can ask for the amount of effect sends on a specific sampler channel
5693     by sending the following command:
5694     </p>
5695     <p>
5696     </p>
5697     <blockquote class="text">
5698     <p>GET FX_SENDS &lt;sampler-channel&gt;
5699     </p>
5700     </blockquote><p>
5701    
5702     </p>
5703     <p>Where &lt;sampler-channel&gt; is the respective sampler channel
5704     number as returned by the <a class='info' href='#ADD CHANNEL'>"ADD CHANNEL"<span> (</span><span class='info'>Adding a new sampler channel</span><span>)</span></a>
5705     or <a class='info' href='#LIST CHANNELS'>"LIST CHANNELS"<span> (</span><span class='info'>Getting all created sampler channel list</span><span>)</span></a> command.
5706     </p>
5707     <p>Possible Answers:
5708     </p>
5709     <p>
5710     </p>
5711     <blockquote class="text">
5712     <p>The sampler will answer by returning the number of effect
5713     sends on the given sampler channel.
5714     </p>
5715     </blockquote><p>
5716    
5717     </p>
5718     <p>Example:
5719     </p>
5720     <p>
5721     </p>
5722     <blockquote class="text">
5723     <p>C: "GET FX_SENDS 0"
5724     </p>
5725     <p>S: "2"
5726     </p>
5727     </blockquote><p>
5728    
5729     </p>
5730     <a name="LIST FX_SENDS"></a><br /><hr />
5731     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
5732     <a name="rfc.section.6.4.31"></a><h3>6.4.31.&nbsp;
5733     Listing all effect sends on a sampler channel</h3>
5734    
5735     <p>The front-end can ask for a list of effect sends on a specific sampler channel
5736     by sending the following command:
5737     </p>
5738     <p>
5739     </p>
5740     <blockquote class="text">
5741     <p>LIST FX_SENDS &lt;sampler-channel&gt;
5742     </p>
5743     </blockquote><p>
5744    
5745     </p>
5746     <p>Where &lt;sampler-channel&gt; is the respective sampler channel
5747     number as returned by the <a class='info' href='#ADD CHANNEL'>"ADD CHANNEL"<span> (</span><span class='info'>Adding a new sampler channel</span><span>)</span></a>
5748     or <a class='info' href='#LIST CHANNELS'>"LIST CHANNELS"<span> (</span><span class='info'>Getting all created sampler channel list</span><span>)</span></a> command.
5749     </p>
5750     <p>Possible Answers:
5751     </p>
5752     <p>
5753     </p>
5754     <blockquote class="text">
5755     <p>The sampler will answer by returning a comma separated list
5756     with all effect sends' numerical IDs on the given sampler
5757     channel.
5758     </p>
5759     </blockquote><p>
5760    
5761     </p>
5762     <p>Examples:
5763     </p>
5764     <p>
5765     </p>
5766     <blockquote class="text">
5767     <p>C: "LIST FX_SENDS 0"
5768     </p>
5769     <p>S: "0,1"
5770     </p>
5771     </blockquote><p>
5772    
5773     </p>
5774     <p>
5775     </p>
5776     <blockquote class="text">
5777     <p>C: "LIST FX_SENDS 1"
5778     </p>
5779     <p>S: ""
5780     </p>
5781     </blockquote><p>
5782    
5783     </p>
5784     <a name="GET FX_SEND INFO"></a><br /><hr />
5785     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
5786     <a name="rfc.section.6.4.32"></a><h3>6.4.32.&nbsp;
5787     Getting effect send information</h3>
5788    
5789     <p>The front-end can ask for the current settings of an effect send entity
5790     by sending the following command:
5791     </p>
5792     <p>
5793     </p>
5794     <blockquote class="text">
5795     <p>GET FX_SEND INFO &lt;sampler-channel&gt; &lt;fx-send-id&gt;
5796     </p>
5797     </blockquote><p>
5798    
5799     </p>
5800     <p>Where &lt;sampler-channel&gt; is the sampler channel number
5801     as returned by the <a class='info' href='#ADD CHANNEL'>"ADD CHANNEL"<span> (</span><span class='info'>Adding a new sampler channel</span><span>)</span></a>
5802     or <a class='info' href='#LIST CHANNELS'>"LIST CHANNELS"<span> (</span><span class='info'>Getting all created sampler channel list</span><span>)</span></a> command and
5803     &lt;fx-send-id&gt; reflects the numerical ID of the effect send entity
5804     as returned by the <a class='info' href='#CREATE FX_SEND'>"CREATE FX_SEND"<span> (</span><span class='info'>Adding an effect send to a sampler channel</span><span>)</span></a>
5805     or <a class='info' href='#LIST FX_SENDS'>"LIST FX_SENDS"<span> (</span><span class='info'>Listing all effect sends on a sampler channel</span><span>)</span></a> command.
5806    
5807     </p>
5808     <p>Possible Answers:
5809     </p>
5810     <p>
5811     </p>
5812     <blockquote class="text">
5813     <p>The sampler will answer by sending a &lt;CRLF&gt; separated list.
5814     Each answer line begins with the settings category name
5815     followed by a colon and then a space character &lt;SP&gt; and finally
5816     the info character string to that setting category. At the
5817     moment the following categories are defined:
5818     </p>
5819     <p>
5820     </p>
5821     <blockquote class="text">
5822     <p>NAME -
5823     </p>
5824     <blockquote class="text">
5825     <p>name of the effect send entity
5826     (note that this character string may contain
5827     <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>)
5828     </p>
5829     </blockquote>
5830    
5831    
5832     <p>MIDI_CONTROLLER -
5833     </p>
5834     <blockquote class="text">
5835     <p>a value between 0 and 127 reflecting the MIDI controller
5836     which is able to modify the effect send's send level
5837     </p>
5838     </blockquote>
5839    
5840    
5841     <p>LEVEL -
5842     </p>
5843     <blockquote class="text">
5844     <p>optionally dotted number reflecting the effect send's
5845     current send level (where a value &lt; 1.0 means attenuation
5846     and a value > 1.0 means amplification)
5847     </p>
5848     </blockquote>
5849    
5850    
5851     <p>AUDIO_OUTPUT_ROUTING -
5852     </p>
5853     <blockquote class="text">
5854     <p>comma separated list which reflects to which audio
5855     channel of the selected audio output device each
5856     effect send output channel is routed to, e.g. "0,3" would
5857     mean the effect send's output channel 0 is routed to channel
5858     0 of the audio output device and the effect send's output
5859     channel 1 is routed to the channel 3 of the audio
5860     output device (see
5861     <a class='info' href='#SET FX_SEND AUDIO_OUTPUT_CHANNEL'>"SET FX_SEND AUDIO_OUTPUT_CHANNEL"<span> (</span><span class='info'>Altering effect send's audio routing</span><span>)</span></a>
5862     for details), if an internal send
5863     effect is assigned to the effect
5864     send, then this setting defines the
5865     audio channel routing to that
5866     effect instance respectively
5867     </p>
5868     </blockquote>
5869    
5870    
5871     <p>EFFECT -
5872     </p>
5873     <blockquote class="text">
5874     <p>destination send effect chain ID
5875     and destination effect chain
5876     position, separated by comma in the
5877     form "&lt;effect-chain&gt;,&lt;chain-pos&gt;"
5878     or "NONE" if there is no send effect
5879     assigned to the effect send
5880     </p>
5881     </blockquote>
5882    
5883    
5884     </blockquote>
5885    
5886    
5887     </blockquote><p>
5888    
5889     </p>
5890     <p>The mentioned fields above don't have to be in particular order.
5891     </p>
5892     <p>Example:
5893     </p>
5894     <p>
5895     </p>
5896     <blockquote class="text">
5897     <p>C: "GET FX_SEND INFO 0 0"
5898     </p>
5899     <p>S: "NAME: Reverb Send"
5900     </p>
5901     <p>&nbsp;&nbsp;&nbsp;"MIDI_CONTROLLER: 91"
5902     </p>
5903     <p>&nbsp;&nbsp;&nbsp;"LEVEL: 0.3"
5904     </p>
5905     <p>&nbsp;&nbsp;&nbsp;"AUDIO_OUTPUT_ROUTING: 2,3"
5906     </p>
5907     <p>&nbsp;&nbsp;&nbsp;"EFFECT: NONE"
5908     </p>
5909     <p>&nbsp;&nbsp;&nbsp;"."
5910     </p>
5911     </blockquote><p>
5912    
5913     </p>
5914     <p>
5915     </p>
5916     <blockquote class="text">
5917     <p>C: "GET FX_SEND INFO 0 1"
5918     </p>
5919     <p>S: "NAME: Delay Send (Internal)"
5920     </p>
5921     <p>&nbsp;&nbsp;&nbsp;"MIDI_CONTROLLER: 93"
5922     </p>
5923     <p>&nbsp;&nbsp;&nbsp;"LEVEL: 0.51"
5924     </p>
5925     <p>&nbsp;&nbsp;&nbsp;"AUDIO_OUTPUT_ROUTING: 1,2"
5926     </p>
5927     <p>&nbsp;&nbsp;&nbsp;"EFFECT: 2,0"
5928     </p>
5929     <p>&nbsp;&nbsp;&nbsp;"."
5930     </p>
5931     </blockquote><p>
5932    
5933     </p>
5934     <a name="SET FX_SEND NAME"></a><br /><hr />
5935     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
5936     <a name="rfc.section.6.4.33"></a><h3>6.4.33.&nbsp;
5937     Changing effect send's name</h3>
5938    
5939     <p>The front-end can alter the current name of an effect
5940     send entity by sending the following command:
5941     </p>
5942     <p>
5943     </p>
5944     <blockquote class="text">
5945     <p>SET FX_SEND NAME &lt;sampler-chan&gt; &lt;fx-send-id&gt; &lt;name&gt;
5946     </p>
5947     </blockquote><p>
5948    
5949     </p>
5950     <p>Where &lt;sampler-chan&gt; is the sampler channel number
5951     as returned by the <a class='info' href='#ADD CHANNEL'>"ADD CHANNEL"<span> (</span><span class='info'>Adding a new sampler channel</span><span>)</span></a>
5952     or <a class='info' href='#LIST CHANNELS'>"LIST CHANNELS"<span> (</span><span class='info'>Getting all created sampler channel list</span><span>)</span></a> command,
5953     &lt;fx-send-id&gt; reflects the numerical ID of the effect send entity
5954     as returned by the <a class='info' href='#CREATE FX_SEND'>"CREATE FX_SEND"<span> (</span><span class='info'>Adding an effect send to a sampler channel</span><span>)</span></a>
5955     or <a class='info' href='#LIST FX_SENDS'>"LIST FX_SENDS"<span> (</span><span class='info'>Listing all effect sends on a sampler channel</span><span>)</span></a> command and
5956     &lt;name&gt; is the new name of the effect send entity, which
5957     does not have to be unique (name MUST be encapsulated into apostrophes
5958     and supports escape sequences as described in chapter
5959     "<a class='info' href='#character_set'>Character Set and Escape Sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>").
5960    
5961     </p>
5962     <p>Possible Answers:
5963     </p>
5964     <p>
5965     </p>
5966     <blockquote class="text">
5967     <p>"OK" -
5968     </p>
5969     <blockquote class="text">
5970     <p>on success
5971     </p>
5972     </blockquote>
5973    
5974    
5975     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
5976     </p>
5977     <blockquote class="text">
5978     <p>in case it failed, providing an appropriate error code and error message
5979     </p>
5980     </blockquote>
5981    
5982    
5983     </blockquote><p>
5984    
5985     </p>
5986     <p>Example:
5987     </p>
5988     <p>
5989     </p>
5990     <blockquote class="text">
5991     <p>C: "SET FX_SEND NAME 0 0 'Fx Send 1'"
5992     </p>
5993     <p>S: "OK"
5994     </p>
5995     </blockquote><p>
5996    
5997     </p>
5998     <a name="SET FX_SEND AUDIO_OUTPUT_CHANNEL"></a><br /><hr />
5999     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
6000     <a name="rfc.section.6.4.34"></a><h3>6.4.34.&nbsp;
6001     Altering effect send's audio routing</h3>
6002    
6003     <p>The front-end can alter the destination of an effect send's audio channel on a specific
6004     sampler channel by sending the following command:
6005     </p>
6006     <p>
6007     </p>
6008     <blockquote class="text">
6009     <p>SET FX_SEND AUDIO_OUTPUT_CHANNEL &lt;sampler-chan&gt; &lt;fx-send-id&gt; &lt;audio-src&gt; &lt;audio-dst&gt;
6010     </p>
6011     </blockquote><p>
6012    
6013     </p>
6014     <p>Where &lt;sampler-chan&gt; is the sampler channel number
6015     as returned by the <a class='info' href='#ADD CHANNEL'>"ADD CHANNEL"<span> (</span><span class='info'>Adding a new sampler channel</span><span>)</span></a>
6016     or <a class='info' href='#LIST CHANNELS'>"LIST CHANNELS"<span> (</span><span class='info'>Getting all created sampler channel list</span><span>)</span></a> command,
6017     &lt;fx-send-id&gt; reflects the numerical ID of the effect send entity
6018     as returned by the <a class='info' href='#CREATE FX_SEND'>"CREATE FX_SEND"<span> (</span><span class='info'>Adding an effect send to a sampler channel</span><span>)</span></a>
6019     or <a class='info' href='#LIST FX_SENDS'>"LIST FX_SENDS"<span> (</span><span class='info'>Listing all effect sends on a sampler channel</span><span>)</span></a> command,
6020     &lt;audio-src&gt; is the numerical ID of the effect send's audio channel
6021     which should be rerouted and &lt;audio-dst&gt; is the numerical ID of
6022     the audio channel of the selected audio output device where &lt;audio-src&gt;
6023     should be routed to. If an internal send effect is assigned
6024     to the effect send, then this setting defines the audio
6025     channel routing to that effect instance respectively.
6026     </p>
6027     <p>Note that effect sends can only route audio to the same audio output
6028     device as assigned to the effect send's sampler channel. Also note that an
6029     effect send entity does always have exactly as much audio channels as its
6030     sampler channel. So if the sampler channel is stereo, the effect send does
6031     have two audio channels as well. Also keep in mind that the amount of audio
6032     channels on a sampler channel might be dependant not only to the deployed
6033     sampler engine on the sampler channel, but also dependant to the instrument
6034     currently loaded. However you can (effectively) turn an i.e. stereo effect
6035     send into a mono one by simply altering its audio routing appropriately.
6036     </p>
6037     <p>Possible Answers:
6038     </p>
6039     <p>
6040     </p>
6041     <blockquote class="text">
6042     <p>"OK" -
6043     </p>
6044     <blockquote class="text">
6045     <p>on success
6046     </p>
6047     </blockquote>
6048    
6049    
6050     <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
6051     </p>
6052     <blockquote class="text">
6053     <p>if audio output channel was set, but there are noteworthy
6054     issue(s) related, providing an appropriate warning code and
6055     warning message
6056     </p>
6057     </blockquote>
6058    
6059    
6060     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
6061     </p>
6062     <blockquote class="text">
6063     <p>in case it failed, providing an appropriate error code and error message
6064     </p>
6065     </blockquote>
6066    
6067    
6068     </blockquote><p>
6069    
6070     </p>
6071     <p>Example:
6072     </p>
6073     <p>
6074     </p>
6075     <blockquote class="text">
6076     <p>C: "SET FX_SEND AUDIO_OUTPUT_CHANNEL 0 0 0 2"
6077     </p>
6078     <p>S: "OK"
6079     </p>
6080     </blockquote><p>
6081    
6082     </p>
6083     <a name="SET FX_SEND EFFECT"></a><br /><hr />
6084     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
6085     <a name="rfc.section.6.4.35"></a><h3>6.4.35.&nbsp;
6086     Assigning destination effect to an effect send</h3>
6087    
6088     <p>The front-end can (re-)assign a destination effect to an
6089     effect send by sending the following command:
6090     </p>
6091     <p>
6092     </p>
6093     <blockquote class="text">
6094     <p>SET FX_SEND EFFECT &lt;sampler-chan&gt; &lt;fx-send-id&gt; &lt;effect-chain&gt; &lt;chain-pos&gt;
6095     </p>
6096     </blockquote><p>
6097    
6098     </p>
6099     <p>Where &lt;sampler-chan&gt; is the sampler channel number
6100     as returned by the <a class='info' href='#ADD CHANNEL'>"ADD CHANNEL"<span> (</span><span class='info'>Adding a new sampler channel</span><span>)</span></a>
6101     or <a class='info' href='#LIST CHANNELS'>"LIST CHANNELS"<span> (</span><span class='info'>Getting all created sampler channel list</span><span>)</span></a> command,
6102     &lt;fx-send-id&gt; reflects the numerical ID of the effect send entity
6103     as returned by the <a class='info' href='#CREATE FX_SEND'>"CREATE FX_SEND"<span> (</span><span class='info'>Adding an effect send to a sampler channel</span><span>)</span></a>
6104     or <a class='info' href='#LIST FX_SENDS'>"LIST FX_SENDS"<span> (</span><span class='info'>Listing all effect sends on a sampler channel</span><span>)</span></a> command,
6105     &lt;effect-chain&gt; by the numerical ID of the destination
6106     effect chain as returned by the
6107     <a class='info' href='#ADD SEND_EFFECT_CHAIN'>"ADD SEND_EFFECT_CHAIN"<span> (</span><span class='info'>Add send effect chain</span><span>)</span></a>
6108     or
6109     <a class='info' href='#LIST SEND_EFFECT_CHAINS'>"LIST SEND_EFFECT_CHAINS"<span> (</span><span class='info'>Retrieve list of send effect chains</span><span>)</span></a>
6110     command and &lt;chain-pos&gt; reflects the exact effect
6111     chain position in the effect chain which hosts the actual
6112     destination effect.
6113     </p>
6114     <p>Possible Answers:
6115     </p>
6116     <p>
6117     </p>
6118     <blockquote class="text">
6119     <p>"OK" -
6120     </p>
6121     <blockquote class="text">
6122     <p>on success
6123     </p>
6124     </blockquote>
6125    
6126    
6127     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
6128     </p>
6129     <blockquote class="text">
6130     <p>in case it failed, providing an appropriate error code and error message
6131     </p>
6132     </blockquote>
6133    
6134    
6135     </blockquote><p>
6136    
6137     </p>
6138     <p>Example:
6139     </p>
6140     <p>
6141     </p>
6142     <blockquote class="text">
6143     <p>C: "SET FX_SEND EFFECT 0 0 2 5"
6144     </p>
6145     <p>S: "OK"
6146     </p>
6147     </blockquote><p>
6148    
6149     </p>
6150     <a name="REMOVE FX_SEND EFFECT"></a><br /><hr />
6151     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
6152     <a name="rfc.section.6.4.36"></a><h3>6.4.36.&nbsp;
6153     Removing destination effect from an effect send</h3>
6154    
6155     <p>The front-end can (re-)assign a destination effect to an
6156     effect send by sending the following command:
6157     </p>
6158     <p>
6159     </p>
6160     <blockquote class="text">
6161     <p>REMOVE FX_SEND EFFECT &lt;sampler-chan&gt; &lt;fx-send-id&gt;
6162     </p>
6163     </blockquote><p>
6164    
6165     </p>
6166     <p>Where &lt;sampler-chan&gt; is the sampler channel number
6167     as returned by the <a class='info' href='#ADD CHANNEL'>"ADD CHANNEL"<span> (</span><span class='info'>Adding a new sampler channel</span><span>)</span></a>
6168     or <a class='info' href='#LIST CHANNELS'>"LIST CHANNELS"<span> (</span><span class='info'>Getting all created sampler channel list</span><span>)</span></a> command,
6169     &lt;fx-send-id&gt; reflects the numerical ID of the effect send entity
6170     as returned by the <a class='info' href='#CREATE FX_SEND'>"CREATE FX_SEND"<span> (</span><span class='info'>Adding an effect send to a sampler channel</span><span>)</span></a>
6171     or <a class='info' href='#LIST FX_SENDS'>"LIST FX_SENDS"<span> (</span><span class='info'>Listing all effect sends on a sampler channel</span><span>)</span></a> command.
6172     </p>
6173     <p>After the destination effect has been removed from the
6174     effect send, the audio signal of the effect send will be
6175     routed directly to the audio output device, according to the
6176     audio channel routing setting of the effect send.
6177    
6178     </p>
6179     <p>Possible Answers:
6180     </p>
6181     <p>
6182     </p>
6183     <blockquote class="text">
6184     <p>"OK" -
6185     </p>
6186     <blockquote class="text">
6187     <p>on success
6188     </p>
6189     </blockquote>
6190    
6191    
6192     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
6193     </p>
6194     <blockquote class="text">
6195     <p>in case it failed, providing an appropriate error code and error message
6196     </p>
6197     </blockquote>
6198    
6199    
6200     </blockquote><p>
6201    
6202     </p>
6203     <p>Example:
6204     </p>
6205     <p>
6206     </p>
6207     <blockquote class="text">
6208     <p>C: "REMOVE FX_SEND EFFECT 0 0"
6209     </p>
6210     <p>S: "OK"
6211     </p>
6212     </blockquote><p>
6213    
6214     </p>
6215     <a name="SET FX_SEND MIDI_CONTROLLER"></a><br /><hr />
6216     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
6217     <a name="rfc.section.6.4.37"></a><h3>6.4.37.&nbsp;
6218     Altering effect send's MIDI controller</h3>
6219    
6220     <p>The front-end can alter the MIDI controller of an effect
6221     send entity by sending the following command:
6222     </p>
6223     <p>
6224     </p>
6225     <blockquote class="text">
6226     <p>SET FX_SEND MIDI_CONTROLLER &lt;sampler-chan&gt; &lt;fx-send-id&gt; &lt;midi-ctrl&gt;
6227     </p>
6228     </blockquote><p>
6229    
6230     </p>
6231     <p>Where &lt;sampler-chan&gt; is the sampler channel number
6232     as returned by the <a class='info' href='#ADD CHANNEL'>"ADD CHANNEL"<span> (</span><span class='info'>Adding a new sampler channel</span><span>)</span></a>
6233     or <a class='info' href='#LIST CHANNELS'>"LIST CHANNELS"<span> (</span><span class='info'>Getting all created sampler channel list</span><span>)</span></a> command,
6234     &lt;fx-send-id&gt; reflects the numerical ID of the effect send entity
6235     as returned by the <a class='info' href='#CREATE FX_SEND'>"CREATE FX_SEND"<span> (</span><span class='info'>Adding an effect send to a sampler channel</span><span>)</span></a>
6236     or <a class='info' href='#LIST FX_SENDS'>"LIST FX_SENDS"<span> (</span><span class='info'>Listing all effect sends on a sampler channel</span><span>)</span></a> command and
6237     &lt;midi-ctrl&gt; reflects the MIDI controller which shall be
6238     able to modify the effect send's send level.
6239     </p>
6240     <p>Possible Answers:
6241     </p>
6242     <p>
6243     </p>
6244     <blockquote class="text">
6245     <p>"OK" -
6246     </p>
6247     <blockquote class="text">
6248     <p>on success
6249     </p>
6250     </blockquote>
6251    
6252    
6253     <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
6254     </p>
6255     <blockquote class="text">
6256     <p>if MIDI controller was set, but there are noteworthy
6257     issue(s) related, providing an appropriate warning code and
6258     warning message
6259     </p>
6260     </blockquote>
6261    
6262    
6263     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
6264     </p>
6265     <blockquote class="text">
6266     <p>in case it failed, providing an appropriate error code and error message
6267     </p>
6268     </blockquote>
6269    
6270    
6271     </blockquote><p>
6272    
6273     </p>
6274     <p>Example:
6275     </p>
6276     <p>
6277     </p>
6278     <blockquote class="text">
6279     <p>C: "SET FX_SEND MIDI_CONTROLLER 0 0 91"
6280     </p>
6281     <p>S: "OK"
6282     </p>
6283     </blockquote><p>
6284    
6285     </p>
6286     <a name="SET FX_SEND LEVEL"></a><br /><hr />
6287     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
6288     <a name="rfc.section.6.4.38"></a><h3>6.4.38.&nbsp;
6289     Altering effect send's send level</h3>
6290    
6291     <p>The front-end can alter the current send level of an effect
6292     send entity by sending the following command:
6293     </p>
6294     <p>
6295     </p>
6296     <blockquote class="text">
6297     <p>SET FX_SEND LEVEL &lt;sampler-chan&gt; &lt;fx-send-id&gt; &lt;volume&gt;
6298     </p>
6299     </blockquote><p>
6300    
6301     </p>
6302     <p>Where &lt;sampler-chan&gt; is the sampler channel number
6303     as returned by the <a class='info' href='#ADD CHANNEL'>"ADD CHANNEL"<span> (</span><span class='info'>Adding a new sampler channel</span><span>)</span></a>
6304     or <a class='info' href='#LIST CHANNELS'>"LIST CHANNELS"<span> (</span><span class='info'>Getting all created sampler channel list</span><span>)</span></a> command,
6305     &lt;fx-send-id&gt; reflects the numerical ID of the effect send entity
6306     as returned by the <a class='info' href='#CREATE FX_SEND'>"CREATE FX_SEND"<span> (</span><span class='info'>Adding an effect send to a sampler channel</span><span>)</span></a>
6307     or <a class='info' href='#LIST FX_SENDS'>"LIST FX_SENDS"<span> (</span><span class='info'>Listing all effect sends on a sampler channel</span><span>)</span></a> command and
6308     &lt;volume&gt; is an optionally dotted positive number (a value
6309     smaller than 1.0 means attenuation, whereas a value greater than
6310     1.0 means amplification) reflecting the new send level.
6311     </p>
6312     <p>Possible Answers:
6313     </p>
6314     <p>
6315     </p>
6316     <blockquote class="text">
6317     <p>"OK" -
6318     </p>
6319     <blockquote class="text">
6320     <p>on success
6321     </p>
6322     </blockquote>
6323    
6324    
6325     <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
6326     </p>
6327     <blockquote class="text">
6328     <p>if new send level was set, but there are noteworthy
6329     issue(s) related, providing an appropriate warning code and
6330     warning message
6331     </p>
6332     </blockquote>
6333    
6334    
6335     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
6336     </p>
6337     <blockquote class="text">
6338     <p>in case it failed, providing an appropriate error code and error message
6339     </p>
6340     </blockquote>
6341    
6342    
6343     </blockquote><p>
6344    
6345     </p>
6346     <p>Example:
6347     </p>
6348     <p>
6349     </p>
6350     <blockquote class="text">
6351     <p>C: "SET FX_SEND LEVEL 0 0 0.15"
6352     </p>
6353     <p>S: "OK"
6354     </p>
6355     </blockquote><p>
6356    
6357     </p>
6358     <a name="SEND CHANNEL MIDI_DATA"></a><br /><hr />
6359     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
6360     <a name="rfc.section.6.4.39"></a><h3>6.4.39.&nbsp;
6361     Sending MIDI messages to sampler channel</h3>
6362    
6363     <p>The front-end can send MIDI events to a specific sampler channel
6364     by sending the following command:
6365     </p>
6366     <p>
6367     </p>
6368     <blockquote class="text">
6369     <p>SEND CHANNEL MIDI_DATA &lt;midi-msg&gt; &lt;sampler-chan&gt; &lt;arg1&gt; &lt;arg2&gt;
6370     </p>
6371     </blockquote><p>
6372    
6373     </p>
6374     <p>Where &lt;sampler-chan&gt; is the sampler channel number
6375     as returned by the <a class='info' href='#ADD CHANNEL'>"ADD CHANNEL"<span> (</span><span class='info'>Adding a new sampler channel</span><span>)</span></a>
6376     or <a class='info' href='#LIST CHANNELS'>"LIST CHANNELS"<span> (</span><span class='info'>Getting all created sampler channel list</span><span>)</span></a> command,
6377     &lt;arg1&gt; and &lt;arg2&gt; arguments depend on the &lt;midi-msg&gt; argument, which
6378     specifies the MIDI message type. Currently, the following MIDI messages are supported:
6379     </p>
6380     <p>
6381     </p>
6382     <blockquote class="text">
6383     <p>"NOTE_ON" -
6384     </p>
6385     <blockquote class="text">
6386     <p>For turning on MIDI notes, where &lt;arg1&gt;
6387     specifies the key number and &lt;arg2&gt; the velocity
6388     as described in the MIDI specification.
6389     </p>
6390     </blockquote>
6391    
6392    
6393     <p>"NOTE_OFF" -
6394     </p>
6395     <blockquote class="text">
6396     <p>For turning a currently playing MIDI note off, where &lt;arg1&gt;
6397     specifies the key number and &lt;arg2&gt; the velocity
6398     as described in the MIDI specification.
6399     </p>
6400     </blockquote>
6401    
6402    
6403     <p>"CC" -
6404     </p>
6405     <blockquote class="text">
6406     <p>For changing a MIDI controller, where &lt;arg1&gt;
6407     specifies the controller number and &lt;arg2&gt; the
6408     new value of the controller as described in the Control
6409     Change section of the MIDI specification.
6410     </p>
6411     </blockquote>
6412    
6413    
6414     </blockquote><p>
6415    
6416     </p>
6417     <p>CAUTION: This command is provided for implementations of virtual MIDI keyboards
6418     and no realtime guarantee whatsoever will be made!
6419     </p>
6420     <p>Possible Answers:
6421     </p>
6422     <p>
6423     </p>
6424     <blockquote class="text">
6425     <p>"OK" -
6426     </p>
6427     <blockquote class="text">
6428     <p>on success
6429     </p>
6430     </blockquote>
6431    
6432    
6433     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
6434     </p>
6435     <blockquote class="text">
6436     <p>in case it failed, providing an appropriate error code and error message
6437     </p>
6438     </blockquote>
6439    
6440    
6441     </blockquote><p>
6442    
6443     </p>
6444     <p>Example:
6445     </p>
6446     <p>
6447     </p>
6448     <blockquote class="text">
6449     <p>C: "SEND CHANNEL MIDI_DATA NOTE_ON 0 56 112"
6450     </p>
6451     <p>S: "OK"
6452     </p>
6453     </blockquote><p>
6454    
6455     </p>
6456     <a name="RESET CHANNEL"></a><br /><hr />
6457     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
6458     <a name="rfc.section.6.4.40"></a><h3>6.4.40.&nbsp;
6459     Resetting a sampler channel</h3>
6460    
6461     <p>The front-end can reset a particular sampler channel by sending the following command:
6462     </p>
6463     <p>
6464     </p>
6465     <blockquote class="text">
6466     <p>RESET CHANNEL &lt;sampler-channel&gt;
6467     </p>
6468     </blockquote><p>
6469    
6470     </p>
6471     <p>
6472     Where &lt;sampler-channel&gt; defines the sampler channel to be reset.
6473     This will cause the engine on that sampler channel, its voices and
6474     eventually disk streams and all control and status variables to be
6475     reset.
6476     </p>
6477     <p>Possible Answers:
6478     </p>
6479     <p>
6480     </p>
6481     <blockquote class="text">
6482     <p>"OK" -
6483     </p>
6484     <blockquote class="text">
6485     <p>on success
6486     </p>
6487     </blockquote>
6488    
6489    
6490     <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
6491     </p>
6492     <blockquote class="text">
6493     <p>if channel was reset, but there are noteworthy issue(s)
6494     related, providing an appropriate warning code and warning
6495     message
6496     </p>
6497     </blockquote>
6498    
6499    
6500     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
6501     </p>
6502     <blockquote class="text">
6503     <p>in case it failed, providing an appropriate error code and
6504     error message
6505     </p>
6506     </blockquote>
6507    
6508    
6509     </blockquote><p>
6510    
6511     </p>
6512     <p>Examples:
6513     </p>
6514     <p>
6515     </p>
6516     <blockquote class="text">
6517     <p>
6518     </p>
6519     </blockquote><p>
6520    
6521     </p>
6522     <a name="anchor12"></a><br /><hr />
6523     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
6524     <a name="rfc.section.6.5"></a><h3>6.5.&nbsp;
6525     Controlling connection</h3>
6526    
6527     <p>The following commands are used to control the connection to LinuxSampler.
6528     </p>
6529     <a name="SUBSCRIBE"></a><br /><hr />
6530     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
6531     <a name="rfc.section.6.5.1"></a><h3>6.5.1.&nbsp;
6532     Register front-end for receiving event messages</h3>
6533    
6534     <p>The front-end can register itself to the LinuxSampler application to
6535     be informed about noteworthy events by sending this command:
6536     </p>
6537     <p>
6538     </p>
6539     <blockquote class="text">
6540     <p>SUBSCRIBE &lt;event-id&gt;
6541     </p>
6542     </blockquote><p>
6543    
6544     </p>
6545     <p>where &lt;event-id&gt; will be replaced by the respective event that
6546     client wants to subscribe to.
6547     </p>
6548     <p>Possible Answers:
6549     </p>
6550     <p>
6551     </p>
6552     <blockquote class="text">
6553     <p>"OK" -
6554     </p>
6555     <blockquote class="text">
6556     <p>on success
6557     </p>
6558     </blockquote>
6559    
6560    
6561     <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
6562     </p>
6563     <blockquote class="text">
6564     <p>if registration succeeded, but there are noteworthy
6565     issue(s) related, providing an appropriate warning code and
6566     warning message
6567     </p>
6568     </blockquote>
6569    
6570    
6571     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
6572     </p>
6573     <blockquote class="text">
6574     <p>in case it failed, providing an appropriate error code and
6575     error message
6576     </p>
6577     </blockquote>
6578    
6579    
6580     </blockquote><p>
6581    
6582     </p>
6583     <p>Examples:
6584     </p>
6585     <p>
6586     </p>
6587     <blockquote class="text">
6588     <p>
6589     </p>
6590     </blockquote><p>
6591    
6592     </p>
6593     <a name="UNSUBSCRIBE"></a><br /><hr />
6594     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
6595     <a name="rfc.section.6.5.2"></a><h3>6.5.2.&nbsp;
6596     Unregister front-end for not receiving event messages</h3>
6597    
6598     <p>The front-end can unregister itself if it doesn't want to receive event
6599     messages anymore by sending the following command:
6600     </p>
6601     <p>
6602     </p>
6603     <blockquote class="text">
6604     <p>UNSUBSCRIBE &lt;event-id&gt;
6605     </p>
6606     </blockquote><p>
6607    
6608     </p>
6609     <p>Where &lt;event-id&gt; will be replaced by the respective event that
6610     client doesn't want to receive anymore.
6611     </p>
6612     <p>Possible Answers:
6613     </p>
6614     <p>
6615     </p>
6616     <blockquote class="text">
6617     <p>"OK" -
6618     </p>
6619     <blockquote class="text">
6620     <p>on success
6621     </p>
6622     </blockquote>
6623    
6624    
6625     <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
6626     </p>
6627     <blockquote class="text">
6628     <p>if unregistration succeeded, but there are noteworthy
6629     issue(s) related, providing an appropriate warning code and
6630     warning message
6631     </p>
6632     </blockquote>
6633    
6634    
6635     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
6636     </p>
6637     <blockquote class="text">
6638     <p>in case it failed, providing an appropriate error code and
6639     error message
6640     </p>
6641     </blockquote>
6642    
6643    
6644     </blockquote><p>
6645    
6646     </p>
6647     <p>Examples:
6648     </p>
6649     <p>
6650     </p>
6651     <blockquote class="text">
6652     <p>
6653     </p>
6654     </blockquote><p>
6655    
6656     </p>
6657     <a name="SET ECHO"></a><br /><hr />
6658     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
6659     <a name="rfc.section.6.5.3"></a><h3>6.5.3.&nbsp;
6660     Enable or disable echo of commands</h3>
6661    
6662     <p>To enable or disable back sending of commands to the client the following command can be used:
6663     </p>
6664     <p>
6665     </p>
6666     <blockquote class="text">
6667     <p>SET ECHO &lt;value&gt;
6668     </p>
6669     </blockquote><p>
6670    
6671     </p>
6672     <p>Where &lt;value&gt; should be replaced either by "1" to enable echo mode
6673     or "0" to disable echo mode. When echo mode is enabled, all
6674     commands send to LinuxSampler will be immediately send back and
6675     after this echo the actual response to the command will be
6676     returned. Echo mode will only be altered for the client connection
6677     that issued the "SET ECHO" command, not globally for all client
6678     connections.
6679     </p>
6680     <p>Possible Answers:
6681     </p>
6682     <p>
6683     </p>
6684     <blockquote class="text">
6685     <p>"OK" -
6686     </p>
6687     <blockquote class="text">
6688     <p>usually
6689     </p>
6690     </blockquote>
6691    
6692    
6693     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
6694     </p>
6695     <blockquote class="text">
6696     <p>on syntax error, e.g. non boolean value
6697     </p>
6698     </blockquote>
6699    
6700    
6701     </blockquote><p>
6702    
6703     </p>
6704     <p>Examples:
6705     </p>
6706     <p>
6707     </p>
6708     <blockquote class="text">
6709     <p>
6710     </p>
6711     </blockquote><p>
6712    
6713     </p>
6714     <a name="QUIT"></a><br /><hr />
6715     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
6716     <a name="rfc.section.6.5.4"></a><h3>6.5.4.&nbsp;
6717     Close client connection</h3>
6718    
6719     <p>The client can close its network connection to LinuxSampler by sending the following command:
6720     </p>
6721     <p>
6722     </p>
6723     <blockquote class="text">
6724     <p>QUIT
6725     </p>
6726     </blockquote><p>
6727    
6728     </p>
6729     <p>This is probably more interesting for manual telnet connections to
6730     LinuxSampler than really useful for a front-end implementation.
6731     </p>
6732     <a name="anchor13"></a><br /><hr />
6733     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
6734     <a name="rfc.section.6.6"></a><h3>6.6.&nbsp;
6735     Global commands</h3>
6736    
6737     <p>The following commands have global impact on the sampler.
6738     </p>
6739     <a name="GET TOTAL_VOICE_COUNT"></a><br /><hr />
6740     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
6741     <a name="rfc.section.6.6.1"></a><h3>6.6.1.&nbsp;
6742     Current number of active voices</h3>
6743    
6744     <p>The front-end can ask for the current number of active voices on
6745     the sampler by sending the following command:
6746     </p>
6747     <p>
6748     </p>
6749     <blockquote class="text">
6750     <p>GET TOTAL_VOICE_COUNT
6751     </p>
6752     </blockquote><p>
6753    
6754     </p>
6755     <p>Possible Answers:
6756     </p>
6757     <p>
6758     </p>
6759     <blockquote class="text">
6760     <p>LinuxSampler will answer by returning the number of all active
6761     voices on the sampler.
6762     </p>
6763     </blockquote><p>
6764    
6765     </p>
6766     <a name="GET TOTAL_VOICE_COUNT_MAX"></a><br /><hr />
6767     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
6768     <a name="rfc.section.6.6.2"></a><h3>6.6.2.&nbsp;
6769     Maximum amount of active voices</h3>
6770    
6771     <p>The front-end can ask for the maximum number of active voices
6772     by sending the following command:
6773     </p>
6774     <p>
6775     </p>
6776     <blockquote class="text">
6777     <p>GET TOTAL_VOICE_COUNT_MAX
6778     </p>
6779     </blockquote><p>
6780    
6781     </p>
6782     <p>Possible Answers:
6783     </p>
6784     <p>
6785     </p>
6786     <blockquote class="text">
6787     <p>LinuxSampler will answer by returning the maximum number
6788     of active voices.
6789     </p>
6790     </blockquote><p>
6791    
6792     </p>
6793     <a name="GET TOTAL_STREAM_COUNT"></a><br /><hr />
6794     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
6795     <a name="rfc.section.6.6.3"></a><h3>6.6.3.&nbsp;
6796     Current number of active disk streams</h3>
6797    
6798     <p>The front-end can ask for the current number of active disk streams on
6799     the sampler by sending the following command:
6800     </p>
6801     <p>
6802     </p>
6803     <blockquote class="text">
6804     <p>GET TOTAL_STREAM_COUNT
6805     </p>
6806     </blockquote><p>
6807    
6808     </p>
6809     <p>Possible Answers:
6810     </p>
6811     <p>
6812     </p>
6813     <blockquote class="text">
6814     <p>LinuxSampler will answer by returning the number of all active
6815     disk streams on the sampler.
6816     </p>
6817     </blockquote><p>
6818    
6819     </p>
6820     <a name="RESET"></a><br /><hr />
6821     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
6822     <a name="rfc.section.6.6.4"></a><h3>6.6.4.&nbsp;
6823     Reset sampler</h3>
6824    
6825     <p>The front-end can reset the whole sampler by sending the following command:
6826     </p>
6827     <p>
6828     </p>
6829     <blockquote class="text">
6830     <p>RESET
6831     </p>
6832     </blockquote><p>
6833    
6834     </p>
6835     <p>Possible Answers:
6836     </p>
6837     <p>
6838     </p>
6839     <blockquote class="text">
6840     <p>"OK" -
6841     </p>
6842     <blockquote class="text">
6843     <p>always
6844     </p>
6845     </blockquote>
6846    
6847    
6848     </blockquote><p>
6849    
6850     </p>
6851     <p>Examples:
6852     </p>
6853     <p>
6854     </p>
6855     <blockquote class="text">
6856     <p>
6857     </p>
6858     </blockquote><p>
6859    
6860     </p>
6861     <a name="GET SERVER INFO"></a><br /><hr />
6862     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
6863     <a name="rfc.section.6.6.5"></a><h3>6.6.5.&nbsp;
6864     General sampler informations</h3>
6865    
6866     <p>The client can ask for general informations about the LinuxSampler
6867     instance by sending the following command:
6868     </p>
6869     <p>
6870     </p>
6871     <blockquote class="text">
6872     <p>GET SERVER INFO
6873     </p>
6874     </blockquote><p>
6875    
6876     </p>
6877     <p>Possible Answers:
6878     </p>
6879     <p>
6880     </p>
6881     <blockquote class="text">
6882     <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
6883     Each answer line begins with the information category name
6884     followed by a colon and then a space character &lt;SP&gt; and finally
6885     the info character string to that information category. At the
6886     moment the following categories are defined:
6887    
6888     </p>
6889     <p>
6890     </p>
6891     <blockquote class="text">
6892     <p>DESCRIPTION -
6893     </p>
6894     <blockquote class="text">
6895     <p>arbitrary textual description about the sampler
6896     (note that the character string may contain
6897     <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>)
6898     </p>
6899     </blockquote>
6900    
6901    
6902     <p>VERSION -
6903     </p>
6904     <blockquote class="text">
6905     <p>version of the sampler
6906     </p>
6907     </blockquote>
6908    
6909    
6910     <p>PROTOCOL_VERSION -
6911     </p>
6912     <blockquote class="text">
6913     <p>version of the LSCP specification the sampler
6914     complies with (see <a class='info' href='#LSCP versioning'>Section&nbsp;2<span> (</span><span class='info'>Versioning of this specification</span><span>)</span></a> for details)
6915     </p>
6916     </blockquote>
6917    
6918    
6919     <p>INSTRUMENTS_DB_SUPPORT -
6920     </p>
6921     <blockquote class="text">
6922     <p>either yes or no, specifies whether the
6923     sampler is build with instruments database support.
6924     </p>
6925     </blockquote>
6926    
6927    
6928     </blockquote>
6929    
6930    
6931     </blockquote><p>
6932    
6933     </p>
6934     <p>The mentioned fields above don't have to be in particular order.
6935     Other fields might be added in future.
6936     </p>
6937     <p>Example:
6938     </p>
6939     <p>
6940     </p>
6941     <blockquote class="text">
6942     <p>C: "GET SERVER INFO"
6943     </p>
6944     <p>S: "DESCRIPTION: LinuxSampler - modular, streaming capable sampler"
6945     </p>
6946     <p>&nbsp;&nbsp;&nbsp;"VERSION: 1.0.0.svn23"
6947     </p>
6948     <p>&nbsp;&nbsp;&nbsp;"PROTOCOL_VERSION: 1.5"
6949     </p>
6950     <p>&nbsp;&nbsp;&nbsp;"INSTRUMENTS_DB_SUPPORT: no"
6951     </p>
6952     <p>&nbsp;&nbsp;&nbsp;"."
6953     </p>
6954     </blockquote><p>
6955    
6956     </p>
6957     <a name="GET VOLUME"></a><br /><hr />
6958     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
6959     <a name="rfc.section.6.6.6"></a><h3>6.6.6.&nbsp;
6960     Getting global volume attenuation</h3>
6961    
6962     <p>The client can ask for the current global sampler-wide volume
6963     attenuation by sending the following command:
6964     </p>
6965     <p>
6966     </p>
6967     <blockquote class="text">
6968     <p>GET VOLUME
6969     </p>
6970     </blockquote><p>
6971    
6972     </p>
6973     <p>Possible Answers:
6974     </p>
6975     <p>
6976     </p>
6977     <blockquote class="text">
6978     <p>The sampler will always answer by returning the optional
6979     dotted floating point coefficient, reflecting the current
6980     global volume attenuation.
6981    
6982     </p>
6983     </blockquote><p>
6984    
6985     </p>
6986     <p>Note: it is up to the respective sampler engine whether to obey
6987     that global volume parameter or not, but in general all engines SHOULD
6988     use this parameter.
6989     </p>
6990     <a name="SET VOLUME"></a><br /><hr />
6991     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
6992     <a name="rfc.section.6.6.7"></a><h3>6.6.7.&nbsp;
6993     Setting global volume attenuation</h3>
6994    
6995     <p>The client can alter the current global sampler-wide volume
6996     attenuation by sending the following command:
6997     </p>
6998     <p>
6999     </p>
7000     <blockquote class="text">
7001     <p>SET VOLUME &lt;volume&gt;
7002     </p>
7003     </blockquote><p>
7004    
7005     </p>
7006     <p>Where &lt;volume&gt; should be replaced by the optional dotted
7007     floating point value, reflecting the new global volume parameter.
7008     This value might usually be in the range between 0.0 and 1.0, that
7009     is for attenuating the overall volume.
7010     </p>
7011     <p>Possible Answers:
7012     </p>
7013     <p>
7014     </p>
7015     <blockquote class="text">
7016     <p>"OK" -
7017     </p>
7018     <blockquote class="text">
7019     <p>on success
7020     </p>
7021     </blockquote>
7022    
7023    
7024     <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
7025     </p>
7026     <blockquote class="text">
7027     <p>if the global volume was set, but there are noteworthy
7028     issue(s) related, providing an appropriate warning code and
7029     warning message
7030     </p>
7031     </blockquote>
7032    
7033    
7034     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
7035     </p>
7036     <blockquote class="text">
7037     <p>in case it failed, providing an appropriate error code and error message
7038     </p>
7039     </blockquote>
7040    
7041    
7042     </blockquote><p>
7043    
7044     </p>
7045     <a name="GET VOICES"></a><br /><hr />
7046     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
7047     <a name="rfc.section.6.6.8"></a><h3>6.6.8.&nbsp;
7048     Getting global voice limit</h3>
7049    
7050     <p>The client can ask for the current global sampler-wide limit
7051     for maximum voices by sending the following command:
7052     </p>
7053     <p>
7054     </p>
7055     <blockquote class="text">
7056     <p>GET VOICES
7057     </p>
7058     </blockquote><p>
7059    
7060     </p>
7061     <p>Possible Answers:
7062     </p>
7063     <p>
7064     </p>
7065     <blockquote class="text">
7066     <p>LinuxSampler will answer by returning the number for
7067     the current limit of maximum voices.
7068     </p>
7069     </blockquote><p>
7070    
7071     </p>
7072     <p>The voice limit setting defines how many voices should maximum
7073     be processed by the sampler at the same time. If the user
7074     triggers new notes which would exceed that voice limit, the
7075     sampler engine will react by stealing old voices for those
7076     newly triggered notes. Note that the amount of voices triggered
7077     by a new note can be larger than one and is dependent to the
7078     respective instrument and probably further criterias.
7079     </p>
7080     <a name="SET VOICES"></a><br /><hr />
7081     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
7082     <a name="rfc.section.6.6.9"></a><h3>6.6.9.&nbsp;
7083     Setting global voice limit</h3>
7084    
7085     <p>The client can alter the current global sampler-wide limit
7086     for maximum voices by sending the following command:
7087     </p>
7088     <p>
7089     </p>
7090     <blockquote class="text">
7091     <p>SET VOICES &lt;max-voices&gt;
7092     </p>
7093     </blockquote><p>
7094    
7095     </p>
7096     <p>Where &lt;max-voices&gt; should be replaced by the integer
7097     value, reflecting the new global amount limit of maximum voices.
7098     This value has to be larger than 0.
7099     </p>
7100     <p>Possible Answers:
7101     </p>
7102     <p>
7103     </p>
7104     <blockquote class="text">
7105     <p>"OK" -
7106     </p>
7107     <blockquote class="text">
7108     <p>on success
7109     </p>
7110     </blockquote>
7111    
7112    
7113     <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
7114     </p>
7115     <blockquote class="text">
7116     <p>if the voice limit was set, but there are noteworthy
7117     issue(s) related, providing an appropriate warning code and
7118     warning message
7119     </p>
7120     </blockquote>
7121    
7122    
7123     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
7124     </p>
7125     <blockquote class="text">
7126     <p>in case it failed, providing an appropriate error code and error message
7127     </p>
7128     </blockquote>
7129    
7130    
7131     </blockquote><p>
7132    
7133     </p>
7134     <p>Note: the given value will be passed to all sampler engine instances.
7135     The total amount of maximum voices on the running system might thus
7136     be as big as the given value multiplied by the current amount of engine
7137     instances.
7138     </p>
7139     <p>Caution: when adjusting the voice limit, you SHOULD also
7140     adjust the disk stream limit respectively and vice versa.
7141     </p>
7142     <a name="GET STREAMS"></a><br /><hr />
7143     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
7144     <a name="rfc.section.6.6.10"></a><h3>6.6.10.&nbsp;
7145     Getting global disk stream limit</h3>
7146    
7147     <p>The client can ask for the current global sampler-wide limit
7148     for maximum disk streams by sending the following command:
7149     </p>
7150     <p>
7151     </p>
7152     <blockquote class="text">
7153     <p>GET STREAMS
7154     </p>
7155     </blockquote><p>
7156    
7157     </p>
7158     <p>Possible Answers:
7159     </p>
7160     <p>
7161     </p>
7162     <blockquote class="text">
7163     <p>LinuxSampler will answer by returning the number for
7164     the current limit of maximum disk streams.
7165     </p>
7166     </blockquote><p>
7167    
7168     </p>
7169     <p>The disk stream limit setting defines how many disk streams should
7170     maximum be processed by a sampler engine at the same time. The
7171     higher this value, the more memory (RAM) will be occupied, since
7172     every disk streams allocates a certain buffer size for being able
7173     to perform its streaming operations.
7174     </p>
7175     <a name="SET STREAMS"></a><br /><hr />
7176     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
7177     <a name="rfc.section.6.6.11"></a><h3>6.6.11.&nbsp;
7178     Setting global disk stream limit</h3>
7179    
7180     <p>The client can alter the current global sampler-wide limit
7181     for maximum disk streams by sending the following command:
7182     </p>
7183     <p>
7184     </p>
7185     <blockquote class="text">
7186     <p>SET STREAMS &lt;max-streams&gt;
7187     </p>
7188     </blockquote><p>
7189    
7190     </p>
7191     <p>Where &lt;max-streams&gt; should be replaced by the integer
7192     value, reflecting the new global amount limit of maximum disk streams.
7193     This value has to be positive.
7194     </p>
7195     <p>Possible Answers:
7196     </p>
7197     <p>
7198     </p>
7199     <blockquote class="text">
7200     <p>"OK" -
7201     </p>
7202     <blockquote class="text">
7203     <p>on success
7204     </p>
7205     </blockquote>
7206    
7207    
7208     <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
7209     </p>
7210     <blockquote class="text">
7211     <p>if the disk stream limit was set, but there are noteworthy
7212     issue(s) related, providing an appropriate warning code and
7213     warning message
7214     </p>
7215     </blockquote>
7216    
7217    
7218     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
7219     </p>
7220     <blockquote class="text">
7221     <p>in case it failed, providing an appropriate error code and error message
7222     </p>
7223     </blockquote>
7224    
7225    
7226     </blockquote><p>
7227    
7228     </p>
7229     <p>Note: the given value will be passed to all sampler engine instances.
7230     The total amount of maximum disk streams on the running system might
7231     thus be as big as the given value multiplied by the current amount of
7232     engine instances.
7233     </p>
7234     <p>Caution: when adjusting the disk stream limit, you SHOULD also
7235     adjust the voice limit respectively and vice versa.
7236     </p>
7237     <a name="MIDI Instrument Mapping"></a><br /><hr />
7238     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
7239     <a name="rfc.section.6.7"></a><h3>6.7.&nbsp;
7240     MIDI Instrument Mapping</h3>
7241    
7242     <p>The MIDI protocol provides a way to switch between instruments
7243     by sending so called MIDI bank select and MIDI program change
7244     messages which are essentially just numbers. The following commands
7245     allow to actually map arbitrary MIDI bank select / program change
7246     numbers with real instruments.
7247     </p>
7248     <p>The sampler allows to manage an arbitrary amount of MIDI
7249     instrument maps which define which instrument to load on
7250     which MIDI program change message.
7251     </p>
7252     <p>By default, that is when the sampler is launched, there is no
7253     map, thus the sampler will simply ignore all program change
7254     messages. The front-end has to explicitly create at least one
7255     map, add entries to the map and tell the respective sampler
7256     channel(s) which MIDI instrument map to use, so the sampler
7257     knows how to react on a given program change message on the
7258     respective sampler channel, that is by switching to the
7259     respectively defined engine type and loading the respective
7260     instrument. See command
7261     <a class='info' href='#SET CHANNEL MIDI_INSTRUMENT_MAP'>"SET CHANNEL MIDI_INSTRUMENT_MAP"<span> (</span><span class='info'>Assigning a MIDI instrument map to a sampler channel</span><span>)</span></a>
7262     for how to assign a MIDI instrument map to a sampler channel.
7263     </p>
7264     <p>Also note per MIDI specification a bank select message does not
7265     cause to switch to another instrument. Instead when receiving a
7266     bank select message the bank value will be stored and a subsequent
7267     program change message (which may occur at any time) will finally
7268     cause the sampler to switch to the respective instrument as
7269     reflected by the current MIDI instrument map.
7270     </p>
7271     <a name="ADD MIDI_INSTRUMENT_MAP"></a><br /><hr />
7272     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
7273     <a name="rfc.section.6.7.1"></a><h3>6.7.1.&nbsp;
7274     Create a new MIDI instrument map</h3>
7275    
7276     <p>The front-end can add a new MIDI instrument map by sending
7277     the following command:
7278     </p>
7279     <p>
7280     </p>
7281     <blockquote class="text">
7282     <p>ADD MIDI_INSTRUMENT_MAP [&lt;name&gt;]
7283     </p>
7284     </blockquote><p>
7285    
7286     </p>
7287     <p>Where &lt;name&gt; is an optional argument allowing to
7288     assign a custom name to the new map. MIDI instrument Map
7289     names do not have to be unique, but MUST be encapsulated
7290     into apostrophes and support escape sequences as described
7291     in chapter "<a class='info' href='#character_set'>Character Set and Escape Sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>".
7292    
7293     </p>
7294     <p>Possible Answers:
7295     </p>
7296     <p>
7297     </p>
7298     <blockquote class="text">
7299     <p>"OK[&lt;map&gt;]" -
7300     </p>
7301     <blockquote class="text">
7302     <p>in case a new MIDI instrument map could
7303     be added, where &lt;map&gt; reflects the
7304     unique ID of the newly created MIDI
7305     instrument map
7306     </p>
7307     </blockquote>
7308    
7309    
7310     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
7311     </p>
7312     <blockquote class="text">
7313     <p>when a new map could not be created, which
7314     might never occur in practice
7315     </p>
7316     </blockquote>
7317    
7318    
7319     </blockquote><p>
7320    
7321     </p>
7322     <p>Examples:
7323     </p>
7324     <p>
7325     </p>
7326     <blockquote class="text">
7327     <p>C: "ADD MIDI_INSTRUMENT_MAP 'Standard Map'"
7328     </p>
7329     <p>S: "OK[0]"
7330     </p>
7331     </blockquote><p>
7332    
7333     </p>
7334     <p>
7335     </p>
7336     <blockquote class="text">
7337     <p>C: "ADD MIDI_INSTRUMENT_MAP 'Standard Drumkit'"
7338     </p>
7339     <p>S: "OK[1]"
7340     </p>
7341     </blockquote><p>
7342    
7343     </p>
7344     <p>
7345     </p>
7346     <blockquote class="text">
7347     <p>C: "ADD MIDI_INSTRUMENT_MAP"
7348     </p>
7349     <p>S: "OK[5]"
7350     </p>
7351     </blockquote><p>
7352    
7353     </p>
7354     <a name="REMOVE MIDI_INSTRUMENT_MAP"></a><br /><hr />
7355     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
7356     <a name="rfc.section.6.7.2"></a><h3>6.7.2.&nbsp;
7357     Delete one particular or all MIDI instrument maps</h3>
7358    
7359     <p>The front-end can delete a particular MIDI instrument map
7360     by sending the following command:
7361     </p>
7362     <p>
7363     </p>
7364     <blockquote class="text">
7365     <p>REMOVE MIDI_INSTRUMENT_MAP &lt;map&gt;
7366     </p>
7367     </blockquote><p>
7368    
7369     </p>
7370     <p>Where &lt;map&gt; reflects the unique ID of the map to delete
7371     as returned by the <a class='info' href='#LIST MIDI_INSTRUMENT_MAPS'>"LIST MIDI_INSTRUMENT_MAPS"<span> (</span><span class='info'>Getting all created MIDI instrument maps</span><span>)</span></a>
7372     command.
7373     </p>
7374     <p>The front-end can delete all MIDI instrument maps by
7375     sending the following command:
7376     </p>
7377     <p>
7378     </p>
7379     <blockquote class="text">
7380     <p>REMOVE MIDI_INSTRUMENT_MAP ALL
7381     </p>
7382     </blockquote><p>
7383    
7384     </p>
7385     <p>Possible Answers:
7386     </p>
7387     <p>
7388     </p>
7389     <blockquote class="text">
7390     <p>"OK" -
7391     </p>
7392     <blockquote class="text">
7393     <p>in case the map(s) could be deleted
7394     </p>
7395     </blockquote>
7396    
7397    
7398     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
7399     </p>
7400     <blockquote class="text">
7401     <p>when the given map does not exist
7402     </p>
7403     </blockquote>
7404    
7405    
7406     </blockquote><p>
7407    
7408     </p>
7409     <p>Examples:
7410     </p>
7411     <p>
7412     </p>
7413     <blockquote class="text">
7414     <p>C: "REMOVE MIDI_INSTRUMENT_MAP 0"
7415     </p>
7416     <p>S: "OK"
7417     </p>
7418     </blockquote><p>
7419    
7420     </p>
7421     <p>
7422     </p>
7423     <blockquote class="text">
7424     <p>C: "REMOVE MIDI_INSTRUMENT_MAP ALL"
7425     </p>
7426     <p>S: "OK"
7427     </p>
7428     </blockquote><p>
7429    
7430     </p>
7431     <a name="GET MIDI_INSTRUMENT_MAPS"></a><br /><hr />
7432     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
7433     <a name="rfc.section.6.7.3"></a><h3>6.7.3.&nbsp;
7434     Get amount of existing MIDI instrument maps</h3>
7435    
7436     <p>The front-end can retrieve the current amount of MIDI
7437     instrument maps by sending the following command:
7438     </p>
7439     <p>
7440     </p>
7441     <blockquote class="text">
7442     <p>GET MIDI_INSTRUMENT_MAPS
7443     </p>
7444     </blockquote><p>
7445    
7446     </p>
7447     <p>Possible Answers:
7448     </p>
7449     <p>
7450     </p>
7451     <blockquote class="text">
7452     <p>The sampler will answer by returning the current
7453     number of MIDI instrument maps.
7454     </p>
7455     </blockquote><p>
7456    
7457     </p>
7458     <p>Example:
7459     </p>
7460     <p>
7461     </p>
7462     <blockquote class="text">
7463     <p>C: "GET MIDI_INSTRUMENT_MAPS"
7464     </p>
7465     <p>S: "2"
7466     </p>
7467     </blockquote><p>
7468    
7469     </p>
7470     <a name="LIST MIDI_INSTRUMENT_MAPS"></a><br /><hr />
7471     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
7472     <a name="rfc.section.6.7.4"></a><h3>6.7.4.&nbsp;
7473     Getting all created MIDI instrument maps</h3>
7474    
7475     <p>The number of MIDI instrument maps can change on runtime. To get the
7476     current list of MIDI instrument maps, the front-end can send the
7477     following command:
7478     </p>
7479     <p>
7480     </p>
7481     <blockquote class="text">
7482     <p>LIST MIDI_INSTRUMENT_MAPS
7483     </p>
7484     </blockquote><p>
7485    
7486     </p>
7487     <p>Possible Answers:
7488     </p>
7489     <p>
7490     </p>
7491     <blockquote class="text">
7492     <p>The sampler will answer by returning a comma separated list
7493     with all MIDI instrument maps' numerical IDs.
7494     </p>
7495     </blockquote><p>
7496    
7497     </p>
7498     <p>Example:
7499     </p>
7500     <p>
7501     </p>
7502     <blockquote class="text">
7503     <p>C: "LIST MIDI_INSTRUMENT_MAPS"
7504     </p>
7505     <p>S: "0,1,5,12"
7506     </p>
7507     </blockquote><p>
7508    
7509     </p>
7510     <a name="GET MIDI_INSTRUMENT_MAP INFO"></a><br /><hr />
7511     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
7512     <a name="rfc.section.6.7.5"></a><h3>6.7.5.&nbsp;
7513     Getting MIDI instrument map information</h3>
7514    
7515     <p>The front-end can ask for the current settings of a MIDI
7516     instrument map by sending the following command:
7517     </p>
7518     <p>
7519     </p>
7520     <blockquote class="text">
7521     <p>GET MIDI_INSTRUMENT_MAP INFO &lt;map&gt;
7522     </p>
7523     </blockquote><p>
7524    
7525     </p>
7526     <p>Where &lt;map&gt; is the numerical ID of the map the
7527     front-end is interested in as returned by the
7528     <a class='info' href='#LIST MIDI_INSTRUMENT_MAPS'>"LIST MIDI_INSTRUMENT_MAPS"<span> (</span><span class='info'>Getting all created MIDI instrument maps</span><span>)</span></a>
7529     command.
7530     </p>
7531     <p>Possible Answers:
7532     </p>
7533     <p>
7534     </p>
7535     <blockquote class="text">
7536     <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
7537     Each answer line begins with the settings category name
7538     followed by a colon and then a space character &lt;SP&gt; and finally
7539     the info character string to that setting category. At the
7540     moment the following categories are defined:
7541     </p>
7542     <p>
7543     </p>
7544     <blockquote class="text">
7545     <p>NAME -
7546     </p>
7547     <blockquote class="text">
7548     <p>custom name of the given map,
7549     which does not have to be unique
7550     (note that this character string may contain
7551     <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>)
7552     </p>
7553     </blockquote>
7554    
7555    
7556     <p>DEFAULT -
7557     </p>
7558     <blockquote class="text">
7559     <p>either true or false,
7560     defines whether this map is the default map
7561     </p>
7562     </blockquote>
7563    
7564    
7565     </blockquote>
7566    
7567    
7568     </blockquote><p>
7569    
7570     </p>
7571     <p>The mentioned fields above don't have to be in particular order.
7572     </p>
7573     <p>Example:
7574     </p>
7575     <p>
7576     </p>
7577     <blockquote class="text">
7578     <p>C: "GET MIDI_INSTRUMENT_MAP INFO 0"
7579     </p>
7580     <p>S: "NAME: Standard Map"
7581     </p>
7582     <p>&nbsp;&nbsp;&nbsp;"DEFAULT: true"
7583     </p>
7584     <p>&nbsp;&nbsp;&nbsp;"."
7585     </p>
7586     </blockquote><p>
7587    
7588     </p>
7589     <a name="SET MIDI_INSTRUMENT_MAP NAME"></a><br /><hr />
7590     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
7591     <a name="rfc.section.6.7.6"></a><h3>6.7.6.&nbsp;
7592     Renaming a MIDI instrument map</h3>
7593    
7594     <p>The front-end can alter the custom name of a MIDI
7595     instrument map by sending the following command:
7596     </p>
7597     <p>
7598     </p>
7599     <blockquote class="text">
7600     <p>SET MIDI_INSTRUMENT_MAP NAME &lt;map&gt; &lt;name&gt;
7601     </p>
7602     </blockquote><p>
7603    
7604     </p>
7605     <p>Where &lt;map&gt; is the numerical ID of the map and
7606     &lt;name&gt; the new custom name of the map, which does not
7607     have to be unique (name MUST be encapsulated into apostrophes
7608     and supports escape sequences as described in chapter
7609     "<a class='info' href='#character_set'>Character Set and Escape Sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>").
7610    
7611     </p>
7612     <p>Possible Answers:
7613     </p>
7614     <p>
7615     </p>
7616     <blockquote class="text">
7617     <p>"OK" -
7618     </p>
7619     <blockquote class="text">
7620     <p>on success
7621     </p>
7622     </blockquote>
7623    
7624    
7625     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
7626     </p>
7627     <blockquote class="text">
7628     <p>in case the given map does not exist
7629     </p>
7630     </blockquote>
7631    
7632    
7633     </blockquote><p>
7634    
7635     </p>
7636     <p>Example:
7637     </p>
7638     <p>
7639     </p>
7640     <blockquote class="text">
7641     <p>C: "SET MIDI_INSTRUMENT_MAP NAME 0 'Foo instruments'"
7642     </p>
7643     <p>S: "OK"
7644     </p>
7645     </blockquote><p>
7646    
7647     </p>
7648     <a name="MAP MIDI_INSTRUMENT"></a><br /><hr />
7649     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
7650     <a name="rfc.section.6.7.7"></a><h3>6.7.7.&nbsp;
7651     Create or replace a MIDI instrument map entry</h3>
7652    
7653     <p>The front-end can create a new or replace an existing entry
7654     in a sampler's MIDI instrument map by sending the following
7655     command:
7656     </p>
7657     <p>
7658     </p>
7659     <blockquote class="text">
7660     <p>MAP MIDI_INSTRUMENT [NON_MODAL] &lt;map&gt;
7661     &lt;midi_bank&gt; &lt;midi_prog&gt; &lt;engine_name&gt;
7662     &lt;filename&gt; &lt;instrument_index&gt; &lt;volume_value&gt;
7663     [&lt;instr_load_mode&gt;] [&lt;name&gt;]
7664     </p>
7665     </blockquote><p>
7666    
7667     </p>
7668     <p>Where &lt;map&gt; is the numeric ID of the map to alter,
7669     &lt;midi_bank&gt; is an integer value between
7670     0..16383 reflecting the MIDI bank select index,
7671     &lt;midi_prog&gt; an
7672     integer value between 0..127 reflecting the MIDI program change
7673     index, &lt;engine_name&gt; a sampler engine name as returned by
7674     the <a class='info' href='#LIST AVAILABLE_ENGINES'>"LIST AVAILABLE_ENGINES"<span> (</span><span class='info'>Getting all available engines</span><span>)</span></a>
7675     command (not encapsulated into apostrophes), &lt;filename&gt; the name
7676     of the instrument's file to be deployed (encapsulated into apostrophes,
7677     supporting escape sequences as described in chapter
7678     "<a class='info' href='#character_set'>Character Set and Escape Sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>"),
7679     &lt;instrument_index&gt; the index (integer value) of the instrument
7680     within the given file, &lt;volume_value&gt; reflects the master
7681     volume of the instrument as optionally dotted number (where a
7682     value &lt; 1.0 means attenuation and a value > 1.0 means
7683     amplification). This parameter easily allows to adjust the
7684     volume of all intruments within a custom instrument map
7685     without having to adjust their instrument files. The
7686     OPTIONAL &lt;instr_load_mode&gt; argument defines the life
7687     time of the instrument, that is when the instrument should
7688     be loaded, when freed and has exactly the following
7689     possibilities:
7690     </p>
7691     <p>
7692     </p>
7693     <blockquote class="text">
7694     <p>"ON_DEMAND" -
7695     </p>
7696     <blockquote class="text">
7697     <p>The instrument will be loaded when needed,
7698     that is when demanded by at least one sampler
7699     channel. It will immediately be freed from memory
7700     when not needed by any sampler channel anymore.
7701     </p>
7702     </blockquote>
7703    
7704    
7705     <p>"ON_DEMAND_HOLD" -
7706     </p>
7707     <blockquote class="text">
7708     <p>The instrument will be loaded when needed,
7709     that is when demanded by at least one sampler
7710     channel. It will be kept in memory even when
7711     not needed by any sampler channel anymore.
7712     Instruments with this mode are only freed
7713     when the sampler is reset or all mapping
7714     entries with this mode (and respective
7715     instrument) are explicitly changed to
7716     "ON_DEMAND" and no sampler channel is using
7717     the instrument anymore.
7718     </p>
7719     </blockquote>
7720    
7721    
7722     <p>"PERSISTENT" -
7723     </p>
7724     <blockquote class="text">
7725     <p>The instrument will immediately be loaded
7726     into memory when this mapping
7727     command is sent and the instrument is kept all
7728     the time. Instruments with this mode are
7729     only freed when the sampler is reset or all
7730     mapping entries with this mode (and
7731     respective instrument) are explicitly
7732     changed to "ON_DEMAND" and no sampler
7733     channel is using the instrument anymore.
7734     </p>
7735     </blockquote>
7736    
7737    
7738     <p>not supplied -
7739     </p>
7740     <blockquote class="text">
7741     <p>In case there is no &lt;instr_load_mode&gt;
7742     argument given, it will be up to the
7743     InstrumentManager to decide which mode to use.
7744     Usually it will use "ON_DEMAND" if an entry
7745     for the given instrument does not exist in
7746     the InstrumentManager's list yet, otherwise
7747     if an entry already exists, it will simply
7748     stick with the mode currently reflected by
7749     the already existing entry, that is it will
7750     not change the mode.
7751     </p>
7752     </blockquote>
7753    
7754    
7755     </blockquote><p>
7756    
7757     </p>
7758     <p>
7759     The &lt;instr_load_mode&gt; argument thus allows to define an
7760     appropriate strategy (low memory consumption vs. fast
7761     instrument switching) for each instrument individually. Note, the
7762     following restrictions apply to this argument: "ON_DEMAND_HOLD" and
7763     "PERSISTENT" have to be supported by the respective sampler engine
7764     (which is technically the case when the engine provides an
7765     InstrumentManager for its format). If this is not the case the
7766     argument will automatically fall back to the default value
7767     "ON_DEMAND". Also the load mode of one instrument may
7768     automatically change the laod mode of other instrument(s), i.e.
7769     because the instruments are part of the same file and the
7770     engine does not allow a way to manage load modes for them
7771     individually. Due to this, in case the frontend shows the
7772     load modes of entries, the frontend should retrieve the actual
7773     mode by i.e. sending
7774     <a class='info' href='#GET MIDI_INSTRUMENT INFO'>"GET MIDI_INSTRUMENT INFO"<span> (</span><span class='info'>Get current settings of MIDI instrument map entry</span><span>)</span></a>
7775     command(s). Finally the OPTIONAL &lt;name&gt; argument allows to set a custom name
7776     (encapsulated into apostrophes, supporting escape sequences as described in chapter
7777     "<a class='info' href='#character_set'>Character Set and Escape Sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>") for the
7778     mapping entry, useful for frontends for displaying an appropriate name for
7779     mapped instruments (using
7780     <a class='info' href='#GET MIDI_INSTRUMENT INFO'>"GET MIDI_INSTRUMENT INFO"<span> (</span><span class='info'>Get current settings of MIDI instrument map entry</span><span>)</span></a>).
7781    
7782     </p>
7783     <p>
7784     By default, "MAP MIDI_INSTRUMENT" commands block until the mapping is
7785     completely established in the sampler. The OPTIONAL "NON_MODAL" argument
7786     however causes the respective "MAP MIDI_INSTRUMENT" command to return
7787     immediately, that is to let the sampler establish the mapping in the
7788     background. So this argument might be especially useful for mappings with
7789     a "PERSISTENT" type, because these have to load the respective instruments
7790     immediately and might thus block for a very long time. It is recommended
7791     however to use the OPTIONAL "NON_MODAL" argument only if really necessary,
7792     because it has the following drawbacks: as "NON_MODAL" instructions return
7793     immediately, they may not necessarily return an error i.e. when the given
7794     instrument file turns out to be corrupt, beside that subsequent commands
7795     in a LSCP instruction sequence might fail, because mandatory mappings are
7796     not yet completed.
7797    
7798     </p>
7799     <p>Possible Answers:
7800     </p>
7801     <p>
7802     </p>
7803     <blockquote class="text">
7804     <p>"OK" -
7805     </p>
7806     <blockquote class="text">
7807     <p>usually
7808     </p>
7809     </blockquote>
7810    
7811    
7812     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
7813     </p>
7814     <blockquote class="text">
7815     <p>when the given map or engine does not exist or a value
7816     is out of range
7817     </p>
7818     </blockquote>
7819    
7820    
7821     </blockquote><p>
7822    
7823     </p>
7824     <p>Examples:
7825     </p>
7826     <p>
7827     </p>
7828     <blockquote class="text">
7829     <p>C: "MAP MIDI_INSTRUMENT 0 3 0 gig '/usr/share/Steinway D.gig' 0 0.8 PERSISTENT"
7830     </p>
7831     <p>S: "OK"
7832     </p>
7833     </blockquote><p>
7834    
7835     </p>
7836     <p>
7837     </p>
7838     <blockquote class="text">
7839     <p>C: "MAP MIDI_INSTRUMENT 0 4 50 gig '/home/john/foostrings.gig' 7 1.0"
7840     </p>
7841     <p>S: "OK"
7842     </p>
7843     </blockquote><p>
7844    
7845     </p>
7846     <p>
7847     </p>
7848     <blockquote class="text">
7849     <p>C: "MAP MIDI_INSTRUMENT 0 0 0 gig '/usr/share/piano.gig' 0 1.0 'Normal Piano'"
7850     </p>
7851     <p>S: "OK"
7852     </p>
7853     <p>C: "MAP MIDI_INSTRUMENT 0 1 0 gig '/usr/share/piano.gig' 0 0.25 'Silent Piano'"
7854     </p>
7855     <p>S: "OK"
7856     </p>
7857     </blockquote><p>
7858    
7859     </p>
7860     <p>
7861     </p>
7862     <blockquote class="text">
7863     <p>C: "MAP MIDI_INSTRUMENT NON_MODAL 1 8 120 gig '/home/joe/foodrums.gig' 0 1.0 PERSISTENT 'Foo Drumkit'"
7864     </p>
7865     <p>S: "OK"
7866     </p>
7867     </blockquote><p>
7868    
7869     </p>
7870     <a name="GET MIDI_INSTRUMENTS"></a><br /><hr />
7871     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
7872     <a name="rfc.section.6.7.8"></a><h3>6.7.8.&nbsp;
7873     Getting amount of MIDI instrument map entries</h3>
7874    
7875     <p>The front-end can query the amount of currently existing
7876     entries in a MIDI instrument map by sending the following
7877     command:
7878     </p>
7879     <p>
7880     </p>
7881     <blockquote class="text">
7882     <p>GET MIDI_INSTRUMENTS &lt;map&gt;
7883     </p>
7884     </blockquote><p>
7885    
7886     </p>
7887     <p>The front-end can query the amount of currently existing
7888     entries in all MIDI instrument maps by sending the following
7889     command:
7890     </p>
7891     <p>
7892     </p>
7893     <blockquote class="text">
7894     <p>GET MIDI_INSTRUMENTS ALL
7895     </p>
7896     </blockquote><p>
7897    
7898     </p>
7899     <p>Possible Answers:
7900     </p>
7901     <p>
7902     </p>
7903     <blockquote class="text">
7904     <p>The sampler will answer by sending the current number of
7905     entries in the MIDI instrument map(s).
7906     </p>
7907     </blockquote><p>
7908    
7909     </p>
7910     <p>Example:
7911     </p>
7912     <p>
7913     </p>
7914     <blockquote class="text">
7915     <p>C: "GET MIDI_INSTRUMENTS 0"
7916     </p>
7917     <p>S: "234"
7918     </p>
7919     </blockquote><p>
7920    
7921     </p>
7922     <p>
7923     </p>
7924     <blockquote class="text">
7925     <p>C: "GET MIDI_INSTRUMENTS ALL"
7926     </p>
7927     <p>S: "954"
7928     </p>
7929     </blockquote><p>
7930    
7931     </p>
7932     <a name="LIST MIDI_INSTRUMENTS"></a><br /><hr />
7933     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
7934     <a name="rfc.section.6.7.9"></a><h3>6.7.9.&nbsp;
7935     Getting indeces of all entries of a MIDI instrument map</h3>
7936    
7937     <p>The front-end can query a list of all currently existing
7938     entries in a certain MIDI instrument map by sending the following
7939     command:
7940     </p>
7941     <p>
7942     </p>
7943     <blockquote class="text">
7944     <p>LIST MIDI_INSTRUMENTS &lt;map&gt;
7945     </p>
7946     </blockquote><p>
7947    
7948     </p>
7949     <p>Where &lt;map&gt; is the numeric ID of the MIDI instrument map.
7950     </p>
7951     <p>The front-end can query a list of all currently existing
7952     entries of all MIDI instrument maps by sending the following
7953     command:
7954     </p>
7955     <p>
7956     </p>
7957     <blockquote class="text">
7958     <p>LIST MIDI_INSTRUMENTS ALL
7959     </p>
7960     </blockquote><p>
7961    
7962     </p>
7963     <p>Possible Answers:
7964     </p>
7965     <p>
7966     </p>
7967     <blockquote class="text">
7968     <p>The sampler will answer by sending a comma separated
7969     list of map ID - MIDI bank - MIDI program triples, where
7970     each triple is encapsulated into curly braces. The
7971     list is returned in one single line. Each triple
7972     just reflects the key of the respective map entry,
7973     thus subsequent
7974     <a class='info' href='#GET MIDI_INSTRUMENT INFO'>"GET MIDI_INSTRUMENT INFO"<span> (</span><span class='info'>Get current settings of MIDI instrument map entry</span><span>)</span></a>
7975     command(s) are necessary to retrieve detailed informations
7976     about each entry.
7977     </p>
7978     </blockquote><p>
7979    
7980     </p>
7981     <p>Example:
7982     </p>
7983     <p>
7984     </p>
7985     <blockquote class="text">
7986     <p>C: "LIST MIDI_INSTRUMENTS 0"
7987     </p>
7988     <p>S: "{0,0,0},{0,0,1},{0,0,3},{0,1,4},{1,127,127}"
7989     </p>
7990     </blockquote><p>
7991    
7992     </p>
7993     <a name="UNMAP MIDI_INSTRUMENT"></a><br /><hr />
7994     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
7995     <a name="rfc.section.6.7.10"></a><h3>6.7.10.&nbsp;
7996     Remove an entry from the MIDI instrument map</h3>
7997    
7998     <p>The front-end can delete an entry from a MIDI instrument
7999     map by sending the following command:
8000     </p>
8001     <p>
8002     </p>
8003     <blockquote class="text">
8004     <p>UNMAP MIDI_INSTRUMENT &lt;map&gt; &lt;midi_bank&gt; &lt;midi_prog&gt;
8005     </p>
8006     </blockquote><p>
8007    
8008     </p>
8009     <p>
8010     Where &lt;map&gt; is the numeric ID of the MIDI instrument map,
8011     &lt;midi_bank&gt; is an integer value between 0..16383
8012     reflecting the MIDI bank value and
8013     &lt;midi_prog&gt; an integer value between
8014     0..127 reflecting the MIDI program value of the map's entrie's key
8015     index triple.
8016    
8017     </p>
8018     <p>Possible Answers:
8019     </p>
8020     <p>
8021     </p>
8022     <blockquote class="text">
8023     <p>"OK" -
8024     </p>
8025     <blockquote class="text">
8026     <p>usually
8027     </p>
8028     </blockquote>
8029    
8030    
8031     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
8032     </p>
8033     <blockquote class="text">
8034     <p>when index out of bounds
8035     </p>
8036     </blockquote>
8037    
8038    
8039     </blockquote><p>
8040    
8041     </p>
8042     <p>Example:
8043     </p>
8044     <p>
8045     </p>
8046     <blockquote class="text">
8047     <p>C: "UNMAP MIDI_INSTRUMENT 0 2 127"
8048     </p>
8049     <p>S: "OK"
8050     </p>
8051     </blockquote><p>
8052    
8053     </p>
8054     <a name="GET MIDI_INSTRUMENT INFO"></a><br /><hr />
8055     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
8056     <a name="rfc.section.6.7.11"></a><h3>6.7.11.&nbsp;
8057     Get current settings of MIDI instrument map entry</h3>
8058    
8059     <p>The front-end can retrieve the current settings of a certain
8060     instrument map entry by sending the following command:
8061     </p>
8062     <p>
8063     </p>
8064     <blockquote class="text">
8065     <p>GET MIDI_INSTRUMENT INFO &lt;map&gt; &lt;midi_bank&gt; &lt;midi_prog&gt;
8066     </p>
8067     </blockquote><p>
8068    
8069     </p>
8070     <p>
8071     Where &lt;map&gt; is the numeric ID of the MIDI instrument map,
8072     &lt;midi_bank&gt; is an integer value between 0..16383
8073     reflecting the MIDI bank value, &lt;midi_bank&gt;
8074     and &lt;midi_prog&gt; an integer value between
8075     0..127 reflecting the MIDI program value of the map's entrie's key
8076     index triple.
8077    
8078     </p>
8079     <p>Possible Answers:
8080     </p>
8081     <p>
8082     </p>
8083     <blockquote class="text">
8084     <p>LinuxSampler will answer by sending a &lt;CRLF&gt;
8085     separated list. Each answer line begins with the
8086     information category name followed by a colon and then
8087     a space character &lt;SP&gt; and finally the info
8088     character string to that info category. At the moment
8089     the following categories are defined:
8090     </p>
8091     <p>"NAME" -
8092     </p>
8093     <blockquote class="text">
8094     <p>Name for this MIDI instrument map entry (if defined).
8095     This name shall be used by frontends for displaying a
8096     name for this mapped instrument. It can be set and
8097     changed with the
8098     <a class='info' href='#MAP MIDI_INSTRUMENT'>"MAP MIDI_INSTRUMENT"<span> (</span><span class='info'>Create or replace a MIDI instrument map entry</span><span>)</span></a>
8099     command and does not have to be unique.
8100     (note that this character string may contain
8101     <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>)
8102     </p>
8103     </blockquote>
8104    
8105    
8106     <p>"ENGINE_NAME" -
8107     </p>
8108     <blockquote class="text">
8109     <p>Name of the engine to be deployed for this
8110     instrument.
8111     </p>
8112     </blockquote>
8113    
8114    
8115     <p>"INSTRUMENT_FILE" -
8116     </p>
8117     <blockquote class="text">
8118     <p>File name of the instrument
8119     (note that this path may contain
8120     <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>).
8121     </p>
8122     </blockquote>
8123    
8124    
8125     <p>"INSTRUMENT_NR" -
8126     </p>
8127     <blockquote class="text">
8128     <p>Index of the instrument within the file.
8129     </p>
8130     </blockquote>
8131    
8132    
8133     <p>"INSTRUMENT_NAME" -
8134     </p>
8135     <blockquote class="text">
8136     <p>Name of the loaded instrument as reflected by its file.
8137     In contrast to the "NAME" field, the "INSTRUMENT_NAME" field
8138     cannot be changed (note that this character string may contain
8139     <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>).
8140     </p>
8141     </blockquote>
8142    
8143    
8144     <p>"LOAD_MODE" -
8145     </p>
8146     <blockquote class="text">
8147     <p>Life time of instrument
8148     (see <a class='info' href='#MAP MIDI_INSTRUMENT'>"MAP MIDI_INSTRUMENT"<span> (</span><span class='info'>Create or replace a MIDI instrument map entry</span><span>)</span></a> for details about this setting).
8149     </p>
8150     </blockquote>
8151    
8152    
8153     <p>"VOLUME" -
8154     </p>
8155     <blockquote class="text">
8156     <p>master volume of the instrument as optionally
8157     dotted number (where a value &lt; 1.0 means attenuation
8158     and a value > 1.0 means amplification)
8159     </p>
8160     </blockquote>
8161    
8162    
8163     <p>The mentioned fields above don't have to be in particular order.
8164     </p>
8165     </blockquote><p>
8166    
8167     </p>
8168     <p>Example:
8169     </p>
8170     <p>
8171     </p>
8172     <blockquote class="text">
8173     <p>C: "GET MIDI_INSTRUMENT INFO 1 45 120"
8174     </p>
8175     <p>S: "NAME: Drums for Foo Song"
8176     </p>
8177     <p>&nbsp;&nbsp;&nbsp;"ENGINE_NAME: GigEngine"
8178     </p>
8179     <p>&nbsp;&nbsp;&nbsp;"INSTRUMENT_FILE: /usr/share/joesdrumkit.gig"
8180     </p>
8181     <p>&nbsp;&nbsp;&nbsp;"INSTRUMENT_NR: 0"
8182     </p>
8183     <p>&nbsp;&nbsp;&nbsp;"INSTRUMENT_NAME: Joe's Drumkit"
8184     </p>
8185     <p>&nbsp;&nbsp;&nbsp;"LOAD_MODE: PERSISTENT"
8186     </p>
8187     <p>&nbsp;&nbsp;&nbsp;"VOLUME: 1.0"
8188     </p>
8189     <p>&nbsp;&nbsp;&nbsp;"."
8190     </p>
8191     </blockquote><p>
8192    
8193     </p>
8194     <a name="CLEAR MIDI_INSTRUMENTS"></a><br /><hr />
8195     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
8196     <a name="rfc.section.6.7.12"></a><h3>6.7.12.&nbsp;
8197     Clear MIDI instrument map</h3>
8198    
8199     <p>The front-end can clear a whole MIDI instrument map, that
8200     is delete all its entries by sending the following command:
8201     </p>
8202     <p>
8203     </p>
8204     <blockquote class="text">
8205     <p>CLEAR MIDI_INSTRUMENTS &lt;map&gt;
8206     </p>
8207     </blockquote><p>
8208    
8209     </p>
8210     <p>Where &lt;map&gt; is the numeric ID of the map to clear.
8211     </p>
8212     <p>The front-end can clear all MIDI instrument maps, that
8213     is delete all entries of all maps by sending the following
8214     command:
8215     </p>
8216     <p>
8217     </p>
8218     <blockquote class="text">
8219     <p>CLEAR MIDI_INSTRUMENTS ALL
8220     </p>
8221     </blockquote><p>
8222    
8223     </p>
8224     <p>The command "CLEAR MIDI_INSTRUMENTS ALL" does not delete the
8225     maps, only their entries, thus the map's settings like
8226     custom name will be preservevd.
8227     </p>
8228     <p>Possible Answers:
8229     </p>
8230     <p>
8231     </p>
8232     <blockquote class="text">
8233     <p>"OK" -
8234     </p>
8235     <blockquote class="text">
8236     <p>always
8237     </p>
8238     </blockquote>
8239    
8240    
8241     </blockquote><p>
8242    
8243     </p>
8244     <p>Examples:
8245     </p>
8246     <p>
8247     </p>
8248     <blockquote class="text">
8249     <p>C: "CLEAR MIDI_INSTRUMENTS 0"
8250     </p>
8251     <p>S: "OK"
8252     </p>
8253     </blockquote><p>
8254    
8255     </p>
8256     <p>
8257     </p>
8258     <blockquote class="text">
8259     <p>C: "CLEAR MIDI_INSTRUMENTS ALL"
8260     </p>
8261     <p>S: "OK"
8262     </p>
8263     </blockquote><p>
8264    
8265     </p>
8266     <a name="Managing Instruments Database"></a><br /><hr />
8267     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
8268     <a name="rfc.section.6.8"></a><h3>6.8.&nbsp;
8269     Managing Instruments Database</h3>
8270    
8271     <p>The following commands describe how to use and manage
8272     the instruments database.
8273     </p>
8274     <p>Notice:
8275     </p>
8276     <p>
8277     </p>
8278     <blockquote class="text">
8279     <p>All command arguments representing a path or
8280     instrument/directory name support escape sequences as described in chapter
8281     "<a class='info' href='#character_set'>Character Set and Escape Sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>".
8282    
8283     </p>
8284     <p>All occurrences of a forward slash in instrument and directory
8285     names are escaped with its hex (\x2f) or octal (\057) escape sequence.
8286    
8287     </p>
8288     </blockquote><p>
8289    
8290     </p>
8291     <a name="ADD DB_INSTRUMENT_DIRECTORY"></a><br /><hr />
8292     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
8293     <a name="rfc.section.6.8.1"></a><h3>6.8.1.&nbsp;
8294     Creating a new instrument directory</h3>
8295    
8296     <p>The front-end can add a new instrument directory to the
8297     instruments database by sending the following command:
8298     </p>
8299     <p>
8300     </p>
8301     <blockquote class="text">
8302     <p>ADD DB_INSTRUMENT_DIRECTORY &lt;dir&gt;
8303     </p>
8304     </blockquote><p>
8305    
8306     </p>
8307     <p>Where &lt;dir&gt; is the absolute path name of the directory
8308     to be created (encapsulated into apostrophes).
8309     </p>
8310     <p>Possible Answers:
8311     </p>
8312     <p>
8313     </p>
8314     <blockquote class="text">
8315     <p>"OK" -
8316     </p>
8317     <blockquote class="text">
8318     <p>on success
8319     </p>
8320     </blockquote>
8321    
8322    
8323     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
8324     </p>
8325     <blockquote class="text">
8326     <p>when the directory could not be created, which
8327     can happen if the directory already exists or the
8328     name contains not allowed symbols
8329     </p>
8330     </blockquote>
8331    
8332    
8333     </blockquote><p>
8334    
8335     </p>
8336     <p>Examples:
8337     </p>
8338     <p>
8339     </p>
8340     <blockquote class="text">
8341     <p>C: "ADD DB_INSTRUMENT_DIRECTORY '/Piano Collection'"
8342     </p>
8343     <p>S: "OK"
8344     </p>
8345     </blockquote><p>
8346    
8347     </p>
8348     <a name="REMOVE DB_INSTRUMENT_DIRECTORY"></a><br /><hr />
8349     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
8350     <a name="rfc.section.6.8.2"></a><h3>6.8.2.&nbsp;
8351     Deleting an instrument directory</h3>
8352    
8353     <p>The front-end can delete a particular instrument directory
8354     from the instruments database by sending the following command:
8355     </p>
8356     <p>
8357     </p>
8358     <blockquote class="text">
8359     <p>REMOVE DB_INSTRUMENT_DIRECTORY [FORCE] &lt;dir&gt;
8360     </p>
8361     </blockquote><p>
8362    
8363     </p>
8364     <p>Where &lt;dir&gt; is the absolute path name of the directory
8365     to delete. The optional FORCE argument can be used to
8366     force the deletion of a non-empty directory and all its content.
8367     </p>
8368     <p>Possible Answers:
8369     </p>
8370     <p>
8371     </p>
8372     <blockquote class="text">
8373     <p>"OK" -
8374     </p>
8375     <blockquote class="text">
8376     <p>if the directory is deleted successfully
8377     </p>
8378     </blockquote>
8379    
8380    
8381     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
8382     </p>
8383     <blockquote class="text">
8384     <p>if the given directory does not exist, or
8385     if trying to delete a non-empty directory,
8386     without using the FORCE argument.
8387     </p>
8388     </blockquote>
8389    
8390    
8391     </blockquote><p>
8392    
8393     </p>
8394     <p>Examples:
8395     </p>
8396     <p>
8397     </p>
8398     <blockquote class="text">
8399     <p>C: "REMOVE DB_INSTRUMENT_DIRECTORY FORCE '/Piano Collection'"
8400     </p>
8401     <p>S: "OK"
8402     </p>
8403     </blockquote><p>
8404    
8405     </p>
8406     <a name="GET DB_INSTRUMENT_DIRECTORIES"></a><br /><hr />
8407     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
8408     <a name="rfc.section.6.8.3"></a><h3>6.8.3.&nbsp;
8409     Getting amount of instrument directories</h3>
8410    
8411     <p>The front-end can retrieve the current amount of
8412     directories in a specific directory by sending the following command:
8413     </p>
8414     <p>
8415     </p>
8416     <blockquote class="text">
8417     <p>GET DB_INSTRUMENT_DIRECTORIES [RECURSIVE] &lt;dir&gt;
8418     </p>
8419     </blockquote><p>
8420    
8421     </p>
8422     <p>Where &lt;dir&gt; should be replaced by the absolute path
8423     name of the directory. If RECURSIVE is specified, the number of
8424     all directories, including those located in subdirectories of the
8425     specified directory, will be returned.
8426     </p>
8427     <p>Possible Answers:
8428     </p>
8429     <p>
8430     </p>
8431     <blockquote class="text">
8432     <p>The current number of instrument directories
8433     in the specified directory.
8434     </p>
8435     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
8436     </p>
8437     <blockquote class="text">
8438     <p>if the given directory does not exist.
8439     </p>
8440     </blockquote>
8441    
8442    
8443     </blockquote><p>
8444    
8445     </p>
8446     <p>Example:
8447     </p>
8448     <p>
8449     </p>
8450     <blockquote class="text">
8451     <p>C: "GET DB_INSTRUMENT_DIRECTORIES '/'"
8452     </p>
8453     <p>S: "2"
8454     </p>
8455     </blockquote><p>
8456    
8457     </p>
8458     <a name="LIST DB_INSTRUMENT_DIRECTORIES"></a><br /><hr />
8459     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
8460     <a name="rfc.section.6.8.4"></a><h3>6.8.4.&nbsp;
8461     Listing all directories in specific directory</h3>
8462    
8463     <p>The front-end can retrieve the current list of directories
8464     in specific directory by sending the following command:
8465     </p>
8466     <p>
8467     </p>
8468     <blockquote class="text">
8469     <p>LIST DB_INSTRUMENT_DIRECTORIES [RECURSIVE] &lt;dir&gt;
8470     </p>
8471     </blockquote><p>
8472    
8473     </p>
8474     <p>Where &lt;dir&gt; should be replaced by the absolute path
8475     name of the directory. If RECURSIVE is specified, the absolute path names
8476     of all directories, including those located in subdirectories of the
8477     specified directory, will be returned.
8478     </p>
8479     <p>Possible Answers:
8480     </p>
8481     <p>
8482     </p>
8483     <blockquote class="text">
8484     <p>A comma separated list of all instrument directories
8485     (encapsulated into apostrophes) in the specified directory.
8486     </p>
8487     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
8488     </p>
8489     <blockquote class="text">
8490     <p>if the given directory does not exist.
8491     </p>
8492     </blockquote>
8493    
8494    
8495     </blockquote><p>
8496    
8497     </p>
8498     <p>Example:
8499     </p>
8500     <p>
8501     </p>
8502     <blockquote class="text">
8503     <p>C: "LIST DB_INSTRUMENT_DIRECTORIES '/'"
8504     </p>
8505     <p>S: "'Piano Collection','Percussion Collection'"
8506     </p>
8507     </blockquote><p>
8508    
8509     </p>
8510     <p>
8511     </p>
8512     <blockquote class="text">
8513     <p>C: "LIST DB_INSTRUMENT_DIRECTORIES RECURSIVE '/'"
8514     </p>
8515     <p>S: "'/Piano Collection','/Piano Collection/Acoustic','/Piano Collection/Acoustic/New','/Percussion Collection'"
8516     </p>
8517     </blockquote><p>
8518    
8519     </p>
8520     <a name="GET DB_INSTRUMENT_DIRECTORY INFO"></a><br /><hr />
8521     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
8522     <a name="rfc.section.6.8.5"></a><h3>6.8.5.&nbsp;
8523     Getting instrument directory information</h3>
8524    
8525     <p>The front-end can ask for the current settings of an
8526     instrument directory by sending the following command:
8527     </p>
8528     <p>
8529     </p>
8530     <blockquote class="text">
8531     <p>GET DB_INSTRUMENT_DIRECTORY INFO &lt;dir&gt;
8532     </p>
8533     </blockquote><p>
8534    
8535     </p>
8536     <p>Where &lt;dir&gt; should be replaced by the absolute path
8537     name of the directory the front-end is interested in.
8538     </p>
8539     <p>Possible Answers:
8540     </p>
8541     <p>
8542     </p>
8543     <blockquote class="text">
8544     <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
8545     Each answer line begins with the settings category name
8546     followed by a colon and then a space character &lt;SP&gt; and finally
8547     the info character string to that setting category. At the
8548     moment the following categories are defined:
8549     </p>
8550     <p>
8551     </p>
8552     <blockquote class="text">
8553     <p>DESCRIPTION -
8554     </p>
8555     <blockquote class="text">
8556     <p>A brief description of the directory content.
8557     Note that the character string may contain
8558     <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>.
8559     </p>
8560     </blockquote>
8561    
8562    
8563     <p>CREATED -
8564     </p>
8565     <blockquote class="text">
8566     <p>The creation date and time of the directory,
8567     represented in "YYYY-MM-DD HH:MM:SS" format
8568     </p>
8569     </blockquote>
8570    
8571    
8572     <p>MODIFIED -
8573     </p>
8574     <blockquote class="text">
8575     <p>The date and time of the last modification of the
8576     directory, represented in "YYYY-MM-DD HH:MM:SS" format
8577     </p>
8578     </blockquote>
8579    
8580    
8581     </blockquote>
8582    
8583    
8584     </blockquote><p>
8585    
8586     </p>
8587     <p>The mentioned fields above don't have to be in particular order.
8588     </p>
8589     <p>Example:
8590     </p>
8591     <p>
8592     </p>
8593     <blockquote class="text">
8594     <p>C: "GET DB_INSTRUMENT_DIRECTORY INFO '/Piano Collection'"
8595     </p>
8596     <p>S: "DESCRIPTION: Piano collection of instruments in GigaSampler format."
8597     </p>
8598     <p>&nbsp;&nbsp;&nbsp;"CREATED: 2007-02-05 10:23:12"
8599     </p>
8600     <p>&nbsp;&nbsp;&nbsp;"MODIFIED: 2007-04-07 12:50:21"
8601     </p>
8602     <p>&nbsp;&nbsp;&nbsp;"."
8603     </p>
8604     </blockquote><p>
8605    
8606     </p>
8607     <a name="SET DB_INSTRUMENT_DIRECTORY NAME"></a><br /><hr />
8608     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
8609     <a name="rfc.section.6.8.6"></a><h3>6.8.6.&nbsp;
8610     Renaming an instrument directory</h3>
8611    
8612     <p>The front-end can alter the name of a specific
8613     instrument directory by sending the following command:
8614     </p>
8615     <p>
8616     </p>
8617     <blockquote class="text">
8618     <p>SET DB_INSTRUMENT_DIRECTORY NAME &lt;dir&gt; &lt;name&gt;
8619     </p>
8620     </blockquote><p>
8621    
8622     </p>
8623     <p>Where &lt;dir&gt; is the absolute path name of the directory and
8624     &lt;name&gt; is the new name for that directory.
8625     </p>
8626     <p>Possible Answers:
8627     </p>
8628     <p>
8629     </p>
8630     <blockquote class="text">
8631     <p>"OK" -
8632     </p>
8633     <blockquote class="text">
8634     <p>on success
8635     </p>
8636     </blockquote>
8637    
8638    
8639     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
8640     </p>
8641     <blockquote class="text">
8642     <p>in case the given directory does not exists,
8643     or if a directory with name equal to the new
8644     name already exists.
8645     </p>
8646     </blockquote>
8647    
8648    
8649     </blockquote><p>
8650    
8651     </p>
8652     <p>Example:
8653     </p>
8654     <p>
8655     </p>
8656     <blockquote class="text">
8657     <p>C: "SET DB_INSTRUMENT_DIRECTORY NAME '/Piano Collection/Acustic' 'Acoustic'"
8658     </p>
8659     <p>S: "OK"
8660     </p>
8661     </blockquote><p>
8662    
8663     </p>
8664     <a name="MOVE DB_INSTRUMENT_DIRECTORY"></a><br /><hr />
8665     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
8666     <a name="rfc.section.6.8.7"></a><h3>6.8.7.&nbsp;
8667     Moving an instrument directory</h3>
8668    
8669     <p>The front-end can move a specific
8670     instrument directory by sending the following command:
8671     </p>
8672     <p>
8673     </p>
8674     <blockquote class="text">
8675     <p>MOVE DB_INSTRUMENT_DIRECTORY &lt;dir&gt; &lt;dst&gt;
8676     </p>
8677     </blockquote><p>
8678    
8679     </p>
8680     <p>Where &lt;dir&gt; is the absolute path name of the directory
8681     to move and &lt;dst&gt; is the location where the directory will
8682     be moved to.
8683     </p>
8684     <p>Possible Answers:
8685     </p>
8686     <p>
8687     </p>
8688     <blockquote class="text">
8689     <p>"OK" -
8690     </p>
8691     <blockquote class="text">
8692     <p>on success
8693     </p>
8694     </blockquote>
8695    
8696    
8697     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
8698     </p>
8699     <blockquote class="text">
8700     <p>in case a given directory does not exists,
8701     or if a directory with name equal to the name
8702     of the specified directory already exists in
8703     the destination directory. Error is also thrown
8704     when trying to move a directory to a subdirectory
8705     of itself.
8706     </p>
8707     </blockquote>
8708    
8709    
8710     </blockquote><p>
8711    
8712     </p>
8713     <p>Example:
8714     </p>
8715     <p>
8716     </p>
8717     <blockquote class="text">
8718     <p>C: "MOVE DB_INSTRUMENT_DIRECTORY '/Acoustic' '/Piano Collection/Acoustic'"
8719     </p>
8720     <p>S: "OK"
8721     </p>
8722     </blockquote><p>
8723    
8724     </p>
8725     <a name="COPY DB_INSTRUMENT_DIRECTORY"></a><br /><hr />
8726     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
8727     <a name="rfc.section.6.8.8"></a><h3>6.8.8.&nbsp;
8728     Copying instrument directories</h3>
8729    
8730     <p>The front-end can copy a specific
8731     instrument directory by sending the following command:
8732     </p>
8733     <p>
8734     </p>
8735     <blockquote class="text">
8736     <p>COPY DB_INSTRUMENT_DIRECTORY &lt;dir&gt; &lt;dst&gt;
8737     </p>
8738     </blockquote><p>
8739    
8740     </p>
8741     <p>Where &lt;dir&gt; is the absolute path name of the directory
8742     to copy and &lt;dst&gt; is the location where the directory will
8743     be copied to.
8744     </p>
8745     <p>Possible Answers:
8746     </p>
8747     <p>
8748     </p>
8749     <blockquote class="text">
8750     <p>"OK" -
8751     </p>
8752     <blockquote class="text">
8753     <p>on success
8754     </p>
8755     </blockquote>
8756    
8757    
8758     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
8759     </p>
8760     <blockquote class="text">
8761     <p>in case a given directory does not exists,
8762     or if a directory with name equal to the name
8763     of the specified directory already exists in
8764     the destination directory. Error is also thrown
8765     when trying to copy a directory to a subdirectory
8766     of itself.
8767     </p>
8768     </blockquote>
8769    
8770    
8771     </blockquote><p>
8772    
8773     </p>
8774     <p>Example:
8775     </p>
8776     <p>
8777     </p>
8778     <blockquote class="text">
8779     <p>C: "COPY DB_INSTRUMENT_DIRECTORY '/Piano Collection/Acoustic' '/Acoustic/Pianos'"
8780     </p>
8781     <p>S: "OK"
8782     </p>
8783     </blockquote><p>
8784    
8785     </p>
8786     <a name="SET DB_INSTRUMENT_DIRECTORY DESCRIPTION"></a><br /><hr />
8787     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
8788     <a name="rfc.section.6.8.9"></a><h3>6.8.9.&nbsp;
8789     Changing the description of directory</h3>
8790    
8791     <p>The front-end can alter the description of a specific
8792     instrument directory by sending the following command:
8793     </p>
8794     <p>
8795     </p>
8796     <blockquote class="text">
8797     <p>SET DB_INSTRUMENT_DIRECTORY DESCRIPTION &lt;dir&gt; &lt;desc&gt;
8798     </p>
8799     </blockquote><p>
8800    
8801     </p>
8802     <p>Where &lt;dir&gt; is the absolute path name of the directory and
8803     &lt;desc&gt; is the new description for the directory
8804     (encapsulated into apostrophes, supporting escape sequences as described in chapter
8805     "<a class='info' href='#character_set'>Character Set and Escape Sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>").
8806     </p>
8807     <p>Possible Answers:
8808     </p>
8809     <p>
8810     </p>
8811     <blockquote class="text">
8812     <p>"OK" -
8813     </p>
8814     <blockquote class="text">
8815     <p>on success
8816     </p>
8817     </blockquote>
8818    
8819    
8820     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
8821     </p>
8822     <blockquote class="text">
8823     <p>in case the given directory does not exists.
8824     </p>
8825     </blockquote>
8826    
8827    
8828     </blockquote><p>
8829    
8830     </p>
8831     <p>Example:
8832     </p>
8833     <p>
8834     </p>
8835     <blockquote class="text">
8836     <p>C: "SET DB_INSTRUMENT_DIRECTORY DESCRIPTION '/Piano Collection' 'A collection of piano instruments in various format.'"
8837     </p>
8838     <p>S: "OK"
8839     </p>
8840     </blockquote><p>
8841    
8842     </p>
8843     <a name="FIND DB_INSTRUMENT_DIRECTORIES"></a><br /><hr />
8844     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
8845     <a name="rfc.section.6.8.10"></a><h3>6.8.10.&nbsp;
8846     Finding directories</h3>
8847    
8848     <p>The front-end can search for directories
8849     in specific directory by sending the following command:
8850     </p>
8851     <p>
8852     </p>
8853     <blockquote class="text">
8854     <p>FIND DB_INSTRUMENT_DIRECTORIES [NON_RECURSIVE] &lt;dir&gt; &lt;criteria-list&gt;
8855     </p>
8856     </blockquote><p>
8857    
8858     </p>
8859     <p>Where &lt;dir&gt; should be replaced by the absolute path
8860     name of the directory to search in. If NON_RECURSIVE is specified, the
8861     directories located in subdirectories of the specified directory will not
8862     be searched. &lt;criteria-list&gt; is a list of search criterias
8863     in form of "key1=val1 key2=val2 ...". The following criterias are
8864     allowed:
8865     </p>
8866     <p>
8867    
8868     <p>NAME='&lt;search-string&gt;'
8869     </p>
8870     <blockquote class="text">
8871     <p>Restricts the search to directories, which names
8872     satisfy the supplied search string (encapsulated into apostrophes,
8873     supporting escape sequences as described in chapter
8874     "<a class='info' href='#character_set'>Character Set and Escape Sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>").
8875     </p>
8876     </blockquote><p>
8877    
8878     </p>
8879    
8880    
8881     <p>CREATED='[&lt;date-after&gt;]..[&lt;date-before&gt;]'
8882     </p>
8883     <blockquote class="text">
8884     <p>Restricts the search to directories, which creation
8885     date satisfies the specified period, where &lt;date-after&gt;
8886     and &lt;date-before&gt; are in "YYYY-MM-DD HH:MM:SS" format.
8887     If &lt;date-after&gt; is omitted the search is restricted to
8888     directories created before &lt;date-before&gt;. If
8889     &lt;date-before&gt; is omitted, the search is restricted
8890     to directories created after &lt;date-after&gt;.
8891     </p>
8892     </blockquote><p>
8893    
8894     </p>
8895    
8896    
8897     <p>MODIFIED='[&lt;date-after&gt;]..[&lt;date-before&gt;]'
8898     </p>
8899     <blockquote class="text">
8900     <p>Restricts the search to directories, which
8901     date of last modification satisfies the specified period, where
8902     &lt;date-after&gt; and &lt;date-before&gt; are in "YYYY-MM-DD HH:MM:SS"
8903     format. If &lt;date-after&gt; is omitted the search is restricted to
8904     directories, which are last modified before &lt;date-before&gt;. If
8905     &lt;date-before&gt; is omitted, the search is restricted to directories,
8906     which are last modified after &lt;date-after&gt;.
8907     </p>
8908     </blockquote><p>
8909    
8910     </p>
8911    
8912    
8913     <p>DESCRIPTION='&lt;search-string&gt;'
8914     </p>
8915     <blockquote class="text">
8916     <p>Restricts the search to directories with description
8917     that satisfies the supplied search string
8918     (encapsulated into apostrophes, supporting escape
8919     sequences as described in chapter
8920     "<a class='info' href='#character_set'>Character Set and Escape Sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>").
8921     </p>
8922     </blockquote><p>
8923    
8924     </p>
8925    
8926    
8927     <p>Where &lt;search-string&gt; is either a regular expression, or a
8928     word list separated with spaces for OR search and with '+' for AND search.
8929     </p>
8930     <p>Possible Answers:
8931     </p>
8932     <p>
8933     </p>
8934     <blockquote class="text">
8935     <p>A comma separated list with the absolute path names (encapsulated into
8936     apostrophes) of all directories in the specified directory that satisfy
8937     the supplied search criterias.
8938     </p>
8939     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
8940     </p>
8941     <blockquote class="text">
8942     <p>if the given directory does not exist.
8943     </p>
8944     </blockquote>
8945    
8946    
8947     </blockquote><p>
8948    
8949     </p>
8950     <p>Example:
8951     </p>
8952     <p>
8953     </p>
8954     <blockquote class="text">
8955     <p>C: "FIND DB_INSTRUMENT_DIRECTORIES '/' NAME='Piano'"
8956     </p>
8957     <p>S: "'/Piano Collection'"
8958     </p>
8959     </blockquote><p>
8960    
8961     </p>
8962     <p>
8963     </p>
8964     <blockquote class="text">
8965     <p>C: "FIND DB_INSTRUMENT_DIRECTORIES '/' CREATED='..2007-04-01 09:30:13'"
8966     </p>
8967     <p>S: "'/Piano Collection','/Percussions'"
8968     </p>
8969     </blockquote><p>
8970    
8971     </p>
8972     <a name="ADD DB_INSTRUMENTS"></a><br /><hr />
8973     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
8974     <a name="rfc.section.6.8.11"></a><h3>6.8.11.&nbsp;
8975     Adding instruments to the instruments database</h3>
8976    
8977     <p>The front-end can add one or more instruments
8978     to the instruments database by sending the following command:
8979     </p>
8980     <p>
8981     </p>
8982     <blockquote class="text">
8983     <p>ADD DB_INSTRUMENTS [NON_MODAL] [&lt;mode&gt;[ FILE_AS_DIR]] &lt;db_dir&gt; &lt;file_path&gt; [&lt;instr_index&gt;]
8984     </p>
8985     </blockquote><p>
8986    
8987     </p>
8988     <p>Where &lt;db_dir&gt; is the absolute path name of a directory
8989     (encapsulated into apostrophes) in the instruments database in which
8990     only the new instruments (that are not already in the database) will
8991     be added, &lt;file_path&gt; is the absolute path name of a file or
8992     directory in the file system (encapsulated into apostrophes). In case
8993     an instrument file is supplied, only the instruments in the specified
8994     file will be added to the instruments database. If the optional
8995     &lt;instr_index&gt; (the index of the instrument within the given file)
8996     is supplied too, then only the specified instrument will be added.
8997     In case a directory is supplied, the instruments in that directory
8998     will be added. The OPTIONAL &lt;mode&gt; argument is only applied
8999     when a directory is provided as &lt;file_path&gt; and specifies how the
9000     scanning will be done and has exactly the following possibilities:
9001     </p>
9002     <p>
9003     </p>
9004     <blockquote class="text">
9005     <p>"RECURSIVE" -
9006     </p>
9007     <blockquote class="text">
9008     <p>All instruments will be processed, including those
9009     in the subdirectories, and the respective subdirectory
9010     tree structure will be recreated in the instruments
9011     database
9012     </p>
9013     </blockquote>
9014    
9015    
9016     <p>"NON_RECURSIVE" -
9017     </p>
9018     <blockquote class="text">
9019     <p>Only the instruments in the specified directory
9020     will be added, the instruments in the subdirectories
9021     will not be processed.
9022     </p>
9023     </blockquote>
9024    
9025    
9026     <p>"FLAT" -
9027     </p>
9028     <blockquote class="text">
9029     <p>All instruments will be processed, including those
9030     in the subdirectories, but the respective subdirectory
9031     structure will not be recreated in the instruments
9032     database. All instruments will be added directly in
9033     the specified database directory.
9034     </p>
9035     </blockquote>
9036    
9037    
9038     </blockquote><p>
9039    
9040     </p>
9041     <p> If FILE_AS_DIR argument is supplied, all instruments in an instrument
9042     file will be added to a separate directory in the instruments database, which
9043     name will be the name of the instrument file with the file extension stripped off.
9044    
9045     </p>
9046     <p>The difference between regular and NON_MODAL versions of the command
9047     is that the regular command returns when the scanning is finished
9048     while NON_MODAL version returns immediately and a background process is launched.
9049     The <a class='info' href='#GET DB_INSTRUMENTS_JOB INFO'>GET DB_INSTRUMENTS_JOB INFO<span> (</span><span class='info'>Getting job status information</span><span>)</span></a>
9050     command can be used to monitor the scanning progress.
9051     </p>
9052     <p>Possible Answers:
9053     </p>
9054     <p>
9055     </p>
9056     <blockquote class="text">
9057     <p>"OK" -
9058     </p>
9059     <blockquote class="text">
9060     <p>on success when NON_MODAL is not supplied
9061     </p>
9062     </blockquote>
9063    
9064    
9065     <p>"OK[&lt;job-id&gt;]" -
9066     </p>
9067     <blockquote class="text">
9068     <p>on success when NON_MODAL is supplied, where &lt;job-id&gt;
9069     is a numerical ID used to obtain status information about the job progress.
9070     See <a class='info' href='#GET DB_INSTRUMENTS_JOB INFO'>GET DB_INSTRUMENTS_JOB INFO<span> (</span><span class='info'>Getting job status information</span><span>)</span></a>
9071    
9072     </p>
9073     </blockquote>
9074    
9075    
9076     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
9077     </p>
9078     <blockquote class="text">
9079     <p>if an invalid path is specified.
9080     </p>
9081     </blockquote>
9082    
9083    
9084     </blockquote><p>
9085    
9086     </p>
9087     <p>Examples:
9088     </p>
9089     <p>
9090     </p>
9091     <blockquote class="text">
9092     <p>C: "ADD DB_INSTRUMENTS '/Piano Collection' '/home/me/gigs/PMI Bosendorfer 290.gig' 0"
9093     </p>
9094     <p>S: "OK"
9095     </p>
9096     </blockquote><p>
9097    
9098     </p>
9099     <a name="REMOVE DB_INSTRUMENT"></a><br /><hr />
9100     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
9101     <a name="rfc.section.6.8.12"></a><h3>6.8.12.&nbsp;
9102     Removing an instrument</h3>
9103    
9104     <p>The front-end can remove a particular instrument
9105     from the instruments database by sending the following command:
9106     </p>
9107     <p>
9108     </p>
9109     <blockquote class="text">
9110     <p>REMOVE DB_INSTRUMENT &lt;instr_path&gt;
9111     </p>
9112     </blockquote><p>
9113    
9114     </p>
9115     <p>Where &lt;instr_path&gt; is the absolute path name
9116     (in the instruments database) of the instrument to remove.
9117     </p>
9118     <p>Possible Answers:
9119     </p>
9120     <p>
9121     </p>
9122     <blockquote class="text">
9123     <p>"OK" -
9124     </p>
9125     <blockquote class="text">
9126     <p>if the instrument is removed successfully
9127     </p>
9128     </blockquote>
9129    
9130    
9131     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
9132     </p>
9133     <blockquote class="text">
9134     <p>if the given path does not exist or
9135     is a directory.
9136     </p>
9137     </blockquote>
9138    
9139    
9140     </blockquote><p>
9141    
9142     </p>
9143     <p>Examples:
9144     </p>
9145     <p>
9146     </p>
9147     <blockquote class="text">
9148     <p>C: "REMOVE DB_INSTRUMENT '/Piano Collection/Bosendorfer 290'"
9149     </p>
9150     <p>S: "OK"
9151     </p>
9152     </blockquote><p>
9153    
9154     </p>
9155     <a name="GET DB_INSTRUMENTS"></a><br /><hr />
9156     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
9157     <a name="rfc.section.6.8.13"></a><h3>6.8.13.&nbsp;
9158     Getting amount of instruments</h3>
9159    
9160     <p>The front-end can retrieve the current amount of
9161     instruments in a specific directory by sending the following command:
9162     </p>
9163     <p>
9164     </p>
9165     <blockquote class="text">
9166     <p>GET DB_INSTRUMENTS [RECURSIVE] &lt;dir&gt;
9167     </p>
9168     </blockquote><p>
9169    
9170     </p>
9171     <p>Where &lt;dir&gt; should be replaced by the absolute path name
9172     of the directory. If RECURSIVE is specified, the number of all
9173     instruments, including those located in subdirectories of the
9174     specified directory, will be returned.
9175     </p>
9176     <p>Possible Answers:
9177     </p>
9178     <p>
9179     </p>
9180     <blockquote class="text">
9181     <p>The current number of instruments
9182     in the specified directory.
9183     </p>
9184     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
9185     </p>
9186     <blockquote class="text">
9187     <p>if the given directory does not exist.
9188     </p>
9189     </blockquote>
9190    
9191    
9192     </blockquote><p>
9193    
9194     </p>
9195     <p>Example:
9196     </p>
9197     <p>
9198     </p>
9199     <blockquote class="text">
9200     <p>C: "GET DB_INSTRUMENTS '/Piano Collection'"
9201     </p>
9202     <p>S: "2"
9203     </p>
9204     </blockquote><p>
9205    
9206     </p>
9207     <a name="LIST DB_INSTRUMENTS"></a><br /><hr />
9208     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
9209     <a name="rfc.section.6.8.14"></a><h3>6.8.14.&nbsp;
9210     Listing all instruments in specific directory</h3>
9211    
9212     <p>The front-end can retrieve the current list of instruments
9213     in specific directory by sending the following command:
9214     </p>
9215     <p>
9216     </p>
9217     <blockquote class="text">
9218     <p>LIST DB_INSTRUMENTS [RECURSIVE] &lt;dir&gt;
9219     </p>
9220     </blockquote><p>
9221    
9222     </p>
9223     <p>Where &lt;dir&gt; should be replaced by the absolute path
9224     name of the directory. If RECURSIVE is specified, the absolute path
9225     names of all instruments, including those located in subdirectories
9226     of the specified directory, will be returned.
9227     </p>
9228     <p>Possible Answers:
9229     </p>
9230     <p>
9231     </p>
9232     <blockquote class="text">
9233     <p>A comma separated list of all instruments
9234     (encapsulated into apostrophes) in the specified directory.
9235     </p>
9236     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
9237     </p>
9238     <blockquote class="text">
9239     <p>if the given directory does not exist.
9240     </p>
9241     </blockquote>
9242    
9243    
9244     </blockquote><p>
9245    
9246     </p>
9247     <p>Example:
9248     </p>
9249     <p>
9250     </p>
9251     <blockquote class="text">
9252     <p>C: "LIST DB_INSTRUMENTS '/Piano Collection'"
9253     </p>
9254     <p>S: "'Bosendorfer 290','Steinway D'"
9255     </p>
9256     </blockquote><p>
9257    
9258     </p>
9259     <p>
9260     </p>
9261     <blockquote class="text">
9262     <p>C: "LIST DB_INSTRUMENTS RECURSIVE '/Piano Collection'"
9263     </p>
9264     <p>S: "'/Piano Collection/Bosendorfer 290','/Piano Collection/Steinway D','/Piano Collection/Lite/Free Piano'"
9265     </p>
9266     </blockquote><p>
9267    
9268     </p>
9269     <a name="GET DB_INSTRUMENT INFO"></a><br /><hr />
9270     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
9271     <a name="rfc.section.6.8.15"></a><h3>6.8.15.&nbsp;
9272     Getting instrument information</h3>
9273    
9274     <p>The front-end can ask for the current settings of an
9275     instrument by sending the following command:
9276     </p>
9277     <p>
9278     </p>
9279     <blockquote class="text">
9280     <p>GET DB_INSTRUMENT INFO &lt;instr_path&gt;
9281     </p>
9282     </blockquote><p>
9283    
9284     </p>
9285     <p>Where &lt;instr_path&gt; should be replaced by the absolute path
9286     name of the instrument the front-end is interested in.
9287     </p>
9288     <p>Possible Answers:
9289     </p>
9290     <p>
9291     </p>
9292     <blockquote class="text">
9293     <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
9294     Each answer line begins with the settings category name
9295     followed by a colon and then a space character &lt;SP&gt; and finally
9296     the info character string to that setting category. At the
9297     moment the following categories are defined:
9298     </p>
9299     <p>
9300     </p>
9301     <blockquote class="text">
9302     <p>INSTRUMENT_FILE -
9303     </p>
9304     <blockquote class="text">
9305     <p>File name of the instrument.
9306     Note that the character string may contain
9307     <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>.
9308     </p>
9309     </blockquote>
9310    
9311    
9312     <p>INSTRUMENT_NR -
9313     </p>
9314     <blockquote class="text">
9315     <p>Index of the instrument within the file.
9316     </p>
9317     </blockquote>
9318    
9319    
9320     <p>FORMAT_FAMILY -
9321     </p>
9322     <blockquote class="text">
9323     <p>The format family of the instrument.
9324     </p>
9325     </blockquote>
9326    
9327    
9328     <p>FORMAT_VERSION -
9329     </p>
9330     <blockquote class="text">
9331     <p>The format version of the instrument.
9332     </p>
9333     </blockquote>
9334    
9335    
9336     <p>SIZE -
9337     </p>
9338     <blockquote class="text">
9339     <p>The size of the instrument in bytes.
9340     </p>
9341     </blockquote>
9342    
9343    
9344     <p>CREATED -
9345     </p>
9346     <blockquote class="text">
9347     <p>The date and time when the instrument is added
9348     in the instruments database, represented in
9349     "YYYY-MM-DD HH:MM:SS" format
9350     </p>
9351     </blockquote>
9352    
9353    
9354     <p>MODIFIED -
9355     </p>
9356     <blockquote class="text">
9357     <p>The date and time of the last modification of the
9358     instrument's database settings, represented in
9359     "YYYY-MM-DD HH:MM:SS" format
9360     </p>
9361     </blockquote>
9362    
9363    
9364     <p>DESCRIPTION -
9365     </p>
9366     <blockquote class="text">
9367     <p>A brief description of the instrument.
9368     Note that the character string may contain
9369     <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>.
9370     </p>
9371     </blockquote>
9372    
9373    
9374     <p>IS_DRUM -
9375     </p>
9376     <blockquote class="text">
9377     <p>either true or false, determines whether the
9378     instrument is a drumkit or a chromatic instrument
9379     </p>
9380     </blockquote>
9381    
9382    
9383     <p>PRODUCT -
9384     </p>
9385     <blockquote class="text">
9386     <p>The product title of the instrument.
9387     Note that the character string may contain
9388     <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>.
9389     </p>
9390     </blockquote>
9391    
9392    
9393     <p>ARTISTS -
9394     </p>
9395     <blockquote class="text">
9396     <p>Lists the artist names.
9397     Note that the character string may contain
9398     <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>.
9399     </p>
9400     </blockquote>
9401    
9402    
9403     <p>KEYWORDS -
9404     </p>
9405     <blockquote class="text">
9406     <p>Provides a list of keywords that refer to the instrument.
9407     Keywords are separated with semicolon and blank.
9408     Note that the character string may contain
9409     <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>.
9410     </p>
9411     </blockquote>
9412    
9413    
9414     </blockquote>
9415    
9416    
9417     </blockquote><p>
9418    
9419     </p>
9420     <p>The mentioned fields above don't have to be in particular order.
9421     </p>
9422     <p>Example:
9423     </p>
9424     <p>
9425     </p>
9426     <blockquote class="text">
9427     <p>C: "GET DB_INSTRUMENT INFO '/Piano Collection/Bosendorfer 290'"
9428     </p>
9429     <p>S: "INSTRUMENT_FILE: /home/me/gigs/Bosendorfer 290.gig"
9430     </p>
9431     <p>&nbsp;&nbsp;&nbsp;"INSTRUMENT_NR: 0"
9432     </p>
9433     <p>&nbsp;&nbsp;&nbsp;"FORMAT_FAMILY: GIG"
9434     </p>
9435     <p>&nbsp;&nbsp;&nbsp;"FORMAT_VERSION: 2"
9436     </p>
9437     <p>&nbsp;&nbsp;&nbsp;"SIZE: 2050871870"
9438     </p>
9439     <p>&nbsp;&nbsp;&nbsp;"CREATED: 2007-02-05 10:23:12"
9440     </p>
9441     <p>&nbsp;&nbsp;&nbsp;"MODIFIED: 2007-04-07 12:50:21"
9442     </p>
9443     <p>&nbsp;&nbsp;&nbsp;"DESCRIPTION: "
9444     </p>
9445     <p>&nbsp;&nbsp;&nbsp;"IS_DRUM: false"
9446     </p>
9447     <p>&nbsp;&nbsp;&nbsp;"PRODUCT: GRANDIOSO Bosendorfer 290"
9448     </p>
9449     <p>&nbsp;&nbsp;&nbsp;"ARTISTS: Post Musical Instruments"
9450     </p>
9451     <p>&nbsp;&nbsp;&nbsp;"KEYWORDS: Bosendorfer"
9452     </p>
9453     <p>&nbsp;&nbsp;&nbsp;"."
9454     </p>
9455     </blockquote><p>
9456    
9457     </p>
9458     <a name="SET DB_INSTRUMENT NAME"></a><br /><hr />
9459     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
9460     <a name="rfc.section.6.8.16"></a><h3>6.8.16.&nbsp;
9461     Renaming an instrument</h3>
9462    
9463     <p>The front-end can alter the name of a specific
9464     instrument by sending the following command:
9465     </p>
9466     <p>
9467     </p>
9468     <blockquote class="text">
9469     <p>SET DB_INSTRUMENT NAME &lt;instr&gt; &lt;name&gt;
9470     </p>
9471     </blockquote><p>
9472    
9473     </p>
9474     <p>Where &lt;instr&gt; is the absolute path name of the instrument and
9475     &lt;name&gt; is the new name for that instrument.
9476     </p>
9477     <p>Possible Answers:
9478     </p>
9479     <p>
9480     </p>
9481     <blockquote class="text">
9482     <p>"OK" -
9483     </p>
9484     <blockquote class="text">
9485     <p>on success
9486     </p>
9487     </blockquote>
9488    
9489    
9490     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
9491     </p>
9492     <blockquote class="text">
9493     <p>in case the given instrument does not exists,
9494     or if an instrument with name equal to the new
9495     name already exists.
9496     </p>
9497     </blockquote>
9498    
9499    
9500     </blockquote><p>
9501    
9502     </p>
9503     <p>Example:
9504     </p>
9505     <p>
9506     </p>
9507     <blockquote class="text">
9508     <p>C: "SET DB_INSTRUMENT NAME '/Piano Collection/Bosendorfer' 'Bosendorfer 290'"
9509     </p>
9510     <p>S: "OK"
9511     </p>
9512     </blockquote><p>
9513    
9514     </p>
9515     <a name="MOVE DB_INSTRUMENT"></a><br /><hr />
9516     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
9517     <a name="rfc.section.6.8.17"></a><h3>6.8.17.&nbsp;
9518     Moving an instrument</h3>
9519    
9520     <p>The front-end can move a specific instrument to another directory by
9521     sending the following command:
9522     </p>
9523     <p>
9524     </p>
9525     <blockquote class="text">
9526     <p>MOVE DB_INSTRUMENT &lt;instr&gt; &lt;dst&gt;
9527     </p>
9528     </blockquote><p>
9529    
9530     </p>
9531     <p>Where &lt;instr&gt; is the absolute path name of the instrument
9532     to move and &lt;dst&gt; is the directory where the instrument will
9533     be moved to.
9534     </p>
9535     <p>Possible Answers:
9536     </p>
9537     <p>
9538     </p>
9539     <blockquote class="text">
9540     <p>"OK" -
9541     </p>
9542     <blockquote class="text">
9543     <p>on success
9544     </p>
9545     </blockquote>
9546    
9547    
9548     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
9549     </p>
9550     <blockquote class="text">
9551     <p>in case the given instrument does not exists,
9552     or if an instrument with name equal to the name of the
9553     specified instrument already exists in the destination
9554     directory.
9555     </p>
9556     </blockquote>
9557    
9558    
9559     </blockquote><p>
9560    
9561     </p>
9562     <p>Example:
9563     </p>
9564     <p>
9565     </p>
9566     <blockquote class="text">
9567     <p>C: "MOVE DB_INSTRUMENT '/Piano Collection/Bosendorfer 290' '/Piano Collection/Acoustic'"
9568     </p>
9569     <p>S: "OK"
9570     </p>
9571     </blockquote><p>
9572    
9573     </p>
9574     <a name="COPY DB_INSTRUMENT"></a><br /><hr />
9575     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
9576     <a name="rfc.section.6.8.18"></a><h3>6.8.18.&nbsp;
9577     Copying instruments</h3>
9578    
9579     <p>The front-end can copy a specific instrument to another directory by
9580     sending the following command:
9581     </p>
9582     <p>
9583     </p>
9584     <blockquote class="text">
9585     <p>COPY DB_INSTRUMENT &lt;instr&gt; &lt;dst&gt;
9586     </p>
9587     </blockquote><p>
9588    
9589     </p>
9590     <p>Where &lt;instr&gt; is the absolute path name of the instrument
9591     to copy and &lt;dst&gt; is the directory where the instrument will
9592     be copied to.
9593     </p>
9594     <p>Possible Answers:
9595     </p>
9596     <p>
9597     </p>
9598     <blockquote class="text">
9599     <p>"OK" -
9600     </p>
9601     <blockquote class="text">
9602     <p>on success
9603     </p>
9604     </blockquote>
9605    
9606    
9607     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
9608     </p>
9609     <blockquote class="text">
9610     <p>in case the given instrument does not exists,
9611     or if an instrument with name equal to the name of the
9612     specified instrument already exists in the destination
9613     directory.
9614     </p>
9615     </blockquote>
9616    
9617    
9618     </blockquote><p>
9619    
9620     </p>
9621     <p>Example:
9622     </p>
9623     <p>
9624     </p>
9625     <blockquote class="text">
9626     <p>C: "COPY DB_INSTRUMENT '/Piano Collection/Bosendorfer 290' '/Acoustic/Pianos/'"
9627     </p>
9628     <p>S: "OK"
9629     </p>
9630     </blockquote><p>
9631    
9632     </p>
9633     <a name="SET DB_INSTRUMENT DESCRIPTION"></a><br /><hr />
9634     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
9635     <a name="rfc.section.6.8.19"></a><h3>6.8.19.&nbsp;
9636     Changing the description of instrument</h3>
9637    
9638     <p>The front-end can alter the description of a specific
9639     instrument by sending the following command:
9640     </p>
9641     <p>
9642     </p>
9643     <blockquote class="text">
9644     <p>SET DB_INSTRUMENT DESCRIPTION &lt;instr&gt; &lt;desc&gt;
9645     </p>
9646     </blockquote><p>
9647    
9648     </p>
9649     <p>Where &lt;instr&gt; is the absolute path name of the instrument and
9650     &lt;desc&gt; is the new description for the instrument
9651     (encapsulated into apostrophes, supporting escape sequences as described in chapter
9652     "<a class='info' href='#character_set'>Character Set and Escape Sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>").
9653     </p>
9654     <p>Possible Answers:
9655     </p>
9656     <p>
9657     </p>
9658     <blockquote class="text">
9659     <p>"OK" -
9660     </p>
9661     <blockquote class="text">
9662     <p>on success
9663     </p>
9664     </blockquote>
9665    
9666    
9667     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
9668     </p>
9669     <blockquote class="text">
9670     <p>in case the given instrument does not exists.
9671     </p>
9672     </blockquote>
9673    
9674    
9675     </blockquote><p>
9676    
9677     </p>
9678     <p>Example:
9679     </p>
9680     <p>
9681     </p>
9682     <blockquote class="text">
9683     <p>C: "SET DB_INSTRUMENT DESCRIPTION '/Piano Collection/Acoustic/Bosendorfer 290' 'No comment :)'"
9684     </p>
9685     <p>S: "OK"
9686     </p>
9687     </blockquote><p>
9688    
9689     </p>
9690     <a name="FIND DB_INSTRUMENTS"></a><br /><hr />
9691     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
9692     <a name="rfc.section.6.8.20"></a><h3>6.8.20.&nbsp;
9693     Finding instruments</h3>
9694    
9695     <p>The front-end can search for instruments
9696     in specific directory by sending the following command:
9697     </p>
9698     <p>
9699     </p>
9700     <blockquote class="text">
9701     <p>FIND DB_INSTRUMENTS [NON_RECURSIVE] &lt;dir&gt; &lt;criteria-list&gt;
9702     </p>
9703     </blockquote><p>
9704    
9705     </p>
9706     <p>Where &lt;dir&gt; should be replaced by the absolute path
9707     name of the directory to search in. If NON_RECURSIVE is specified, the
9708     directories located in subdirectories of the specified directory will not
9709     be searched. &lt;criteria-list&gt; is a list of search criterias
9710     in form of "key1=val1 key2=val2 ...". The following criterias are
9711     allowed:
9712     </p>
9713     <p>
9714    
9715     <p>NAME='&lt;search-string&gt;'
9716     </p>
9717     <blockquote class="text">
9718     <p>Restricts the search to instruments, which names
9719     satisfy the supplied search string (encapsulated into apostrophes,
9720     supporting escape sequences as described in chapter
9721     "<a class='info' href='#character_set'>Character Set and Escape Sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>").
9722     </p>
9723     </blockquote><p>
9724    
9725     </p>
9726    
9727    
9728     <p>SIZE=[&lt;min&gt;]..[&lt;max&gt;]
9729     </p>
9730     <blockquote class="text">
9731     <p>Restricts the search to instruments, which
9732     size is in the specified range. If &lt;min&gt; is omitted,
9733     the search results are restricted to instruments with size less then
9734     or equal to &lt;max&gt;. If &lt;max&gt; is omitted, the
9735     search is restricted to instruments with size greater then
9736     or equal to &lt;min&gt;.
9737     </p>
9738     </blockquote><p>
9739    
9740     </p>
9741    
9742    
9743     <p>CREATED='[&lt;date-after&gt;]..[&lt;date-before&gt;]'
9744     </p>
9745     <blockquote class="text">
9746     <p>Restricts the search to instruments, which creation
9747     date satisfies the specified period, where &lt;date-after&gt;
9748     and &lt;date-before&gt; are in "YYYY-MM-DD HH:MM:SS" format.
9749     If &lt;date-after&gt; is omitted the search is restricted to
9750     instruments created before &lt;date-before&gt;. If
9751     &lt;date-before&gt; is omitted, the search is restricted
9752     to instruments created after &lt;date-after&gt;.
9753     </p>
9754     </blockquote><p>
9755    
9756     </p>
9757    
9758    
9759     <p>MODIFIED='[&lt;date-after&gt;]..[&lt;date-before&gt;]'
9760     </p>
9761     <blockquote class="text">
9762     <p>Restricts the search to instruments, which
9763     date of last modification satisfies the specified period, where
9764     &lt;date-after&gt; and &lt;date-before&gt; are in "YYYY-MM-DD HH:MM:SS"
9765     format. If &lt;date-after&gt; is omitted the search is restricted to
9766     instruments, which are last modified before &lt;date-before&gt;. If
9767     &lt;date-before&gt; is omitted, the search is restricted to instruments,
9768     which are last modified after &lt;date-after&gt;.
9769     </p>
9770     </blockquote><p>
9771    
9772     </p>
9773    
9774    
9775     <p>DESCRIPTION='&lt;search-string&gt;'
9776     </p>
9777     <blockquote class="text">
9778     <p>Restricts the search to instruments with description
9779     that satisfies the supplied search string (encapsulated into apostrophes,
9780     supporting escape sequences as described in chapter
9781     "<a class='info' href='#character_set'>Character Set and Escape Sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>").
9782     </p>
9783     </blockquote><p>
9784    
9785     </p>
9786    
9787    
9788     <p>PRODUCT='&lt;search-string&gt;'
9789     </p>
9790     <blockquote class="text">
9791     <p>Restricts the search to instruments with product info
9792     that satisfies the supplied search string (encapsulated into apostrophes,
9793     supporting escape sequences as described in chapter
9794     "<a class='info' href='#character_set'>Character Set and Escape Sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>").
9795     </p>
9796     </blockquote><p>
9797    
9798     </p>
9799    
9800    
9801     <p>ARTISTS='&lt;search-string&gt;'
9802     </p>
9803     <blockquote class="text">
9804     <p>Restricts the search to instruments with artists info
9805     that satisfies the supplied search string (encapsulated into apostrophes,
9806     supporting escape sequences as described in chapter
9807     "<a class='info' href='#character_set'>Character Set and Escape Sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>").
9808     </p>
9809     </blockquote><p>
9810    
9811     </p>
9812    
9813    
9814     <p>KEYWORDS='&lt;search-string&gt;'
9815     </p>
9816     <blockquote class="text">
9817     <p>Restricts the search to instruments with keyword list
9818     that satisfies the supplied search string (encapsulated into apostrophes,
9819     supporting escape sequences as described in chapter
9820     "<a class='info' href='#character_set'>Character Set and Escape Sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>").
9821     </p>
9822     </blockquote><p>
9823    
9824     </p>
9825    
9826    
9827     <p>IS_DRUM=true | false
9828     </p>
9829     <blockquote class="text">
9830     <p>Either true or false. Restricts the search to
9831     drum kits or chromatic instruments.
9832     </p>
9833     </blockquote><p>
9834    
9835     </p>
9836    
9837    
9838     <p>FORMAT_FAMILIES='&lt;format-list&gt;'
9839     </p>
9840     <blockquote class="text">
9841     <p>Restricts the search to instruments of the supplied format families,
9842     where &lt;format-list&gt; is a comma separated list of format families.
9843     </p>
9844     </blockquote><p>
9845    
9846     </p>
9847    
9848    
9849     <p>Where &lt;search-string&gt; is either a regular expression, or a
9850     word list separated with spaces for OR search and with '+' for AND search.
9851     </p>
9852     <p>Possible Answers:
9853     </p>
9854     <p>
9855     </p>
9856     <blockquote class="text">
9857     <p>A comma separated list with the absolute path names (encapsulated into
9858     apostrophes) of all instruments in the specified directory that satisfy
9859     the supplied search criterias.
9860     </p>
9861     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
9862     </p>
9863     <blockquote class="text">
9864     <p>if the given directory does not exist.
9865     </p>
9866     </blockquote>
9867    
9868    
9869     </blockquote><p>
9870    
9871     </p>
9872     <p>Example:
9873     </p>
9874     <p>
9875     </p>
9876     <blockquote class="text">
9877     <p>C: "FIND DB_INSTRUMENTS '/Piano Collection' NAME='bosendorfer+290'"
9878     </p>
9879     <p>S: "'/Piano Collection/Bosendorfer 290'"
9880     </p>
9881     </blockquote><p>
9882    
9883     </p>
9884     <p>
9885     </p>
9886     <blockquote class="text">
9887     <p>C: "FIND DB_INSTRUMENTS '/Piano Collection' CREATED='2007-04-01 09:30:13..'"
9888     </p>
9889     <p>S: "'/Piano Collection/Bosendorfer 290','/Piano Collection/Steinway D'"
9890     </p>
9891     </blockquote><p>
9892    
9893     </p>
9894     <a name="GET DB_INSTRUMENTS_JOB INFO"></a><br /><hr />
9895     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
9896     <a name="rfc.section.6.8.21"></a><h3>6.8.21.&nbsp;
9897     Getting job status information</h3>
9898    
9899     <p>The front-end can ask for the current status of a
9900     particular database instruments job by sending the following command:
9901     </p>
9902     <p>
9903     </p>
9904     <blockquote class="text">
9905     <p>GET DB_INSTRUMENTS_JOB INFO &lt;job-id&gt;
9906     </p>
9907     </blockquote><p>
9908    
9909     </p>
9910     <p>Where &lt;job-id&gt; should be replaced by the numerical ID
9911     of the job the front-end is interested in.
9912     </p>
9913     <p>Possible Answers:
9914     </p>
9915     <p>
9916     </p>
9917     <blockquote class="text">
9918     <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
9919     Each answer line begins with the settings category name
9920     followed by a colon and then a space character &lt;SP&gt; and finally
9921     the info character string to that setting category. At the
9922     moment the following categories are defined:
9923     </p>
9924     <p>
9925     </p>
9926     <blockquote class="text">
9927     <p>FILES_TOTAL -
9928     </p>
9929     <blockquote class="text">
9930     <p>The total number of files scheduled for scanning
9931     </p>
9932     </blockquote>
9933    
9934    
9935     <p>FILES_SCANNED -
9936     </p>
9937     <blockquote class="text">
9938     <p>The current number of scanned files
9939     </p>
9940     </blockquote>
9941    
9942    
9943     <p>SCANNING -
9944     </p>
9945     <blockquote class="text">
9946     <p>The absolute path name of the file which is currently
9947     being scanned
9948     </p>
9949     </blockquote>
9950    
9951    
9952     <p>STATUS -
9953     </p>
9954     <blockquote class="text">
9955     <p>An integer value between 0 and 100 indicating the
9956     scanning progress percentage of the file which is
9957     currently being scanned
9958     </p>
9959     </blockquote>
9960    
9961    
9962     </blockquote>
9963    
9964    
9965     </blockquote><p>
9966    
9967     </p>
9968     <p>The mentioned fields above don't have to be in particular order.
9969     </p>
9970     <p>Example:
9971     </p>
9972     <p>
9973     </p>
9974     <blockquote class="text">
9975     <p>C: "GET DB_INSTRUMENTS_JOB INFO 2"
9976     </p>
9977     <p>S: "FILES_TOTAL: 12"
9978     </p>
9979     <p>&nbsp;&nbsp;&nbsp;"FILES_SCANNED: 7"
9980     </p>
9981     <p>&nbsp;&nbsp;&nbsp;"SCANNING: /home/me/gigs/Bosendorfer 290.gig"
9982     </p>
9983     <p>&nbsp;&nbsp;&nbsp;"STATUS: 42"
9984     </p>
9985     <p>&nbsp;&nbsp;&nbsp;"."
9986     </p>
9987     </blockquote><p>
9988    
9989     </p>
9990     <a name="FORMAT INSTRUMENTS_DB"></a><br /><hr />
9991     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
9992     <a name="rfc.section.6.8.22"></a><h3>6.8.22.&nbsp;
9993     Formatting the instruments database</h3>
9994    
9995     <p>The front-end can remove all instruments and directories and re-create
9996     the instruments database structure (e.g., in case of a database corruption)
9997     by sending the following command:
9998     </p>
9999     <p>
10000     </p>
10001     <blockquote class="text">
10002     <p>FORMAT INSTRUMENTS_DB
10003     </p>
10004     </blockquote><p>
10005    
10006     </p>
10007     <p>Possible Answers:
10008     </p>
10009     <p>
10010     </p>
10011     <blockquote class="text">
10012     <p>"OK" -
10013     </p>
10014     <blockquote class="text">
10015     <p>on success
10016     </p>
10017     </blockquote>
10018    
10019    
10020     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
10021     </p>
10022     <blockquote class="text">
10023     <p>If the formatting of the instruments database
10024     failed.
10025     </p>
10026     </blockquote>
10027    
10028    
10029     </blockquote><p>
10030    
10031     </p>
10032     <a name="FIND LOST DB_INSTRUMENT_FILES"></a><br /><hr />
10033     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
10034     <a name="rfc.section.6.8.23"></a><h3>6.8.23.&nbsp;
10035     Checking for lost instrument files</h3>
10036    
10037     <p>The front-end can retrieve the list of all instrument files in the instruments database
10038     that don't exist in the filesystem by sending the following command:
10039     </p>
10040     <p>
10041     </p>
10042     <blockquote class="text">
10043     <p>FIND LOST DB_INSTRUMENT_FILES
10044     </p>
10045     </blockquote><p>
10046    
10047     </p>
10048     <p>Possible Answers:
10049     </p>
10050     <p>
10051     </p>
10052     <blockquote class="text">
10053     <p>A comma separated list with the absolute path names
10054     (encapsulated into apostrophes) of all lost instrument files.
10055     </p>
10056     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
10057     </p>
10058     <blockquote class="text">
10059     <p>in case it failed, providing an appropriate error code and error message.
10060     </p>
10061     </blockquote>
10062    
10063    
10064     </blockquote><p>
10065    
10066     </p>
10067     <p>Example:
10068     </p>
10069     <p>
10070     </p>
10071     <blockquote class="text">
10072     <p>C: "FIND LOST DB_INSTRUMENT_FILES"
10073     </p>
10074     <p>S: "'/gigs/Bosendorfer 290.gig','/gigs/Steinway D.gig','/gigs/Free Piano.gig'"
10075     </p>
10076     </blockquote><p>
10077    
10078     </p>
10079     <a name="SET DB_INSTRUMENT FILE_PATH"></a><br /><hr />
10080     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
10081     <a name="rfc.section.6.8.24"></a><h3>6.8.24.&nbsp;
10082     Replacing an instrument file</h3>
10083    
10084     <p>The front-end can substitute all occurrences of an instrument file
10085     in the instruments database with a new one by sending the following command:
10086     </p>
10087     <p>
10088     </p>
10089     <blockquote class="text">
10090     <p>SET DB_INSTRUMENT FILE_PATH &lt;old_path&gt; &lt;new_path&gt;
10091     </p>
10092     </blockquote><p>
10093    
10094     </p>
10095     <p>Where &lt;old_path&gt; is the absolute path name of the instrument file
10096     to substitute with &lt;new_path&gt;.
10097     </p>
10098     <p>Possible Answers:
10099     </p>
10100     <p>
10101     </p>
10102     <blockquote class="text">
10103     <p>"OK" -
10104     </p>
10105     <blockquote class="text">
10106     <p>on success
10107     </p>
10108     </blockquote>
10109    
10110    
10111     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
10112     </p>
10113     <blockquote class="text">
10114     <p>in case it failed, providing an appropriate error code and error message.
10115     </p>
10116     </blockquote>
10117    
10118    
10119     </blockquote><p>
10120    
10121     </p>
10122     <p>Example:
10123     </p>
10124     <p>
10125     </p>
10126     <blockquote class="text">
10127     <p>C: "SET DB_INSTRUMENT FILE_PATH '/gigs/Bosendorfer 290.gig' '/gigs/pianos/Bosendorfer 290.gig'"
10128     </p>
10129     <p>S: "OK"
10130     </p>
10131     </blockquote><p>
10132    
10133     </p>
10134     <a name="editing_instruments"></a><br /><hr />
10135     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
10136     <a name="rfc.section.6.9"></a><h3>6.9.&nbsp;
10137     Editing Instruments</h3>
10138    
10139     <p>The sampler allows to edit instruments while playing with the
10140     sampler by spawning an external (3rd party) instrument editor
10141     application for a given instrument. The 3rd party instrument
10142     editor applications have to place a respective plugin DLL file
10143     into the sampler's plugins directory. The sampler will
10144     automatically try to load all plugin DLLs in that directory on
10145     startup and only on startup!
10146     </p>
10147     <p>At the moment there is only one command for this feature set,
10148     but this will most probably change in future.
10149     </p>
10150     <a name="EDIT INSTRUMENT"></a><br /><hr />
10151     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
10152     <a name="rfc.section.6.9.1"></a><h3>6.9.1.&nbsp;
10153     Opening an appropriate instrument editor application</h3>
10154    
10155     <p>The front-end can request to open an appropriate instrument
10156     editor application by sending the following command:
10157     </p>
10158     <p>
10159     </p>
10160     <blockquote class="text">
10161     <p>EDIT CHANNEL INSTRUMENT &lt;sampler-channel&gt;
10162     </p>
10163     </blockquote><p>
10164    
10165     </p>
10166     <p>Where &lt;sampler-channel&gt; should be replaced by the
10167     number of the sampler channel as given by the
10168     <a class='info' href='#ADD CHANNEL'>"ADD CHANNEL"<span> (</span><span class='info'>Adding a new sampler channel</span><span>)</span></a>
10169     or <a class='info' href='#LIST CHANNELS'>"LIST CHANNELS"<span> (</span><span class='info'>Getting all created sampler channel list</span><span>)</span></a>
10170     command.
10171     </p>
10172     <p>The sampler will try to ask all registered instrument
10173     editors (or to be more specific: their sampler plugins)
10174     whether they are capable to handle the instrument on the
10175     given sampler channel. The sampler will simply use the first
10176     instrument editor application which replied with a positive
10177     answer and spawn that instrument editor application within
10178     the sampler's process and provide that application access
10179     to the instrument's data structures, so both applications
10180     can share and access the same instruments data at the same
10181     time, thus allowing to immediately hear changes with the
10182     sampler made by the instrument editor.
10183     </p>
10184     <p>Note: consequently instrument editors are always spawned
10185     locally on the same machine where the sampler is running
10186     on!
10187     </p>
10188     <p>Possible Answers:
10189     </p>
10190     <p>
10191     </p>
10192     <blockquote class="text">
10193     <p>"OK" -
10194     </p>
10195     <blockquote class="text">
10196     <p>when an appropriate instrument editor was
10197     launched
10198     </p>
10199     </blockquote>
10200    
10201    
10202     <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
10203     </p>
10204     <blockquote class="text">
10205     <p>when an appropriate instrument editor was
10206     launched, but there are noteworthy issues
10207     </p>
10208     </blockquote>
10209    
10210    
10211     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
10212     </p>
10213     <blockquote class="text">
10214     <p>when an appropriate instrument editor
10215     could not be launched
10216     </p>
10217     </blockquote>
10218    
10219    
10220     </blockquote><p>
10221    
10222     </p>
10223     <p>Examples:
10224     </p>
10225     <p>
10226     </p>
10227     <blockquote class="text">
10228     <p>C: "EDIT CHANNEL INSTRUMENT 0"
10229     </p>
10230     <p>S: "OK"
10231     </p>
10232     </blockquote><p>
10233    
10234     </p>
10235     <a name="file_management"></a><br /><hr />
10236     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
10237     <a name="rfc.section.6.10"></a><h3>6.10.&nbsp;
10238     Managing Files</h3>
10239    
10240     <p>You can query detailed informations about files located
10241     at the same system where the sampler instance is running on.
10242     Using this command set allows to retrieve file informations
10243     even remotely from another machine.
10244     </p>
10245     <a name="GET FILE INSTRUMENTS"></a><br /><hr />
10246     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
10247     <a name="rfc.section.6.10.1"></a><h3>6.10.1.&nbsp;
10248     Retrieving amount of instruments of a file</h3>
10249    
10250     <p>The front-end can retrieve the amount of instruments
10251     within a given instrument file by sending the
10252     following command:
10253     </p>
10254     <p>
10255     </p>
10256     <blockquote class="text">
10257     <p>GET FILE INSTRUMENTS &lt;filename&gt;
10258     </p>
10259     </blockquote><p>
10260    
10261     </p>
10262     <p>Where &lt;filename&gt; is the name of the instrument
10263     file (encapsulated into apostrophes, supporting escape
10264     sequences as described in chapter
10265     "<a class='info' href='#character_set'>Character Set and Escape
10266     Sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>").
10267     </p>
10268     <p>The sampler will try to ask all sampler engines,
10269     whether they support the given file and ask the first
10270     engine with a positive answer for the amount of
10271     instruments.
10272     </p>
10273     <p>Possible Answers:
10274     </p>
10275     <p>
10276     </p>
10277     <blockquote class="text">
10278     <p>On success, the sampler will answer by
10279     returning the amount of instruments.
10280    
10281     </p>
10282     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
10283     </p>
10284     <blockquote class="text">
10285     <p>if the file could not be handled
10286     </p>
10287     </blockquote>
10288    
10289    
10290     </blockquote><p>
10291    
10292     </p>
10293     <p>Examples:
10294     </p>
10295     <p>
10296     </p>
10297     <blockquote class="text">
10298     <p>C: "GET FILE INSTRUMENTS 'D:/Sounds/Foo.gig'"
10299     </p>
10300     <p>S: "10"
10301     </p>
10302     </blockquote><p>
10303    
10304     </p>
10305     <a name="LIST FILE INSTRUMENTS"></a><br /><hr />
10306     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
10307     <a name="rfc.section.6.10.2"></a><h3>6.10.2.&nbsp;
10308     Retrieving all instruments of a file</h3>
10309    
10310     <p>The front-end can retrieve a list of all instruments
10311     within a given instrument file by sending the
10312     following command:
10313     </p>
10314     <p>
10315     </p>
10316     <blockquote class="text">
10317     <p>LIST FILE INSTRUMENTS &lt;filename&gt;
10318     </p>
10319     </blockquote><p>
10320    
10321     </p>
10322     <p>Where &lt;filename&gt; is the name of the instrument
10323     file (encapsulated into apostrophes, supporting escape
10324     sequences as described in chapter
10325     "<a class='info' href='#character_set'>Character Set and Escape
10326     Sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>").
10327     </p>
10328     <p>The sampler will try to ask all sampler engines,
10329     whether they support the given file and ask the first
10330     engine with a positive answer for a list of IDs for the
10331     instruments in the given file.
10332     </p>
10333     <p>Possible Answers:
10334     </p>
10335     <p>
10336     </p>
10337     <blockquote class="text">
10338     <p>On success, the sampler will answer by
10339     returning a comma separated list of
10340     instrument IDs.
10341    
10342     </p>
10343     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
10344     </p>
10345     <blockquote class="text">
10346     <p>if the file could not be handled
10347     </p>
10348     </blockquote>
10349    
10350    
10351     </blockquote><p>
10352    
10353     </p>
10354     <p>Examples:
10355     </p>
10356     <p>
10357     </p>
10358     <blockquote class="text">
10359     <p>C: "LIST FILE INSTRUMENTS 'D:/Sounds/Foo.gig'"
10360     </p>
10361     <p>S: "0,1,2,3,4,5,6,7,8,9"
10362     </p>
10363     </blockquote><p>
10364    
10365     </p>
10366     <a name="GET FILE INSTRUMENT INFO"></a><br /><hr />
10367     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
10368     <a name="rfc.section.6.10.3"></a><h3>6.10.3.&nbsp;
10369     Retrieving informations about one instrument in a file</h3>
10370    
10371     <p>The front-end can retrieve detailed informations
10372     about a specific instrument within a given instrument
10373     file by sending the following command:
10374     </p>
10375     <p>
10376     </p>
10377     <blockquote class="text">
10378     <p>GET FILE INSTRUMENT INFO &lt;filename&gt;
10379     &lt;instr-id&gt;
10380     </p>
10381     </blockquote><p>
10382    
10383     </p>
10384     <p>Where &lt;filename&gt; is the name of the instrument
10385     file (encapsulated into apostrophes, supporting escape
10386     sequences as described in chapter
10387     "<a class='info' href='#character_set'>Character Set and Escape
10388     Sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>") and &lt;instr-id&gt; is the numeric
10389     instrument ID as returned by the
10390     <a class='info' href='#LIST FILE INSTRUMENTS'>"LIST FILE INSTRUMENTS"<span> (</span><span class='info'>Retrieving all instruments of a file</span><span>)</span></a> command.
10391     </p>
10392     <p>The sampler will try to ask all sampler engines,
10393     whether they support the given file and ask the first
10394     engine with a positive answer for informations about the
10395     specific instrument in the given file.
10396     </p>
10397     <p>Possible Answers:
10398     </p>
10399     <p>
10400     </p>
10401     <blockquote class="text">
10402     <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
10403     Each answer line begins with the settings category name
10404     followed by a colon and then a space character &lt;SP&gt; and finally
10405     the info character string to that setting category. At the
10406     moment the following categories are defined:
10407     </p>
10408     <p>
10409     </p>
10410     <blockquote class="text">
10411     <p>NAME -
10412     </p>
10413     <blockquote class="text">
10414     <p>name of the instrument as
10415     stored in the instrument file
10416     </p>
10417     </blockquote>
10418    
10419    
10420     <p>FORMAT_FAMILY -
10421     </p>
10422     <blockquote class="text">
10423     <p>name of the sampler format
10424     of the given instrument
10425     </p>
10426     </blockquote>
10427    
10428    
10429     <p>FORMAT_VERSION -
10430     </p>
10431     <blockquote class="text">
10432     <p>version of the sampler format
10433     the instrumen is stored as
10434     </p>
10435     </blockquote>
10436    
10437    
10438     <p>PRODUCT -
10439     </p>
10440     <blockquote class="text">
10441     <p>official product name of the
10442     instrument as stored in the file
10443    
10444     </p>
10445     </blockquote>
10446    
10447    
10448     <p>ARTISTS -
10449     </p>
10450     <blockquote class="text">
10451     <p>artists / sample library
10452     vendor of the instrument
10453     </p>
10454     </blockquote>
10455    
10456    
10457     <p>KEY_BINDINGS -
10458     </p>
10459     <blockquote class="text">
10460     <p>comma separated list of integer values representing
10461     the instrument's key mapping in the range between 0 .. 127,
10462     reflecting the analog meaning of the MIDI specification.
10463     </p>
10464     </blockquote>
10465    
10466    
10467     <p>KEYSWITCH_BINDINGS -
10468     </p>
10469     <blockquote class="text">
10470     <p>comma separated list of integer values representing
10471     the instrument's keyswitch mapping in the range between 0 .. 127,
10472     reflecting the analog meaning of the MIDI specification.
10473     </p>
10474     </blockquote>
10475    
10476    
10477     </blockquote>
10478    
10479    
10480     </blockquote><p>
10481    
10482     </p>
10483     <p>The mentioned fields above don't have to be in particular order.
10484     </p>
10485     <p>Example:
10486     </p>
10487     <p>
10488     </p>
10489     <blockquote class="text">
10490     <p>C: "GET FILE INSTRUMENT INFO 'D:/Sounds/Foo.gig' 0"
10491     </p>
10492     <p>S: "NAME: Lunatic Loops"
10493     </p>
10494     <p>&nbsp;&nbsp;&nbsp;"FORMAT_FAMILY: GIG"
10495     </p>
10496     <p>&nbsp;&nbsp;&nbsp;"FORMAT_VERSION: 3"
10497     </p>
10498     <p>&nbsp;&nbsp;&nbsp;"PRODUCT: The Backbone Bongo Beats"
10499     </p>
10500     <p>&nbsp;&nbsp;&nbsp;"ARTISTS: Jimmy the Fish"
10501     </p>
10502     <p>&nbsp;&nbsp;&nbsp;"."
10503     </p>
10504     </blockquote><p>
10505    
10506     </p>
10507     <a name="effects"></a><br /><hr />
10508     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
10509     <a name="rfc.section.6.11"></a><h3>6.11.&nbsp;
10510     Managing Effects</h3>
10511    
10512     <p>Audio effects (e.g. reverb, delay, compression) can be
10513     applied to the audio signals generated by the sampler. The
10514     sampler usually provides a set of internal audio effects for
10515     this task. The exact set of effects depends on the availability
10516     of third party effect plugins installed on the system where the
10517     sampler runs on.
10518     </p>
10519     <p>At the moment only "send effects" are supported. Support for
10520     "insert effects" and "master effects" is planned to be added at
10521     a later point.
10522     </p>
10523     <p>The following commands allow to retrieve the set of internal
10524     effects available to the sampler, detailed informations about
10525     those effects and to create and destroy instances of such
10526     effects. After an instance of an effect is created, the effect
10527     instance can be inserted into the audio signal path of the
10528     sampler, e.g. as send effect.
10529     </p>
10530     <p>The sampler allows to create an arbitrary amount of so called
10531     send effect chains. Each effect chain can host an arbitrary
10532     amount of effect instances. The output of the first effect
10533     instance in an effect chain is fed to the input of the second
10534     effect instance of the chain and so on. So effects in one chain
10535     are processed sequentially. Send effect chains however are
10536     processed in parallel to other send effect chains. Audio signals
10537     of sampler channels are fed to send effects by creating FX sends
10538     to the respective sampler channel and assigning a destination
10539     send effect to that FX by using the
10540     <a class='info' href='#SET FX_SEND EFFECT'>"SET FX_SEND EFFECT"<span> (</span><span class='info'>Assigning destination effect to an effect send</span><span>)</span></a>
10541     command. The latter allows to route the FX send to the beginning
10542     of a send effect chain, as well as directly to any other
10543     position of the send effect chain.
10544     </p>
10545     <a name="GET AVAILABLE_EFFECTS"></a><br /><hr />
10546     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
10547     <a name="rfc.section.6.11.1"></a><h3>6.11.1.&nbsp;
10548     Retrieve amount of available effects</h3>
10549    
10550     <p>The front-end can retrieve the amount of internal
10551     effects, available to the sampler by sending
10552     the following command:
10553     </p>
10554     <p>
10555     </p>
10556     <blockquote class="text">
10557     <p>GET AVAILABLE_EFFECTS
10558     </p>
10559     </blockquote><p>
10560    
10561     </p>
10562     <p>Possible Answers:
10563     </p>
10564     <p>
10565     </p>
10566     <blockquote class="text">
10567     <p>The sampler will answer by returning the current
10568     number of effects available to the sampler.
10569     </p>
10570     </blockquote><p>
10571    
10572     </p>
10573     <p>Examples:
10574     </p>
10575     <p>
10576     </p>
10577     <blockquote class="text">
10578     <p>C: "GET AVAILABLE_EFFECTS"
10579     </p>
10580     <p>S: "129"
10581     </p>
10582     </blockquote><p>
10583    
10584     </p>
10585     <a name="LIST AVAILABLE_EFFECTS"></a><br /><hr />
10586     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
10587     <a name="rfc.section.6.11.2"></a><h3>6.11.2.&nbsp;
10588     Get list of available effects</h3>
10589    
10590     <p>The set of available internal effects can change at
10591     runtime. The front-end can retrieve the list of internal
10592     effects, available to the sampler by sending the following
10593     command:
10594     </p>
10595     <p>
10596     </p>
10597     <blockquote class="text">
10598     <p>LIST AVAILABLE_EFFECTS
10599     </p>
10600     </blockquote><p>
10601    
10602     </p>
10603     <p>Possible Answers:
10604     </p>
10605     <p>
10606     </p>
10607     <blockquote class="text">
10608     <p>The sampler will answer by returning a comma
10609     separated list with numerical IDs of effects. Note:
10610     the numercial ID of an effect is generated by the
10611     sampler for the current moment. The numerical ID of
10612     the same effect can change at runtime, e.g. when the
10613     user requests a rescan of available effect plugins.
10614    
10615     </p>
10616     </blockquote><p>
10617    
10618     </p>
10619     <p>Example:
10620     </p>
10621     <p>
10622     </p>
10623     <blockquote class="text">
10624     <p>C: "LIST AVAILABLE_EFFECTS"
10625     </p>
10626     <p>S: "5,6,7,120,121,122,123,124"
10627     </p>
10628     </blockquote><p>
10629    
10630     </p>
10631     <a name="GET EFFECT INFO"></a><br /><hr />
10632     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
10633     <a name="rfc.section.6.11.3"></a><h3>6.11.3.&nbsp;
10634     Retrieving general information about an effect</h3>
10635    
10636     <p>The front-end can ask for general informations about an
10637     effect by sending the following command:
10638     </p>
10639     <p>
10640     </p>
10641     <blockquote class="text">
10642     <p>GET EFFECT INFO &lt;effect-index&gt;
10643     </p>
10644     </blockquote><p>
10645    
10646     </p>
10647     <p>Where &lt;effect-index&gt; is the numerical ID of an
10648     effect as returned by the
10649     <a class='info' href='#LIST AVAILABLE_EFFECTS'>"LIST AVAILABLE_EFFECTS"<span> (</span><span class='info'>Get list of available effects</span><span>)</span></a>
10650     command.
10651     </p>
10652     <p>Possible Answers:
10653     </p>
10654     <p>
10655     </p>
10656     <blockquote class="text">
10657     <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
10658     Each answer line begins with the effect information
10659     category name, followed by a colon and then a space
10660     character &lt;SP&gt; and finally the info character
10661     string to that effect information category. At the
10662     moment the following categories are defined:
10663     </p>
10664     <p>
10665     </p>
10666     <blockquote class="text">
10667     <p>SYSTEM -
10668     </p>
10669     <blockquote class="text">
10670     <p>name of the effect plugin system
10671     the effect is based on
10672     (e.g. "LADSPA")
10673     </p>
10674     </blockquote>
10675    
10676    
10677     <p>MODULE -
10678     </p>
10679     <blockquote class="text">
10680     <p>module of the effect plugin
10681     system that contains this effect,
10682     the module is usually the
10683     dynamic-linked library (DLL)
10684     filename of the effect plugin,
10685     including full path (note that this
10686     filename may contain
10687     <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>)
10688     </p>
10689     </blockquote>
10690    
10691    
10692     <p>NAME -
10693     </p>
10694     <blockquote class="text">
10695     <p>character string defining the
10696     unique name of the effect within its
10697     module (note that the character
10698     string may contain
10699     <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>)
10700     </p>
10701     </blockquote>
10702    
10703    
10704     <p>DESCRIPTION -
10705     </p>
10706     <blockquote class="text">
10707     <p>human readable name of the
10708     effect, intended to be displayed in
10709     user interfaces (note that the
10710     character string may contain
10711     <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>)
10712     </p>
10713     </blockquote>
10714    
10715    
10716     </blockquote>
10717    
10718    
10719     </blockquote><p>
10720    
10721     </p>
10722     <p>The mentioned fields above don't have to be in particular order.
10723     </p>
10724     <p>Example:
10725     </p>
10726     <p>
10727     </p>
10728     <blockquote class="text">
10729     <p>C: "GET EFFECT INFO 121"
10730     </p>
10731     <p>S: "SYSTEM: LADSPA"
10732     </p>
10733     <p>&nbsp;&nbsp;&nbsp;"MODULE: /usr/lib/ladspa/lowpass_iir_1891.so"
10734     </p>
10735     <p>&nbsp;&nbsp;&nbsp;"NAME: lowpass_iir"
10736     </p>
10737     <p>&nbsp;&nbsp;&nbsp;"DESCRIPTION: Glame Lowpass Filter"
10738     </p>
10739     <p>&nbsp;&nbsp;&nbsp;"."
10740     </p>
10741     </blockquote><p>
10742    
10743     </p>
10744     <a name="CREATE EFFECT_INSTANCE"></a><br /><hr />
10745     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
10746     <a name="rfc.section.6.11.4"></a><h3>6.11.4.&nbsp;
10747     Creating an instance of an effect by its portable ID</h3>
10748    
10749     <p>The front-end can spawn an instance of the desired
10750     effect by sending the following command:
10751     </p>
10752     <p>
10753     </p>
10754     <blockquote class="text">
10755     <p>CREATE EFFECT_INSTANCE &lt;effect-system&gt; &lt;module&gt; &lt;effect-name&gt;
10756     </p>
10757     </blockquote><p>
10758    
10759     </p>
10760     <p>Where &lt;effect-system&gt; is the "SYSTEM" field,
10761     &lt;module&gt; the "MODULE" field and &lt;effect-name&gt;
10762     the "NAME" field as returned by the
10763     <a class='info' href='#GET EFFECT INFO'>"GET EFFECT INFO"<span> (</span><span class='info'>Retrieving general information about an effect</span><span>)</span></a>
10764     command. The filename of argument &lt;module&gt; and the
10765     character string of argument &lt;effect-name&gt; may contain
10766     <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>.
10767     </p>
10768     <p>The sampler will try to load the requested effect and to
10769     create an instance of it. To allow loading the same effect
10770     on a different machine, probably even running a completely
10771     different operating system (e.g. Linux vs. Windows), the
10772     sampler tries to match &lt;module&gt; "softly". That means
10773     it first tries to find an effect that exactly matches the
10774     given &lt;module&gt; argument. If there is no exact match,
10775     the sampler will try to lower the restrictions on matching
10776     the &lt;module&gt; argument more and more, e.g. by ignoring
10777     upper / lower case differences and by ignoring the path of
10778     the DLL filename and file extension. If there is still no
10779     match at the end, the sampler will try to ignore the
10780     &lt;module&gt; argument completely and as a last resort
10781     search for an effect that only matches the given
10782     &lt;effect-system&gt; and &lt;effect-name&gt; arguments.
10783     </p>
10784     <p>Possible Answers:
10785     </p>
10786     <p>
10787     </p>
10788     <blockquote class="text">
10789     <p>"OK[&lt;effect-instance&gt;]" -
10790     </p>
10791     <blockquote class="text">
10792     <p>in case the effect instance was
10793     successfully created, where
10794     &lt;effect-instance&gt; is the numerical ID
10795     of the new effect instance
10796     </p>
10797     </blockquote>
10798    
10799    
10800     <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
10801     </p>
10802     <blockquote class="text">
10803     <p>in case the effect instance was spawned
10804     successfully, but there are noteworthy
10805     issue(s) related, providing an appropriate
10806     warning code and warning message
10807     </p>
10808     </blockquote>
10809    
10810    
10811     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
10812     </p>
10813     <blockquote class="text">
10814     <p>if the effect could not be instantiated
10815     </p>
10816     </blockquote>
10817    
10818    
10819     </blockquote><p>
10820    
10821     </p>
10822     <p>Examples:
10823     </p>
10824     <p>
10825     </p>
10826     <blockquote class="text">
10827     <p>C: "CREATE EFFECT_INSTANCE LADSPA '/usr/lib/ladspa/mod_delay_1419.so' 'modDelay'"
10828     </p>
10829     <p>S: "OK[0]"
10830     </p>
10831     </blockquote><p>
10832    
10833     </p>
10834     <a name="CREATE EFFECT_INSTANCE (non-portable)"></a><br /><hr />
10835     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
10836     <a name="rfc.section.6.11.5"></a><h3>6.11.5.&nbsp;
10837     Creating an instance of an effect by its numerical ID</h3>
10838    
10839     <p>The front-end can spawn an instance of the desired
10840     effect by sending the following command:
10841     </p>
10842     <p>
10843     </p>
10844     <blockquote class="text">
10845     <p>CREATE EFFECT_INSTANCE &lt;effect-index&gt;
10846     </p>
10847     </blockquote><p>
10848    
10849     </p>
10850     <p>Where &lt;effect-index&gt; is the numerical ID of the
10851     effect as returned by the
10852     <a class='info' href='#LIST AVAILABLE_EFFECTS'>"LIST AVAILABLE_EFFECTS"<span> (</span><span class='info'>Get list of available effects</span><span>)</span></a>
10853     command.
10854     </p>
10855     <p>The sampler will try to load the requested effect and to
10856     create an instance of it.
10857     </p>
10858     <p>Note: Since the numerical ID of a certain effect can
10859     change at any time, you should not use this command in
10860     LSCP files to restore a certain effect at a later time! To
10861     store a sampler session including all its effects, use the
10862     <a class='info' href='#CREATE EFFECT_INSTANCE'>portable text-based
10863     version of "CREATE EFFECT_INSTANCE"<span> (</span><span class='info'>Creating an instance of an effect by its portable ID</span><span>)</span></a> instead! This
10864     allows to restore a sampler session with all its effects
10865     also on other machines, possibly even running a completely
10866     different operating system (e.g. Linux vs. Windows), with
10867     different plugin directories or plugin DLL names.
10868     </p>
10869     <p>Possible Answers:
10870     </p>
10871     <p>
10872     </p>
10873     <blockquote class="text">
10874     <p>"OK[&lt;effect-instance&gt;]" -
10875     </p>
10876     <blockquote class="text">
10877     <p>in case the effect instance was
10878     successfully created, where
10879     &lt;effect-instance&gt; is the numerical ID
10880     of the new effect instance
10881     </p>
10882     </blockquote>
10883    
10884    
10885     <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
10886     </p>
10887     <blockquote class="text">
10888     <p>in case the effect instance was spawned
10889     successfully, but there are noteworthy
10890     issue(s) related, providing an appropriate
10891     warning code and warning message
10892     </p>
10893     </blockquote>
10894    
10895    
10896     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
10897     </p>
10898     <blockquote class="text">
10899     <p>if the effect could not be instantiated
10900     </p>
10901     </blockquote>
10902    
10903    
10904     </blockquote><p>
10905    
10906     </p>
10907     <p>Examples:
10908     </p>
10909     <p>
10910     </p>
10911     <blockquote class="text">
10912     <p>C: "CREATE EFFECT_INSTANCE 72"
10913     </p>
10914     <p>S: "OK[5]"
10915     </p>
10916     </blockquote><p>
10917    
10918     </p>
10919     <a name="DESTROY EFFECT_INSTANCE"></a><br /><hr />
10920     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
10921     <a name="rfc.section.6.11.6"></a><h3>6.11.6.&nbsp;
10922     Destroy an effect instance</h3>
10923    
10924     <p>The front-end can destroy an unusued effect instance and
10925     thus freeing it from memory by sending the following command:
10926     </p>
10927     <p>
10928     </p>
10929     <blockquote class="text">
10930     <p>DESTROY EFFECT_INSTANCE &lt;effect-instance&gt;
10931     </p>
10932     </blockquote><p>
10933    
10934     </p>
10935     <p>Where &lt;effect-instance&gt; is the numerical ID of the
10936     effect instance as returned by the
10937     <a class='info' href='#CREATE EFFECT_INSTANCE'>"CREATE EFFECT_INSTANCE"<span> (</span><span class='info'>Creating an instance of an effect by its portable ID</span><span>)</span></a> or
10938     <a class='info' href='#LIST EFFECT_INSTANCES'>"LIST EFFECT_INSTANCES"<span> (</span><span class='info'>Get list of effect instances</span><span>)</span></a>
10939     command.
10940     </p>
10941     <p>The effect instance can only be destroyed if it's not
10942     used in any part of the sampler's audio signal path anymore.
10943     If the effect instance is still in use somewhere, trying to
10944     destroy the effect instance will result in an error
10945     message.
10946     </p>
10947     <p>Possible Answers:
10948     </p>
10949     <p>
10950     </p>
10951     <blockquote class="text">
10952     <p>"OK" -
10953     </p>
10954     <blockquote class="text">
10955     <p>in case the effect instance was successfully destroyed
10956     </p>
10957     </blockquote>
10958    
10959    
10960     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
10961     </p>
10962     <blockquote class="text">
10963     <p>in case it failed, providing an appropriate error code and
10964     error message
10965     </p>
10966     </blockquote>
10967    
10968    
10969     </blockquote><p>
10970    
10971     </p>
10972     <p>Examples:
10973     </p>
10974     <p>
10975     </p>
10976     <blockquote class="text">
10977     <p>C: "DESTROY EFFECT_INSTANCE 5"
10978     </p>
10979     <p>S: "OK"
10980     </p>
10981     </blockquote><p>
10982    
10983     </p>
10984     <a name="GET EFFECT_INSTANCES"></a><br /><hr />
10985     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
10986     <a name="rfc.section.6.11.7"></a><h3>6.11.7.&nbsp;
10987     Retrieve amount of effect instances</h3>
10988    
10989     <p>The front-end can retrieve the current amount of effect
10990     instances by sending the following command:
10991     </p>
10992     <p>
10993     </p>
10994     <blockquote class="text">
10995     <p>GET EFFECT_INSTANCES
10996     </p>
10997     </blockquote><p>
10998    
10999     </p>
11000     <p>Possible Answers:
11001     </p>
11002     <p>
11003     </p>
11004     <blockquote class="text">
11005     <p>The sampler will answer by returning the current
11006     number of effect instances created and not yet
11007     destroyed in the current sampler session.
11008     </p>
11009     </blockquote><p>
11010    
11011     </p>
11012     <p>Examples:
11013     </p>
11014     <p>
11015     </p>
11016     <blockquote class="text">
11017     <p>C: "GET EFFECT_INSTANCES"
11018     </p>
11019     <p>S: "14"
11020     </p>
11021     </blockquote><p>
11022    
11023     </p>
11024     <a name="LIST EFFECT_INSTANCES"></a><br /><hr />
11025     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
11026     <a name="rfc.section.6.11.8"></a><h3>6.11.8.&nbsp;
11027     Get list of effect instances</h3>
11028    
11029     <p>The front-end can retrieve the current list of effect
11030     instances by sending the following command:
11031     </p>
11032     <p>
11033     </p>
11034     <blockquote class="text">
11035     <p>LIST EFFECT_INSTANCES
11036     </p>
11037     </blockquote><p>
11038    
11039     </p>
11040     <p>Possible Answers:
11041     </p>
11042     <p>
11043     </p>
11044     <blockquote class="text">
11045     <p>The sampler will answer by returning a comma
11046     separated list with numerical IDs of effects
11047     instances.
11048    
11049     </p>
11050     </blockquote><p>
11051    
11052     </p>
11053     <p>Example:
11054     </p>
11055     <p>
11056     </p>
11057     <blockquote class="text">
11058     <p>C: "LIST EFFECT_INSTANCES"
11059     </p>
11060     <p>S: "9,11,14,15,16,17,25"
11061     </p>
11062     </blockquote><p>
11063    
11064     </p>
11065     <a name="GET EFFECT_INSTANCE INFO"></a><br /><hr />
11066     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
11067     <a name="rfc.section.6.11.9"></a><h3>6.11.9.&nbsp;
11068     Retrieving current information about an effect instance</h3>
11069    
11070     <p>The front-end can ask for the current informations about
11071     a particular effect instance by sending the following command:
11072     </p>
11073     <p>
11074     </p>
11075     <blockquote class="text">
11076     <p>GET EFFECT_INSTANCE INFO &lt;effect-instance&gt;
11077     </p>
11078     </blockquote><p>
11079    
11080     </p>
11081     <p>Where &lt;effect-instance&gt; is the numerical ID of an
11082     effect instance as returned by the
11083     <a class='info' href='#CREATE EFFECT_INSTANCE'>"CREATE EFFECT_INSTANCE"<span> (</span><span class='info'>Creating an instance of an effect by its portable ID</span><span>)</span></a>
11084     or
11085     <a class='info' href='#LIST EFFECT_INSTANCES'>"LIST EFFECT_INSTANCES"<span> (</span><span class='info'>Get list of effect instances</span><span>)</span></a>
11086     command.
11087     </p>
11088     <p>Possible Answers:
11089     </p>
11090     <p>
11091     </p>
11092     <blockquote class="text">
11093     <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
11094     Each answer line begins with the information
11095     category name, followed by a colon and then a space
11096     character &lt;SP&gt; and finally the info character
11097     string to that information category. At the
11098     moment the following categories are defined:
11099     </p>
11100     <p>
11101     </p>
11102     <blockquote class="text">
11103     <p>SYSTEM -
11104     </p>
11105     <blockquote class="text">
11106     <p>name of the effect plugin system
11107     the effect is based on
11108     (e.g. "LADSPA")
11109     </p>
11110     </blockquote>
11111    
11112    
11113     <p>MODULE -
11114     </p>
11115     <blockquote class="text">
11116     <p>module of the effect plugin
11117     system that contains this effect,
11118     the module is usually the
11119     dynamic-linked library (DLL)
11120     filename of the effect plugin,
11121     including full path (note that this
11122     filename may contain
11123     <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>)
11124     </p>
11125     </blockquote>
11126    
11127    
11128     <p>NAME -
11129     </p>
11130     <blockquote class="text">
11131     <p>character string defining the
11132     unique name of the effect within its
11133     module (note that the character
11134     string may contain
11135     <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>)
11136     </p>
11137     </blockquote>
11138    
11139    
11140     <p>DESCRIPTION -
11141     </p>
11142     <blockquote class="text">
11143     <p>human readable name of the
11144     effect, intended to be displayed in
11145     user interfaces (note that the
11146     character string may contain
11147     <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>)
11148     </p>
11149     </blockquote>
11150    
11151    
11152     <p>INPUT_CONTROLS -
11153     </p>
11154     <blockquote class="text">
11155     <p>amount of input controls the
11156     effect instance provides, to allow
11157     controlling the effect parameters in
11158     realtime
11159     </p>
11160     </blockquote>
11161    
11162    
11163     </blockquote>
11164    
11165    
11166     </blockquote><p>
11167    
11168     </p>
11169     <p>The mentioned fields above don't have to be in particular order.
11170     </p>
11171     <p>Example:
11172     </p>
11173     <p>
11174     </p>
11175     <blockquote class="text">
11176     <p>C: "GET EFFECT_INSTANCE INFO 3"
11177     </p>
11178     <p>S: "SYSTEM: LADSPA"
11179     </p>
11180     <p>&nbsp;&nbsp;&nbsp;"MODULE: /usr/lib/ladspa/mod_delay_1419.so"
11181     </p>
11182     <p>&nbsp;&nbsp;&nbsp;"NAME: modDelay"
11183     </p>
11184     <p>&nbsp;&nbsp;&nbsp;"DESCRIPTION: Modulatable delay"
11185     </p>
11186     <p>&nbsp;&nbsp;&nbsp;"INPUT_CONTROLS: 1"
11187     </p>
11188     <p>&nbsp;&nbsp;&nbsp;"."
11189     </p>
11190     </blockquote><p>
11191    
11192     </p>
11193     <a name="GET EFFECT_INSTANCE_INPUT_CONTROL INFO"></a><br /><hr />
11194     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
11195     <a name="rfc.section.6.11.10"></a><h3>6.11.10.&nbsp;
11196     Retrieving information about an effect parameter</h3>
11197    
11198     <p>Effects typically provide a certain set of effect
11199     parameters which can be altered by the user in realtime
11200     (e.g. depth of a reverb effect, duration of a delay effect,
11201     dry / wet signal ratio). Those controllable effect parameters
11202     are called "input controls". The front-end can ask for the
11203     current informations of an effect instance's input control
11204     by sending the following command:
11205     </p>
11206     <p>
11207     </p>
11208     <blockquote class="text">
11209     <p>GET EFFECT_INSTANCE_INPUT_CONTROL INFO &lt;effect-instance&gt; &lt;input-control&gt;
11210     </p>
11211     </blockquote><p>
11212    
11213     </p>
11214     <p>Where &lt;effect-instance&gt; is the numerical ID of an
11215     effect instance as returned by the
11216     <a class='info' href='#CREATE EFFECT_INSTANCE'>"CREATE EFFECT_INSTANCE"<span> (</span><span class='info'>Creating an instance of an effect by its portable ID</span><span>)</span></a>
11217     or
11218     <a class='info' href='#LIST EFFECT_INSTANCES'>"LIST EFFECT_INSTANCES"<span> (</span><span class='info'>Get list of effect instances</span><span>)</span></a>
11219     command and &lt;input-control&gt; is the index of the input
11220     control within the numerical bounds as returned by the
11221     "INPUT_CONTROLS" field of the
11222     <a class='info' href='#GET EFFECT_INSTANCE INFO'>"GET EFFECT_INSTANCE INFO"<span> (</span><span class='info'>Retrieving current information about an effect instance</span><span>)</span></a>
11223     command.
11224     </p>
11225     <p>Possible Answers:
11226     </p>
11227     <p>
11228     </p>
11229     <blockquote class="text">
11230     <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
11231     Each answer line begins with the information
11232     category name, followed by a colon and then a space
11233     character &lt;SP&gt; and finally the info character
11234     string to that information category. There are
11235     information categories which are always returned,
11236     independent of the respective effect parameter and
11237     there are optional information categories
11238     which are only shown for certain effect parameters.
11239     At the moment the following categories are defined:
11240     </p>
11241     <p>
11242     </p>
11243     <blockquote class="text">
11244     <p>DESCRIPTION -
11245     </p>
11246     <blockquote class="text">
11247     <p>(always returned)
11248     human readable name of the
11249     effect parameter, intended to be
11250     displayed in user interfaces (note
11251     that the character string may
11252     contain <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>)
11253     </p>
11254     </blockquote>
11255    
11256    
11257     <p>VALUE -
11258     </p>
11259     <blockquote class="text">
11260     <p>
11261     (always returned)
11262     current (optional dotted)
11263     floating point value of this effect
11264     parameter
11265     </p>
11266     </blockquote>
11267    
11268    
11269     <p>RANGE_MIN -
11270     </p>
11271     <blockquote class="text">
11272     <p>
11273     (optionally returned)
11274     minimum allowed value for this
11275     effect parameter
11276     </p>
11277     </blockquote>
11278    
11279    
11280     <p>RANGE_MAX -
11281     </p>
11282     <blockquote class="text">
11283     <p>
11284     (optionally returned)
11285     maximum allowed value for this
11286     effect parameter
11287     </p>
11288     </blockquote>
11289    
11290    
11291     <p>POSSIBILITIES -
11292     </p>
11293     <blockquote class="text">
11294     <p>
11295     (optionally returned)
11296     comma separated list of
11297     (optional dotted) floating point
11298     numbers, reflecting the exact set of
11299     possible values for this effect
11300     parameter
11301     </p>
11302     </blockquote>
11303    
11304    
11305     <p>DEFAULT -
11306     </p>
11307     <blockquote class="text">
11308     <p>
11309     (optionally returned)
11310     default value of this effect
11311     parameter
11312     </p>
11313     </blockquote>
11314    
11315    
11316     </blockquote>
11317    
11318    
11319     </blockquote><p>
11320    
11321     </p>
11322     <p>The mentioned fields above don't have to be in particular order.
11323     </p>
11324     <p>Example:
11325     </p>
11326     <p>
11327     </p>
11328     <blockquote class="text">
11329     <p>C: "GET EFFECT_INSTANCE_INPUT_CONTROL INFO 1 0"
11330     </p>
11331     <p>S: "DESCRIPTION: Base delay (s)"
11332     </p>
11333     <p>&nbsp;&nbsp;&nbsp;"VALUE: 0.500"
11334     </p>
11335     <p>&nbsp;&nbsp;&nbsp;"RANGE_MIN: 0.000"
11336     </p>
11337     <p>&nbsp;&nbsp;&nbsp;"."
11338     </p>
11339     </blockquote><p>
11340    
11341     </p>
11342     <a name="SET EFFECT_INSTANCE_INPUT_CONTROL VALUE"></a><br /><hr />
11343     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
11344     <a name="rfc.section.6.11.11"></a><h3>6.11.11.&nbsp;
11345     Altering an effect parameter</h3>
11346    
11347     <p>The front-end can alter the current value of an effect
11348     parameter by sending the following command:
11349     </p>
11350     <p>
11351     </p>
11352     <blockquote class="text">
11353     <p>SET EFFECT_INSTANCE_INPUT_CONTROL VALUE &lt;effect-instance&gt; &lt;input-control&gt; &lt;value&gt;
11354     </p>
11355     </blockquote><p>
11356    
11357     </p>
11358     <p>Where &lt;effect-instance&gt; is the numerical ID of the
11359     effect instance as returned by the
11360     <a class='info' href='#CREATE EFFECT_INSTANCE'>"CREATE EFFECT_INSTANCE"<span> (</span><span class='info'>Creating an instance of an effect by its portable ID</span><span>)</span></a> or
11361     <a class='info' href='#LIST EFFECT_INSTANCES'>"LIST EFFECT_INSTANCES"<span> (</span><span class='info'>Get list of effect instances</span><span>)</span></a>
11362     command, &lt;input-control&gt; is the index of the input
11363     control within the numerical bounds as returned by the
11364     "INPUT_CONTROLS" field of the
11365     <a class='info' href='#GET EFFECT_INSTANCE INFO'>"GET EFFECT_INSTANCE INFO"<span> (</span><span class='info'>Retrieving current information about an effect instance</span><span>)</span></a>
11366     command and &lt;value&gt; is the new (optional dotted)
11367     floating point value for this effect parameter.
11368     </p>
11369     <p>Possible Answers:
11370     </p>
11371     <p>
11372     </p>
11373     <blockquote class="text">
11374     <p>"OK" -
11375     </p>
11376     <blockquote class="text">
11377     <p>in case the effect was altered successfully
11378     </p>
11379     </blockquote>
11380    
11381    
11382     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
11383     </p>
11384     <blockquote class="text">
11385     <p>in case it failed, providing an appropriate error code and
11386     error message
11387     </p>
11388     </blockquote>
11389    
11390    
11391     </blockquote><p>
11392    
11393     </p>
11394     <p>Examples:
11395     </p>
11396     <p>
11397     </p>
11398     <blockquote class="text">
11399     <p>C: "SET EFFECT_INSTANCE_INPUT_CONTROL VALUE 0 1 0.5"
11400     </p>
11401     <p>S: "OK"
11402     </p>
11403     </blockquote><p>
11404    
11405     </p>
11406     <a name="GET SEND_EFFECT_CHAINS"></a><br /><hr />
11407     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
11408     <a name="rfc.section.6.11.12"></a><h3>6.11.12.&nbsp;
11409     Retrieve amount of send effect chains</h3>
11410    
11411     <p>The front-end can retrieve the current amount of send
11412     effect chains of an audio output device by sending the
11413     following command:
11414     </p>
11415     <p>
11416     </p>
11417     <blockquote class="text">
11418     <p>GET SEND_EFFECT_CHAINS &lt;audio-device&gt;
11419     </p>
11420     </blockquote><p>
11421    
11422     </p>
11423     <p>Where &lt;audio-device&gt; should be replaced by the
11424     numerical ID of the audio output device as given by the
11425     <a class='info' href='#CREATE AUDIO_OUTPUT_DEVICE'>"CREATE AUDIO_OUTPUT_DEVICE"<span> (</span><span class='info'>Creating an audio output device</span><span>)</span></a>
11426     or <a class='info' href='#LIST AUDIO_OUTPUT_DEVICES'>"LIST AUDIO_OUTPUT_DEVICES"<span> (</span><span class='info'>Getting all created audio output device list</span><span>)</span></a>
11427     command.
11428     </p>
11429     <p>Possible Answers:
11430     </p>
11431     <p>
11432     </p>
11433     <blockquote class="text">
11434     <p>The sampler will answer by returning the current
11435     number of send effect chains of the supplied audio
11436     output device.
11437     </p>
11438     </blockquote><p>
11439    
11440     </p>
11441     <p>Examples:
11442     </p>
11443     <p>
11444     </p>
11445     <blockquote class="text">
11446     <p>C: "GET SEND_EFFECT_CHAINS 0"
11447     </p>
11448     <p>S: "4"
11449     </p>
11450     </blockquote><p>
11451    
11452     </p>
11453     <a name="LIST SEND_EFFECT_CHAINS"></a><br /><hr />
11454     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
11455     <a name="rfc.section.6.11.13"></a><h3>6.11.13.&nbsp;
11456     Retrieve list of send effect chains</h3>
11457    
11458     <p>The front-end can retrieve the current list of send
11459     effect chains of an audio output device by sending the
11460     following command:
11461     </p>
11462     <p>
11463     </p>
11464     <blockquote class="text">
11465     <p>LIST SEND_EFFECT_CHAINS &lt;audio-device&gt;
11466     </p>
11467     </blockquote><p>
11468    
11469     </p>
11470     <p>Where &lt;audio-device&gt; should be replaced by the
11471     numerical ID of the audio output device as given by the
11472     <a class='info' href='#CREATE AUDIO_OUTPUT_DEVICE'>"CREATE AUDIO_OUTPUT_DEVICE"<span> (</span><span class='info'>Creating an audio output device</span><span>)</span></a>
11473     or <a class='info' href='#LIST AUDIO_OUTPUT_DEVICES'>"LIST AUDIO_OUTPUT_DEVICES"<span> (</span><span class='info'>Getting all created audio output device list</span><span>)</span></a>
11474     command.
11475     </p>
11476     <p>Possible Answers:
11477     </p>
11478     <p>
11479     </p>
11480     <blockquote class="text">
11481     <p>The sampler will answer by returning a comma
11482     separated list with numerical IDs of send effect
11483     chains of the supplied audio output device.
11484    
11485     </p>
11486     </blockquote><p>
11487    
11488     </p>
11489     <p>Examples:
11490     </p>
11491     <p>
11492     </p>
11493     <blockquote class="text">
11494     <p>C: "LIST SEND_EFFECT_CHAINS 0"
11495     </p>
11496     <p>S: "3,4,7"
11497     </p>
11498     </blockquote><p>
11499    
11500     </p>
11501     <a name="ADD SEND_EFFECT_CHAIN"></a><br /><hr />
11502     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
11503     <a name="rfc.section.6.11.14"></a><h3>6.11.14.&nbsp;
11504     Add send effect chain</h3>
11505    
11506     <p>The front-end can add a send effect chain by sending the
11507     following command:
11508     </p>
11509     <p>
11510     </p>
11511     <blockquote class="text">
11512     <p>ADD SEND_EFFECT_CHAIN &lt;audio-device&gt;
11513     </p>
11514     </blockquote><p>
11515    
11516     </p>
11517     <p>Where &lt;audio-device&gt; should be replaced by the
11518     numerical ID of the audio output device as given by the
11519     <a class='info' href='#CREATE AUDIO_OUTPUT_DEVICE'>"CREATE AUDIO_OUTPUT_DEVICE"<span> (</span><span class='info'>Creating an audio output device</span><span>)</span></a>
11520     or <a class='info' href='#LIST AUDIO_OUTPUT_DEVICES'>"LIST AUDIO_OUTPUT_DEVICES"<span> (</span><span class='info'>Getting all created audio output device list</span><span>)</span></a>
11521     command.
11522     </p>
11523     <p>Possible Answers:
11524     </p>
11525     <p>
11526     </p>
11527     <blockquote class="text">
11528     <p>"OK[&lt;effect-chain&gt;]" -
11529     </p>
11530     <blockquote class="text">
11531     <p>in case the send effect chain was
11532     added successfully, where
11533     &lt;effect-chain&gt; is the numerical ID
11534     of the new send effect chain
11535     </p>
11536     </blockquote>
11537    
11538    
11539     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
11540     </p>
11541     <blockquote class="text">
11542     <p>if the send effect chain could not be added
11543     </p>
11544     </blockquote>
11545    
11546    
11547     </blockquote><p>
11548    
11549     </p>
11550     <p>Examples:
11551     </p>
11552     <p>
11553     </p>
11554     <blockquote class="text">
11555     <p>C: "ADD SEND_EFFECT_CHAIN 0"
11556     </p>
11557     <p>S: "OK[2]"
11558     </p>
11559     </blockquote><p>
11560    
11561     </p>
11562     <a name="REMOVE SEND_EFFECT_CHAIN"></a><br /><hr />
11563     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
11564     <a name="rfc.section.6.11.15"></a><h3>6.11.15.&nbsp;
11565     Remove send effect chain</h3>
11566    
11567     <p>The front-end can remove a send effect chain by sending
11568     the following command:
11569     </p>
11570     <p>
11571     </p>
11572     <blockquote class="text">
11573     <p>REMOVE SEND_EFFECT_CHAIN &lt;audio-device&gt; &lt;effect-chain&gt;
11574     </p>
11575     </blockquote><p>
11576    
11577     </p>
11578     <p>Where &lt;audio-device&gt; should be replaced by the
11579     numerical ID of the audio output device as given by the
11580     <a class='info' href='#CREATE AUDIO_OUTPUT_DEVICE'>"CREATE AUDIO_OUTPUT_DEVICE"<span> (</span><span class='info'>Creating an audio output device</span><span>)</span></a>
11581     or <a class='info' href='#LIST AUDIO_OUTPUT_DEVICES'>"LIST AUDIO_OUTPUT_DEVICES"<span> (</span><span class='info'>Getting all created audio output device list</span><span>)</span></a>
11582     command and &lt;effect-chain&gt; by the numerical ID as
11583     returned by the
11584     <a class='info' href='#ADD SEND_EFFECT_CHAIN'>"ADD SEND_EFFECT_CHAIN"<span> (</span><span class='info'>Add send effect chain</span><span>)</span></a>
11585     or
11586     <a class='info' href='#LIST SEND_EFFECT_CHAINS'>"LIST SEND_EFFECT_CHAINS"<span> (</span><span class='info'>Retrieve list of send effect chains</span><span>)</span></a>
11587     command.
11588     </p>
11589     <p>Possible Answers:
11590     </p>
11591     <p>
11592     </p>
11593     <blockquote class="text">
11594     <p>"OK" -
11595     </p>
11596     <blockquote class="text">
11597     <p>in case the send effect chain was
11598     removed successfully
11599     </p>
11600     </blockquote>
11601    
11602    
11603     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
11604     </p>
11605     <blockquote class="text">
11606     <p>if the send effect chain could not be removed
11607     </p>
11608     </blockquote>
11609    
11610    
11611     </blockquote><p>
11612    
11613     </p>
11614     <p>Examples:
11615     </p>
11616     <p>
11617     </p>
11618     <blockquote class="text">
11619     <p>C: "REMOVE SEND_EFFECT_CHAIN 0 2"
11620     </p>
11621     <p>S: "OK"
11622     </p>
11623     </blockquote><p>
11624    
11625     </p>
11626     <a name="GET SEND_EFFECT_CHAIN INFO"></a><br /><hr />
11627     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
11628     <a name="rfc.section.6.11.16"></a><h3>6.11.16.&nbsp;
11629     Retrieving information about a send effect chain</h3>
11630    
11631     <p>The front-end can ask for informations of a send effect
11632     chain by sending the following command:
11633     </p>
11634     <p>
11635     </p>
11636     <blockquote class="text">
11637     <p>GET SEND_EFFECT_CHAIN INFO &lt;audio-device&gt; &lt;effect-chain&gt;
11638     </p>
11639     </blockquote><p>
11640    
11641     </p>
11642     <p>Where &lt;audio-device&gt; should be replaced by the
11643     numerical ID of the audio output device as given by the
11644     <a class='info' href='#CREATE AUDIO_OUTPUT_DEVICE'>"CREATE AUDIO_OUTPUT_DEVICE"<span> (</span><span class='info'>Creating an audio output device</span><span>)</span></a>
11645     or <a class='info' href='#LIST AUDIO_OUTPUT_DEVICES'>"LIST AUDIO_OUTPUT_DEVICES"<span> (</span><span class='info'>Getting all created audio output device list</span><span>)</span></a>
11646     command and &lt;effect-chain&gt; by the numerical ID as
11647     returned by the
11648     <a class='info' href='#ADD SEND_EFFECT_CHAIN'>"ADD SEND_EFFECT_CHAIN"<span> (</span><span class='info'>Add send effect chain</span><span>)</span></a>
11649     or
11650     <a class='info' href='#LIST SEND_EFFECT_CHAINS'>"LIST SEND_EFFECT_CHAINS"<span> (</span><span class='info'>Retrieve list of send effect chains</span><span>)</span></a>
11651     command.
11652     </p>
11653     <p>Possible Answers:
11654     </p>
11655     <p>
11656     </p>
11657     <blockquote class="text">
11658     <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
11659     Each answer line begins with the information
11660     category name, followed by a colon and then a space
11661     character &lt;SP&gt; and finally the info character
11662     string to that information category.
11663     At the moment the following categories are defined:
11664     </p>
11665     <p>
11666     </p>
11667     <blockquote class="text">
11668     <p>EFFECT_COUNT -
11669     </p>
11670     <blockquote class="text">
11671     <p>amount of effects in this send
11672     effect chain
11673     </p>
11674     </blockquote>
11675    
11676    
11677     <p>EFFECT_SEQUENCE -
11678     </p>
11679     <blockquote class="text">
11680     <p>comma separated list of the
11681     numerical IDs of the effect
11682     instances in this send effect chain,
11683     in the order as they are procssed in
11684     the effect chain
11685     </p>
11686     </blockquote>
11687    
11688    
11689     </blockquote>
11690    
11691    
11692     </blockquote><p>
11693    
11694     </p>
11695     <p>The mentioned fields above don't have to be in particular order.
11696     </p>
11697     <p>Example:
11698     </p>
11699     <p>
11700     </p>
11701     <blockquote class="text">
11702     <p>C: "GET SEND_EFFECT_CHAIN INFO 0 2"
11703     </p>
11704     <p>S: "EFFECT_COUNT: 3"
11705     </p>
11706     <p>&nbsp;&nbsp;&nbsp;"EFFECT_SEQUENCE: 31,4,7"
11707     </p>
11708     <p>&nbsp;&nbsp;&nbsp;"."
11709     </p>
11710     </blockquote><p>
11711    
11712     </p>
11713     <a name="APPEND SEND_EFFECT_CHAIN EFFECT"></a><br /><hr />
11714     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
11715     <a name="rfc.section.6.11.17"></a><h3>6.11.17.&nbsp;
11716     Append effect instance to a send effect chain</h3>
11717    
11718     <p>The front-end can add an unused effect instance to the
11719     end of a send effect chain by sending the following command:
11720     </p>
11721     <p>
11722     </p>
11723     <blockquote class="text">
11724     <p>APPEND SEND_EFFECT_CHAIN EFFECT &lt;audio-device&gt; &lt;effect-chain&gt; &lt;effect-instance&gt;
11725     </p>
11726     </blockquote><p>
11727    
11728     </p>
11729     <p>Where &lt;audio-device&gt; should be replaced by the
11730     numerical ID of the audio output device as given by the
11731     <a class='info' href='#CREATE AUDIO_OUTPUT_DEVICE'>"CREATE AUDIO_OUTPUT_DEVICE"<span> (</span><span class='info'>Creating an audio output device</span><span>)</span></a>
11732     or <a class='info' href='#LIST AUDIO_OUTPUT_DEVICES'>"LIST AUDIO_OUTPUT_DEVICES"<span> (</span><span class='info'>Getting all created audio output device list</span><span>)</span></a>
11733     command and &lt;effect-chain&gt; by the numerical ID as
11734     returned by the
11735     <a class='info' href='#ADD SEND_EFFECT_CHAIN'>"ADD SEND_EFFECT_CHAIN"<span> (</span><span class='info'>Add send effect chain</span><span>)</span></a>
11736     or
11737     <a class='info' href='#LIST SEND_EFFECT_CHAINS'>"LIST SEND_EFFECT_CHAINS"<span> (</span><span class='info'>Retrieve list of send effect chains</span><span>)</span></a>
11738     command and &lt;effect-instance&gt; as returned by the
11739     <a class='info' href='#CREATE EFFECT_INSTANCE'>"CREATE EFFECT_INSTANCE"<span> (</span><span class='info'>Creating an instance of an effect by its portable ID</span><span>)</span></a> or
11740     <a class='info' href='#LIST EFFECT_INSTANCES'>"LIST EFFECT_INSTANCES"<span> (</span><span class='info'>Get list of effect instances</span><span>)</span></a>
11741     command.
11742     </p>
11743     <p>Only unused effect instances can be added to the effect
11744     chain. Trying to add an effect instance which is already in
11745     use somewhere in the audio signal path of the sampler will
11746     result in an error.
11747     </p>
11748     <p>Possible Answers:
11749     </p>
11750     <p>
11751     </p>
11752     <blockquote class="text">
11753     <p>"OK" -
11754     </p>
11755     <blockquote class="text">
11756     <p>in case the effect instance was
11757     added successfully to the chain
11758     </p>
11759     </blockquote>
11760    
11761    
11762     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
11763     </p>
11764     <blockquote class="text">
11765     <p>if the effect instance could not be added
11766     </p>
11767     </blockquote>
11768    
11769    
11770     </blockquote><p>
11771    
11772     </p>
11773     <p>Examples:
11774     </p>
11775     <p>
11776     </p>
11777     <blockquote class="text">
11778     <p>C: "APPEND SEND_EFFECT_CHAIN EFFECT 0 2 38"
11779     </p>
11780     <p>S: "OK"
11781     </p>
11782     </blockquote><p>
11783    
11784     </p>
11785     <a name="INSERT SEND_EFFECT_CHAIN EFFECT"></a><br /><hr />
11786     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
11787     <a name="rfc.section.6.11.18"></a><h3>6.11.18.&nbsp;
11788     Insert effect instance to a send effect chain</h3>
11789    
11790     <p>The front-end can add an unused effect instance to a
11791     certain position of a send effect chain by sending the
11792     following command:
11793     </p>
11794     <p>
11795     </p>
11796     <blockquote class="text">
11797     <p>INSERT SEND_EFFECT_CHAIN EFFECT &lt;audio-device&gt; &lt;effect-chain&gt; &lt;chain-pos&gt; &lt;effect-instance&gt;
11798     </p>
11799     </blockquote><p>
11800    
11801     </p>
11802     <p>Where &lt;audio-device&gt; should be replaced by the
11803     numerical ID of the audio output device as given by the
11804     <a class='info' href='#CREATE AUDIO_OUTPUT_DEVICE'>"CREATE AUDIO_OUTPUT_DEVICE"<span> (</span><span class='info'>Creating an audio output device</span><span>)</span></a>
11805     or <a class='info' href='#LIST AUDIO_OUTPUT_DEVICES'>"LIST AUDIO_OUTPUT_DEVICES"<span> (</span><span class='info'>Getting all created audio output device list</span><span>)</span></a>
11806     command, &lt;effect-chain&gt; by the numerical ID as
11807     returned by the
11808     <a class='info' href='#ADD SEND_EFFECT_CHAIN'>"ADD SEND_EFFECT_CHAIN"<span> (</span><span class='info'>Add send effect chain</span><span>)</span></a>
11809     or
11810     <a class='info' href='#LIST SEND_EFFECT_CHAINS'>"LIST SEND_EFFECT_CHAINS"<span> (</span><span class='info'>Retrieve list of send effect chains</span><span>)</span></a>
11811     command, &lt;effect-instance&gt; as returned by the
11812     <a class='info' href='#CREATE EFFECT_INSTANCE'>"CREATE EFFECT_INSTANCE"<span> (</span><span class='info'>Creating an instance of an effect by its portable ID</span><span>)</span></a> or
11813     <a class='info' href='#LIST EFFECT_INSTANCES'>"LIST EFFECT_INSTANCES"<span> (</span><span class='info'>Get list of effect instances</span><span>)</span></a>
11814     command and &lt;chain-pos&gt; the exact position of the
11815     effect chain where the supplied effect shall be inserted
11816     to.
11817     </p>
11818     <p>Only unused effect instances can be added to the effect
11819     chain. Trying to add an effect instance which is already in
11820     use somewhere in the audio signal path of the sampler will
11821     result in an error.
11822     </p>
11823     <p>Possible Answers:
11824     </p>
11825     <p>
11826     </p>
11827     <blockquote class="text">
11828     <p>"OK" -
11829     </p>
11830     <blockquote class="text">
11831     <p>in case the effect instance was
11832     added successfully to the chain
11833     </p>
11834     </blockquote>
11835    
11836    
11837     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
11838     </p>
11839     <blockquote class="text">
11840     <p>if the effect instance could not be added
11841     </p>
11842     </blockquote>
11843    
11844    
11845     </blockquote><p>
11846    
11847     </p>
11848     <p>Examples:
11849     </p>
11850     <p>
11851     </p>
11852     <blockquote class="text">
11853     <p>C: "INSERT SEND_EFFECT_CHAIN EFFECT 0 2 4 38"
11854     </p>
11855     <p>S: "OK"
11856     </p>
11857     </blockquote><p>
11858    
11859     </p>
11860     <a name="REMOVE SEND_EFFECT_CHAIN EFFECT"></a><br /><hr />
11861     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
11862     <a name="rfc.section.6.11.19"></a><h3>6.11.19.&nbsp;
11863     Remove effect instance from send effect chain</h3>
11864    
11865     <p>The front-end can remove an effect instance from a
11866     certain position of a send effect chain by sending the
11867     following command:
11868     </p>
11869     <p>
11870     </p>
11871     <blockquote class="text">
11872     <p>REMOVE SEND_EFFECT_CHAIN EFFECT &lt;audio-device&gt; &lt;effect-chain&gt; &lt;chain-pos&gt;
11873     </p>
11874     </blockquote><p>
11875    
11876     </p>
11877     <p>Where &lt;audio-device&gt; should be replaced by the
11878     numerical ID of the audio output device as given by the
11879     <a class='info' href='#CREATE AUDIO_OUTPUT_DEVICE'>"CREATE AUDIO_OUTPUT_DEVICE"<span> (</span><span class='info'>Creating an audio output device</span><span>)</span></a>
11880     or <a class='info' href='#LIST AUDIO_OUTPUT_DEVICES'>"LIST AUDIO_OUTPUT_DEVICES"<span> (</span><span class='info'>Getting all created audio output device list</span><span>)</span></a>
11881     command, &lt;effect-chain&gt; by the numerical ID as
11882     returned by the
11883     <a class='info' href='#ADD SEND_EFFECT_CHAIN'>"ADD SEND_EFFECT_CHAIN"<span> (</span><span class='info'>Add send effect chain</span><span>)</span></a>
11884     or
11885     <a class='info' href='#LIST SEND_EFFECT_CHAINS'>"LIST SEND_EFFECT_CHAINS"<span> (</span><span class='info'>Retrieve list of send effect chains</span><span>)</span></a>
11886     command and &lt;chain-pos&gt; the exact position of the
11887     effect instance to be removed from the effect chain.
11888     </p>
11889     <p>Possible Answers:
11890     </p>
11891     <p>
11892     </p>
11893     <blockquote class="text">
11894     <p>"OK" -
11895     </p>
11896     <blockquote class="text">
11897     <p>in case the effect instance was
11898     removed successfully
11899     </p>
11900     </blockquote>
11901    
11902    
11903     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
11904     </p>
11905     <blockquote class="text">
11906     <p>if the effect instance could not be removed
11907     </p>
11908     </blockquote>
11909    
11910    
11911     </blockquote><p>
11912    
11913     </p>
11914     <p>Examples:
11915     </p>
11916     <p>
11917     </p>
11918     <blockquote class="text">
11919     <p>C: "REMOVE SEND_EFFECT_CHAIN EFFECT 0 2 4"
11920     </p>
11921     <p>S: "OK"
11922     </p>
11923     </blockquote><p>
11924    
11925     </p>
11926     <a name="command_syntax"></a><br /><hr />
11927     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
11928     <a name="rfc.section.7"></a><h3>7.&nbsp;
11929     Command Syntax</h3>
11930    
11931     <p>The grammar of the control protocol as descibed in <a class='info' href='#control_commands'>Section&nbsp;6<span> (</span><span class='info'>Description for control commands</span><span>)</span></a>
11932     is defined below using Backus-Naur Form (BNF as described in <a class='info' href='#RFC2234'>[RFC2234]<span> (</span><span class='info'>Crocker, D. and P. Overell, &ldquo;Augmented BNF for Syntax Specifications,&rdquo; 1997.</span><span>)</span></a>)
11933     where applicable.
11934    
11935     </p>
11936     <p>input =
11937     </p>
11938     <blockquote class="text">
11939     <p>line LF
11940    
11941     </p>
11942     <p>/ line CR LF
11943    
11944     </p>
11945     </blockquote><p>
11946    
11947     </p>
11948     <p>line =
11949     </p>
11950     <blockquote class="text">
11951     <p>/* epsilon (empty line ignored) */
11952    
11953     </p>
11954     <p>/ comment
11955    
11956     </p>
11957     <p>/ command
11958    
11959     </p>
11960     <p>/ error
11961    
11962     </p>
11963     </blockquote><p>
11964    
11965     </p>
11966     <p>comment =
11967     </p>
11968     <blockquote class="text">
11969     <p>'#'
11970    
11971     </p>
11972     <p>/ comment '#'
11973    
11974     </p>
11975     <p>/ comment SP
11976    
11977     </p>
11978     <p>/ comment number
11979    
11980     </p>
11981     <p>/ comment string
11982    
11983     </p>
11984     </blockquote><p>
11985    
11986     </p>
11987     <p>command =
11988     </p>
11989     <blockquote class="text">
11990     <p>ADD SP add_instruction
11991    
11992     </p>
11993     <p>/ MAP SP map_instruction
11994    
11995     </p>
11996     <p>/ UNMAP SP unmap_instruction
11997    
11998     </p>
11999     <p>/ GET SP get_instruction
12000    
12001     </p>
12002     <p>/ CREATE SP create_instruction
12003    
12004     </p>
12005     <p>/ DESTROY SP destroy_instruction
12006    
12007     </p>
12008     <p>/ LIST SP list_instruction
12009    
12010     </p>
12011     <p>/ LOAD SP load_instruction
12012    
12013     </p>
12014     <p>/ REMOVE SP remove_instruction
12015    
12016     </p>
12017     <p>/ SET SP set_instruction
12018    
12019     </p>
12020     <p>/ SUBSCRIBE SP subscribe_event
12021    
12022     </p>
12023     <p>/ UNSUBSCRIBE SP unsubscribe_event
12024    
12025     </p>
12026     <p>/ RESET SP reset_instruction
12027    
12028     </p>
12029     <p>/ CLEAR SP clear_instruction
12030    
12031     </p>
12032     <p>/ FIND SP find_instruction
12033    
12034     </p>
12035     <p>/ MOVE SP move_instruction
12036    
12037     </p>
12038     <p>/ COPY SP copy_instruction
12039    
12040     </p>
12041     <p>/ EDIT SP edit_instruction
12042    
12043     </p>
12044     <p>/ FORMAT SP format_instruction
12045    
12046     </p>
12047     <p>/ SEND SP send_instruction
12048    
12049     </p>
12050     <p>/ APPEND SP append_instruction
12051    
12052     </p>
12053     <p>/ INSERT SP insert_instruction
12054    
12055     </p>
12056     <p>/ RESET
12057    
12058     </p>
12059     <p>/ QUIT
12060    
12061     </p>
12062     </blockquote><p>
12063    
12064     </p>
12065     <p>add_instruction =
12066     </p>
12067     <blockquote class="text">
12068     <p>CHANNEL
12069    
12070     </p>
12071     <p>/ CHANNEL SP MIDI_INPUT SP sampler_channel SP device_index
12072    
12073     </p>
12074     <p>/ CHANNEL SP MIDI_INPUT SP sampler_channel SP device_index SP midi_input_port_index
12075    
12076     </p>
12077     <p>/ DB_INSTRUMENT_DIRECTORY SP db_path
12078    
12079     </p>
12080     <p>/ DB_INSTRUMENTS SP NON_MODAL SP scan_mode SP db_path SP filename
12081    
12082     </p>
12083     <p>/ DB_INSTRUMENTS SP NON_MODAL SP scan_mode SP FILE_AS_DIR SP db_path SP filename
12084    
12085     </p>
12086     <p>/ DB_INSTRUMENTS SP scan_mode SP db_path SP filename
12087    
12088     </p>
12089     <p>/ DB_INSTRUMENTS SP scan_mode SP FILE_AS_DIR SP db_path SP filename
12090    
12091     </p>
12092     <p>/ DB_INSTRUMENTS SP NON_MODAL SP db_path SP filename
12093    
12094     </p>
12095     <p>/ DB_INSTRUMENTS SP NON_MODAL SP db_path SP filename SP instrument_index
12096    
12097     </p>
12098     <p>/ DB_INSTRUMENTS SP db_path SP filename
12099    
12100     </p>
12101     <p>/ DB_INSTRUMENTS SP db_path SP filename SP instrument_index
12102    
12103     </p>
12104     <p>/ MIDI_INSTRUMENT_MAP
12105    
12106     </p>
12107     <p>/ MIDI_INSTRUMENT_MAP SP map_name
12108    
12109     </p>
12110     <p>/ SEND_EFFECT_CHAIN SP device_index
12111    
12112     </p>
12113     </blockquote><p>
12114    
12115     </p>
12116     <p>subscribe_event =
12117     </p>
12118     <blockquote class="text">
12119     <p>AUDIO_OUTPUT_DEVICE_COUNT
12120    
12121     </p>
12122     <p>/ AUDIO_OUTPUT_DEVICE_INFO
12123    
12124     </p>
12125     <p>/ MIDI_INPUT_DEVICE_COUNT
12126    
12127     </p>
12128     <p>/ MIDI_INPUT_DEVICE_INFO
12129    
12130     </p>
12131     <p>/ CHANNEL_COUNT
12132    
12133     </p>
12134     <p>/ CHANNEL_MIDI
12135    
12136     </p>
12137     <p>/ DEVICE_MIDI
12138    
12139     </p>
12140     <p>/ VOICE_COUNT
12141    
12142     </p>
12143     <p>/ STREAM_COUNT
12144    
12145     </p>
12146     <p>/ BUFFER_FILL
12147    
12148     </p>
12149     <p>/ CHANNEL_INFO
12150    
12151     </p>
12152     <p>/ FX_SEND_COUNT
12153    
12154     </p>
12155     <p>/ FX_SEND_INFO
12156    
12157     </p>
12158     <p>/ MIDI_INSTRUMENT_MAP_COUNT
12159    
12160     </p>
12161     <p>/ MIDI_INSTRUMENT_MAP_INFO
12162    
12163     </p>
12164     <p>/ MIDI_INSTRUMENT_COUNT
12165    
12166     </p>
12167     <p>/ MIDI_INSTRUMENT_INFO
12168    
12169     </p>
12170     <p>/ DB_INSTRUMENT_DIRECTORY_COUNT
12171    
12172     </p>
12173     <p>/ DB_INSTRUMENT_DIRECTORY_INFO
12174    
12175     </p>
12176     <p>/ DB_INSTRUMENT_COUNT
12177    
12178     </p>
12179     <p>/ DB_INSTRUMENT_INFO
12180    
12181     </p>
12182     <p>/ DB_INSTRUMENTS_JOB_INFO
12183    
12184     </p>
12185     <p>/ MISCELLANEOUS
12186    
12187     </p>
12188     <p>/ TOTAL_STREAM_COUNT
12189    
12190     </p>
12191     <p>/ TOTAL_VOICE_COUNT
12192    
12193     </p>
12194     <p>/ GLOBAL_INFO
12195    
12196     </p>
12197     <p>/ EFFECT_INSTANCE_COUNT
12198    
12199     </p>
12200     <p>/ EFFECT_INSTANCE_INFO
12201    
12202     </p>
12203     <p>/ SEND_EFFECT_CHAIN_COUNT
12204    
12205     </p>
12206     <p>/ SEND_EFFECT_CHAIN_INFO
12207    
12208     </p>
12209     </blockquote><p>
12210    
12211     </p>
12212     <p>unsubscribe_event =
12213     </p>
12214     <blockquote class="text">
12215     <p>AUDIO_OUTPUT_DEVICE_COUNT
12216    
12217     </p>
12218     <p>/ AUDIO_OUTPUT_DEVICE_INFO
12219    
12220     </p>
12221     <p>/ MIDI_INPUT_DEVICE_COUNT
12222    
12223     </p>
12224     <p>/ MIDI_INPUT_DEVICE_INFO
12225    
12226     </p>
12227     <p>/ CHANNEL_COUNT
12228    
12229     </p>
12230     <p>/ CHANNEL_MIDI
12231    
12232     </p>
12233     <p>/ DEVICE_MIDI
12234    
12235     </p>
12236     <p>/ VOICE_COUNT
12237    
12238     </p>
12239     <p>/ STREAM_COUNT
12240    
12241     </p>
12242     <p>/ BUFFER_FILL
12243    
12244     </p>
12245     <p>/ CHANNEL_INFO
12246    
12247     </p>
12248     <p>/ FX_SEND_COUNT
12249    
12250     </p>
12251     <p>/ FX_SEND_INFO
12252    
12253     </p>
12254     <p>/ MIDI_INSTRUMENT_MAP_COUNT
12255    
12256     </p>
12257     <p>/ MIDI_INSTRUMENT_MAP_INFO
12258    
12259     </p>
12260     <p>/ MIDI_INSTRUMENT_COUNT
12261    
12262     </p>
12263     <p>/ MIDI_INSTRUMENT_INFO
12264    
12265     </p>
12266     <p>/ DB_INSTRUMENT_DIRECTORY_COUNT
12267    
12268     </p>
12269     <p>/ DB_INSTRUMENT_DIRECTORY_INFO
12270    
12271     </p>
12272     <p>/ DB_INSTRUMENT_COUNT
12273    
12274     </p>
12275     <p>/ DB_INSTRUMENT_INFO
12276    
12277     </p>
12278     <p>/ DB_INSTRUMENTS_JOB_INFO
12279    
12280     </p>
12281     <p>/ MISCELLANEOUS
12282    
12283     </p>
12284     <p>/ TOTAL_STREAM_COUNT
12285    
12286     </p>
12287     <p>/ TOTAL_VOICE_COUNT
12288    
12289     </p>
12290     <p>/ GLOBAL_INFO
12291    
12292     </p>
12293     <p>/ EFFECT_INSTANCE_COUNT
12294    
12295     </p>
12296     <p>/ EFFECT_INSTANCE_INFO
12297    
12298     </p>
12299     <p>/ SEND_EFFECT_CHAIN_COUNT
12300    
12301     </p>
12302     <p>/ SEND_EFFECT_CHAIN_INFO
12303    
12304     </p>
12305     </blockquote><p>
12306    
12307     </p>
12308     <p>map_instruction =
12309     </p>
12310     <blockquote class="text">
12311     <p>MIDI_INSTRUMENT SP modal_arg midi_map SP midi_bank SP midi_prog SP engine_name SP filename SP instrument_index SP volume_value
12312    
12313     </p>
12314     <p>/ MIDI_INSTRUMENT SP modal_arg midi_map SP midi_bank SP midi_prog SP engine_name SP filename SP instrument_index SP volume_value SP instr_load_mode
12315    
12316     </p>
12317     <p>/ MIDI_INSTRUMENT SP modal_arg midi_map SP midi_bank SP midi_prog SP engine_name SP filename SP instrument_index SP volume_value SP entry_name
12318    
12319     </p>
12320     <p>/ MIDI_INSTRUMENT SP modal_arg midi_map SP midi_bank SP midi_prog SP engine_name SP filename SP instrument_index SP volume_value SP instr_load_mode SP entry_name
12321    
12322     </p>
12323     </blockquote><p>
12324    
12325     </p>
12326     <p>unmap_instruction =
12327     </p>
12328     <blockquote class="text">
12329     <p>MIDI_INSTRUMENT SP midi_map SP midi_bank SP midi_prog
12330    
12331     </p>
12332     </blockquote><p>
12333    
12334     </p>
12335     <p>remove_instruction =
12336     </p>
12337     <blockquote class="text">
12338     <p>CHANNEL SP sampler_channel
12339    
12340     </p>
12341     <p>/ CHANNEL SP MIDI_INPUT SP sampler_channel
12342    
12343     </p>
12344     <p>/ CHANNEL SP MIDI_INPUT SP sampler_channel SP device_index
12345    
12346     </p>
12347     <p>/ CHANNEL SP MIDI_INPUT SP sampler_channel SP device_index SP midi_input_port_index
12348    
12349     </p>
12350     <p>/ MIDI_INSTRUMENT_MAP SP midi_map
12351    
12352     </p>
12353     <p>/ MIDI_INSTRUMENT_MAP SP ALL
12354    
12355     </p>
12356     <p>/ SEND_EFFECT_CHAIN SP device_index SP effect_chain
12357    
12358     </p>
12359     <p>/ SEND_EFFECT_CHAIN SP EFFECT SP device_index SP effect_chain SP chain_pos
12360    
12361     </p>
12362     <p>/ FX_SEND SP EFFECT SP sampler_channel SP fx_send_id
12363    
12364     </p>
12365     <p>/ DB_INSTRUMENT_DIRECTORY SP FORCE SP db_path
12366    
12367     </p>
12368     <p>/ DB_INSTRUMENT_DIRECTORY SP db_path
12369    
12370     </p>
12371     <p>/ DB_INSTRUMENT SP db_path
12372    
12373     </p>
12374     </blockquote><p>
12375    
12376     </p>
12377     <p>get_instruction =
12378     </p>
12379     <blockquote class="text">
12380     <p>AVAILABLE_ENGINES
12381    
12382     </p>
12383     <p>/ AVAILABLE_EFFECTS
12384    
12385     </p>
12386     <p>/ EFFECT_INSTANCES
12387    
12388     </p>
12389     <p>/ EFFECT SP INFO SP effect_index
12390    
12391     </p>
12392     <p>/ EFFECT_INSTANCE SP INFO SP effect_instance
12393    
12394     </p>
12395     <p>/ EFFECT_INSTANCE_INPUT_CONTROL SP INFO SP effect_instance SP input_control
12396    
12397     </p>
12398     <p>/ SEND_EFFECT_CHAINS SP device_index
12399    
12400     </p>
12401     <p>/ SEND_EFFECT_CHAIN SP INFO SP device_index SP effect_chain
12402    
12403     </p>
12404     <p>/ AVAILABLE_MIDI_INPUT_DRIVERS
12405    
12406     </p>
12407     <p>/ MIDI_INPUT_DRIVER SP INFO SP string
12408    
12409     </p>
12410     <p>/ MIDI_INPUT_DRIVER_PARAMETER SP INFO SP string SP string
12411    
12412     </p>
12413     <p>/ MIDI_INPUT_DRIVER_PARAMETER SP INFO SP string SP string SP key_val_list
12414    
12415     </p>
12416     <p>/ AVAILABLE_AUDIO_OUTPUT_DRIVERS
12417    
12418     </p>
12419     <p>/ AUDIO_OUTPUT_DRIVER SP INFO SP string
12420    
12421     </p>
12422     <p>/ AUDIO_OUTPUT_DRIVER_PARAMETER SP INFO SP string SP string
12423    
12424     </p>
12425     <p>/ AUDIO_OUTPUT_DRIVER_PARAMETER SP INFO SP string SP string SP key_val_list
12426    
12427     </p>
12428     <p>/ AUDIO_OUTPUT_DEVICES
12429    
12430     </p>
12431     <p>/ MIDI_INPUT_DEVICES
12432    
12433     </p>
12434     <p>/ AUDIO_OUTPUT_DEVICE SP INFO SP number
12435    
12436     </p>
12437     <p>/ MIDI_INPUT_DEVICE SP INFO SP number
12438    
12439     </p>
12440     <p>/ MIDI_INPUT_PORT SP INFO SP number SP number
12441    
12442     </p>
12443     <p>/ MIDI_INPUT_PORT_PARAMETER SP INFO SP number SP number SP string
12444    
12445     </p>
12446     <p>/ AUDIO_OUTPUT_CHANNEL SP INFO SP number SP number
12447    
12448     </p>
12449     <p>/ AUDIO_OUTPUT_CHANNEL_PARAMETER SP INFO SP number SP number SP string
12450    
12451     </p>
12452     <p>/ CHANNELS
12453    
12454     </p>
12455     <p>/ CHANNEL SP INFO SP sampler_channel
12456    
12457     </p>
12458     <p>/ CHANNEL SP BUFFER_FILL SP buffer_size_type SP sampler_channel
12459    
12460     </p>
12461     <p>/ CHANNEL SP STREAM_COUNT SP sampler_channel
12462    
12463     </p>
12464     <p>/ CHANNEL SP VOICE_COUNT SP sampler_channel
12465    
12466     </p>
12467     <p>/ ENGINE SP INFO SP engine_name
12468    
12469     </p>
12470     <p>/ SERVER SP INFO
12471    
12472     </p>
12473     <p>/ TOTAL_STREAM_COUNT
12474    
12475     </p>
12476     <p>/ TOTAL_VOICE_COUNT
12477    
12478     </p>
12479     <p>/ TOTAL_VOICE_COUNT_MAX
12480    
12481     </p>
12482     <p>/ MIDI_INSTRUMENTS SP midi_map
12483    
12484     </p>
12485     <p>/ MIDI_INSTRUMENTS SP ALL
12486    
12487     </p>
12488     <p>/ MIDI_INSTRUMENT SP INFO SP midi_map SP midi_bank SP midi_prog
12489    
12490     </p>
12491     <p>/ MIDI_INSTRUMENT_MAPS
12492    
12493     </p>
12494     <p>/ MIDI_INSTRUMENT_MAP SP INFO SP midi_map
12495    
12496     </p>
12497     <p>/ FX_SENDS SP sampler_channel
12498    
12499     </p>
12500     <p>/ FX_SEND SP INFO SP sampler_channel SP fx_send_id
12501    
12502     </p>
12503     <p>/ DB_INSTRUMENT_DIRECTORIES SP RECURSIVE SP db_path
12504    
12505     </p>
12506     <p>/ DB_INSTRUMENT_DIRECTORIES SP db_path
12507    
12508     </p>
12509     <p>/ DB_INSTRUMENT_DIRECTORY SP INFO SP db_path
12510    
12511     </p>
12512     <p>/ DB_INSTRUMENTS SP RECURSIVE SP db_path
12513    
12514     </p>
12515     <p>/ DB_INSTRUMENTS SP db_path
12516    
12517     </p>
12518     <p>/ DB_INSTRUMENT SP INFO SP db_path
12519    
12520     </p>
12521     <p>/ DB_INSTRUMENTS_JOB SP INFO SP number
12522    
12523     </p>
12524     <p>/ VOLUME
12525    
12526     </p>
12527     <p>/ VOICES
12528    
12529     </p>
12530     <p>/ STREAMS
12531    
12532     </p>
12533     <p>/ FILE SP INSTRUMENTS SP filename
12534    
12535     </p>
12536     <p>/ FILE SP INSTRUMENT SP INFO SP filename SP instrument_index
12537    
12538     </p>
12539     </blockquote><p>
12540    
12541     </p>
12542     <p>set_instruction =
12543     </p>
12544     <blockquote class="text">
12545     <p>AUDIO_OUTPUT_DEVICE_PARAMETER SP number SP string '=' param_val_list
12546    
12547     </p>
12548     <p>/ AUDIO_OUTPUT_CHANNEL_PARAMETER SP number SP number SP string '=' param_val_list
12549    
12550     </p>
12551     <p>/ MIDI_INPUT_DEVICE_PARAMETER SP number SP string '=' param_val_list
12552    
12553     </p>
12554     <p>/ MIDI_INPUT_PORT_PARAMETER SP number SP number SP string '=' NONE
12555    
12556     </p>
12557     <p>/ MIDI_INPUT_PORT_PARAMETER SP number SP number SP string '=' param_val_list
12558    
12559     </p>
12560     <p>/ EFFECT_INSTANCE_INPUT_CONTROL SP VALUE SP effect_instance SP input_control SP control_value
12561    
12562     </p>
12563     <p>/ CHANNEL SP set_chan_instruction
12564    
12565     </p>
12566     <p>/ MIDI_INSTRUMENT_MAP SP NAME SP midi_map SP map_name
12567    
12568     </p>
12569     <p>/ FX_SEND SP NAME SP sampler_channel SP fx_send_id SP fx_send_name
12570    
12571     </p>
12572     <p>/ FX_SEND SP AUDIO_OUTPUT_CHANNEL SP sampler_channel SP fx_send_id SP audio_channel_index SP audio_channel_index
12573    
12574     </p>
12575     <p>/ FX_SEND SP MIDI_CONTROLLER SP sampler_channel SP fx_send_id SP midi_ctrl
12576    
12577     </p>
12578     <p>/ FX_SEND SP LEVEL SP sampler_channel SP fx_send_id SP volume_value
12579    
12580     </p>
12581     <p>/ FX_SEND SP EFFECT SP sampler_channel SP fx_send_id SP effect_chain SP chain_pos
12582    
12583     </p>
12584     <p>/ DB_INSTRUMENT_DIRECTORY SP NAME SP db_path SP stringval_escaped
12585    
12586     </p>
12587     <p>/ DB_INSTRUMENT_DIRECTORY SP DESCRIPTION SP db_path SP stringval_escaped
12588    
12589     </p>
12590     <p>/ DB_INSTRUMENT SP NAME SP db_path SP stringval_escaped
12591    
12592     </p>
12593     <p>/ DB_INSTRUMENT SP DESCRIPTION SP db_path SP stringval_escaped
12594    
12595     </p>
12596     <p>/ DB_INSTRUMENT SP FILE_PATH SP filename SP filename
12597    
12598     </p>
12599     <p>/ ECHO SP boolean
12600    
12601     </p>
12602     <p>/ VOLUME SP volume_value
12603    
12604     </p>
12605     <p>/ VOICES SP number
12606    
12607     </p>
12608     <p>/ STREAMS SP number
12609    
12610     </p>
12611     </blockquote><p>
12612    
12613     </p>
12614     <p>create_instruction =
12615     </p>
12616     <blockquote class="text">
12617     <p>AUDIO_OUTPUT_DEVICE SP string SP key_val_list
12618    
12619     </p>
12620     <p>/ AUDIO_OUTPUT_DEVICE SP string
12621    
12622     </p>
12623     <p>/ MIDI_INPUT_DEVICE SP string SP key_val_list
12624    
12625     </p>
12626     <p>/ MIDI_INPUT_DEVICE SP string
12627    
12628     </p>
12629     <p>/ FX_SEND SP sampler_channel SP midi_ctrl
12630    
12631     </p>
12632     <p>/ FX_SEND SP sampler_channel SP midi_ctrl SP fx_send_name
12633    
12634     </p>
12635     <p>/ EFFECT_INSTANCE SP effect_index
12636    
12637     </p>
12638     <p>/ EFFECT_INSTANCE SP effect_system SP module SP effect_name
12639    
12640     </p>
12641     </blockquote><p>
12642    
12643     </p>
12644     <p>reset_instruction =
12645     </p>
12646     <blockquote class="text">
12647     <p>CHANNEL SP sampler_channel
12648    
12649     </p>
12650     </blockquote><p>
12651    
12652     </p>
12653     <p>clear_instruction =
12654     </p>
12655     <blockquote class="text">
12656     <p>MIDI_INSTRUMENTS SP midi_map
12657    
12658     </p>
12659     <p>/ MIDI_INSTRUMENTS SP ALL
12660    
12661     </p>
12662     </blockquote><p>
12663    
12664     </p>
12665     <p>find_instruction =
12666     </p>
12667     <blockquote class="text">
12668     <p>DB_INSTRUMENTS SP NON_RECURSIVE SP db_path SP query_val_list
12669    
12670     </p>
12671     <p>/ DB_INSTRUMENTS SP db_path SP query_val_list
12672    
12673     </p>
12674     <p>/ DB_INSTRUMENT_DIRECTORIES SP NON_RECURSIVE SP db_path SP query_val_list
12675    
12676     </p>
12677     <p>/ DB_INSTRUMENT_DIRECTORIES SP db_path SP query_val_list
12678    
12679     </p>
12680     <p>/ LOST SP DB_INSTRUMENT_FILES
12681    
12682     </p>
12683     </blockquote><p>
12684    
12685     </p>
12686     <p>move_instruction =
12687     </p>
12688     <blockquote class="text">
12689     <p>DB_INSTRUMENT_DIRECTORY SP db_path SP db_path
12690    
12691     </p>
12692     <p>/ DB_INSTRUMENT SP db_path SP db_path
12693    
12694     </p>
12695     </blockquote><p>
12696    
12697     </p>
12698     <p>copy_instruction =
12699     </p>
12700     <blockquote class="text">
12701     <p>DB_INSTRUMENT_DIRECTORY SP db_path SP db_path
12702    
12703     </p>
12704     <p>/ DB_INSTRUMENT SP db_path SP db_path
12705    
12706     </p>
12707     </blockquote><p>
12708    
12709     </p>
12710     <p>destroy_instruction =
12711     </p>
12712     <blockquote class="text">
12713     <p>AUDIO_OUTPUT_DEVICE SP number
12714    
12715     </p>
12716     <p>/ MIDI_INPUT_DEVICE SP number
12717    
12718     </p>
12719     <p>/ FX_SEND SP sampler_channel SP fx_send_id
12720    
12721     </p>
12722     <p>/ EFFECT_INSTANCE SP number
12723    
12724     </p>
12725     </blockquote><p>
12726    
12727     </p>
12728     <p>load_instruction =
12729     </p>
12730     <blockquote class="text">
12731     <p>INSTRUMENT SP load_instr_args
12732    
12733     </p>
12734     <p>/ ENGINE SP load_engine_args
12735    
12736     </p>
12737     </blockquote><p>
12738    
12739     </p>
12740     <p>append_instruction =
12741     </p>
12742     <blockquote class="text">
12743     <p>SEND_EFFECT_CHAIN SP EFFECT SP device_index SP effect_chain SP effect_instance
12744    
12745     </p>
12746     </blockquote><p>
12747    
12748     </p>
12749     <p>insert_instruction =
12750     </p>
12751     <blockquote class="text">
12752     <p>SEND_EFFECT_CHAIN SP EFFECT SP device_index SP effect_chain SP chain_pos SP effect_instance
12753    
12754     </p>
12755     </blockquote><p>
12756    
12757     </p>
12758     <p>set_chan_instruction =
12759     </p>
12760     <blockquote class="text">
12761     <p>AUDIO_OUTPUT_DEVICE SP sampler_channel SP device_index
12762    
12763     </p>
12764     <p>/ AUDIO_OUTPUT_CHANNEL SP sampler_channel SP audio_channel_index SP audio_channel_index
12765    
12766     </p>
12767     <p>/ AUDIO_OUTPUT_TYPE SP sampler_channel SP audio_output_type_name
12768    
12769     </p>
12770     <p>/ MIDI_INPUT SP sampler_channel SP device_index SP midi_input_port_index SP midi_input_channel_index
12771    
12772     </p>
12773     <p>/ MIDI_INPUT_DEVICE SP sampler_channel SP device_index
12774    
12775     </p>
12776     <p>/ MIDI_INPUT_PORT SP sampler_channel SP midi_input_port_index
12777    
12778     </p>
12779     <p>/ MIDI_INPUT_CHANNEL SP sampler_channel SP midi_input_channel_index
12780    
12781     </p>
12782     <p>/ MIDI_INPUT_TYPE SP sampler_channel SP midi_input_type_name
12783    
12784     </p>
12785     <p>/ VOLUME SP sampler_channel SP volume_value
12786    
12787     </p>
12788     <p>/ MUTE SP sampler_channel SP boolean
12789    
12790     </p>
12791     <p>/ SOLO SP sampler_channel SP boolean
12792    
12793     </p>
12794     <p>/ MIDI_INSTRUMENT_MAP SP sampler_channel SP midi_map
12795    
12796     </p>
12797     <p>/ MIDI_INSTRUMENT_MAP SP sampler_channel SP NONE
12798    
12799     </p>
12800     <p>/ MIDI_INSTRUMENT_MAP SP sampler_channel SP DEFAULT
12801    
12802     </p>
12803     </blockquote><p>
12804    
12805     </p>
12806     <p>edit_instruction =
12807     </p>
12808     <blockquote class="text">
12809     <p>CHANNEL SP INSTRUMENT SP sampler_channel
12810    
12811     </p>
12812     </blockquote><p>
12813    
12814     </p>
12815     <p>format_instruction =
12816     </p>
12817     <blockquote class="text">
12818     <p>INSTRUMENTS_DB
12819    
12820     </p>
12821     </blockquote><p>
12822    
12823     </p>
12824     <p>modal_arg =
12825     </p>
12826     <blockquote class="text">
12827     <p>/* epsilon (empty argument) */
12828    
12829     </p>
12830     <p>/ NON_MODAL SP
12831    
12832     </p>
12833     </blockquote><p>
12834    
12835     </p>
12836     <p>key_val_list =
12837     </p>
12838     <blockquote class="text">
12839     <p>string '=' param_val_list
12840    
12841     </p>
12842     <p>/ key_val_list SP string '=' param_val_list
12843    
12844     </p>
12845     </blockquote><p>
12846    
12847     </p>
12848     <p>buffer_size_type =
12849     </p>
12850     <blockquote class="text">
12851     <p>BYTES
12852    
12853     </p>
12854     <p>/ PERCENTAGE
12855    
12856     </p>
12857     </blockquote><p>
12858    
12859     </p>
12860     <p>list_instruction =
12861     </p>
12862     <blockquote class="text">
12863     <p>AUDIO_OUTPUT_DEVICES
12864    
12865     </p>
12866     <p>/ MIDI_INPUT_DEVICES
12867    
12868     </p>
12869     <p>/ CHANNELS
12870    
12871     </p>
12872     <p>/ CHANNEL SP MIDI_INPUTS SP sampler_channel
12873    
12874     </p>
12875     <p>/ AVAILABLE_ENGINES
12876    
12877     </p>
12878     <p>/ AVAILABLE_EFFECTS
12879    
12880     </p>
12881     <p>/ EFFECT_INSTANCES
12882    
12883     </p>
12884     <p>/ SEND_EFFECT_CHAINS SP number
12885    
12886     </p>
12887     <p>/ AVAILABLE_MIDI_INPUT_DRIVERS
12888    
12889     </p>
12890     <p>/ AVAILABLE_AUDIO_OUTPUT_DRIVERS
12891    
12892     </p>
12893     <p>/ MIDI_INSTRUMENTS SP midi_map
12894    
12895     </p>
12896     <p>/ MIDI_INSTRUMENTS SP ALL
12897    
12898     </p>
12899     <p>/ MIDI_INSTRUMENT_MAPS
12900    
12901     </p>
12902     <p>/ FX_SENDS SP sampler_channel
12903    
12904     </p>
12905     <p>/ DB_INSTRUMENT_DIRECTORIES SP RECURSIVE SP db_path
12906    
12907     </p>
12908     <p>/ DB_INSTRUMENT_DIRECTORIES SP db_path
12909    
12910     </p>
12911     <p>/ DB_INSTRUMENTS SP RECURSIVE SP db_path
12912    
12913     </p>
12914     <p>/ DB_INSTRUMENTS SP db_path
12915    
12916     </p>
12917     <p>/ FILE SP INSTRUMENTS SP filename
12918    
12919     </p>
12920     </blockquote><p>
12921    
12922     </p>
12923     <p>send_instruction =
12924     </p>
12925     <blockquote class="text">
12926     <p>CHANNEL SP MIDI_DATA SP string SP sampler_channel SP number SP number
12927    
12928     </p>
12929     </blockquote><p>
12930    
12931     </p>
12932     <p>load_instr_args =
12933     </p>
12934     <blockquote class="text">
12935     <p>filename SP instrument_index SP sampler_channel
12936    
12937     </p>
12938     <p>/ NON_MODAL SP filename SP instrument_index SP sampler_channel
12939    
12940     </p>
12941     </blockquote><p>
12942    
12943     </p>
12944     <p>load_engine_args =
12945     </p>
12946     <blockquote class="text">
12947     <p>engine_name SP sampler_channel
12948    
12949     </p>
12950     </blockquote><p>
12951    
12952     </p>
12953     <p>instr_load_mode =
12954     </p>
12955     <blockquote class="text">
12956     <p>ON_DEMAND
12957    
12958     </p>
12959     <p>/ ON_DEMAND_HOLD
12960    
12961     </p>
12962     <p>/ PERSISTENT
12963    
12964     </p>
12965     </blockquote><p>
12966    
12967     </p>
12968     <p>effect_instance =
12969     </p>
12970     <blockquote class="text">
12971     <p>number
12972    
12973     </p>
12974     </blockquote><p>
12975    
12976     </p>
12977     <p>device_index =
12978     </p>
12979     <blockquote class="text">
12980     <p>number
12981    
12982     </p>
12983     </blockquote><p>
12984    
12985     </p>
12986     <p>audio_channel_index =
12987     </p>
12988     <blockquote class="text">
12989     <p>number
12990    
12991     </p>
12992     </blockquote><p>
12993    
12994     </p>
12995     <p>audio_output_type_name =
12996     </p>
12997     <blockquote class="text">
12998     <p>string
12999    
13000     </p>
13001     </blockquote><p>
13002    
13003     </p>
13004     <p>midi_input_port_index =
13005     </p>
13006     <blockquote class="text">
13007     <p>number
13008    
13009     </p>
13010     </blockquote><p>
13011    
13012     </p>
13013     <p>midi_input_channel_index =
13014     </p>
13015     <blockquote class="text">
13016     <p>number
13017    
13018     </p>
13019     <p>/ ALL
13020    
13021     </p>
13022     </blockquote><p>
13023    
13024     </p>
13025     <p>midi_input_type_name =
13026     </p>
13027     <blockquote class="text">
13028     <p>string
13029    
13030     </p>
13031     </blockquote><p>
13032    
13033     </p>
13034     <p>midi_map =
13035     </p>
13036     <blockquote class="text">
13037     <p>number
13038    
13039     </p>
13040     </blockquote><p>
13041    
13042     </p>
13043     <p>midi_bank =
13044     </p>
13045     <blockquote class="text">
13046     <p>number
13047    
13048     </p>
13049     </blockquote><p>
13050    
13051     </p>
13052     <p>midi_prog =
13053     </p>
13054     <blockquote class="text">
13055     <p>number
13056    
13057     </p>
13058     </blockquote><p>
13059    
13060     </p>
13061     <p>midi_ctrl =
13062     </p>
13063     <blockquote class="text">
13064     <p>number
13065    
13066     </p>
13067     </blockquote><p>
13068    
13069     </p>
13070     <p>volume_value =
13071     </p>
13072     <blockquote class="text">
13073     <p>dotnum
13074    
13075     </p>
13076     <p>/ number
13077    
13078     </p>
13079     </blockquote><p>
13080    
13081     </p>
13082     <p>control_value =
13083     </p>
13084     <blockquote class="text">
13085     <p>real
13086    
13087     </p>
13088     </blockquote><p>
13089    
13090     </p>
13091     <p>sampler_channel =
13092     </p>
13093     <blockquote class="text">
13094     <p>number
13095    
13096     </p>
13097     </blockquote><p>
13098    
13099     </p>
13100     <p>instrument_index =
13101     </p>
13102     <blockquote class="text">
13103     <p>number
13104    
13105     </p>
13106     </blockquote><p>
13107    
13108     </p>
13109     <p>fx_send_id =
13110     </p>
13111     <blockquote class="text">
13112     <p>number
13113    
13114     </p>
13115     </blockquote><p>
13116    
13117     </p>
13118     <p>engine_name =
13119     </p>
13120     <blockquote class="text">
13121     <p>string
13122    
13123     </p>
13124     </blockquote><p>
13125    
13126     </p>
13127     <p>filename =
13128     </p>
13129     <blockquote class="text">
13130     <p>path
13131    
13132     </p>
13133     </blockquote><p>
13134    
13135     </p>
13136     <p>db_path =
13137     </p>
13138     <blockquote class="text">
13139     <p>path
13140    
13141     </p>
13142     </blockquote><p>
13143    
13144     </p>
13145     <p>map_name =
13146     </p>
13147     <blockquote class="text">
13148     <p>stringval_escaped
13149    
13150     </p>
13151     </blockquote><p>
13152    
13153     </p>
13154     <p>entry_name =
13155     </p>
13156     <blockquote class="text">
13157     <p>stringval_escaped
13158    
13159     </p>
13160     </blockquote><p>
13161    
13162     </p>
13163     <p>fx_send_name =
13164     </p>
13165     <blockquote class="text">
13166     <p>stringval_escaped
13167    
13168     </p>
13169     </blockquote><p>
13170    
13171     </p>
13172     <p>effect_name =
13173     </p>
13174     <blockquote class="text">
13175     <p>stringval_escaped
13176    
13177     </p>
13178     </blockquote><p>
13179    
13180     </p>
13181     <p>effect_index =
13182     </p>
13183     <blockquote class="text">
13184     <p>number
13185    
13186     </p>
13187     </blockquote><p>
13188    
13189     </p>
13190     <p>effect_chain =
13191     </p>
13192     <blockquote class="text">
13193     <p>number
13194    
13195     </p>
13196     </blockquote><p>
13197    
13198     </p>
13199     <p>chain_pos =
13200     </p>
13201     <blockquote class="text">
13202     <p>number
13203    
13204     </p>
13205     </blockquote><p>
13206    
13207     </p>
13208     <p>input_control =
13209     </p>
13210     <blockquote class="text">
13211     <p>number
13212    
13213     </p>
13214     </blockquote><p>
13215    
13216     </p>
13217     <p>param_val_list =
13218     </p>
13219     <blockquote class="text">
13220     <p>param_val
13221    
13222     </p>
13223     <p>/ param_val_list','param_val
13224    
13225     </p>
13226     </blockquote><p>
13227    
13228     </p>
13229     <p>param_val =
13230     </p>
13231     <blockquote class="text">
13232     <p>string
13233    
13234     </p>
13235     <p>/ stringval
13236    
13237     </p>
13238     <p>/ number
13239    
13240     </p>
13241     <p>/ dotnum
13242    
13243     </p>
13244     </blockquote><p>
13245    
13246     </p>
13247     <p>query_val_list =
13248     </p>
13249     <blockquote class="text">
13250     <p>string '=' query_val
13251    
13252     </p>
13253     <p>/ query_val_list SP string '=' query_val
13254    
13255     </p>
13256     </blockquote><p>
13257    
13258     </p>
13259     <p>query_val =
13260     </p>
13261     <blockquote class="text">
13262     <p>text_escaped
13263    
13264     </p>
13265     <p>/ stringval_escaped
13266    
13267     </p>
13268     </blockquote><p>
13269    
13270     </p>
13271     <p>scan_mode =
13272     </p>
13273     <blockquote class="text">
13274     <p>RECURSIVE
13275    
13276     </p>
13277     <p>/ NON_RECURSIVE
13278    
13279     </p>
13280     <p>/ FLAT
13281    
13282     </p>
13283     </blockquote><p>
13284    
13285     </p>
13286     <p>effect_system =
13287     </p>
13288     <blockquote class="text">
13289     <p>string
13290    
13291     </p>
13292     </blockquote><p>
13293    
13294     </p>
13295     <p>module =
13296     </p>
13297     <blockquote class="text">
13298     <p>filename
13299    
13300     </p>
13301     </blockquote><p>
13302    
13303     </p>
13304     <a name="character_set"></a><br /><hr />
13305     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
13306     <a name="rfc.section.7.1"></a><h3>7.1.&nbsp;
13307     Character Set and Escape Sequences</h3>
13308    
13309     <p>Older versions of this protocol up to and including v1.1 only
13310     supported the standard ASCII character set (ASCII code 0 - 127)
13311     <a class='info' href='#RFC20'>[RFC20]<span> (</span><span class='info'>UCLA, &ldquo;ASCII format for Network Interchange,&rdquo; 1969.</span><span>)</span></a>, all younger versions of this protocol
13312     however support the Extended ASCII character set (ASCII code
13313     0 - 255). The same group of younger protocols also support
13314     escape sequences, but only for certain, explicitly declared
13315     parts of the protocol. The supported escape sequences are
13316     defined as follows:
13317     </p><table class="full" align="center" border="0" cellpadding="2" cellspacing="2">
13318     <col align="left"><col align="left">
13319     <tr><th align="left">ASCII Character Sequence</th><th align="left">Translated into (Name)</th></tr>
13320     <tr>
13321     <td align="left">\n</td>
13322     <td align="left">new line</td>
13323     </tr>
13324     <tr>
13325     <td align="left">\r</td>
13326     <td align="left">carriage return</td>
13327     </tr>
13328     <tr>
13329     <td align="left">\f</td>
13330     <td align="left">form feed</td>
13331     </tr>
13332     <tr>
13333     <td align="left">\t</td>
13334     <td align="left">horizontal tab</td>
13335     </tr>
13336     <tr>
13337     <td align="left">\v</td>
13338     <td align="left">vertical tab</td>
13339     </tr>
13340     <tr>
13341     <td align="left">\'</td>
13342     <td align="left">apostrophe</td>
13343     </tr>
13344     <tr>
13345     <td align="left">\"</td>
13346     <td align="left">quotation mark</td>
13347     </tr>
13348     <tr>
13349     <td align="left">\\</td>
13350     <td align="left">backslash</td>
13351     </tr>
13352     <tr>
13353     <td align="left">\OOO</td>
13354     <td align="left">three digit octal ASCII code of the character</td>
13355     </tr>
13356     <tr>
13357     <td align="left">\xHH</td>
13358     <td align="left">two digit hex ASCII code of the character</td>
13359     </tr>
13360     </table>
13361     <br clear="all" />
13362    
13363     <p>Notice: due to the transition of certain parts of the
13364     protocol which now support escape sequences, a slight backward
13365     incompatibility to protocols version v1.1 and younger has been
13366     introduced. The only difference is that in parts of the protocol
13367     where escape characters are now supported, a backslash characters
13368     MUST be escaped as well (that is as double backslash), whereas
13369     in the old versions a single backslash was sufficient.
13370     </p>
13371     <p>The following LSCP commands support escape sequences as part
13372     of their filename / path based arguments and / or may contain
13373     a filename / path with escape sequences in their response:
13374     </p>
13375     <blockquote class="text">
13376     <p><a class='info' href='#LOAD INSTRUMENT'>"LOAD INSTRUMENT"<span> (</span><span class='info'>Loading an instrument</span><span>)</span></a>
13377     </p>
13378     <p><a class='info' href='#GET CHANNEL INFO'>"GET CHANNEL INFO"<span> (</span><span class='info'>Getting sampler channel information</span><span>)</span></a>
13379     </p>
13380     <p><a class='info' href='#MAP MIDI_INSTRUMENT'>"MAP MIDI_INSTRUMENT"<span> (</span><span class='info'>Create or replace a MIDI instrument map entry</span><span>)</span></a>
13381     </p>
13382     <p><a class='info' href='#GET MIDI_INSTRUMENT INFO'>"GET MIDI_INSTRUMENT INFO"<span> (</span><span class='info'>Get current settings of MIDI instrument map entry</span><span>)</span></a>
13383     </p>
13384     <p><a class='info' href='#ADD DB_INSTRUMENT_DIRECTORY'>"ADD DB_INSTRUMENT_DIRECTORY"<span> (</span><span class='info'>Creating a new instrument directory</span><span>)</span></a>
13385     </p>
13386     <p><a class='info' href='#ADD DB_INSTRUMENTS'>"ADD DB_INSTRUMENTS"<span> (</span><span class='info'>Adding instruments to the instruments database</span><span>)</span></a>
13387     </p>
13388     <p><a class='info' href='#REMOVE DB_INSTRUMENT_DIRECTORY'>"REMOVE DB_INSTRUMENT_DIRECTORY"<span> (</span><span class='info'>Deleting an instrument directory</span><span>)</span></a>
13389     </p>
13390     <p><a class='info' href='#REMOVE DB_INSTRUMENT'>"REMOVE DB_INSTRUMENT"<span> (</span><span class='info'>Removing an instrument</span><span>)</span></a>
13391     </p>
13392     <p><a class='info' href='#GET DB_INSTRUMENT_DIRECTORIES'>"GET DB_INSTRUMENT_DIRECTORIES"<span> (</span><span class='info'>Getting amount of instrument directories</span><span>)</span></a>
13393     </p>
13394     <p><a class='info' href='#LIST DB_INSTRUMENT_DIRECTORIES'>"LIST DB_INSTRUMENT_DIRECTORIES"<span> (</span><span class='info'>Listing all directories in specific directory</span><span>)</span></a>
13395     </p>
13396     <p><a class='info' href='#GET DB_INSTRUMENT_DIRECTORY INFO'>"GET DB_INSTRUMENT_DIRECTORY INFO"<span> (</span><span class='info'>Getting instrument directory information</span><span>)</span></a>
13397     </p>
13398     <p><a class='info' href='#GET DB_INSTRUMENTS'>"GET DB_INSTRUMENTS"<span> (</span><span class='info'>Getting amount of instruments</span><span>)</span></a>
13399     </p>
13400     <p><a class='info' href='#LIST DB_INSTRUMENTS'>"LIST DB_INSTRUMENTS"<span> (</span><span class='info'>Listing all instruments in specific directory</span><span>)</span></a>
13401     </p>
13402     <p><a class='info' href='#GET DB_INSTRUMENT INFO'>"GET DB_INSTRUMENT INFO"<span> (</span><span class='info'>Getting instrument information</span><span>)</span></a>
13403     </p>
13404     <p><a class='info' href='#SET DB_INSTRUMENT_DIRECTORY NAME'>"SET DB_INSTRUMENT_DIRECTORY NAME"<span> (</span><span class='info'>Renaming an instrument directory</span><span>)</span></a>
13405     </p>
13406     <p><a class='info' href='#SET DB_INSTRUMENT_DIRECTORY DESCRIPTION'>"SET DB_INSTRUMENT_DIRECTORY DESCRIPTION"<span> (</span><span class='info'>Changing the description of directory</span><span>)</span></a>
13407     </p>
13408     <p><a class='info' href='#SET DB_INSTRUMENT NAME'>"SET DB_INSTRUMENT NAME"<span> (</span><span class='info'>Renaming an instrument</span><span>)</span></a>
13409     </p>
13410     <p><a class='info' href='#SET DB_INSTRUMENT DESCRIPTION'>"SET DB_INSTRUMENT DESCRIPTION"<span> (</span><span class='info'>Changing the description of instrument</span><span>)</span></a>
13411     </p>
13412     <p><a class='info' href='#FIND DB_INSTRUMENTS'>"FIND DB_INSTRUMENTS"<span> (</span><span class='info'>Finding instruments</span><span>)</span></a>
13413     </p>
13414     <p><a class='info' href='#FIND DB_INSTRUMENT_DIRECTORIES'>"FIND DB_INSTRUMENT_DIRECTORIES"<span> (</span><span class='info'>Finding directories</span><span>)</span></a>
13415     </p>
13416     <p><a class='info' href='#MOVE DB_INSTRUMENT'>"MOVE DB_INSTRUMENT"<span> (</span><span class='info'>Moving an instrument</span><span>)</span></a>
13417     </p>
13418     <p><a class='info' href='#MOVE DB_INSTRUMENT_DIRECTORY'>"MOVE DB_INSTRUMENT_DIRECTORY"<span> (</span><span class='info'>Moving an instrument directory</span><span>)</span></a>
13419     </p>
13420     <p><a class='info' href='#COPY DB_INSTRUMENT'>"COPY DB_INSTRUMENT"<span> (</span><span class='info'>Copying instruments</span><span>)</span></a>
13421     </p>
13422     <p><a class='info' href='#COPY DB_INSTRUMENT_DIRECTORY'>"COPY DB_INSTRUMENT_DIRECTORY"<span> (</span><span class='info'>Copying instrument directories</span><span>)</span></a>
13423     </p>
13424     <p><a class='info' href='#FIND LOST DB_INSTRUMENT_FILES'>"FIND LOST DB_INSTRUMENT_FILES"<span> (</span><span class='info'>Checking for lost instrument files</span><span>)</span></a>
13425     </p>
13426     <p><a class='info' href='#SET DB_INSTRUMENT FILE_PATH'>"SET DB_INSTRUMENT FILE_PATH"<span> (</span><span class='info'>Replacing an instrument file</span><span>)</span></a>
13427     </p>
13428     <p><a class='info' href='#GET FILE INSTRUMENTS'>"GET FILE INSTRUMENTS"<span> (</span><span class='info'>Retrieving amount of instruments of a file</span><span>)</span></a>
13429     </p>
13430     <p><a class='info' href='#LIST FILE INSTRUMENTS'>"LIST FILE INSTRUMENTS"<span> (</span><span class='info'>Retrieving all instruments of a file</span><span>)</span></a>
13431     </p>
13432     <p><a class='info' href='#GET FILE INSTRUMENT INFO'>"GET FILE INSTRUMENT INFO"<span> (</span><span class='info'>Retrieving informations about one instrument in a file</span><span>)</span></a>
13433     </p>
13434     <p><a class='info' href='#GET EFFECT INFO'>"GET EFFECT INFO"<span> (</span><span class='info'>Retrieving general information about an effect</span><span>)</span></a>
13435     </p>
13436     <p><a class='info' href='#GET EFFECT_INSTANCE INFO'>"GET EFFECT_INSTANCE INFO"<span> (</span><span class='info'>Retrieving current information about an effect instance</span><span>)</span></a>
13437     </p>
13438     <p><a class='info' href='#CREATE EFFECT_INSTANCE'>"CREATE EFFECT_INSTANCE"<span> (</span><span class='info'>Creating an instance of an effect by its portable ID</span><span>)</span></a>
13439     </p>
13440     </blockquote><p>
13441     Note that the forward slash character ('/') has a special meaning in
13442     filename / path based arguments: it acts as separator of the nodes in
13443     the path, thus if a directory- or filename includes a forward slash
13444     (not intended as path node separator), you MUST escape that slash
13445     either with the respective hex escape sequence ("\x2f") or with the
13446     respective octal escape sequence ("\057").
13447    
13448     </p>
13449     <p>
13450     Note for Windows: file path arguments in LSCP are expected
13451     to use forward slashes as directory node separator similar
13452     to Unix based operating systems. In contrast to Unix however
13453     a Windows typical drive character is expected to be
13454     prefixed to the path. That is an original Windows file path
13455     like "D:\Sounds\My.gig" would become in LSCP:
13456     "D:/Sounds/My.gig".
13457    
13458     </p>
13459     <p>
13460     The following LSCP commands even support escape sequences as
13461     part of at least one of their text-based arguments (i.e. entity name,
13462     description) and / or may contain escape sequences in at least one of
13463     their text-based fields in their response:
13464     </p>
13465     <blockquote class="text">
13466     <p><a class='info' href='#GET SERVER INFO'>"GET SERVER INFO"<span> (</span><span class='info'>General sampler informations</span><span>)</span></a>
13467     </p>
13468     <p><a class='info' href='#GET ENGINE INFO'>"GET ENGINE INFO"<span> (</span><span class='info'>Getting information about an engine</span><span>)</span></a>
13469     </p>
13470     <p><a class='info' href='#GET CHANNEL INFO'>"GET CHANNEL INFO"<span> (</span><span class='info'>Getting sampler channel information</span><span>)</span></a>
13471     </p>
13472     <p><a class='info' href='#CREATE FX_SEND'>"CREATE FX_SEND"<span> (</span><span class='info'>Adding an effect send to a sampler channel</span><span>)</span></a>
13473     </p>
13474     <p><a class='info' href='#GET FX_SEND INFO'>"GET FX_SEND INFO"<span> (</span><span class='info'>Getting effect send information</span><span>)</span></a>
13475     </p>
13476     <p><a class='info' href='#SET FX_SEND NAME'>"SET FX_SEND NAME"<span> (</span><span class='info'>Changing effect send's name</span><span>)</span></a>
13477     </p>
13478     <p><a class='info' href='#GET MIDI_INSTRUMENT INFO'>"GET MIDI_INSTRUMENT INFO"<span> (</span><span class='info'>Get current settings of MIDI instrument map entry</span><span>)</span></a>
13479     </p>
13480     <p><a class='info' href='#GET MIDI_INSTRUMENT_MAP INFO'>"GET MIDI_INSTRUMENT_MAP INFO"<span> (</span><span class='info'>Getting MIDI instrument map information</span><span>)</span></a>
13481     </p>
13482     <p><a class='info' href='#ADD MIDI_INSTRUMENT_MAP'>"ADD MIDI_INSTRUMENT_MAP"<span> (</span><span class='info'>Create a new MIDI instrument map</span><span>)</span></a>
13483     </p>
13484     <p><a class='info' href='#MAP MIDI_INSTRUMENT'>"MAP MIDI_INSTRUMENT"<span> (</span><span class='info'>Create or replace a MIDI instrument map entry</span><span>)</span></a>
13485     </p>
13486     <p><a class='info' href='#SET MIDI_INSTRUMENT_MAP NAME'>"SET MIDI_INSTRUMENT_MAP NAME"<span> (</span><span class='info'>Renaming a MIDI instrument map</span><span>)</span></a>
13487     </p>
13488     <p><a class='info' href='#GET DB_INSTRUMENT_DIRECTORY INFO'>"GET DB_INSTRUMENT_DIRECTORY INFO"<span> (</span><span class='info'>Getting instrument directory information</span><span>)</span></a>
13489     </p>
13490     <p><a class='info' href='#SET DB_INSTRUMENT_DIRECTORY NAME'>"SET DB_INSTRUMENT_DIRECTORY NAME"<span> (</span><span class='info'>Renaming an instrument directory</span><span>)</span></a>
13491     </p>
13492     <p><a class='info' href='#SET DB_INSTRUMENT_DIRECTORY DESCRIPTION'>"SET DB_INSTRUMENT_DIRECTORY DESCRIPTION"<span> (</span><span class='info'>Changing the description of directory</span><span>)</span></a>
13493     </p>
13494     <p><a class='info' href='#FIND DB_INSTRUMENT_DIRECTORIES'>"FIND DB_INSTRUMENT_DIRECTORIES"<span> (</span><span class='info'>Finding directories</span><span>)</span></a>
13495     </p>
13496     <p><a class='info' href='#GET DB_INSTRUMENT INFO'>"GET DB_INSTRUMENT INFO"<span> (</span><span class='info'>Getting instrument information</span><span>)</span></a>
13497     </p>
13498     <p><a class='info' href='#SET DB_INSTRUMENT NAME'>"SET DB_INSTRUMENT NAME"<span> (</span><span class='info'>Renaming an instrument</span><span>)</span></a>
13499     </p>
13500     <p><a class='info' href='#SET DB_INSTRUMENT DESCRIPTION'>"SET DB_INSTRUMENT DESCRIPTION"<span> (</span><span class='info'>Changing the description of instrument</span><span>)</span></a>
13501     </p>
13502     <p><a class='info' href='#FIND DB_INSTRUMENTS'>"FIND DB_INSTRUMENTS"<span> (</span><span class='info'>Finding instruments</span><span>)</span></a>
13503     </p>
13504     <p><a class='info' href='#GET EFFECT INFO'>"GET EFFECT INFO"<span> (</span><span class='info'>Retrieving general information about an effect</span><span>)</span></a>
13505     </p>
13506     <p><a class='info' href='#GET EFFECT_INSTANCE INFO'>"GET EFFECT_INSTANCE INFO"<span> (</span><span class='info'>Retrieving current information about an effect instance</span><span>)</span></a>
13507     </p>
13508     <p><a class='info' href='#CREATE EFFECT_INSTANCE'>"CREATE EFFECT_INSTANCE"<span> (</span><span class='info'>Creating an instance of an effect by its portable ID</span><span>)</span></a>
13509     </p>
13510     </blockquote><p>
13511     Please note that these lists are manually maintained. If you
13512     find a command that also supports escape sequences we forgot to
13513     mention here, please report it!
13514    
13515     </p>
13516     <a name="events"></a><br /><hr />
13517     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
13518     <a name="rfc.section.8"></a><h3>8.&nbsp;
13519     Events</h3>
13520    
13521     <p>This chapter will describe all currently defined events supported by LinuxSampler.
13522     </p>
13523     <a name="SUBSCRIBE AUDIO_OUTPUT_DEVICE_COUNT"></a><br /><hr />
13524     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
13525     <a name="rfc.section.8.1"></a><h3>8.1.&nbsp;
13526     Number of audio output devices changed</h3>
13527    
13528     <p>Client may want to be notified when the total number of audio output devices on the
13529     back-end changes by issuing the following command:
13530     </p>
13531     <p>
13532     </p>
13533     <blockquote class="text">
13534     <p>SUBSCRIBE AUDIO_OUTPUT_DEVICE_COUNT
13535     </p>
13536     </blockquote><p>
13537    
13538     </p>
13539     <p>Server will start sending the following notification messages:
13540     </p>
13541     <p>
13542     </p>
13543     <blockquote class="text">
13544     <p>"NOTIFY:AUDIO_OUTPUT_DEVICE_COUNT:&lt;devices&gt;"
13545     </p>
13546     </blockquote><p>
13547    
13548     </p>
13549     <p>where &lt;devices&gt; will be replaced by the new number
13550     of audio output devices.
13551     </p>
13552     <a name="SUBSCRIBE AUDIO_OUTPUT_DEVICE_INFO"></a><br /><hr />
13553     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
13554     <a name="rfc.section.8.2"></a><h3>8.2.&nbsp;
13555     Audio output device's settings changed</h3>
13556    
13557     <p>Client may want to be notified when changes were made to audio output devices on the
13558     back-end by issuing the following command:
13559     </p>
13560     <p>
13561     </p>
13562     <blockquote class="text">
13563     <p>SUBSCRIBE AUDIO_OUTPUT_DEVICE_INFO
13564     </p>
13565     </blockquote><p>
13566    
13567     </p>
13568     <p>Server will start sending the following notification messages:
13569     </p>
13570     <p>
13571     </p>
13572     <blockquote class="text">
13573     <p>"NOTIFY:AUDIO_OUTPUT_DEVICE_INFO:&lt;device-id&gt;"
13574     </p>
13575     </blockquote><p>
13576    
13577     </p>
13578     <p>where &lt;device-id&gt; will be replaced by the numerical ID of the audio output device,
13579     which settings has been changed. The front-end will have to send
13580     the respective command to actually get the audio output device info. Because these messages
13581     will be triggered by LSCP commands issued by other clients rather than real
13582     time events happening on the server, it is believed that an empty notification
13583     message is sufficient here.
13584     </p>
13585     <a name="SUBSCRIBE MIDI_INPUT_DEVICE_COUNT"></a><br /><hr />
13586     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
13587     <a name="rfc.section.8.3"></a><h3>8.3.&nbsp;
13588     Number of MIDI input devices changed</h3>
13589    
13590     <p>Client may want to be notified when the total number of MIDI input devices on the
13591     back-end changes by issuing the following command:
13592     </p>
13593     <p>
13594     </p>
13595     <blockquote class="text">
13596     <p>SUBSCRIBE MIDI_INPUT_DEVICE_COUNT
13597     </p>
13598     </blockquote><p>
13599    
13600     </p>
13601     <p>Server will start sending the following notification messages:
13602     </p>
13603     <p>
13604     </p>
13605     <blockquote class="text">
13606     <p>"NOTIFY:MIDI_INPUT_DEVICE_COUNT:&lt;devices&gt;"
13607     </p>
13608     </blockquote><p>
13609    
13610     </p>
13611     <p>where &lt;devices&gt; will be replaced by the new number
13612     of MIDI input devices.
13613     </p>
13614     <a name="SUBSCRIBE MIDI_INPUT_DEVICE_INFO"></a><br /><hr />
13615     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
13616     <a name="rfc.section.8.4"></a><h3>8.4.&nbsp;
13617     MIDI input device's settings changed</h3>
13618    
13619     <p>Client may want to be notified when changes were made to MIDI input devices on the
13620     back-end by issuing the following command:
13621     </p>
13622     <p>
13623     </p>
13624     <blockquote class="text">
13625     <p>SUBSCRIBE MIDI_INPUT_DEVICE_INFO
13626     </p>
13627     </blockquote><p>
13628    
13629     </p>
13630     <p>Server will start sending the following notification messages:
13631     </p>
13632     <p>
13633     </p>
13634     <blockquote class="text">
13635     <p>"NOTIFY:MIDI_INPUT_DEVICE_INFO:&lt;device-id&gt;"
13636     </p>
13637     </blockquote><p>
13638    
13639     </p>
13640     <p>where &lt;device-id&gt; will be replaced by the numerical ID of the MIDI input device,
13641     which settings has been changed. The front-end will have to send
13642     the respective command to actually get the MIDI input device info. Because these messages
13643     will be triggered by LSCP commands issued by other clients rather than real
13644     time events happening on the server, it is believed that an empty notification
13645     message is sufficient here.
13646     </p>
13647     <a name="SUBSCRIBE CHANNEL_COUNT"></a><br /><hr />
13648     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
13649     <a name="rfc.section.8.5"></a><h3>8.5.&nbsp;
13650     Number of sampler channels changed</h3>
13651    
13652     <p>Client may want to be notified when the total number of channels on the
13653     back-end changes by issuing the following command:
13654     </p>
13655     <p>
13656     </p>
13657     <blockquote class="text">
13658     <p>SUBSCRIBE CHANNEL_COUNT
13659     </p>
13660     </blockquote><p>
13661    
13662     </p>
13663     <p>Server will start sending the following notification messages:
13664     </p>
13665     <p>
13666     </p>
13667     <blockquote class="text">
13668     <p>"NOTIFY:CHANNEL_COUNT:&lt;channels&gt;"
13669     </p>
13670     </blockquote><p>
13671    
13672     </p>
13673     <p>where &lt;channels&gt; will be replaced by the new number
13674     of sampler channels.
13675     </p>
13676     <a name="SUBSCRIBE CHANNEL_MIDI"></a><br /><hr />
13677     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
13678     <a name="rfc.section.8.6"></a><h3>8.6.&nbsp;
13679     MIDI data on a sampler channel arrived</h3>
13680    
13681     <p>Client may want to be notified when MIDI data arrive on sampler channels on
13682     back-end side, by issuing the following command:
13683     </p>
13684     <p>
13685     </p>
13686     <blockquote class="text">
13687     <p>SUBSCRIBE CHANNEL_MIDI
13688     </p>
13689     </blockquote><p>
13690    
13691     </p>
13692     <p>Server will start sending one of the the following notification messages:
13693     </p>
13694     <p>
13695     </p>
13696     <blockquote class="text">
13697     <p>"NOTIFY:CHANNEL_MIDI:&lt;channel-id&gt; NOTE_ON &lt;note&gt; &lt;velocity&gt;"
13698     </p>
13699     <p>"NOTIFY:CHANNEL_MIDI:&lt;channel-id&gt; NOTE_OFF &lt;note&gt; &lt;velocity&gt;"
13700     </p>
13701     </blockquote><p>
13702    
13703     </p>
13704     <p>where &lt;channel-id&gt; will be replaced by the ID of the sampler channel where the MIDI
13705     data arrived. &lt;note&gt; and &lt;velocity&gt; are integer values in the range between
13706     0 .. 127, reflecting the analog meaning of the MIDI specification.
13707    
13708     </p>
13709     <p>CAUTION: no guarantee whatsoever will be made that MIDI events are actually all
13710     delivered by this mechanism! With other words: events could be lost at any time!
13711     This restriction was made to keep the RT-safeness of the backend's MIDI and audio
13712     thread unaffected by this feature.
13713     </p>
13714     <a name="SUBSCRIBE DEVICE_MIDI"></a><br /><hr />
13715     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
13716     <a name="rfc.section.8.7"></a><h3>8.7.&nbsp;
13717     MIDI data on a MIDI input device arrived</h3>
13718    
13719     <p>Client may want to be notified when MIDI data arrive on MIDI input devices by issuing the following command:
13720     </p>
13721     <p>
13722     </p>
13723     <blockquote class="text">
13724     <p>SUBSCRIBE DEVICE_MIDI
13725     </p>
13726     </blockquote><p>
13727    
13728     </p>
13729     <p>Server will start sending one of the the following notification messages:
13730     </p>
13731     <p>
13732     </p>
13733     <blockquote class="text">
13734     <p>"NOTIFY:DEVICE_MIDI:&lt;device-id&gt; &lt;port-id&gt; NOTE_ON &lt;note&gt; &lt;velocity&gt;"
13735     </p>
13736     <p>"NOTIFY:DEVICE_MIDI:&lt;device-id&gt; &lt;port-id&gt; NOTE_OFF &lt;note&gt; &lt;velocity&gt;"
13737     </p>
13738     </blockquote><p>
13739    
13740     </p>
13741     <p>where &lt;device-id&gt; &lt;port-id&gt; will be replaced
13742     by the IDs of the respective MIDI input device and the device's MIDI port where the MIDI
13743     data arrived. &lt;note&gt; and &lt;velocity&gt; are integer values in the range between
13744     0 .. 127, reflecting the analog meaning of the MIDI specification.
13745    
13746     </p>
13747     <p>CAUTION: no guarantee whatsoever will be made that MIDI events are actually all
13748     delivered by this mechanism! With other words: events could be lost at any time!
13749     This restriction was made to keep the RT-safeness of the backend's MIDI and audio
13750     thread unaffected by this feature.
13751     </p>
13752     <a name="SUBSCRIBE VOICE_COUNT"></a><br /><hr />
13753     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
13754     <a name="rfc.section.8.8"></a><h3>8.8.&nbsp;
13755     Number of active voices changed</h3>
13756    
13757     <p>Client may want to be notified when the number of voices on the
13758     back-end changes by issuing the following command:
13759     </p>
13760     <p>
13761     </p>
13762     <blockquote class="text">
13763     <p>SUBSCRIBE VOICE_COUNT
13764     </p>
13765     </blockquote><p>
13766    
13767     </p>
13768     <p>Server will start sending the following notification messages:
13769     </p>
13770     <p>
13771     </p>
13772     <blockquote class="text">
13773     <p>"NOTIFY:VOICE_COUNT:&lt;sampler-channel&gt; &lt;voices&gt;"
13774     </p>
13775     </blockquote><p>
13776    
13777     </p>
13778     <p>where &lt;sampler-channel&gt; will be replaced by the sampler channel the
13779     voice count change occurred and &lt;voices&gt; by the new number of
13780     active voices on that channel.
13781     </p>
13782     <a name="SUBSCRIBE STREAM_COUNT"></a><br /><hr />
13783     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
13784     <a name="rfc.section.8.9"></a><h3>8.9.&nbsp;
13785     Number of active disk streams changed</h3>
13786    
13787     <p>Client may want to be notified when the number of streams on the back-end
13788     changes by issuing the following command: SUBSCRIBE STREAM_COUNT
13789     </p>
13790     <p>
13791     </p>
13792     <blockquote class="text">
13793     <p>SUBSCRIBE STREAM_COUNT
13794     </p>
13795     </blockquote><p>
13796    
13797     </p>
13798     <p>Server will start sending the following notification messages:
13799     </p>
13800     <p>
13801     </p>
13802     <blockquote class="text">
13803     <p>"NOTIFY:STREAM_COUNT:&lt;sampler-channel&gt; &lt;streams&gt;"
13804     </p>
13805     </blockquote><p>
13806    
13807     </p>
13808     <p>where &lt;sampler-channel&gt; will be replaced by the sampler channel the
13809     stream count change occurred and &lt;streams&gt; by the new number of
13810     active disk streams on that channel.
13811     </p>
13812     <a name="SUBSCRIBE BUFFER_FILL"></a><br /><hr />
13813     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
13814     <a name="rfc.section.8.10"></a><h3>8.10.&nbsp;
13815     Disk stream buffer fill state changed</h3>
13816    
13817     <p>Client may want to be notified when the buffer fill state of a disk stream
13818     on the back-end changes by issuing the following command:
13819     </p>
13820     <p>
13821     </p>
13822     <blockquote class="text">
13823     <p>SUBSCRIBE BUFFER_FILL
13824     </p>
13825     </blockquote><p>
13826    
13827     </p>
13828     <p>Server will start sending the following notification messages:
13829     </p>
13830     <p>
13831     </p>
13832     <blockquote class="text">
13833     <p>"NOTIFY:BUFFER_FILL:&lt;sampler-channel&gt; &lt;fill-data&gt;"
13834     </p>
13835     </blockquote><p>
13836    
13837     </p>
13838     <p>where &lt;sampler-channel&gt; will be replaced by the sampler channel the
13839     buffer fill state change occurred on and &lt;fill-data&gt; will be replaced by the
13840     buffer fill data for this channel as described in <a class='info' href='#GET CHANNEL BUFFER_FILL'>Section&nbsp;6.4.13<span> (</span><span class='info'>Current fill state of disk stream buffers</span><span>)</span></a>
13841     as if the <a class='info' href='#GET CHANNEL BUFFER_FILL'>"GET CHANNEL BUFFER_FILL PERCENTAGE"<span> (</span><span class='info'>Current fill state of disk stream buffers</span><span>)</span></a> command was issued on this channel.
13842     </p>
13843     <a name="SUBSCRIBE CHANNEL_INFO"></a><br /><hr />
13844     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
13845     <a name="rfc.section.8.11"></a><h3>8.11.&nbsp;
13846     Channel information changed</h3>
13847    
13848     <p>Client may want to be notified when changes were made to sampler channels on the
13849     back-end by issuing the following command:
13850     </p>
13851     <p>
13852     </p>
13853     <blockquote class="text">
13854     <p>SUBSCRIBE CHANNEL_INFO
13855     </p>
13856     </blockquote><p>
13857    
13858     </p>
13859     <p>Server will start sending the following notification messages:
13860     </p>
13861     <p>
13862     </p>
13863     <blockquote class="text">
13864     <p>"NOTIFY:CHANNEL_INFO:&lt;sampler-channel&gt;"
13865     </p>
13866     </blockquote><p>
13867    
13868     </p>
13869     <p>where &lt;sampler-channel&gt; will be replaced by the sampler channel the
13870     channel info change occurred. The front-end will have to send
13871     the respective command to actually get the channel info. Because these messages
13872     will be triggered by LSCP commands issued by other clients rather than real
13873     time events happening on the server, it is believed that an empty notification
13874     message is sufficient here.
13875     </p>
13876     <a name="SUBSCRIBE FX_SEND_COUNT"></a><br /><hr />
13877     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
13878     <a name="rfc.section.8.12"></a><h3>8.12.&nbsp;
13879     Number of effect sends changed</h3>
13880    
13881     <p>Client may want to be notified when the number of effect sends on
13882     a particular sampler channel is changed by issuing the following command:
13883     </p>
13884     <p>
13885     </p>
13886     <blockquote class="text">
13887     <p>SUBSCRIBE FX_SEND_COUNT
13888     </p>
13889     </blockquote><p>
13890    
13891     </p>
13892     <p>Server will start sending the following notification messages:
13893     </p>
13894     <p>
13895     </p>
13896     <blockquote class="text">
13897     <p>"NOTIFY:FX_SEND_COUNT:&lt;channel-id&gt; &lt;fx-sends&gt;"
13898     </p>
13899     </blockquote><p>
13900    
13901     </p>
13902     <p>where &lt;channel-id&gt; will be replaced by the numerical ID of the sampler
13903     channel, on which the effect sends number is changed and &lt;fx-sends&gt; will
13904     be replaced by the new number of effect sends on that channel.
13905     </p>
13906     <a name="SUBSCRIBE FX_SEND_INFO"></a><br /><hr />
13907     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
13908     <a name="rfc.section.8.13"></a><h3>8.13.&nbsp;
13909     Effect send information changed</h3>
13910    
13911     <p>Client may want to be notified when changes were made to effect sends on a
13912     a particular sampler channel by issuing the following command:
13913     </p>
13914     <p>
13915     </p>
13916     <blockquote class="text">
13917     <p>SUBSCRIBE FX_SEND_INFO
13918     </p>
13919     </blockquote><p>
13920    
13921     </p>
13922     <p>Server will start sending the following notification messages:
13923     </p>
13924     <p>
13925     </p>
13926     <blockquote class="text">
13927     <p>"NOTIFY:FX_SEND_INFO:&lt;channel-id&gt; &lt;fx-send-id&gt;"
13928     </p>
13929     </blockquote><p>
13930    
13931     </p>
13932     <p>where &lt;channel-id&gt; will be replaced by the numerical ID of the sampler
13933     channel, on which an effect send entity is changed and &lt;fx-send-id&gt; will
13934     be replaced by the numerical ID of the changed effect send.
13935     </p>
13936     <a name="SUBSCRIBE TOTAL_VOICE_COUNT"></a><br /><hr />
13937     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
13938     <a name="rfc.section.8.14"></a><h3>8.14.&nbsp;
13939     Total number of active voices changed</h3>
13940    
13941     <p>Client may want to be notified when the total number of voices on the
13942     back-end changes by issuing the following command:
13943     </p>
13944     <p>
13945     </p>
13946     <blockquote class="text">
13947     <p>SUBSCRIBE TOTAL_VOICE_COUNT
13948     </p>
13949     </blockquote><p>
13950    
13951     </p>
13952     <p>Server will start sending the following notification messages:
13953     </p>
13954     <p>
13955     </p>
13956     <blockquote class="text">
13957     <p>"NOTIFY:TOTAL_VOICE_COUNT:&lt;voices&gt;"
13958     </p>
13959     </blockquote><p>
13960    
13961     </p>
13962     <p>where &lt;voices&gt; will be replaced by the new number of
13963     all currently active voices.
13964     </p>
13965     <a name="SUBSCRIBE TOTAL_STREAM_COUNT"></a><br /><hr />
13966     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
13967     <a name="rfc.section.8.15"></a><h3>8.15.&nbsp;
13968     Total number of active disk streams changed</h3>
13969    
13970     <p>Client may want to be notified when the total number of disk streams on the
13971     back-end changes by issuing the following command:
13972     </p>
13973     <p>
13974     </p>
13975     <blockquote class="text">
13976     <p>SUBSCRIBE TOTAL_STREAM_COUNT
13977     </p>
13978     </blockquote><p>
13979    
13980     </p>
13981     <p>Server will start sending the following notification messages:
13982     </p>
13983     <p>
13984     </p>
13985     <blockquote class="text">
13986     <p>"NOTIFY:TOTAL_STREAM_COUNT:&lt;streams&gt;"
13987     </p>
13988     </blockquote><p>
13989    
13990     </p>
13991     <p>where &lt;streams&gt; will be replaced by the new number of
13992     all currently active disk streams.
13993     </p>
13994     <a name="SUBSCRIBE MIDI_INSTRUMENT_MAP_COUNT"></a><br /><hr />
13995     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
13996     <a name="rfc.section.8.16"></a><h3>8.16.&nbsp;
13997     Number of MIDI instrument maps changed</h3>
13998    
13999     <p>Client may want to be notified when the number of MIDI instrument maps on the
14000     back-end changes by issuing the following command:
14001     </p>
14002     <p>
14003     </p>
14004     <blockquote class="text">
14005     <p>SUBSCRIBE MIDI_INSTRUMENT_MAP_COUNT
14006     </p>
14007     </blockquote><p>
14008    
14009     </p>
14010     <p>Server will start sending the following notification messages:
14011     </p>
14012     <p>
14013     </p>
14014     <blockquote class="text">
14015     <p>"NOTIFY:MIDI_INSTRUMENT_MAP_COUNT:&lt;maps&gt;"
14016     </p>
14017     </blockquote><p>
14018    
14019     </p>
14020     <p>where &lt;maps&gt; will be replaced by the new number
14021     of MIDI instrument maps.
14022     </p>
14023     <a name="SUBSCRIBE MIDI_INSTRUMENT_MAP_INFO"></a><br /><hr />
14024     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
14025     <a name="rfc.section.8.17"></a><h3>8.17.&nbsp;
14026     MIDI instrument map information changed</h3>
14027    
14028     <p>Client may want to be notified when changes were made to MIDI instrument maps on the
14029     back-end by issuing the following command:
14030     </p>
14031     <p>
14032     </p>
14033     <blockquote class="text">
14034     <p>SUBSCRIBE MIDI_INSTRUMENT_MAP_INFO
14035     </p>
14036     </blockquote><p>
14037    
14038     </p>
14039     <p>Server will start sending the following notification messages:
14040     </p>
14041     <p>
14042     </p>
14043     <blockquote class="text">
14044     <p>"NOTIFY:MIDI_INSTRUMENT_MAP_INFO:&lt;map-id&gt;"
14045     </p>
14046     </blockquote><p>
14047    
14048     </p>
14049     <p>where &lt;map-id&gt; will be replaced by the numerical ID of the MIDI instrument map,
14050     for which information changes occurred. The front-end will have to send
14051     the respective command to actually get the MIDI instrument map info. Because these messages
14052     will be triggered by LSCP commands issued by other clients rather than real
14053     time events happening on the server, it is believed that an empty notification
14054     message is sufficient here.
14055     </p>
14056     <a name="SUBSCRIBE MIDI_INSTRUMENT_COUNT"></a><br /><hr />
14057     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
14058     <a name="rfc.section.8.18"></a><h3>8.18.&nbsp;
14059     Number of MIDI instruments changed</h3>
14060    
14061     <p>Client may want to be notified when the number of MIDI instrument maps on the
14062     back-end changes by issuing the following command:
14063     </p>
14064     <p>
14065     </p>
14066     <blockquote class="text">
14067     <p>SUBSCRIBE MIDI_INSTRUMENT_COUNT
14068     </p>
14069     </blockquote><p>
14070    
14071     </p>
14072     <p>Server will start sending the following notification messages:
14073     </p>
14074     <p>
14075     </p>
14076     <blockquote class="text">
14077     <p>"NOTIFY:MIDI_INSTRUMENT_COUNT:&lt;map-id&gt; &lt;instruments&gt;"
14078     </p>
14079     </blockquote><p>
14080    
14081     </p>
14082     <p>where &lt;map-id&gt; is the numerical ID of the MIDI instrument map, in which
14083     the nuber of instruments has changed and &lt;instruments&gt; will be replaced by
14084     the new number of MIDI instruments in the specified map.
14085     </p>
14086     <a name="SUBSCRIBE MIDI_INSTRUMENT_INFO"></a><br /><hr />
14087     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
14088     <a name="rfc.section.8.19"></a><h3>8.19.&nbsp;
14089     MIDI instrument information changed</h3>
14090    
14091     <p>Client may want to be notified when changes were made to MIDI instruments on the
14092     back-end by issuing the following command:
14093     </p>
14094     <p>
14095     </p>
14096     <blockquote class="text">
14097     <p>SUBSCRIBE MIDI_INSTRUMENT_INFO
14098     </p>
14099     </blockquote><p>
14100    
14101     </p>
14102     <p>Server will start sending the following notification messages:
14103     </p>
14104     <p>
14105     </p>
14106     <blockquote class="text">
14107     <p>"NOTIFY:MIDI_INSTRUMENT_INFO:&lt;map-id&gt; &lt;bank&gt; &lt;program&gt;"
14108     </p>
14109     </blockquote><p>
14110    
14111     </p>
14112     <p>where &lt;map-id&gt; will be replaced by the numerical ID of the MIDI instrument map,
14113     in which a MIDI instrument is changed. &lt;bank&gt; and &lt;program&gt; specifies
14114     the location of the changed MIDI instrument in the map. The front-end will have to send
14115     the respective command to actually get the MIDI instrument info. Because these messages
14116     will be triggered by LSCP commands issued by other clients rather than real
14117     time events happening on the server, it is believed that an empty notification
14118     message is sufficient here.
14119     </p>
14120     <a name="SUBSCRIBE GLOBAL_INFO"></a><br /><hr />
14121     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
14122     <a name="rfc.section.8.20"></a><h3>8.20.&nbsp;
14123     Global settings changed</h3>
14124    
14125     <p>Client may want to be notified when changes to the global settings
14126     of the sampler were made by issuing the following command:
14127     </p>
14128     <p>
14129     </p>
14130     <blockquote class="text">
14131     <p>SUBSCRIBE GLOBAL_INFO
14132     </p>
14133     </blockquote><p>
14134    
14135     </p>
14136     <p>Server will start sending the following types of notification messages:
14137     </p>
14138     <p>
14139     </p>
14140     <blockquote class="text">
14141     <p>"NOTIFY:GLOBAL_INFO:VOLUME &lt;volume&gt;" - Notifies that the
14142     golbal volume of the sampler is changed, where &lt;volume&gt; will be
14143     replaced by the optional dotted floating point value, reflecting the
14144     new global volume parameter.
14145     </p>
14146     </blockquote><p>
14147     </p>
14148     <blockquote class="text">
14149     <p>"NOTIFY:GLOBAL_INFO:VOICES &lt;max-voices&gt;" - Notifies that the
14150     golbal limit of the sampler for maximum voices is changed, where
14151     &lt;max-voices&gt; will be an integer value, reflecting the
14152     new global voice limit parameter.
14153     </p>
14154     </blockquote><p>
14155     </p>
14156     <blockquote class="text">
14157     <p>"NOTIFY:GLOBAL_INFO:STREAMS &lt;max-streams&gt;" - Notifies that the
14158     golbal limit of the sampler for maximum disk streams is changed, where
14159     &lt;max-streams&gt; will be an integer value, reflecting the
14160     new global disk streams limit parameter.
14161     </p>
14162     </blockquote><p>
14163    
14164     </p>
14165     <a name="SUBSCRIBE DB_INSTRUMENT_DIRECTORY_COUNT"></a><br /><hr />
14166     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
14167     <a name="rfc.section.8.21"></a><h3>8.21.&nbsp;
14168     Number of database instrument directories changed</h3>
14169    
14170     <p>Client may want to be notified when the number of instrument
14171     directories in a particular directory in the instruments database
14172     is changed by issuing the following command:
14173     </p>
14174     <p>
14175     </p>
14176     <blockquote class="text">
14177     <p>SUBSCRIBE DB_INSTRUMENT_DIRECTORY_COUNT
14178     </p>
14179     </blockquote><p>
14180    
14181     </p>
14182     <p>Server will start sending the following notification messages:
14183     </p>
14184     <p>
14185     </p>
14186     <blockquote class="text">
14187     <p>"NOTIFY:DB_INSTRUMENT_DIRECTORY_COUNT:&lt;dir-path&gt;"
14188     </p>
14189     </blockquote><p>
14190    
14191     </p>
14192     <p>where &lt;dir-path&gt; will be replaced by the absolute path
14193     name of the directory in the instruments database,
14194     in which the number of directories is changed.
14195     </p>
14196     <p>Note that when a non-empty directory is removed, this event
14197     is not sent for the subdirectories in that directory.
14198     </p>
14199     <a name="SUBSCRIBE DB_INSTRUMENT_DIRECTORY_INFO"></a><br /><hr />
14200     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
14201     <a name="rfc.section.8.22"></a><h3>8.22.&nbsp;
14202     Database instrument directory information changed</h3>
14203    
14204     <p>Client may want to be notified when changes were made to directories
14205     in the instruments database by issuing the following command:
14206     </p>
14207     <p>
14208     </p>
14209     <blockquote class="text">
14210     <p>SUBSCRIBE DB_INSTRUMENT_DIRECTORY_INFO
14211     </p>
14212     </blockquote><p>
14213    
14214     </p>
14215     <p>Server will start sending the following notification messages:
14216     </p>
14217     <p>
14218     </p>
14219     <blockquote class="text">
14220     <p>"NOTIFY:DB_INSTRUMENT_DIRECTORY_INFO:&lt;dir-path&gt;"
14221     </p>
14222     </blockquote><p>
14223    
14224     </p>
14225     <p>where &lt;dir-path&gt; will be replaced by the absolute path name
14226     of the directory, for which information changes occurred. The front-end will have to send
14227     the respective command to actually get the updated directory info. Because these messages
14228     will be triggered by LSCP commands issued by other clients rather than real
14229     time events happening on the server, it is believed that an empty notification
14230     message is sufficient here.
14231     </p>
14232     <p>
14233     </p>
14234     <blockquote class="text">
14235     <p>"NOTIFY:DB_INSTRUMENT_DIRECTORY_INFO:NAME &lt;old-dir-path&gt; &lt;new-name&gt;"
14236     </p>
14237     </blockquote><p>
14238    
14239     </p>
14240     <p>where &lt;old-dir-path&gt; is the old absolute path name of the directory
14241     (encapsulated into apostrophes), which name is changes and &lt;new-name&gt; is
14242     the new name of the directory, encapsulated into apostrophes.
14243     </p>
14244     <a name="SUBSCRIBE DB_INSTRUMENT_COUNT"></a><br /><hr />
14245     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
14246     <a name="rfc.section.8.23"></a><h3>8.23.&nbsp;
14247     Number of database instruments changed</h3>
14248    
14249     <p>Client may want to be notified when the number of instruments
14250     in a particular directory in the instruments database
14251     is changed by issuing the following command:
14252     </p>
14253     <p>
14254     </p>
14255     <blockquote class="text">
14256     <p>SUBSCRIBE DB_INSTRUMENT_COUNT
14257     </p>
14258     </blockquote><p>
14259    
14260     </p>
14261     <p>Server will start sending the following notification messages:
14262     </p>
14263     <p>
14264     </p>
14265     <blockquote class="text">
14266     <p>"NOTIFY:DB_INSTRUMENT_COUNT:&lt;dir-path&gt;"
14267     </p>
14268     </blockquote><p>
14269    
14270     </p>
14271     <p>where &lt;dir-path&gt; will be replaced by the absolute path
14272     name of the directory in the instruments database,
14273     in which the number of instruments is changed.
14274     </p>
14275     <p>Note that when a non-empty directory is removed, this event
14276     is not sent for the instruments in that directory.
14277     </p>
14278     <a name="SUBSCRIBE DB_INSTRUMENT_INFO"></a><br /><hr />
14279     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
14280     <a name="rfc.section.8.24"></a><h3>8.24.&nbsp;
14281     Database instrument information changed</h3>
14282    
14283     <p>Client may want to be notified when changes were made to instruments
14284     in the instruments database by issuing the following command:
14285     </p>
14286     <p>
14287     </p>
14288     <blockquote class="text">
14289     <p>SUBSCRIBE DB_INSTRUMENT_INFO
14290     </p>
14291     </blockquote><p>
14292    
14293     </p>
14294     <p>Server will start sending the following notification messages:
14295     </p>
14296     <p>
14297     </p>
14298     <blockquote class="text">
14299     <p>"NOTIFY:DB_INSTRUMENT_INFO:&lt;instr-path&gt;"
14300     </p>
14301     </blockquote><p>
14302    
14303     </p>
14304     <p>where &lt;instr-path&gt; will be replaced by the absolute path name
14305     of the instrument, which settings are changed. The front-end will have to send
14306     the respective command to actually get the updated directory info. Because these messages
14307     will be triggered by LSCP commands issued by other clients rather than real
14308     time events happening on the server, it is believed that an empty notification
14309     message is sufficient here.
14310     </p>
14311     <p>
14312     </p>
14313     <blockquote class="text">
14314     <p>"NOTIFY:DB_INSTRUMENT_INFO:NAME &lt;old-instr-path&gt; &lt;new-name&gt;"
14315     </p>
14316     </blockquote><p>
14317    
14318     </p>
14319     <p>where &lt;old-instr-path&gt; is the old absolute path name of the instrument
14320     (encapsulated into apostrophes), which name is changes and &lt;new-name&gt; is
14321     the new name of the instrument, encapsulated into apostrophes.
14322     </p>
14323     <a name="SUBSCRIBE DB_INSTRUMENTS_JOB_INFO"></a><br /><hr />
14324     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
14325     <a name="rfc.section.8.25"></a><h3>8.25.&nbsp;
14326     Database job status information changed</h3>
14327    
14328     <p>Client may want to be notified when the status of particular database
14329     instruments job is changed by issuing the following command:
14330     </p>
14331     <p>
14332     </p>
14333     <blockquote class="text">
14334     <p>SUBSCRIBE DB_INSTRUMENTS_JOB_INFO
14335     </p>
14336     </blockquote><p>
14337    
14338     </p>
14339     <p>Server will start sending the following notification messages:
14340     </p>
14341     <p>
14342     </p>
14343     <blockquote class="text">
14344     <p>"NOTIFY:DB_INSTRUMENTS_JOB_INFO:&lt;job-id&gt;"
14345     </p>
14346     </blockquote><p>
14347    
14348     </p>
14349     <p>where &lt;job-id&gt; will be replaced by the numerical ID of the job,
14350     which status is changed. The front-end will have to send the respective
14351     command to actually get the status info. Because these messages
14352     will be triggered by LSCP commands issued by other clients rather than real
14353     time events happening on the server, it is believed that an empty notification
14354     message is sufficient here.
14355     </p>
14356     <a name="SUBSCRIBE EFFECT_INSTANCE_COUNT"></a><br /><hr />
14357     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
14358     <a name="rfc.section.8.26"></a><h3>8.26.&nbsp;
14359     Number of effect instances changed</h3>
14360    
14361     <p>Client may want to be notified when the number of effect instances
14362     is changed by issuing the following command:
14363     </p>
14364     <p>
14365     </p>
14366     <blockquote class="text">
14367     <p>SUBSCRIBE EFFECT_INSTANCE_COUNT
14368     </p>
14369     </blockquote><p>
14370    
14371     </p>
14372     <p>Server will start sending the following notification messages:
14373     </p>
14374     <p>
14375     </p>
14376     <blockquote class="text">
14377     <p>"EFFECT_INSTANCE_COUNT:&lt;instances&gt;"
14378     </p>
14379     </blockquote><p>
14380    
14381     </p>
14382     <p>where &lt;instances&gt; will be replaced by the new number
14383     of effect instances.
14384     </p>
14385     <a name="SUBSCRIBE EFFECT_INSTANCE_INFO"></a><br /><hr />
14386     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
14387     <a name="rfc.section.8.27"></a><h3>8.27.&nbsp;
14388     Effect instance information changed</h3>
14389    
14390     <p>Client may want to be notified when changes were made to effect instances
14391     on the back-end by issuing the following command:
14392     </p>
14393     <p>
14394     </p>
14395     <blockquote class="text">
14396     <p>SUBSCRIBE EFFECT_INSTANCE_INFO
14397     </p>
14398     </blockquote><p>
14399    
14400     </p>
14401     <p>Server will start sending the following notification messages:
14402     </p>
14403     <p>
14404     </p>
14405     <blockquote class="text">
14406     <p>"EFFECT_INSTANCE_INFO:&lt;instance-id&gt;"
14407     </p>
14408     </blockquote><p>
14409    
14410     </p>
14411     <p>where &lt;instance-id&gt; will be replaced by the numerical ID
14412     of the effect instance.
14413     </p>
14414     <a name="SUBSCRIBE SEND_EFFECT_CHAIN_COUNT"></a><br /><hr />
14415     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
14416     <a name="rfc.section.8.28"></a><h3>8.28.&nbsp;
14417     Number of send effect chains changed</h3>
14418    
14419     <p>Client may want to be notified when the number of send effect chains
14420     is changed by issuing the following command:
14421     </p>
14422     <p>
14423     </p>
14424     <blockquote class="text">
14425     <p>SUBSCRIBE SEND_EFFECT_CHAIN_COUNT
14426     </p>
14427     </blockquote><p>
14428    
14429     </p>
14430     <p>Server will start sending the following notification messages:
14431     </p>
14432     <p>
14433     </p>
14434     <blockquote class="text">
14435     <p>"NOTIFY:SEND_EFFECT_CHAIN_COUNT:&lt;device-id&gt; &lt;chains&gt;"
14436     </p>
14437     </blockquote><p>
14438    
14439     </p>
14440     <p>where &lt;device-id&gt; will be replaced by the numerical ID of the audio
14441     output device, in which the number of send effect chains is changed and
14442     &lt;chains&gt; will be replaced by the new number of send effect chains.
14443     </p>
14444     <a name="SUBSCRIBE SEND_EFFECT_CHAIN_INFO"></a><br /><hr />
14445     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
14446     <a name="rfc.section.8.29"></a><h3>8.29.&nbsp;
14447     Send effect chain information changed</h3>
14448    
14449     <p>Client may want to be notified when changes were made to send effect chains
14450     on the back-end by issuing the following command:
14451     </p>
14452     <p>
14453     </p>
14454     <blockquote class="text">
14455     <p>SUBSCRIBE SEND_EFFECT_CHAIN_INFO
14456     </p>
14457     </blockquote><p>
14458    
14459     </p>
14460     <p>Server will start sending the following notification messages:
14461     </p>
14462     <p>
14463     </p>
14464     <blockquote class="text">
14465     <p>"SEND_EFFECT_CHAIN_INFO:&lt;device-id&gt; &lt;chain-id&gt; &lt;instances&gt;" -
14466     Notifies that the number of effect instances in a particular send effect chain
14467     is changed, where &lt;device-id&gt; will be replaced by the numerical ID of the audio
14468     output device the send effect chain belongs to, &lt;chain-id&gt; will be replaced
14469     by the numerical ID of the send effect chain in which the number of effect instances
14470     has changed and &lt;instances&gt; will be replaced by the new number
14471     of effect instances in the specified send effect chain.
14472     </p>
14473     </blockquote><p>
14474    
14475     </p>
14476     <a name="SUBSCRIBE MISCELLANEOUS"></a><br /><hr />
14477     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
14478     <a name="rfc.section.8.30"></a><h3>8.30.&nbsp;
14479     Miscellaneous and debugging events</h3>
14480    
14481     <p>Client may want to be notified of miscellaneous and debugging events occurring at
14482     the server by issuing the following command:
14483     </p>
14484     <p>
14485     </p>
14486     <blockquote class="text">
14487     <p>SUBSCRIBE MISCELLANEOUS
14488     </p>
14489     </blockquote><p>
14490    
14491     </p>
14492     <p>Server will start sending the following notification messages:
14493     </p>
14494     <p>
14495     </p>
14496     <blockquote class="text">
14497     <p>"NOTIFY:MISCELLANEOUS:&lt;string&gt;"
14498     </p>
14499     </blockquote><p>
14500    
14501     </p>
14502     <p>where &lt;string&gt; will be replaced by whatever data server
14503     wants to send to the client. Client MAY display this data to the
14504     user AS IS to facilitate debugging.
14505     </p>
14506     <a name="anchor14"></a><br /><hr />
14507     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
14508     <a name="rfc.section.9"></a><h3>9.&nbsp;
14509     Security Considerations</h3>
14510    
14511     <p>As there is so far no method of authentication and authorization
14512     defined and so not required for a client applications to succeed to
14513     connect, running LinuxSampler might be a security risk for the host
14514     system the LinuxSampler instance is running on.
14515     </p>
14516     <a name="anchor15"></a><br /><hr />
14517     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
14518     <a name="rfc.section.10"></a><h3>10.&nbsp;
14519     Acknowledgments</h3>
14520    
14521     <p>This document has benefited greatly from the comments of the
14522     following people, discussed on the LinuxSampler developer's mailing
14523     list:
14524     </p>
14525     <p>
14526     </p>
14527     <blockquote class="text">
14528     <p>Rui Nuno Capela
14529     </p>
14530     <p>Vladimir Senkov
14531     </p>
14532     <p>Mark Knecht
14533     </p>
14534     <p>Grigor Iliev
14535     </p>
14536     </blockquote><p>
14537    
14538     </p>
14539     <a name="rfc.references1"></a><br /><hr />
14540     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
14541     <h3>11.&nbsp;References</h3>
14542     <table width="99%" border="0">
14543     <tr><td class="author-text" valign="top"><a name="RFC20">[RFC20]</a></td>
14544     <td class="author-text">UCLA, &ldquo;<a href="http://tools.ietf.org/html/rfc20">ASCII format for Network Interchange</a>,&rdquo; RFC&nbsp;20, 1969.</td></tr>
14545     <tr><td class="author-text" valign="top"><a name="RFC2119">[RFC2119]</a></td>
14546     <td class="author-text">Bradner, S., &ldquo;<a href="http://tools.ietf.org/html/rfc2119">Key words for use in RFCs to Indicate Requirement Levels</a>,&rdquo; RFC&nbsp;2119, 1997.</td></tr>
14547     <tr><td class="author-text" valign="top"><a name="RFC2234">[RFC2234]</a></td>
14548     <td class="author-text">Crocker, D. and P. Overell, &ldquo;<a href="http://tools.ietf.org/html/rfc2234">Augmented BNF for Syntax Specifications</a>,&rdquo; RFC&nbsp;2234, 1997.</td></tr>
14549     <tr><td class="author-text" valign="top"><a name="RFC793">[RFC793]</a></td>
14550     <td class="author-text">Defense Advanced Research Projects Agency, &ldquo;<a href="http://tools.ietf.org/html/rfc793">TRANSMISSION CONTROL PROTOCOL</a>,&rdquo; RFC&nbsp;793, 1981.</td></tr>
14551     </table>
14552    
14553     <a name="rfc.authors"></a><br /><hr />
14554     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
14555     <h3>Author's Address</h3>
14556     <table width="99%" border="0" cellpadding="0" cellspacing="0">
14557     <tr><td class="author-text">&nbsp;</td>
14558     <td class="author-text">C.
14559     Schoenebeck</td></tr>
14560     <tr><td class="author-text">&nbsp;</td>
14561     <td class="author-text">LinuxSampler.org</td></tr>
14562     <tr><td class="author-text">&nbsp;</td>
14563     <td class="author-text">Crudebyte Engineering</td></tr>
14564     <tr><td class="author-text">&nbsp;</td>
14565     <td class="author-text">Hofgartenstr. 3</td></tr>
14566     <tr><td class="author-text">&nbsp;</td>
14567     <td class="author-text">74189 Weinsberg</td></tr>
14568     <tr><td class="author-text">&nbsp;</td>
14569     <td class="author-text">Germany</td></tr>
14570     <tr><td class="author" align="right">Phone:&nbsp;</td>
14571     <td class="author-text">+49 7134 911614</td></tr>
14572     <tr><td class="author" align="right">Email:&nbsp;</td>
14573     <td class="author-text"><a href="mailto:cuse@users.sf.net">cuse@users.sf.net</a></td></tr>
14574     </table>
14575     <a name="rfc.copyright"></a><br /><hr />
14576     <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
14577     <h3>Full Copyright Statement</h3>
14578     <p class='copyright'>
14579     Copyright &copy; The IETF Trust (2014).</p>
14580     <p class='copyright'>
14581     This document is subject to the rights,
14582     licenses and restrictions contained in BCP&nbsp;78,
14583     and except as set forth therein,
14584     the authors retain all their rights.</p>
14585     <p class='copyright'>
14586     This document and the information contained herein are provided
14587     on an &ldquo;AS IS&rdquo; basis and THE CONTRIBUTOR,
14588     THE ORGANIZATION HE/SHE REPRESENTS
14589     OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST
14590     AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES,
14591     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT
14592     THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY
14593     IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR
14594     PURPOSE.</p>
14595     <h3>Intellectual Property</h3>
14596     <p class='copyright'>
14597     The IETF takes no position regarding the validity or scope of any
14598     Intellectual Property Rights or other rights that might be claimed
14599     to pertain to the implementation or use of the technology
14600     described in this document or the extent to which any license
14601     under such rights might or might not be available; nor does it
14602     represent that it has made any independent effort to identify any
14603     such rights.
14604     Information on the procedures with respect to
14605     rights in RFC documents can be found in BCP&nbsp;78 and BCP&nbsp;79.</p>
14606     <p class='copyright'>
14607     Copies of IPR disclosures made to the IETF Secretariat and any
14608     assurances of licenses to be made available,
14609     or the result of an attempt made to obtain a general license or
14610     permission for the use of such proprietary rights by implementers or
14611     users of this specification can be obtained from the IETF on-line IPR
14612     repository at <a href='http://www.ietf.org/ipr'>http://www.ietf.org/ipr</a>.</p>
14613     <p class='copyright'>
14614     The IETF invites any interested party to bring to its attention
14615     any copyrights,
14616     patents or patent applications,
14617     or other
14618     proprietary rights that may cover technology that may be required
14619     to implement this standard.
14620     Please address the information to the IETF at <a href='mailto:ietf-ipr@ietf.org'>ietf-ipr@ietf.org</a>.</p>
14621     </body></html>

  ViewVC Help
Powered by ViewVC