/[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 2499 - (hide annotations) (download) (as text)
Fri Jan 10 00:57:00 2014 UTC (10 years, 3 months ago) by schoenebeck
File MIME type: text/html
File size: 521730 byte(s)
* Updated LSCP 1.6 specs.

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 schoenebeck 2499 <tr><td class="header">Intended status: Standards Track</td><td class="header">January 10, 2014</td></tr>
148     <tr><td class="header">Expires: July 14, 2014</td><td class="header">&nbsp;</td></tr>
149 schoenebeck 2498 </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 schoenebeck 2499 This Internet-Draft will expire on July 14, 2014.</p>
180 schoenebeck 2498 <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 schoenebeck 2499 <p>DEPRECATED: THIS FIELD WILL DISAPPEAR!
4144     </p>
4145 schoenebeck 2498 <p>numerical ID of the MIDI input device which is
4146     currently connected to this sampler channel to deliver
4147     MIDI input commands, "-1" if there's no device
4148     connected to this sampler channel
4149     </p>
4150 schoenebeck 2499 <p>Should not be used anymore as of LSCP v1.6 and younger.
4151     This field is currently only preserved for backward compatibility.
4152    
4153     </p>
4154     <p>This field a relict from times where only one MIDI input per
4155     sampler channel was allowed. Use <a class='info' href='#LIST CHANNEL MIDI_INPUTS'>"GET CHANNEL MIDI_INPUTS"<span> (</span><span class='info'>Getting all MIDI inputs of a sampler channel</span><span>)</span></a>
4156     instead.
4157     </p>
4158 schoenebeck 2498 </blockquote>
4159    
4160    
4161     <p>MIDI_INPUT_PORT -
4162     </p>
4163     <blockquote class="text">
4164 schoenebeck 2499 <p>DEPRECATED: THIS FIELD WILL DISAPPEAR!
4165     </p>
4166 schoenebeck 2498 <p>port number of the MIDI input device (in case a
4167     MIDI device was already assigned to the sampler
4168     channel)
4169     </p>
4170 schoenebeck 2499 <p>Should not be used anymore as of LSCP v1.6 and younger.
4171     This field is currently only preserved for backward compatibility.
4172    
4173     </p>
4174     <p>This field a relict from times where only one MIDI input per
4175     sampler channel was allowed. Use <a class='info' href='#LIST CHANNEL MIDI_INPUTS'>"GET CHANNEL MIDI_INPUTS"<span> (</span><span class='info'>Getting all MIDI inputs of a sampler channel</span><span>)</span></a>
4176     instead.
4177     </p>
4178 schoenebeck 2498 </blockquote>
4179    
4180    
4181     <p>MIDI_INPUT_CHANNEL -
4182     </p>
4183     <blockquote class="text">
4184     <p>the MIDI input channel number this sampler channel
4185     should listen to or "ALL" to listen on all MIDI channels
4186     </p>
4187     </blockquote>
4188    
4189    
4190     <p>VOLUME -
4191     </p>
4192     <blockquote class="text">
4193     <p>optionally dotted number for the channel volume factor
4194     (where a value &lt; 1.0 means attenuation and a value >
4195     1.0 means amplification)
4196     </p>
4197     </blockquote>
4198    
4199    
4200     <p>MUTE -
4201     </p>
4202     <blockquote class="text">
4203     <p>Determines whether the channel is muted, "true" if the
4204     channel is muted, "false" if the channel is not muted, and
4205     "MUTED_BY_SOLO" if the channel is muted because of the
4206     presence of a solo channel and will be unmuted when
4207     there are no solo channels left
4208     </p>
4209     </blockquote>
4210    
4211    
4212     <p>SOLO -
4213     </p>
4214     <blockquote class="text">
4215     <p>Determines whether this is a solo channel, "true" if
4216     the channel is a solo channel; "false" otherwise
4217     </p>
4218     </blockquote>
4219    
4220    
4221     <p>MIDI_INSTRUMENT_MAP -
4222     </p>
4223     <blockquote class="text">
4224     <p>Determines to which MIDI instrument map this sampler
4225     channel is assigned to. Read chapter
4226     <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>
4227     for a list of possible values.
4228     </p>
4229     </blockquote>
4230    
4231    
4232     </blockquote>
4233    
4234    
4235     </blockquote><p>
4236    
4237     </p>
4238     <p>The mentioned fields above don't have to be in particular order.
4239     </p>
4240     <p>Example:
4241     </p>
4242     <p>
4243     </p>
4244     <blockquote class="text">
4245     <p>C: "GET CHANNEL INFO 34"
4246     </p>
4247     <p>S: "ENGINE_NAME: gig"
4248     </p>
4249     <p>&nbsp;&nbsp;&nbsp;"VOLUME: 1.0"
4250     </p>
4251     <p>&nbsp;&nbsp;&nbsp;"AUDIO_OUTPUT_DEVICE: 0"
4252     </p>
4253     <p>&nbsp;&nbsp;&nbsp;"AUDIO_OUTPUT_CHANNELS: 2"
4254     </p>
4255     <p>&nbsp;&nbsp;&nbsp;"AUDIO_OUTPUT_ROUTING: 0,1"
4256     </p>
4257     <p>&nbsp;&nbsp;&nbsp;"INSTRUMENT_FILE: /home/joe/FazioliPiano.gig"
4258     </p>
4259     <p>&nbsp;&nbsp;&nbsp;"INSTRUMENT_NR: 0"
4260     </p>
4261     <p>&nbsp;&nbsp;&nbsp;"INSTRUMENT_NAME: Fazioli Piano"
4262     </p>
4263     <p>&nbsp;&nbsp;&nbsp;"INSTRUMENT_STATUS: 100"
4264     </p>
4265     <p>&nbsp;&nbsp;&nbsp;"MIDI_INPUT_DEVICE: 0"
4266     </p>
4267     <p>&nbsp;&nbsp;&nbsp;"MIDI_INPUT_PORT: 0"
4268     </p>
4269     <p>&nbsp;&nbsp;&nbsp;"MIDI_INPUT_CHANNEL: 5"
4270     </p>
4271     <p>&nbsp;&nbsp;&nbsp;"VOLUME: 1.0"
4272     </p>
4273     <p>&nbsp;&nbsp;&nbsp;"MUTE: false"
4274     </p>
4275     <p>&nbsp;&nbsp;&nbsp;"SOLO: false"
4276     </p>
4277     <p>&nbsp;&nbsp;&nbsp;"MIDI_INSTRUMENT_MAP: NONE"
4278     </p>
4279     <p>&nbsp;&nbsp;&nbsp;"."
4280     </p>
4281     </blockquote><p>
4282    
4283     </p>
4284     <a name="GET CHANNEL VOICE_COUNT"></a><br /><hr />
4285     <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>
4286     <a name="rfc.section.6.4.11"></a><h3>6.4.11.&nbsp;
4287     Current number of active voices</h3>
4288    
4289     <p>The front-end can ask for the current number of active voices on a
4290     sampler channel by sending the following command:
4291     </p>
4292     <p>
4293     </p>
4294     <blockquote class="text">
4295     <p>GET CHANNEL VOICE_COUNT &lt;sampler-channel&gt;
4296     </p>
4297     </blockquote><p>
4298    
4299     </p>
4300     <p>Where &lt;sampler-channel&gt; is the sampler channel number the front-end is interested in
4301     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>
4302     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.
4303     </p>
4304     <p>Possible Answers:
4305     </p>
4306     <p>
4307     </p>
4308     <blockquote class="text">
4309     <p>LinuxSampler will answer by returning the number of active
4310     voices on that channel.
4311     </p>
4312     </blockquote><p>
4313    
4314     </p>
4315     <p>Example:
4316     </p>
4317     <p>
4318     </p>
4319     <blockquote class="text">
4320     <p>
4321     </p>
4322     </blockquote><p>
4323    
4324     </p>
4325     <a name="GET CHANNEL STREAM_COUNT"></a><br /><hr />
4326     <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>
4327     <a name="rfc.section.6.4.12"></a><h3>6.4.12.&nbsp;
4328     Current number of active disk streams</h3>
4329    
4330     <p>The front-end can ask for the current number of active disk streams
4331     on a sampler channel by sending the following command:
4332     </p>
4333     <p>
4334     </p>
4335     <blockquote class="text">
4336     <p>GET CHANNEL STREAM_COUNT &lt;sampler-channel&gt;
4337     </p>
4338     </blockquote><p>
4339    
4340     </p>
4341     <p>Where &lt;sampler-channel&gt; is the sampler channel number the front-end is interested in
4342     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>
4343     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.
4344     </p>
4345     <p>Possible Answers:
4346     </p>
4347     <p>
4348     </p>
4349     <blockquote class="text">
4350     <p>LinuxSampler will answer by returning the number of active
4351     disk streams on that channel in case the engine supports disk
4352     streaming, if the engine doesn't support disk streaming it will
4353     return "NA" for not available.
4354     </p>
4355     </blockquote><p>
4356    
4357     </p>
4358     <p>Example:
4359     </p>
4360     <p>
4361     </p>
4362     <blockquote class="text">
4363     <p>
4364     </p>
4365     </blockquote><p>
4366    
4367     </p>
4368     <a name="GET CHANNEL BUFFER_FILL"></a><br /><hr />
4369     <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>
4370     <a name="rfc.section.6.4.13"></a><h3>6.4.13.&nbsp;
4371     Current fill state of disk stream buffers</h3>
4372    
4373     <p>The front-end can ask for the current fill state of all disk streams
4374     on a sampler channel by sending the following command:
4375     </p>
4376     <p>
4377     </p>
4378     <blockquote class="text">
4379     <p>GET CHANNEL BUFFER_FILL BYTES &lt;sampler-channel&gt;
4380     </p>
4381     </blockquote><p>
4382    
4383     </p>
4384     <p>to get the fill state in bytes or
4385     </p>
4386     <p>
4387     </p>
4388     <blockquote class="text">
4389     <p>GET CHANNEL BUFFER_FILL PERCENTAGE &lt;sampler-channel&gt;
4390     </p>
4391     </blockquote><p>
4392    
4393     </p>
4394     <p>to get the fill state in percent, where &lt;sampler-channel&gt; is the
4395     sampler channel number the front-end is interested in
4396     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>
4397     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.
4398     </p>
4399     <p>Possible Answers:
4400     </p>
4401     <p>
4402     </p>
4403     <blockquote class="text">
4404     <p>LinuxSampler will either answer by returning a comma separated
4405     string with the fill state of all disk stream buffers on that
4406     channel or an empty line if there are no active disk streams or
4407     "NA" for *not available* in case the engine which is deployed
4408     doesn't support disk streaming. Each entry in the answer list
4409     will begin with the stream's ID in brackets followed by the
4410     numerical representation of the fill size (either in bytes or
4411     percentage). Note: due to efficiency reasons the fill states in
4412     the response are not in particular order, thus the front-end has
4413     to sort them by itself if necessary.
4414     </p>
4415     </blockquote><p>
4416    
4417     </p>
4418     <p>Examples:
4419     </p>
4420     <p>
4421     </p>
4422     <blockquote class="text">
4423     <p>C: "GET CHANNEL BUFFER_FILL BYTES 4"
4424     </p>
4425     <p>S: "[115]420500,[116]510300,[75]110000,[120]230700"
4426     </p>
4427     </blockquote><p>
4428    
4429     </p>
4430     <blockquote class="text">
4431     <p>C: "GET CHANNEL BUFFER_FILL PERCENTAGE 4"
4432     </p>
4433     <p>S: "[115]90%,[116]98%,[75]40%,[120]62%"
4434     </p>
4435     </blockquote><p>
4436    
4437     </p>
4438     <blockquote class="text">
4439     <p>C: "GET CHANNEL BUFFER_FILL PERCENTAGE 4"
4440     </p>
4441     <p>S: ""
4442     </p>
4443     </blockquote><p>
4444    
4445     </p>
4446     <a name="SET CHANNEL AUDIO_OUTPUT_DEVICE"></a><br /><hr />
4447     <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>
4448     <a name="rfc.section.6.4.14"></a><h3>6.4.14.&nbsp;
4449     Setting audio output device</h3>
4450    
4451     <p>The front-end can set the audio output device on a specific sampler
4452     channel by sending the following command:
4453     </p>
4454     <p>
4455     </p>
4456     <blockquote class="text">
4457     <p>SET CHANNEL AUDIO_OUTPUT_DEVICE &lt;sampler-channel&gt; &lt;audio-device-id&gt;
4458     </p>
4459     </blockquote><p>
4460    
4461     </p>
4462     <p>Where &lt;sampler-channel&gt; is the respective sampler channel
4463     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>
4464     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
4465     &lt;audio-device-id&gt; is the numerical ID of the audio output device as given by the
4466     <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>
4467     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>
4468     command.
4469     </p>
4470     <p>Possible Answers:
4471     </p>
4472     <p>
4473     </p>
4474     <blockquote class="text">
4475     <p>"OK" -
4476     </p>
4477     <blockquote class="text">
4478     <p>on success
4479     </p>
4480     </blockquote>
4481    
4482    
4483     <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
4484     </p>
4485     <blockquote class="text">
4486     <p>if audio output device was set, but there are noteworthy
4487     issue(s) related, providing an appropriate warning code and
4488     warning message
4489     </p>
4490     </blockquote>
4491    
4492    
4493     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
4494     </p>
4495     <blockquote class="text">
4496     <p>in case it failed, providing an appropriate error code and error message
4497     </p>
4498     </blockquote>
4499    
4500    
4501     </blockquote><p>
4502    
4503     </p>
4504     <p>Examples:
4505     </p>
4506     <p>
4507     </p>
4508     <blockquote class="text">
4509     <p>
4510     </p>
4511     </blockquote><p>
4512    
4513     </p>
4514     <a name="SET CHANNEL AUDIO_OUTPUT_TYPE"></a><br /><hr />
4515     <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>
4516     <a name="rfc.section.6.4.15"></a><h3>6.4.15.&nbsp;
4517     Setting audio output type</h3>
4518    
4519     <p>DEPRECATED: THIS COMMAND WILL DISAPPEAR!
4520     </p>
4521     <p>The front-end can alter the audio output type on a specific sampler
4522     channel by sending the following command:
4523     </p>
4524     <p>
4525     </p>
4526     <blockquote class="text">
4527     <p>SET CHANNEL AUDIO_OUTPUT_TYPE &lt;sampler-channel&gt; &lt;audio-output-type&gt;
4528     </p>
4529     </blockquote><p>
4530    
4531     </p>
4532     <p>Where &lt;audio-output-type&gt; is currently either "ALSA" or "JACK" and
4533     &lt;sampler-channel&gt; is the respective sampler channel number.
4534     </p>
4535     <p>Possible Answers:
4536     </p>
4537     <p>
4538     </p>
4539     <blockquote class="text">
4540     <p>"OK" -
4541     </p>
4542     <blockquote class="text">
4543     <p>on success
4544     </p>
4545     </blockquote>
4546    
4547    
4548     <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
4549     </p>
4550     <blockquote class="text">
4551     <p>if audio output type was set, but there are noteworthy
4552     issue(s) related, providing an appropriate warning code and
4553     warning message
4554     </p>
4555     </blockquote>
4556    
4557    
4558     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
4559     </p>
4560     <blockquote class="text">
4561     <p>in case it failed, providing an appropriate error code and error message
4562     </p>
4563     </blockquote>
4564    
4565    
4566     </blockquote><p>
4567    
4568     </p>
4569     <p>Examples:
4570     </p>
4571     <p>
4572     </p>
4573     <blockquote class="text">
4574     <p>
4575     </p>
4576     </blockquote><p>
4577    
4578     </p>
4579     <p>Deprecated:
4580     </p>
4581     <p>
4582     </p>
4583     <blockquote class="text">
4584     <p>Should not be used anymore. This command is currently only preserved for backward compatibility.
4585     </p>
4586     <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.
4587     </p>
4588     </blockquote><p>
4589    
4590     </p>
4591     <a name="SET CHANNEL AUDIO_OUTPUT_CHANNEL"></a><br /><hr />
4592     <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>
4593     <a name="rfc.section.6.4.16"></a><h3>6.4.16.&nbsp;
4594     Setting audio output channel</h3>
4595    
4596     <p>The front-end can alter the audio output channel on a specific
4597     sampler channel by sending the following command:
4598     </p>
4599     <p>
4600     </p>
4601     <blockquote class="text">
4602     <p>SET CHANNEL AUDIO_OUTPUT_CHANNEL &lt;sampler-chan&gt; &lt;audio-out&gt; &lt;audio-in&gt;
4603     </p>
4604     </blockquote><p>
4605    
4606     </p>
4607     <p>Where &lt;sampler-chan&gt; is the sampler channel number
4608     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>
4609     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
4610     numerical ID of the sampler channel's audio output channel which should be
4611     rerouted and &lt;audio-in&gt; is the numerical ID of the audio channel of the selected audio
4612     output device where &lt;audio-out&gt; should be routed to.
4613     </p>
4614     <p>Possible Answers:
4615     </p>
4616     <p>
4617     </p>
4618     <blockquote class="text">
4619     <p>"OK" -
4620     </p>
4621     <blockquote class="text">
4622     <p>on success
4623     </p>
4624     </blockquote>
4625    
4626    
4627     <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
4628     </p>
4629     <blockquote class="text">
4630     <p>if audio output channel was set, but there are noteworthy
4631     issue(s) related, providing an appropriate warning code and
4632     warning message
4633     </p>
4634     </blockquote>
4635    
4636    
4637     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
4638     </p>
4639     <blockquote class="text">
4640     <p>in case it failed, providing an appropriate error code and error message
4641     </p>
4642     </blockquote>
4643    
4644    
4645     </blockquote><p>
4646    
4647     </p>
4648     <p>Examples:
4649     </p>
4650     <p>
4651     </p>
4652     <blockquote class="text">
4653     <p>
4654     </p>
4655     </blockquote><p>
4656    
4657     </p>
4658     <a name="ADD CHANNEL MIDI_INPUT"></a><br /><hr />
4659     <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>
4660     <a name="rfc.section.6.4.17"></a><h3>6.4.17.&nbsp;
4661     Add MIDI input to sampler channel</h3>
4662    
4663     <p>The front-end can add a MIDI input on a specific sampler
4664     channel by sending the following command:
4665     </p>
4666     <p>
4667     </p>
4668     <blockquote class="text">
4669     <p>ADD CHANNEL MIDI_INPUT &lt;sampler-channel&gt; &lt;midi-device-id&gt; [&lt;midi-input-port&gt;]
4670     </p>
4671     </blockquote><p>
4672    
4673     </p>
4674     <p>Where &lt;sampler-channel&gt; is the sampler channel number
4675     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>
4676     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
4677     and &lt;midi-device-id&gt; is the numerical ID of the MIDI input
4678     device as returned by the
4679     <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>
4680     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,
4681     and &lt;midi-input-port&gt; is an optional MIDI input port number of that
4682     MIDI input device. If &lt;midi-input-port&gt; is omitted,
4683     then the MIDI input device's first port (port number 0) is
4684     used.
4685    
4686     </p>
4687     <p>Possible Answers:
4688     </p>
4689     <p>
4690     </p>
4691     <blockquote class="text">
4692     <p>"OK" -
4693     </p>
4694     <blockquote class="text">
4695     <p>on success
4696     </p>
4697     </blockquote>
4698    
4699    
4700     <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
4701     </p>
4702     <blockquote class="text">
4703     <p>if MIDI input port was connected, but there are noteworthy
4704     issue(s) related, providing an appropriate warning code and
4705     warning message
4706     </p>
4707     </blockquote>
4708    
4709    
4710     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
4711     </p>
4712     <blockquote class="text">
4713     <p>in case it failed, providing an appropriate error code and error message
4714     </p>
4715     </blockquote>
4716    
4717    
4718     </blockquote><p>
4719    
4720     </p>
4721     <p>Examples:
4722     </p>
4723     <p>
4724     </p>
4725     <blockquote class="text">
4726     <p>C: "ADD CHANNEL MIDI_INPUT 0 0"
4727     </p>
4728     <p>S: "OK"
4729     </p>
4730     <p>C: "ADD CHANNEL MIDI_INPUT 1 0"
4731     </p>
4732     <p>S: "OK"
4733     </p>
4734     <p>C: "ADD CHANNEL MIDI_INPUT 1 1 1"
4735     </p>
4736     <p>S: "OK"
4737     </p>
4738     <p>C: "ADD CHANNEL MIDI_INPUT 1 2 0"
4739     </p>
4740     <p>S: "OK"
4741     </p>
4742     </blockquote><p>
4743    
4744     </p>
4745     <p>Since:
4746     </p>
4747     <p>
4748     </p>
4749     <blockquote class="text">
4750     <p>Introduced with LSCP v1.6
4751     </p>
4752     </blockquote><p>
4753    
4754     </p>
4755     <a name="REMOVE CHANNEL MIDI_INPUT"></a><br /><hr />
4756     <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>
4757     <a name="rfc.section.6.4.18"></a><h3>6.4.18.&nbsp;
4758     Remove MIDI input(s) from sampler channel</h3>
4759    
4760     <p>The front-end can remove one ore more MIDI input(s) on a
4761     specific sampler channel by sending the following command:
4762     </p>
4763     <p>
4764     </p>
4765     <blockquote class="text">
4766     <p>REMOVE CHANNEL MIDI_INPUT &lt;sampler-channel&gt; [&lt;midi-device-id&gt; [&lt;midi-input-port&gt;]]
4767     </p>
4768     </blockquote><p>
4769    
4770     </p>
4771     <p>Where &lt;sampler-channel&gt; is the sampler channel number
4772     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>
4773     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
4774     and &lt;midi-device-id&gt; and &lt;midi-input-port&gt; are
4775     optional numerical IDs defining the MIDI input device and
4776     one of its MIDI ports as returned by the
4777     <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.
4778    
4779     </p>
4780     <p>
4781     If &lt;midi-input-port&gt; is omitted, then all MIDI input
4782     ports of &lt;midi-device-id&gt; are disconnected from this
4783     sampler channel.
4784    
4785     </p>
4786     <p>
4787     If both, &lt;midi-device-id&gt; and &lt;midi-input-port&gt;
4788     are omitted, then all MIDI input ports currently connected
4789     to this sampler channel are disconnected from this sampler
4790     channel.
4791    
4792     </p>
4793     <p>Possible Answers:
4794     </p>
4795     <p>
4796     </p>
4797     <blockquote class="text">
4798     <p>"OK" -
4799     </p>
4800     <blockquote class="text">
4801     <p>on success
4802     </p>
4803     </blockquote>
4804    
4805    
4806     <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
4807     </p>
4808     <blockquote class="text">
4809     <p>if MIDI input porst were disconnected, but there are noteworthy
4810     issue(s) related, providing an appropriate warning code and
4811     warning message
4812     </p>
4813     </blockquote>
4814    
4815    
4816     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
4817     </p>
4818     <blockquote class="text">
4819     <p>in case it failed, providing an appropriate error code and error message
4820     </p>
4821     </blockquote>
4822    
4823    
4824     </blockquote><p>
4825    
4826     </p>
4827     <p>Examples:
4828     </p>
4829     <p>
4830     </p>
4831     <blockquote class="text">
4832     <p>C: "REMOVE CHANNEL MIDI_INPUT 0"
4833     </p>
4834     <p>S: "OK"
4835     </p>
4836     <p>C: "REMOVE CHANNEL MIDI_INPUT 1"
4837     </p>
4838     <p>S: "OK"
4839     </p>
4840     <p>C: "REMOVE CHANNEL MIDI_INPUT 1 2 0"
4841     </p>
4842     <p>S: "OK"
4843     </p>
4844     </blockquote><p>
4845    
4846     </p>
4847     <p>Since:
4848     </p>
4849     <p>
4850     </p>
4851     <blockquote class="text">
4852     <p>Introduced with LSCP v1.6
4853     </p>
4854     </blockquote><p>
4855    
4856     </p>
4857     <a name="LIST CHANNEL MIDI_INPUTS"></a><br /><hr />
4858     <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>
4859     <a name="rfc.section.6.4.19"></a><h3>6.4.19.&nbsp;
4860     Getting all MIDI inputs of a sampler channel</h3>
4861    
4862     <p>The front-end can query a list of all currently connected
4863     MIDI inputs of a certain sampler channel by sending the following
4864     command:
4865     </p>
4866     <p>
4867     </p>
4868     <blockquote class="text">
4869     <p>LIST CHANNEL MIDI_INPUTS &lt;sampler-channel&gt;
4870     </p>
4871     </blockquote><p>
4872    
4873     </p>
4874     <p>Where &lt;sampler-channel&gt; is the sampler channel number
4875     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>
4876     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.
4877    
4878     </p>
4879     <p>Possible Answers:
4880     </p>
4881     <p>
4882     </p>
4883     <blockquote class="text">
4884     <p>The sampler will answer by sending a comma separated
4885     list of MIDI input device ID - MIDI input port number pairs, where
4886     each pair is encapsulated into curly braces. The
4887     list is returned in one single line. The MIDI input
4888     device ID corresponds to the number returned by
4889     <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>
4890     and the port number is the index of the respective MIDI
4891     port of that MIDI input device.
4892     </p>
4893     </blockquote><p>
4894    
4895     </p>
4896     <p>Example:
4897     </p>
4898     <p>
4899     </p>
4900     <blockquote class="text">
4901     <p>C: "LIST CHANNEL MIDI_INPUTS 0"
4902     </p>
4903     <p>S: "{0,0},{1,3},{2,0}"
4904     </p>
4905     </blockquote><p>
4906    
4907     </p>
4908     <p>Since:
4909     </p>
4910     <p>
4911     </p>
4912     <blockquote class="text">
4913     <p>Introduced with LSCP v1.6
4914     </p>
4915     </blockquote><p>
4916    
4917     </p>
4918     <a name="SET CHANNEL MIDI_INPUT_DEVICE"></a><br /><hr />
4919     <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>
4920     <a name="rfc.section.6.4.20"></a><h3>6.4.20.&nbsp;
4921     Setting MIDI input device</h3>
4922    
4923     <p>DEPRECATED: THIS COMMAND WILL DISAPPEAR!
4924     </p>
4925     <p>The front-end can set the MIDI input device on a specific sampler
4926     channel by sending the following command:
4927     </p>
4928     <p>
4929     </p>
4930     <blockquote class="text">
4931     <p>SET CHANNEL MIDI_INPUT_DEVICE &lt;sampler-channel&gt; &lt;midi-device-id&gt;
4932     </p>
4933     </blockquote><p>
4934    
4935     </p>
4936     <p>Where &lt;sampler-channel&gt; is the sampler channel number
4937     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>
4938     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
4939     and &lt;midi-device-id&gt; is the numerical ID of the MIDI input device as returned by the
4940     <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>
4941     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.
4942     </p>
4943     <p>
4944     If more than 1 MIDI inputs are currently connected to this
4945     sampler channel: Sending this command will disconnect ALL
4946     currently connected MIDI input ports connected to this
4947     sampler channel before establishing the new MIDI input
4948     connection. So this command does NOT add the connection,
4949     it replaces all existing ones instead. This behavior is due
4950     to preserving full behavior backward compatibility.
4951    
4952     </p>
4953     <p>Possible Answers:
4954     </p>
4955     <p>
4956     </p>
4957     <blockquote class="text">
4958     <p>"OK" -
4959     </p>
4960     <blockquote class="text">
4961     <p>on success
4962     </p>
4963     </blockquote>
4964    
4965    
4966     <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
4967     </p>
4968     <blockquote class="text">
4969     <p>if MIDI input device was set, but there are noteworthy
4970     issue(s) related, providing an appropriate warning code and
4971     warning message
4972     </p>
4973     </blockquote>
4974    
4975    
4976     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
4977     </p>
4978     <blockquote class="text">
4979     <p>in case it failed, providing an appropriate error code and error message
4980     </p>
4981     </blockquote>
4982    
4983    
4984     </blockquote><p>
4985    
4986     </p>
4987     <p>Examples:
4988     </p>
4989     <p>
4990     </p>
4991     <blockquote class="text">
4992     <p>
4993     </p>
4994     </blockquote><p>
4995    
4996     </p>
4997     <p>Deprecated:
4998     </p>
4999     <p>
5000     </p>
5001     <blockquote class="text">
5002     <p>Should not be used anymore as of LSCP v1.6 and younger. This command is currently only preserved for backward compatibility.
5003     </p>
5004     <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.
5005     </p>
5006     </blockquote><p>
5007    
5008     </p>
5009     <a name="SET CHANNEL MIDI_INPUT_TYPE"></a><br /><hr />
5010     <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>
5011     <a name="rfc.section.6.4.21"></a><h3>6.4.21.&nbsp;
5012     Setting MIDI input type</h3>
5013    
5014     <p>DEPRECATED: THIS COMMAND WILL DISAPPEAR!
5015     </p>
5016     <p>The front-end can alter the MIDI input type on a specific sampler
5017     channel by sending the following command:
5018     </p>
5019     <p>
5020     </p>
5021     <blockquote class="text">
5022     <p>SET CHANNEL MIDI_INPUT_TYPE &lt;sampler-channel&gt; &lt;midi-input-type&gt;
5023     </p>
5024     </blockquote><p>
5025    
5026     </p>
5027     <p>Where &lt;midi-input-type&gt; is currently only "ALSA" and
5028     &lt;sampler-channel&gt; is the respective sampler channel number.
5029     </p>
5030     <p>
5031     If more than 1 MIDI inputs are currently connected to this
5032     sampler channel: Sending this command will disconnect ALL
5033     currently connected MIDI input ports connected to this
5034     sampler channel before establishing the new MIDI input
5035     connection. So this command does NOT add the connection,
5036     it replaces all existing ones instead. This behavior is due
5037     to preserving full behavior backward compatibility.
5038    
5039     </p>
5040     <p>Possible Answers:
5041     </p>
5042     <p>
5043     </p>
5044     <blockquote class="text">
5045     <p>"OK" -
5046     </p>
5047     <blockquote class="text">
5048     <p>on success
5049     </p>
5050     </blockquote>
5051    
5052    
5053     <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
5054     </p>
5055     <blockquote class="text">
5056     <p>if MIDI input type was set, but there are noteworthy
5057     issue(s) related, providing an appropriate warning code and
5058     warning message
5059     </p>
5060     </blockquote>
5061    
5062    
5063     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
5064     </p>
5065     <blockquote class="text">
5066     <p>in case it failed, providing an appropriate error code and error message
5067     </p>
5068     </blockquote>
5069    
5070    
5071     </blockquote><p>
5072    
5073     </p>
5074     <p>Examples:
5075     </p>
5076     <p>
5077     </p>
5078     <blockquote class="text">
5079     <p>
5080     </p>
5081     </blockquote><p>
5082    
5083     </p>
5084     <p>Deprecated:
5085     </p>
5086     <p>
5087     </p>
5088     <blockquote class="text">
5089     <p>Should not be used anymore. This command is currently only preserved for backward compatibility.
5090     </p>
5091     <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.
5092     </p>
5093     </blockquote><p>
5094    
5095     </p>
5096     <a name="SET CHANNEL MIDI_INPUT_PORT"></a><br /><hr />
5097     <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>
5098     <a name="rfc.section.6.4.22"></a><h3>6.4.22.&nbsp;
5099     Setting MIDI input port</h3>
5100    
5101     <p>DEPRECATED: THIS COMMAND WILL DISAPPEAR!
5102     </p>
5103     <p>The front-end can alter the MIDI input port on a specific sampler
5104     channel by sending the following command:
5105     </p>
5106     <p>
5107     </p>
5108     <blockquote class="text">
5109     <p>SET CHANNEL MIDI_INPUT_PORT &lt;sampler-channel&gt; &lt;midi-input-port&gt;
5110     </p>
5111     </blockquote><p>
5112    
5113     </p>
5114     <p>Where &lt;midi-input-port&gt; is a MIDI input port number of the
5115     MIDI input device connected to the sampler channel given by
5116     &lt;sampler-channel&gt;.
5117     </p>
5118     <p>
5119     If more than 1 MIDI inputs are currently connected to this
5120     sampler channel: Sending this command will switch the
5121     connection of the first (and only the first) MIDI input port
5122     currently being connected to this sampler channel, to
5123     another port of the same MIDI input device. Or in other
5124     words: the first MIDI input port currently connected to
5125     this sampler channel will be disconnected, and the requested
5126     other port of its MIDI input device will be connected to
5127     this sampler channel instead. This behavior is due
5128     to preserving full behavior backward compatibility.
5129    
5130     </p>
5131     <p>Possible Answers:
5132     </p>
5133     <p>
5134     </p>
5135     <blockquote class="text">
5136     <p>"OK" -
5137     </p>
5138     <blockquote class="text">
5139     <p>on success
5140     </p>
5141     </blockquote>
5142    
5143    
5144     <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
5145     </p>
5146     <blockquote class="text">
5147     <p>if MIDI input port was set, but there are noteworthy
5148     issue(s) related, providing an appropriate warning code and
5149     warning message
5150     </p>
5151     </blockquote>
5152    
5153    
5154     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
5155     </p>
5156     <blockquote class="text">
5157     <p>in case it failed, providing an appropriate error code and error message
5158     </p>
5159     </blockquote>
5160    
5161    
5162     </blockquote><p>
5163    
5164     </p>
5165     <p>Examples:
5166     </p>
5167     <p>
5168     </p>
5169     <blockquote class="text">
5170     <p>
5171     </p>
5172     </blockquote><p>
5173    
5174     </p>
5175     <p>Deprecated:
5176     </p>
5177     <p>
5178     </p>
5179     <blockquote class="text">
5180     <p>Should not be used anymore. This command is currently only preserved for backward compatibility.
5181     </p>
5182     <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.
5183     </p>
5184     </blockquote><p>
5185    
5186     </p>
5187     <a name="SET CHANNEL MIDI_INPUT_CHANNEL"></a><br /><hr />
5188     <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>
5189     <a name="rfc.section.6.4.23"></a><h3>6.4.23.&nbsp;
5190     Setting MIDI input channel</h3>
5191    
5192     <p>The front-end can alter the MIDI channel a sampler channel should
5193     listen to by sending the following command:
5194     </p>
5195     <p>
5196     </p>
5197     <blockquote class="text">
5198     <p>SET CHANNEL MIDI_INPUT_CHANNEL &lt;sampler-channel&gt; &lt;midi-input-chan&gt;
5199     </p>
5200     </blockquote><p>
5201    
5202     </p>
5203     <p>Where &lt;midi-input-chan&gt; is the number
5204     of the new MIDI input channel (zero indexed!) where
5205     &lt;sampler-channel&gt; should listen to, or "ALL" to listen on all 16 MIDI
5206     channels.
5207     </p>
5208     <p>Possible Answers:
5209     </p>
5210     <p>
5211     </p>
5212     <blockquote class="text">
5213     <p>"OK" -
5214     </p>
5215     <blockquote class="text">
5216     <p>on success
5217     </p>
5218     </blockquote>
5219    
5220    
5221     <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
5222     </p>
5223     <blockquote class="text">
5224     <p>if MIDI input channel was set, but there are noteworthy
5225     issue(s) related, providing an appropriate warning code and
5226     warning message
5227     </p>
5228     </blockquote>
5229    
5230    
5231     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
5232     </p>
5233     <blockquote class="text">
5234     <p>in case it failed, providing an appropriate error code and error message
5235     </p>
5236     </blockquote>
5237    
5238    
5239     </blockquote><p>
5240    
5241     </p>
5242     <p>Examples:
5243     </p>
5244     <p>
5245     </p>
5246     <blockquote class="text">
5247     <p>C: "SET CHANNEL MIDI_INPUT_CHANNEL 0 0"
5248     </p>
5249     <p>S: "OK"
5250     </p>
5251     <p>C: "SET CHANNEL MIDI_INPUT_CHANNEL 1 ALL"
5252     </p>
5253     <p>S: "OK"
5254     </p>
5255     </blockquote><p>
5256    
5257     </p>
5258     <a name="SET CHANNEL VOLUME"></a><br /><hr />
5259     <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>
5260     <a name="rfc.section.6.4.24"></a><h3>6.4.24.&nbsp;
5261     Setting channel volume</h3>
5262    
5263     <p>The front-end can alter the volume of a sampler channel by sending
5264     the following command:
5265     </p>
5266     <p>
5267     </p>
5268     <blockquote class="text">
5269     <p>SET CHANNEL VOLUME &lt;sampler-channel&gt; &lt;volume&gt;
5270     </p>
5271     </blockquote><p>
5272    
5273     </p>
5274     <p>Where &lt;volume&gt; is an optionally dotted positive number (a value
5275     smaller than 1.0 means attenuation, whereas a value greater than
5276     1.0 means amplification) and &lt;sampler-channel&gt; defines the sampler
5277     channel where this volume factor should be set.
5278     </p>
5279     <p>Possible Answers:
5280     </p>
5281     <p>
5282     </p>
5283     <blockquote class="text">
5284     <p>"OK" -
5285     </p>
5286     <blockquote class="text">
5287     <p>on success
5288     </p>
5289     </blockquote>
5290    
5291    
5292     <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
5293     </p>
5294     <blockquote class="text">
5295     <p>if channel volume was set, but there are noteworthy
5296     issue(s) related, providing an appropriate warning code and
5297     warning message
5298     </p>
5299     </blockquote>
5300    
5301    
5302     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
5303     </p>
5304     <blockquote class="text">
5305     <p>in case it failed, providing an appropriate error code and error message
5306     </p>
5307     </blockquote>
5308    
5309    
5310     </blockquote><p>
5311    
5312     </p>
5313     <p>Examples:
5314     </p>
5315     <p>
5316     </p>
5317     <blockquote class="text">
5318     <p>
5319     </p>
5320     </blockquote><p>
5321    
5322     </p>
5323     <a name="SET CHANNEL MUTE"></a><br /><hr />
5324     <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>
5325     <a name="rfc.section.6.4.25"></a><h3>6.4.25.&nbsp;
5326     Muting a sampler channel</h3>
5327    
5328     <p>The front-end can mute/unmute a specific sampler
5329     channel by sending the following command:
5330     </p>
5331     <p>
5332     </p>
5333     <blockquote class="text">
5334     <p>SET CHANNEL MUTE &lt;sampler-channel&gt; &lt;mute&gt;
5335     </p>
5336     </blockquote><p>
5337    
5338     </p>
5339     <p>Where &lt;sampler-channel&gt; is the respective sampler channel
5340     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>
5341     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
5342     &lt;mute&gt; should be replaced either by "1" to mute the channel or "0"
5343     to unmute the channel.
5344     </p>
5345     <p>Possible Answers:
5346     </p>
5347     <p>
5348     </p>
5349     <blockquote class="text">
5350     <p>"OK" -
5351     </p>
5352     <blockquote class="text">
5353     <p>on success
5354     </p>
5355     </blockquote>
5356    
5357    
5358     <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
5359     </p>
5360     <blockquote class="text">
5361     <p>if the channel was muted/unmuted, but there are noteworthy
5362     issue(s) related, providing an appropriate warning code and
5363     warning message
5364     </p>
5365     </blockquote>
5366    
5367    
5368     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
5369     </p>
5370     <blockquote class="text">
5371     <p>in case it failed, providing an appropriate error code and error message
5372     </p>
5373     </blockquote>
5374    
5375    
5376     </blockquote><p>
5377    
5378     </p>
5379     <p>Examples:
5380     </p>
5381     <p>
5382     </p>
5383     <blockquote class="text">
5384     <p>
5385     </p>
5386     </blockquote><p>
5387    
5388     </p>
5389     <a name="SET CHANNEL SOLO"></a><br /><hr />
5390     <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>
5391     <a name="rfc.section.6.4.26"></a><h3>6.4.26.&nbsp;
5392     Soloing a sampler channel</h3>
5393    
5394     <p>The front-end can solo/unsolo a specific sampler channel
5395     by sending the following command:
5396     </p>
5397     <p>
5398     </p>
5399     <blockquote class="text">
5400     <p>SET CHANNEL SOLO &lt;sampler-channel&gt; &lt;solo&gt;
5401     </p>
5402     </blockquote><p>
5403    
5404     </p>
5405     <p>Where &lt;sampler-channel&gt; is the respective sampler channel
5406     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>
5407     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
5408     &lt;solo&gt; should be replaced either by "1" to solo the channel or "0"
5409     to unsolo the channel.
5410     </p>
5411     <p>Possible Answers:
5412     </p>
5413     <p>
5414     </p>
5415     <blockquote class="text">
5416     <p>"OK" -
5417     </p>
5418     <blockquote class="text">
5419     <p>on success
5420     </p>
5421     </blockquote>
5422    
5423    
5424     <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
5425     </p>
5426     <blockquote class="text">
5427     <p>if the channel was soloed/unsoloed, but there are noteworthy
5428     issue(s) related, providing an appropriate warning code and
5429     warning message
5430     </p>
5431     </blockquote>
5432    
5433    
5434     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
5435     </p>
5436     <blockquote class="text">
5437     <p>in case it failed, providing an appropriate error code and error message
5438     </p>
5439     </blockquote>
5440    
5441    
5442     </blockquote><p>
5443    
5444     </p>
5445     <p>Examples:
5446     </p>
5447     <p>
5448     </p>
5449     <blockquote class="text">
5450     <p>
5451     </p>
5452     </blockquote><p>
5453    
5454     </p>
5455     <a name="SET CHANNEL MIDI_INSTRUMENT_MAP"></a><br /><hr />
5456     <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>
5457     <a name="rfc.section.6.4.27"></a><h3>6.4.27.&nbsp;
5458     Assigning a MIDI instrument map to a sampler channel</h3>
5459    
5460     <p>The front-end can assign a MIDI instrument map to a specific sampler channel
5461     by sending the following command:
5462     </p>
5463     <p>
5464     </p>
5465     <blockquote class="text">
5466     <p>SET CHANNEL MIDI_INSTRUMENT_MAP &lt;sampler-channel&gt; &lt;map&gt;
5467     </p>
5468     </blockquote><p>
5469    
5470     </p>
5471     <p>Where &lt;sampler-channel&gt; is the respective sampler channel
5472     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>
5473     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
5474     &lt;map&gt; can have the following possibilites:
5475     </p>
5476     <p>
5477     </p>
5478     <blockquote class="text">
5479     <p>"NONE" -
5480     </p>
5481     <blockquote class="text">
5482     <p>This is the default setting. In this case
5483     the sampler channel is not assigned any MIDI
5484     instrument map and thus will ignore all MIDI
5485     program change messages.
5486     </p>
5487     </blockquote>
5488    
5489    
5490     <p>"DEFAULT" -
5491     </p>
5492     <blockquote class="text">
5493     <p>The sampler channel will always use the
5494     default MIDI instrument map to handle MIDI
5495     program change messages.
5496     </p>
5497     </blockquote>
5498    
5499    
5500     <p>numeric ID -
5501     </p>
5502     <blockquote class="text">
5503     <p>You can assign a specific MIDI instrument map
5504     by replacing &lt;map&gt; with the respective numeric
5505     ID of the MIDI instrument map as returned by the
5506     <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>
5507     command. Once that map will be deleted, the sampler
5508     channel would fall back to "NONE".
5509     </p>
5510     </blockquote>
5511    
5512    
5513     </blockquote><p>
5514    
5515     </p>
5516     <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>
5517     for details regarding MIDI instrument mapping.
5518     </p>
5519     <p>Possible Answers:
5520     </p>
5521     <p>
5522     </p>
5523     <blockquote class="text">
5524     <p>"OK" -
5525     </p>
5526     <blockquote class="text">
5527     <p>on success
5528     </p>
5529     </blockquote>
5530    
5531    
5532     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
5533     </p>
5534     <blockquote class="text">
5535     <p>in case it failed, providing an appropriate error code and error message
5536     </p>
5537     </blockquote>
5538    
5539    
5540     </blockquote><p>
5541    
5542     </p>
5543     <p>Examples:
5544     </p>
5545     <p>
5546     </p>
5547     <blockquote class="text">
5548     <p>
5549     </p>
5550     </blockquote><p>
5551    
5552     </p>
5553     <a name="CREATE FX_SEND"></a><br /><hr />
5554     <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>
5555     <a name="rfc.section.6.4.28"></a><h3>6.4.28.&nbsp;
5556     Adding an effect send to a sampler channel</h3>
5557    
5558     <p>The front-end can create an additional effect send on a specific sampler channel
5559     by sending the following command:
5560     </p>
5561     <p>
5562     </p>
5563     <blockquote class="text">
5564     <p>CREATE FX_SEND &lt;sampler-channel&gt; &lt;midi-ctrl&gt; [&lt;name&gt;]
5565     </p>
5566     </blockquote><p>
5567    
5568     </p>
5569     <p>Where &lt;sampler-channel&gt; is the respective sampler channel
5570     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>
5571     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
5572     sampler channel on which the effect send should be created on, &lt;midi-ctrl&gt;
5573     is a number between 0..127 defining the MIDI controller which can alter the
5574     effect send level and &lt;name&gt; is an optional argument defining a name
5575     for the effect send entity. The name does not have to be unique, but MUST be
5576     encapsulated into apostrophes and supports escape sequences as described in chapter
5577     "<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>".
5578     </p>
5579     <p>By default, that is as initial routing, the effect send's audio channels
5580     are automatically routed to the last audio channels of the sampler channel's
5581     audio output device, that way you can i.e. first increase the amount of audio
5582     channels on the audio output device for having dedicated effect send output
5583     channels and when "CREATE FX_SEND" is called, those channels will automatically
5584     be picked. You can alter the destination channels however with
5585     <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>.
5586    
5587     </p>
5588     <p>Note: Create effect sends on a sampler channel only when needed, because having effect
5589     sends on a sampler channel will decrease runtime performance, because for implementing channel
5590     effect sends, separate (sampler channel local) audio buffers are needed to render and mix
5591     the voices and route the audio signal afterwards to the master outputs and effect send
5592     outputs (along with their respective effect send levels). A sampler channel without effect
5593     sends however can mix its voices directly into the audio output devices's audio buffers
5594     and is thus faster.
5595    
5596     </p>
5597     <p>Possible Answers:
5598     </p>
5599     <p>
5600     </p>
5601     <blockquote class="text">
5602     <p>"OK[&lt;fx-send-id&gt;]" -
5603     </p>
5604     <blockquote class="text">
5605     <p>in case a new effect send could be added to the
5606     sampler channel, where &lt;fx-send-id&gt; reflects the
5607     unique ID of the newly created effect send entity
5608     </p>
5609     </blockquote>
5610    
5611    
5612     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
5613     </p>
5614     <blockquote class="text">
5615     <p>when a new effect send could not be added, i.e.
5616     due to invalid parameters
5617     </p>
5618     </blockquote>
5619    
5620    
5621     </blockquote><p>
5622    
5623     </p>
5624     <p>Examples:
5625     </p>
5626     <p>
5627     </p>
5628     <blockquote class="text">
5629     <p>C: "CREATE FX_SEND 0 91 'Reverb Send'"
5630     </p>
5631     <p>S: "OK[0]"
5632     </p>
5633     </blockquote><p>
5634    
5635     </p>
5636     <p>
5637     </p>
5638     <blockquote class="text">
5639     <p>C: "CREATE FX_SEND 0 93"
5640     </p>
5641     <p>S: "OK[1]"
5642     </p>
5643     </blockquote><p>
5644    
5645     </p>
5646     <a name="DESTROY FX_SEND"></a><br /><hr />
5647     <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>
5648     <a name="rfc.section.6.4.29"></a><h3>6.4.29.&nbsp;
5649     Removing an effect send from a sampler channel</h3>
5650    
5651     <p>The front-end can remove an existing effect send on a specific sampler channel
5652     by sending the following command:
5653     </p>
5654     <p>
5655     </p>
5656     <blockquote class="text">
5657     <p>DESTROY FX_SEND &lt;sampler-channel&gt; &lt;fx-send-id&gt;
5658     </p>
5659     </blockquote><p>
5660    
5661     </p>
5662     <p>Where &lt;sampler-channel&gt; is the respective sampler channel
5663     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>
5664     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
5665     sampler channel from which the effect send should be removed from and
5666     &lt;fx-send-id&gt; is the respective effect send number as returned by the
5667     <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>
5668     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.
5669     </p>
5670     <p>Possible Answers:
5671     </p>
5672     <p>
5673     </p>
5674     <blockquote class="text">
5675     <p>"OK" -
5676     </p>
5677     <blockquote class="text">
5678     <p>on success
5679     </p>
5680     </blockquote>
5681    
5682    
5683     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
5684     </p>
5685     <blockquote class="text">
5686     <p>in case it failed, providing an appropriate error code and
5687     error message
5688     </p>
5689     </blockquote>
5690    
5691    
5692     </blockquote><p>
5693    
5694     </p>
5695     <p>Example:
5696     </p>
5697     <p>
5698     </p>
5699     <blockquote class="text">
5700     <p>C: "DESTROY FX_SEND 0 0"
5701     </p>
5702     <p>S: "OK"
5703     </p>
5704     </blockquote><p>
5705    
5706     </p>
5707     <a name="GET FX_SENDS"></a><br /><hr />
5708     <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>
5709     <a name="rfc.section.6.4.30"></a><h3>6.4.30.&nbsp;
5710     Getting amount of effect sends on a sampler channel</h3>
5711    
5712     <p>The front-end can ask for the amount of effect sends on a specific sampler channel
5713     by sending the following command:
5714     </p>
5715     <p>
5716     </p>
5717     <blockquote class="text">
5718     <p>GET FX_SENDS &lt;sampler-channel&gt;
5719     </p>
5720     </blockquote><p>
5721    
5722     </p>
5723     <p>Where &lt;sampler-channel&gt; is the respective sampler channel
5724     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>
5725     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.
5726     </p>
5727     <p>Possible Answers:
5728     </p>
5729     <p>
5730     </p>
5731     <blockquote class="text">
5732     <p>The sampler will answer by returning the number of effect
5733     sends on the given sampler channel.
5734     </p>
5735     </blockquote><p>
5736    
5737     </p>
5738     <p>Example:
5739     </p>
5740     <p>
5741     </p>
5742     <blockquote class="text">
5743     <p>C: "GET FX_SENDS 0"
5744     </p>
5745     <p>S: "2"
5746     </p>
5747     </blockquote><p>
5748    
5749     </p>
5750     <a name="LIST FX_SENDS"></a><br /><hr />
5751     <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>
5752     <a name="rfc.section.6.4.31"></a><h3>6.4.31.&nbsp;
5753     Listing all effect sends on a sampler channel</h3>
5754    
5755     <p>The front-end can ask for a list of effect sends on a specific sampler channel
5756     by sending the following command:
5757     </p>
5758     <p>
5759     </p>
5760     <blockquote class="text">
5761     <p>LIST FX_SENDS &lt;sampler-channel&gt;
5762     </p>
5763     </blockquote><p>
5764    
5765     </p>
5766     <p>Where &lt;sampler-channel&gt; is the respective sampler channel
5767     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>
5768     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.
5769     </p>
5770     <p>Possible Answers:
5771     </p>
5772     <p>
5773     </p>
5774     <blockquote class="text">
5775     <p>The sampler will answer by returning a comma separated list
5776     with all effect sends' numerical IDs on the given sampler
5777     channel.
5778     </p>
5779     </blockquote><p>
5780    
5781     </p>
5782     <p>Examples:
5783     </p>
5784     <p>
5785     </p>
5786     <blockquote class="text">
5787     <p>C: "LIST FX_SENDS 0"
5788     </p>
5789     <p>S: "0,1"
5790     </p>
5791     </blockquote><p>
5792    
5793     </p>
5794     <p>
5795     </p>
5796     <blockquote class="text">
5797     <p>C: "LIST FX_SENDS 1"
5798     </p>
5799     <p>S: ""
5800     </p>
5801     </blockquote><p>
5802    
5803     </p>
5804     <a name="GET FX_SEND INFO"></a><br /><hr />
5805     <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>
5806     <a name="rfc.section.6.4.32"></a><h3>6.4.32.&nbsp;
5807     Getting effect send information</h3>
5808    
5809     <p>The front-end can ask for the current settings of an effect send entity
5810     by sending the following command:
5811     </p>
5812     <p>
5813     </p>
5814     <blockquote class="text">
5815     <p>GET FX_SEND INFO &lt;sampler-channel&gt; &lt;fx-send-id&gt;
5816     </p>
5817     </blockquote><p>
5818    
5819     </p>
5820     <p>Where &lt;sampler-channel&gt; is the sampler channel number
5821     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>
5822     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
5823     &lt;fx-send-id&gt; reflects the numerical ID of the effect send entity
5824     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>
5825     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.
5826    
5827     </p>
5828     <p>Possible Answers:
5829     </p>
5830     <p>
5831     </p>
5832     <blockquote class="text">
5833     <p>The sampler will answer by sending a &lt;CRLF&gt; separated list.
5834     Each answer line begins with the settings category name
5835     followed by a colon and then a space character &lt;SP&gt; and finally
5836     the info character string to that setting category. At the
5837     moment the following categories are defined:
5838     </p>
5839     <p>
5840     </p>
5841     <blockquote class="text">
5842     <p>NAME -
5843     </p>
5844     <blockquote class="text">
5845     <p>name of the effect send entity
5846     (note that this character string may contain
5847     <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>)
5848     </p>
5849     </blockquote>
5850    
5851    
5852     <p>MIDI_CONTROLLER -
5853     </p>
5854     <blockquote class="text">
5855     <p>a value between 0 and 127 reflecting the MIDI controller
5856     which is able to modify the effect send's send level
5857     </p>
5858     </blockquote>
5859    
5860    
5861     <p>LEVEL -
5862     </p>
5863     <blockquote class="text">
5864     <p>optionally dotted number reflecting the effect send's
5865     current send level (where a value &lt; 1.0 means attenuation
5866     and a value > 1.0 means amplification)
5867     </p>
5868     </blockquote>
5869    
5870    
5871     <p>AUDIO_OUTPUT_ROUTING -
5872     </p>
5873     <blockquote class="text">
5874     <p>comma separated list which reflects to which audio
5875     channel of the selected audio output device each
5876     effect send output channel is routed to, e.g. "0,3" would
5877     mean the effect send's output channel 0 is routed to channel
5878     0 of the audio output device and the effect send's output
5879     channel 1 is routed to the channel 3 of the audio
5880     output device (see
5881     <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>
5882     for details), if an internal send
5883     effect is assigned to the effect
5884     send, then this setting defines the
5885     audio channel routing to that
5886     effect instance respectively
5887     </p>
5888     </blockquote>
5889    
5890    
5891     <p>EFFECT -
5892     </p>
5893     <blockquote class="text">
5894     <p>destination send effect chain ID
5895     and destination effect chain
5896     position, separated by comma in the
5897     form "&lt;effect-chain&gt;,&lt;chain-pos&gt;"
5898     or "NONE" if there is no send effect
5899     assigned to the effect send
5900     </p>
5901     </blockquote>
5902    
5903    
5904     </blockquote>
5905    
5906    
5907     </blockquote><p>
5908    
5909     </p>
5910     <p>The mentioned fields above don't have to be in particular order.
5911     </p>
5912     <p>Example:
5913     </p>
5914     <p>
5915     </p>
5916     <blockquote class="text">
5917     <p>C: "GET FX_SEND INFO 0 0"
5918     </p>
5919     <p>S: "NAME: Reverb Send"
5920     </p>
5921     <p>&nbsp;&nbsp;&nbsp;"MIDI_CONTROLLER: 91"
5922     </p>
5923     <p>&nbsp;&nbsp;&nbsp;"LEVEL: 0.3"
5924     </p>
5925     <p>&nbsp;&nbsp;&nbsp;"AUDIO_OUTPUT_ROUTING: 2,3"
5926     </p>
5927     <p>&nbsp;&nbsp;&nbsp;"EFFECT: NONE"
5928     </p>
5929     <p>&nbsp;&nbsp;&nbsp;"."
5930     </p>
5931     </blockquote><p>
5932    
5933     </p>
5934     <p>
5935     </p>
5936     <blockquote class="text">
5937     <p>C: "GET FX_SEND INFO 0 1"
5938     </p>
5939     <p>S: "NAME: Delay Send (Internal)"
5940     </p>
5941     <p>&nbsp;&nbsp;&nbsp;"MIDI_CONTROLLER: 93"
5942     </p>
5943     <p>&nbsp;&nbsp;&nbsp;"LEVEL: 0.51"
5944     </p>
5945     <p>&nbsp;&nbsp;&nbsp;"AUDIO_OUTPUT_ROUTING: 1,2"
5946     </p>
5947     <p>&nbsp;&nbsp;&nbsp;"EFFECT: 2,0"
5948     </p>
5949     <p>&nbsp;&nbsp;&nbsp;"."
5950     </p>
5951     </blockquote><p>
5952    
5953     </p>
5954     <a name="SET FX_SEND NAME"></a><br /><hr />
5955     <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>
5956     <a name="rfc.section.6.4.33"></a><h3>6.4.33.&nbsp;
5957     Changing effect send's name</h3>
5958    
5959     <p>The front-end can alter the current name of an effect
5960     send entity by sending the following command:
5961     </p>
5962     <p>
5963     </p>
5964     <blockquote class="text">
5965     <p>SET FX_SEND NAME &lt;sampler-chan&gt; &lt;fx-send-id&gt; &lt;name&gt;
5966     </p>
5967     </blockquote><p>
5968    
5969     </p>
5970     <p>Where &lt;sampler-chan&gt; is the sampler channel number
5971     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>
5972     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,
5973     &lt;fx-send-id&gt; reflects the numerical ID of the effect send entity
5974     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>
5975     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
5976     &lt;name&gt; is the new name of the effect send entity, which
5977     does not have to be unique (name MUST be encapsulated into apostrophes
5978     and supports escape sequences as described in chapter
5979     "<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>").
5980    
5981     </p>
5982     <p>Possible Answers:
5983     </p>
5984     <p>
5985     </p>
5986     <blockquote class="text">
5987     <p>"OK" -
5988     </p>
5989     <blockquote class="text">
5990     <p>on success
5991     </p>
5992     </blockquote>
5993    
5994    
5995     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
5996     </p>
5997     <blockquote class="text">
5998     <p>in case it failed, providing an appropriate error code and error message
5999     </p>
6000     </blockquote>
6001    
6002    
6003     </blockquote><p>
6004    
6005     </p>
6006     <p>Example:
6007     </p>
6008     <p>
6009     </p>
6010     <blockquote class="text">
6011     <p>C: "SET FX_SEND NAME 0 0 'Fx Send 1'"
6012     </p>
6013     <p>S: "OK"
6014     </p>
6015     </blockquote><p>
6016    
6017     </p>
6018     <a name="SET FX_SEND AUDIO_OUTPUT_CHANNEL"></a><br /><hr />
6019     <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>
6020     <a name="rfc.section.6.4.34"></a><h3>6.4.34.&nbsp;
6021     Altering effect send's audio routing</h3>
6022    
6023     <p>The front-end can alter the destination of an effect send's audio channel on a specific
6024     sampler channel by sending the following command:
6025     </p>
6026     <p>
6027     </p>
6028     <blockquote class="text">
6029     <p>SET FX_SEND AUDIO_OUTPUT_CHANNEL &lt;sampler-chan&gt; &lt;fx-send-id&gt; &lt;audio-src&gt; &lt;audio-dst&gt;
6030     </p>
6031     </blockquote><p>
6032    
6033     </p>
6034     <p>Where &lt;sampler-chan&gt; is the sampler channel number
6035     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>
6036     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,
6037     &lt;fx-send-id&gt; reflects the numerical ID of the effect send entity
6038     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>
6039     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,
6040     &lt;audio-src&gt; is the numerical ID of the effect send's audio channel
6041     which should be rerouted and &lt;audio-dst&gt; is the numerical ID of
6042     the audio channel of the selected audio output device where &lt;audio-src&gt;
6043     should be routed to. If an internal send effect is assigned
6044     to the effect send, then this setting defines the audio
6045     channel routing to that effect instance respectively.
6046     </p>
6047     <p>Note that effect sends can only route audio to the same audio output
6048     device as assigned to the effect send's sampler channel. Also note that an
6049     effect send entity does always have exactly as much audio channels as its
6050     sampler channel. So if the sampler channel is stereo, the effect send does
6051     have two audio channels as well. Also keep in mind that the amount of audio
6052     channels on a sampler channel might be dependant not only to the deployed
6053     sampler engine on the sampler channel, but also dependant to the instrument
6054     currently loaded. However you can (effectively) turn an i.e. stereo effect
6055     send into a mono one by simply altering its audio routing appropriately.
6056     </p>
6057     <p>Possible Answers:
6058     </p>
6059     <p>
6060     </p>
6061     <blockquote class="text">
6062     <p>"OK" -
6063     </p>
6064     <blockquote class="text">
6065     <p>on success
6066     </p>
6067     </blockquote>
6068    
6069    
6070     <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
6071     </p>
6072     <blockquote class="text">
6073     <p>if audio output channel was set, but there are noteworthy
6074     issue(s) related, providing an appropriate warning code and
6075     warning message
6076     </p>
6077     </blockquote>
6078    
6079    
6080     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
6081     </p>
6082     <blockquote class="text">
6083     <p>in case it failed, providing an appropriate error code and error message
6084     </p>
6085     </blockquote>
6086    
6087    
6088     </blockquote><p>
6089    
6090     </p>
6091     <p>Example:
6092     </p>
6093     <p>
6094     </p>
6095     <blockquote class="text">
6096     <p>C: "SET FX_SEND AUDIO_OUTPUT_CHANNEL 0 0 0 2"
6097     </p>
6098     <p>S: "OK"
6099     </p>
6100     </blockquote><p>
6101    
6102     </p>
6103     <a name="SET FX_SEND EFFECT"></a><br /><hr />
6104     <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>
6105     <a name="rfc.section.6.4.35"></a><h3>6.4.35.&nbsp;
6106     Assigning destination effect to an effect send</h3>
6107    
6108     <p>The front-end can (re-)assign a destination effect to an
6109     effect send by sending the following command:
6110     </p>
6111     <p>
6112     </p>
6113     <blockquote class="text">
6114     <p>SET FX_SEND EFFECT &lt;sampler-chan&gt; &lt;fx-send-id&gt; &lt;effect-chain&gt; &lt;chain-pos&gt;
6115     </p>
6116     </blockquote><p>
6117    
6118     </p>
6119     <p>Where &lt;sampler-chan&gt; is the sampler channel number
6120     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>
6121     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,
6122     &lt;fx-send-id&gt; reflects the numerical ID of the effect send entity
6123     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>
6124     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,
6125     &lt;effect-chain&gt; by the numerical ID of the destination
6126     effect chain as returned by the
6127     <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>
6128     or
6129     <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>
6130     command and &lt;chain-pos&gt; reflects the exact effect
6131     chain position in the effect chain which hosts the actual
6132     destination effect.
6133     </p>
6134     <p>Possible Answers:
6135     </p>
6136     <p>
6137     </p>
6138     <blockquote class="text">
6139     <p>"OK" -
6140     </p>
6141     <blockquote class="text">
6142     <p>on success
6143     </p>
6144     </blockquote>
6145    
6146    
6147     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
6148     </p>
6149     <blockquote class="text">
6150     <p>in case it failed, providing an appropriate error code and error message
6151     </p>
6152     </blockquote>
6153    
6154    
6155     </blockquote><p>
6156    
6157     </p>
6158     <p>Example:
6159     </p>
6160     <p>
6161     </p>
6162     <blockquote class="text">
6163     <p>C: "SET FX_SEND EFFECT 0 0 2 5"
6164     </p>
6165     <p>S: "OK"
6166     </p>
6167     </blockquote><p>
6168    
6169     </p>
6170     <a name="REMOVE FX_SEND EFFECT"></a><br /><hr />
6171     <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>
6172     <a name="rfc.section.6.4.36"></a><h3>6.4.36.&nbsp;
6173     Removing destination effect from an effect send</h3>
6174    
6175     <p>The front-end can (re-)assign a destination effect to an
6176     effect send by sending the following command:
6177     </p>
6178     <p>
6179     </p>
6180     <blockquote class="text">
6181     <p>REMOVE FX_SEND EFFECT &lt;sampler-chan&gt; &lt;fx-send-id&gt;
6182     </p>
6183     </blockquote><p>
6184    
6185     </p>
6186     <p>Where &lt;sampler-chan&gt; is the sampler channel number
6187     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>
6188     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,
6189     &lt;fx-send-id&gt; reflects the numerical ID of the effect send entity
6190     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>
6191     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.
6192     </p>
6193     <p>After the destination effect has been removed from the
6194     effect send, the audio signal of the effect send will be
6195     routed directly to the audio output device, according to the
6196     audio channel routing setting of the effect send.
6197    
6198     </p>
6199     <p>Possible Answers:
6200     </p>
6201     <p>
6202     </p>
6203     <blockquote class="text">
6204     <p>"OK" -
6205     </p>
6206     <blockquote class="text">
6207     <p>on success
6208     </p>
6209     </blockquote>
6210    
6211    
6212     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
6213     </p>
6214     <blockquote class="text">
6215     <p>in case it failed, providing an appropriate error code and error message
6216     </p>
6217     </blockquote>
6218    
6219    
6220     </blockquote><p>
6221    
6222     </p>
6223     <p>Example:
6224     </p>
6225     <p>
6226     </p>
6227     <blockquote class="text">
6228     <p>C: "REMOVE FX_SEND EFFECT 0 0"
6229     </p>
6230     <p>S: "OK"
6231     </p>
6232     </blockquote><p>
6233    
6234     </p>
6235     <a name="SET FX_SEND MIDI_CONTROLLER"></a><br /><hr />
6236     <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>
6237     <a name="rfc.section.6.4.37"></a><h3>6.4.37.&nbsp;
6238     Altering effect send's MIDI controller</h3>
6239    
6240     <p>The front-end can alter the MIDI controller of an effect
6241     send entity by sending the following command:
6242     </p>
6243     <p>
6244     </p>
6245     <blockquote class="text">
6246     <p>SET FX_SEND MIDI_CONTROLLER &lt;sampler-chan&gt; &lt;fx-send-id&gt; &lt;midi-ctrl&gt;
6247     </p>
6248     </blockquote><p>
6249    
6250     </p>
6251     <p>Where &lt;sampler-chan&gt; is the sampler channel number
6252     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>
6253     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,
6254     &lt;fx-send-id&gt; reflects the numerical ID of the effect send entity
6255     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>
6256     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
6257     &lt;midi-ctrl&gt; reflects the MIDI controller which shall be
6258     able to modify the effect send's send level.
6259     </p>
6260     <p>Possible Answers:
6261     </p>
6262     <p>
6263     </p>
6264     <blockquote class="text">
6265     <p>"OK" -
6266     </p>
6267     <blockquote class="text">
6268     <p>on success
6269     </p>
6270     </blockquote>
6271    
6272    
6273     <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
6274     </p>
6275     <blockquote class="text">
6276     <p>if MIDI controller was set, but there are noteworthy
6277     issue(s) related, providing an appropriate warning code and
6278     warning message
6279     </p>
6280     </blockquote>
6281    
6282    
6283     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
6284     </p>
6285     <blockquote class="text">
6286     <p>in case it failed, providing an appropriate error code and error message
6287     </p>
6288     </blockquote>
6289    
6290    
6291     </blockquote><p>
6292    
6293     </p>
6294     <p>Example:
6295     </p>
6296     <p>
6297     </p>
6298     <blockquote class="text">
6299     <p>C: "SET FX_SEND MIDI_CONTROLLER 0 0 91"
6300     </p>
6301     <p>S: "OK"
6302     </p>
6303     </blockquote><p>
6304    
6305     </p>
6306     <a name="SET FX_SEND LEVEL"></a><br /><hr />
6307     <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>
6308     <a name="rfc.section.6.4.38"></a><h3>6.4.38.&nbsp;
6309     Altering effect send's send level</h3>
6310    
6311     <p>The front-end can alter the current send level of an effect
6312     send entity by sending the following command:
6313     </p>
6314     <p>
6315     </p>
6316     <blockquote class="text">
6317     <p>SET FX_SEND LEVEL &lt;sampler-chan&gt; &lt;fx-send-id&gt; &lt;volume&gt;
6318     </p>
6319     </blockquote><p>
6320    
6321     </p>
6322     <p>Where &lt;sampler-chan&gt; is the sampler channel number
6323     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>
6324     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,
6325     &lt;fx-send-id&gt; reflects the numerical ID of the effect send entity
6326     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>
6327     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
6328     &lt;volume&gt; is an optionally dotted positive number (a value
6329     smaller than 1.0 means attenuation, whereas a value greater than
6330     1.0 means amplification) reflecting the new send level.
6331     </p>
6332     <p>Possible Answers:
6333     </p>
6334     <p>
6335     </p>
6336     <blockquote class="text">
6337     <p>"OK" -
6338     </p>
6339     <blockquote class="text">
6340     <p>on success
6341     </p>
6342     </blockquote>
6343    
6344    
6345     <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
6346     </p>
6347     <blockquote class="text">
6348     <p>if new send level was set, but there are noteworthy
6349     issue(s) related, providing an appropriate warning code and
6350     warning message
6351     </p>
6352     </blockquote>
6353    
6354    
6355     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
6356     </p>
6357     <blockquote class="text">
6358     <p>in case it failed, providing an appropriate error code and error message
6359     </p>
6360     </blockquote>
6361    
6362    
6363     </blockquote><p>
6364    
6365     </p>
6366     <p>Example:
6367     </p>
6368     <p>
6369     </p>
6370     <blockquote class="text">
6371     <p>C: "SET FX_SEND LEVEL 0 0 0.15"
6372     </p>
6373     <p>S: "OK"
6374     </p>
6375     </blockquote><p>
6376    
6377     </p>
6378     <a name="SEND CHANNEL MIDI_DATA"></a><br /><hr />
6379     <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>
6380     <a name="rfc.section.6.4.39"></a><h3>6.4.39.&nbsp;
6381     Sending MIDI messages to sampler channel</h3>
6382    
6383     <p>The front-end can send MIDI events to a specific sampler channel
6384     by sending the following command:
6385     </p>
6386     <p>
6387     </p>
6388     <blockquote class="text">
6389     <p>SEND CHANNEL MIDI_DATA &lt;midi-msg&gt; &lt;sampler-chan&gt; &lt;arg1&gt; &lt;arg2&gt;
6390     </p>
6391     </blockquote><p>
6392    
6393     </p>
6394     <p>Where &lt;sampler-chan&gt; is the sampler channel number
6395     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>
6396     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,
6397     &lt;arg1&gt; and &lt;arg2&gt; arguments depend on the &lt;midi-msg&gt; argument, which
6398     specifies the MIDI message type. Currently, the following MIDI messages are supported:
6399     </p>
6400     <p>
6401     </p>
6402     <blockquote class="text">
6403     <p>"NOTE_ON" -
6404     </p>
6405     <blockquote class="text">
6406     <p>For turning on MIDI notes, where &lt;arg1&gt;
6407     specifies the key number and &lt;arg2&gt; the velocity
6408     as described in the MIDI specification.
6409     </p>
6410     </blockquote>
6411    
6412    
6413     <p>"NOTE_OFF" -
6414     </p>
6415     <blockquote class="text">
6416     <p>For turning a currently playing MIDI note off, where &lt;arg1&gt;
6417     specifies the key number and &lt;arg2&gt; the velocity
6418     as described in the MIDI specification.
6419     </p>
6420     </blockquote>
6421    
6422    
6423     <p>"CC" -
6424     </p>
6425     <blockquote class="text">
6426     <p>For changing a MIDI controller, where &lt;arg1&gt;
6427     specifies the controller number and &lt;arg2&gt; the
6428     new value of the controller as described in the Control
6429     Change section of the MIDI specification.
6430     </p>
6431     </blockquote>
6432    
6433    
6434     </blockquote><p>
6435    
6436     </p>
6437     <p>CAUTION: This command is provided for implementations of virtual MIDI keyboards
6438     and no realtime guarantee whatsoever will be made!
6439     </p>
6440     <p>Possible Answers:
6441     </p>
6442     <p>
6443     </p>
6444     <blockquote class="text">
6445     <p>"OK" -
6446     </p>
6447     <blockquote class="text">
6448     <p>on success
6449     </p>
6450     </blockquote>
6451    
6452    
6453     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
6454     </p>
6455     <blockquote class="text">
6456     <p>in case it failed, providing an appropriate error code and error message
6457     </p>
6458     </blockquote>
6459    
6460    
6461     </blockquote><p>
6462    
6463     </p>
6464     <p>Example:
6465     </p>
6466     <p>
6467     </p>
6468     <blockquote class="text">
6469     <p>C: "SEND CHANNEL MIDI_DATA NOTE_ON 0 56 112"
6470     </p>
6471     <p>S: "OK"
6472     </p>
6473     </blockquote><p>
6474    
6475     </p>
6476     <a name="RESET CHANNEL"></a><br /><hr />
6477     <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>
6478     <a name="rfc.section.6.4.40"></a><h3>6.4.40.&nbsp;
6479     Resetting a sampler channel</h3>
6480    
6481     <p>The front-end can reset a particular sampler channel by sending the following command:
6482     </p>
6483     <p>
6484     </p>
6485     <blockquote class="text">
6486     <p>RESET CHANNEL &lt;sampler-channel&gt;
6487     </p>
6488     </blockquote><p>
6489    
6490     </p>
6491     <p>
6492     Where &lt;sampler-channel&gt; defines the sampler channel to be reset.
6493     This will cause the engine on that sampler channel, its voices and
6494     eventually disk streams and all control and status variables to be
6495     reset.
6496     </p>
6497     <p>Possible Answers:
6498     </p>
6499     <p>
6500     </p>
6501     <blockquote class="text">
6502     <p>"OK" -
6503     </p>
6504     <blockquote class="text">
6505     <p>on success
6506     </p>
6507     </blockquote>
6508    
6509    
6510     <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
6511     </p>
6512     <blockquote class="text">
6513     <p>if channel was reset, but there are noteworthy issue(s)
6514     related, providing an appropriate warning code and warning
6515     message
6516     </p>
6517     </blockquote>
6518    
6519    
6520     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
6521     </p>
6522     <blockquote class="text">
6523     <p>in case it failed, providing an appropriate error code and
6524     error message
6525     </p>
6526     </blockquote>
6527    
6528    
6529     </blockquote><p>
6530    
6531     </p>
6532     <p>Examples:
6533     </p>
6534     <p>
6535     </p>
6536     <blockquote class="text">
6537     <p>
6538     </p>
6539     </blockquote><p>
6540    
6541     </p>
6542     <a name="anchor12"></a><br /><hr />
6543     <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>
6544     <a name="rfc.section.6.5"></a><h3>6.5.&nbsp;
6545     Controlling connection</h3>
6546    
6547     <p>The following commands are used to control the connection to LinuxSampler.
6548     </p>
6549     <a name="SUBSCRIBE"></a><br /><hr />
6550     <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>
6551     <a name="rfc.section.6.5.1"></a><h3>6.5.1.&nbsp;
6552     Register front-end for receiving event messages</h3>
6553    
6554     <p>The front-end can register itself to the LinuxSampler application to
6555     be informed about noteworthy events by sending this command:
6556     </p>
6557     <p>
6558     </p>
6559     <blockquote class="text">
6560     <p>SUBSCRIBE &lt;event-id&gt;
6561     </p>
6562     </blockquote><p>
6563    
6564     </p>
6565     <p>where &lt;event-id&gt; will be replaced by the respective event that
6566     client wants to subscribe to.
6567     </p>
6568     <p>Possible Answers:
6569     </p>
6570     <p>
6571     </p>
6572     <blockquote class="text">
6573     <p>"OK" -
6574     </p>
6575     <blockquote class="text">
6576     <p>on success
6577     </p>
6578     </blockquote>
6579    
6580    
6581     <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
6582     </p>
6583     <blockquote class="text">
6584     <p>if registration succeeded, but there are noteworthy
6585     issue(s) related, providing an appropriate warning code and
6586     warning message
6587     </p>
6588     </blockquote>
6589    
6590    
6591     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
6592     </p>
6593     <blockquote class="text">
6594     <p>in case it failed, providing an appropriate error code and
6595     error message
6596     </p>
6597     </blockquote>
6598    
6599    
6600     </blockquote><p>
6601    
6602     </p>
6603     <p>Examples:
6604     </p>
6605     <p>
6606     </p>
6607     <blockquote class="text">
6608     <p>
6609     </p>
6610     </blockquote><p>
6611    
6612     </p>
6613     <a name="UNSUBSCRIBE"></a><br /><hr />
6614     <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>
6615     <a name="rfc.section.6.5.2"></a><h3>6.5.2.&nbsp;
6616     Unregister front-end for not receiving event messages</h3>
6617    
6618     <p>The front-end can unregister itself if it doesn't want to receive event
6619     messages anymore by sending the following command:
6620     </p>
6621     <p>
6622     </p>
6623     <blockquote class="text">
6624     <p>UNSUBSCRIBE &lt;event-id&gt;
6625     </p>
6626     </blockquote><p>
6627    
6628     </p>
6629     <p>Where &lt;event-id&gt; will be replaced by the respective event that
6630     client doesn't want to receive anymore.
6631     </p>
6632     <p>Possible Answers:
6633     </p>
6634     <p>
6635     </p>
6636     <blockquote class="text">
6637     <p>"OK" -
6638     </p>
6639     <blockquote class="text">
6640     <p>on success
6641     </p>
6642     </blockquote>
6643    
6644    
6645     <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
6646     </p>
6647     <blockquote class="text">
6648     <p>if unregistration succeeded, but there are noteworthy
6649     issue(s) related, providing an appropriate warning code and
6650     warning message
6651     </p>
6652     </blockquote>
6653    
6654    
6655     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
6656     </p>
6657     <blockquote class="text">
6658     <p>in case it failed, providing an appropriate error code and
6659     error message
6660     </p>
6661     </blockquote>
6662    
6663    
6664     </blockquote><p>
6665    
6666     </p>
6667     <p>Examples:
6668     </p>
6669     <p>
6670     </p>
6671     <blockquote class="text">
6672     <p>
6673     </p>
6674     </blockquote><p>
6675    
6676     </p>
6677     <a name="SET ECHO"></a><br /><hr />
6678     <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>
6679     <a name="rfc.section.6.5.3"></a><h3>6.5.3.&nbsp;
6680     Enable or disable echo of commands</h3>
6681    
6682     <p>To enable or disable back sending of commands to the client the following command can be used:
6683     </p>
6684     <p>
6685     </p>
6686     <blockquote class="text">
6687     <p>SET ECHO &lt;value&gt;
6688     </p>
6689     </blockquote><p>
6690    
6691     </p>
6692     <p>Where &lt;value&gt; should be replaced either by "1" to enable echo mode
6693     or "0" to disable echo mode. When echo mode is enabled, all
6694     commands send to LinuxSampler will be immediately send back and
6695     after this echo the actual response to the command will be
6696     returned. Echo mode will only be altered for the client connection
6697     that issued the "SET ECHO" command, not globally for all client
6698     connections.
6699     </p>
6700     <p>Possible Answers:
6701     </p>
6702     <p>
6703     </p>
6704     <blockquote class="text">
6705     <p>"OK" -
6706     </p>
6707     <blockquote class="text">
6708     <p>usually
6709     </p>
6710     </blockquote>
6711    
6712    
6713     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
6714     </p>
6715     <blockquote class="text">
6716     <p>on syntax error, e.g. non boolean value
6717     </p>
6718     </blockquote>
6719    
6720    
6721     </blockquote><p>
6722    
6723     </p>
6724     <p>Examples:
6725     </p>
6726     <p>
6727     </p>
6728     <blockquote class="text">
6729     <p>
6730     </p>
6731     </blockquote><p>
6732    
6733     </p>
6734     <a name="QUIT"></a><br /><hr />
6735     <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>
6736     <a name="rfc.section.6.5.4"></a><h3>6.5.4.&nbsp;
6737     Close client connection</h3>
6738    
6739     <p>The client can close its network connection to LinuxSampler by sending the following command:
6740     </p>
6741     <p>
6742     </p>
6743     <blockquote class="text">
6744     <p>QUIT
6745     </p>
6746     </blockquote><p>
6747    
6748     </p>
6749     <p>This is probably more interesting for manual telnet connections to
6750     LinuxSampler than really useful for a front-end implementation.
6751     </p>
6752     <a name="anchor13"></a><br /><hr />
6753     <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>
6754     <a name="rfc.section.6.6"></a><h3>6.6.&nbsp;
6755     Global commands</h3>
6756    
6757     <p>The following commands have global impact on the sampler.
6758     </p>
6759     <a name="GET TOTAL_VOICE_COUNT"></a><br /><hr />
6760     <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>
6761     <a name="rfc.section.6.6.1"></a><h3>6.6.1.&nbsp;
6762     Current number of active voices</h3>
6763    
6764     <p>The front-end can ask for the current number of active voices on
6765     the sampler by sending the following command:
6766     </p>
6767     <p>
6768     </p>
6769     <blockquote class="text">
6770     <p>GET TOTAL_VOICE_COUNT
6771     </p>
6772     </blockquote><p>
6773    
6774     </p>
6775     <p>Possible Answers:
6776     </p>
6777     <p>
6778     </p>
6779     <blockquote class="text">
6780     <p>LinuxSampler will answer by returning the number of all active
6781     voices on the sampler.
6782     </p>
6783     </blockquote><p>
6784    
6785     </p>
6786     <a name="GET TOTAL_VOICE_COUNT_MAX"></a><br /><hr />
6787     <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>
6788     <a name="rfc.section.6.6.2"></a><h3>6.6.2.&nbsp;
6789     Maximum amount of active voices</h3>
6790    
6791     <p>The front-end can ask for the maximum number of active voices
6792     by sending the following command:
6793     </p>
6794     <p>
6795     </p>
6796     <blockquote class="text">
6797     <p>GET TOTAL_VOICE_COUNT_MAX
6798     </p>
6799     </blockquote><p>
6800    
6801     </p>
6802     <p>Possible Answers:
6803     </p>
6804     <p>
6805     </p>
6806     <blockquote class="text">
6807     <p>LinuxSampler will answer by returning the maximum number
6808     of active voices.
6809     </p>
6810     </blockquote><p>
6811    
6812     </p>
6813     <a name="GET TOTAL_STREAM_COUNT"></a><br /><hr />
6814     <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>
6815     <a name="rfc.section.6.6.3"></a><h3>6.6.3.&nbsp;
6816     Current number of active disk streams</h3>
6817    
6818     <p>The front-end can ask for the current number of active disk streams on
6819     the sampler by sending the following command:
6820     </p>
6821     <p>
6822     </p>
6823     <blockquote class="text">
6824     <p>GET TOTAL_STREAM_COUNT
6825     </p>
6826     </blockquote><p>
6827    
6828     </p>
6829     <p>Possible Answers:
6830     </p>
6831     <p>
6832     </p>
6833     <blockquote class="text">
6834     <p>LinuxSampler will answer by returning the number of all active
6835     disk streams on the sampler.
6836     </p>
6837     </blockquote><p>
6838    
6839     </p>
6840     <a name="RESET"></a><br /><hr />
6841     <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>
6842     <a name="rfc.section.6.6.4"></a><h3>6.6.4.&nbsp;
6843     Reset sampler</h3>
6844    
6845     <p>The front-end can reset the whole sampler by sending the following command:
6846     </p>
6847     <p>
6848     </p>
6849     <blockquote class="text">
6850     <p>RESET
6851     </p>
6852     </blockquote><p>
6853    
6854     </p>
6855     <p>Possible Answers:
6856     </p>
6857     <p>
6858     </p>
6859     <blockquote class="text">
6860     <p>"OK" -
6861     </p>
6862     <blockquote class="text">
6863     <p>always
6864     </p>
6865     </blockquote>
6866    
6867    
6868     </blockquote><p>
6869    
6870     </p>
6871     <p>Examples:
6872     </p>
6873     <p>
6874     </p>
6875     <blockquote class="text">
6876     <p>
6877     </p>
6878     </blockquote><p>
6879    
6880     </p>
6881     <a name="GET SERVER INFO"></a><br /><hr />
6882     <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>
6883     <a name="rfc.section.6.6.5"></a><h3>6.6.5.&nbsp;
6884     General sampler informations</h3>
6885    
6886     <p>The client can ask for general informations about the LinuxSampler
6887     instance by sending the following command:
6888     </p>
6889     <p>
6890     </p>
6891     <blockquote class="text">
6892     <p>GET SERVER INFO
6893     </p>
6894     </blockquote><p>
6895    
6896     </p>
6897     <p>Possible Answers:
6898     </p>
6899     <p>
6900     </p>
6901     <blockquote class="text">
6902     <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
6903     Each answer line begins with the information category name
6904     followed by a colon and then a space character &lt;SP&gt; and finally
6905     the info character string to that information category. At the
6906     moment the following categories are defined:
6907    
6908     </p>
6909     <p>
6910     </p>
6911     <blockquote class="text">
6912     <p>DESCRIPTION -
6913     </p>
6914     <blockquote class="text">
6915     <p>arbitrary textual description about the sampler
6916     (note that the character string may contain
6917     <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>)
6918     </p>
6919     </blockquote>
6920    
6921    
6922     <p>VERSION -
6923     </p>
6924     <blockquote class="text">
6925     <p>version of the sampler
6926     </p>
6927     </blockquote>
6928    
6929    
6930     <p>PROTOCOL_VERSION -
6931     </p>
6932     <blockquote class="text">
6933     <p>version of the LSCP specification the sampler
6934     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)
6935     </p>
6936     </blockquote>
6937    
6938    
6939     <p>INSTRUMENTS_DB_SUPPORT -
6940     </p>
6941     <blockquote class="text">
6942     <p>either yes or no, specifies whether the
6943     sampler is build with instruments database support.
6944     </p>
6945     </blockquote>
6946    
6947    
6948     </blockquote>
6949    
6950    
6951     </blockquote><p>
6952    
6953     </p>
6954     <p>The mentioned fields above don't have to be in particular order.
6955     Other fields might be added in future.
6956     </p>
6957     <p>Example:
6958     </p>
6959     <p>
6960     </p>
6961     <blockquote class="text">
6962     <p>C: "GET SERVER INFO"
6963     </p>
6964     <p>S: "DESCRIPTION: LinuxSampler - modular, streaming capable sampler"
6965     </p>
6966     <p>&nbsp;&nbsp;&nbsp;"VERSION: 1.0.0.svn23"
6967     </p>
6968     <p>&nbsp;&nbsp;&nbsp;"PROTOCOL_VERSION: 1.5"
6969     </p>
6970     <p>&nbsp;&nbsp;&nbsp;"INSTRUMENTS_DB_SUPPORT: no"
6971     </p>
6972     <p>&nbsp;&nbsp;&nbsp;"."
6973     </p>
6974     </blockquote><p>
6975    
6976     </p>
6977     <a name="GET VOLUME"></a><br /><hr />
6978     <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>
6979     <a name="rfc.section.6.6.6"></a><h3>6.6.6.&nbsp;
6980     Getting global volume attenuation</h3>
6981    
6982     <p>The client can ask for the current global sampler-wide volume
6983     attenuation by sending the following command:
6984     </p>
6985     <p>
6986     </p>
6987     <blockquote class="text">
6988     <p>GET VOLUME
6989     </p>
6990     </blockquote><p>
6991    
6992     </p>
6993     <p>Possible Answers:
6994     </p>
6995     <p>
6996     </p>
6997     <blockquote class="text">
6998     <p>The sampler will always answer by returning the optional
6999     dotted floating point coefficient, reflecting the current
7000     global volume attenuation.
7001    
7002     </p>
7003     </blockquote><p>
7004    
7005     </p>
7006     <p>Note: it is up to the respective sampler engine whether to obey
7007     that global volume parameter or not, but in general all engines SHOULD
7008     use this parameter.
7009     </p>
7010     <a name="SET VOLUME"></a><br /><hr />
7011     <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>
7012     <a name="rfc.section.6.6.7"></a><h3>6.6.7.&nbsp;
7013     Setting global volume attenuation</h3>
7014    
7015     <p>The client can alter the current global sampler-wide volume
7016     attenuation by sending the following command:
7017     </p>
7018     <p>
7019     </p>
7020     <blockquote class="text">
7021     <p>SET VOLUME &lt;volume&gt;
7022     </p>
7023     </blockquote><p>
7024    
7025     </p>
7026     <p>Where &lt;volume&gt; should be replaced by the optional dotted
7027     floating point value, reflecting the new global volume parameter.
7028     This value might usually be in the range between 0.0 and 1.0, that
7029     is for attenuating the overall volume.
7030     </p>
7031     <p>Possible Answers:
7032     </p>
7033     <p>
7034     </p>
7035     <blockquote class="text">
7036     <p>"OK" -
7037     </p>
7038     <blockquote class="text">
7039     <p>on success
7040     </p>
7041     </blockquote>
7042    
7043    
7044     <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
7045     </p>
7046     <blockquote class="text">
7047     <p>if the global volume was set, but there are noteworthy
7048     issue(s) related, providing an appropriate warning code and
7049     warning message
7050     </p>
7051     </blockquote>
7052    
7053    
7054     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
7055     </p>
7056     <blockquote class="text">
7057     <p>in case it failed, providing an appropriate error code and error message
7058     </p>
7059     </blockquote>
7060    
7061    
7062     </blockquote><p>
7063    
7064     </p>
7065     <a name="GET VOICES"></a><br /><hr />
7066     <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>
7067     <a name="rfc.section.6.6.8"></a><h3>6.6.8.&nbsp;
7068     Getting global voice limit</h3>
7069    
7070     <p>The client can ask for the current global sampler-wide limit
7071     for maximum voices by sending the following command:
7072     </p>
7073     <p>
7074     </p>
7075     <blockquote class="text">
7076     <p>GET VOICES
7077     </p>
7078     </blockquote><p>
7079    
7080     </p>
7081     <p>Possible Answers:
7082     </p>
7083     <p>
7084     </p>
7085     <blockquote class="text">
7086     <p>LinuxSampler will answer by returning the number for
7087     the current limit of maximum voices.
7088     </p>
7089     </blockquote><p>
7090    
7091     </p>
7092     <p>The voice limit setting defines how many voices should maximum
7093     be processed by the sampler at the same time. If the user
7094     triggers new notes which would exceed that voice limit, the
7095     sampler engine will react by stealing old voices for those
7096     newly triggered notes. Note that the amount of voices triggered
7097     by a new note can be larger than one and is dependent to the
7098     respective instrument and probably further criterias.
7099     </p>
7100     <a name="SET VOICES"></a><br /><hr />
7101     <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>
7102     <a name="rfc.section.6.6.9"></a><h3>6.6.9.&nbsp;
7103     Setting global voice limit</h3>
7104    
7105     <p>The client can alter the current global sampler-wide limit
7106     for maximum voices by sending the following command:
7107     </p>
7108     <p>
7109     </p>
7110     <blockquote class="text">
7111     <p>SET VOICES &lt;max-voices&gt;
7112     </p>
7113     </blockquote><p>
7114    
7115     </p>
7116     <p>Where &lt;max-voices&gt; should be replaced by the integer
7117     value, reflecting the new global amount limit of maximum voices.
7118     This value has to be larger than 0.
7119     </p>
7120     <p>Possible Answers:
7121     </p>
7122     <p>
7123     </p>
7124     <blockquote class="text">
7125     <p>"OK" -
7126     </p>
7127     <blockquote class="text">
7128     <p>on success
7129     </p>
7130     </blockquote>
7131    
7132    
7133     <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
7134     </p>
7135     <blockquote class="text">
7136     <p>if the voice limit was set, but there are noteworthy
7137     issue(s) related, providing an appropriate warning code and
7138     warning message
7139     </p>
7140     </blockquote>
7141    
7142    
7143     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
7144     </p>
7145     <blockquote class="text">
7146     <p>in case it failed, providing an appropriate error code and error message
7147     </p>
7148     </blockquote>
7149    
7150    
7151     </blockquote><p>
7152    
7153     </p>
7154     <p>Note: the given value will be passed to all sampler engine instances.
7155     The total amount of maximum voices on the running system might thus
7156     be as big as the given value multiplied by the current amount of engine
7157     instances.
7158     </p>
7159     <p>Caution: when adjusting the voice limit, you SHOULD also
7160     adjust the disk stream limit respectively and vice versa.
7161     </p>
7162     <a name="GET STREAMS"></a><br /><hr />
7163     <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>
7164     <a name="rfc.section.6.6.10"></a><h3>6.6.10.&nbsp;
7165     Getting global disk stream limit</h3>
7166    
7167     <p>The client can ask for the current global sampler-wide limit
7168     for maximum disk streams by sending the following command:
7169     </p>
7170     <p>
7171     </p>
7172     <blockquote class="text">
7173     <p>GET STREAMS
7174     </p>
7175     </blockquote><p>
7176    
7177     </p>
7178     <p>Possible Answers:
7179     </p>
7180     <p>
7181     </p>
7182     <blockquote class="text">
7183     <p>LinuxSampler will answer by returning the number for
7184     the current limit of maximum disk streams.
7185     </p>
7186     </blockquote><p>
7187    
7188     </p>
7189     <p>The disk stream limit setting defines how many disk streams should
7190     maximum be processed by a sampler engine at the same time. The
7191     higher this value, the more memory (RAM) will be occupied, since
7192     every disk streams allocates a certain buffer size for being able
7193     to perform its streaming operations.
7194     </p>
7195     <a name="SET STREAMS"></a><br /><hr />
7196     <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>
7197     <a name="rfc.section.6.6.11"></a><h3>6.6.11.&nbsp;
7198     Setting global disk stream limit</h3>
7199    
7200     <p>The client can alter the current global sampler-wide limit
7201     for maximum disk streams by sending the following command:
7202     </p>
7203     <p>
7204     </p>
7205     <blockquote class="text">
7206     <p>SET STREAMS &lt;max-streams&gt;
7207     </p>
7208     </blockquote><p>
7209    
7210     </p>
7211     <p>Where &lt;max-streams&gt; should be replaced by the integer
7212     value, reflecting the new global amount limit of maximum disk streams.
7213     This value has to be positive.
7214     </p>
7215     <p>Possible Answers:
7216     </p>
7217     <p>
7218     </p>
7219     <blockquote class="text">
7220     <p>"OK" -
7221     </p>
7222     <blockquote class="text">
7223     <p>on success
7224     </p>
7225     </blockquote>
7226    
7227    
7228     <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
7229     </p>
7230     <blockquote class="text">
7231     <p>if the disk stream limit was set, but there are noteworthy
7232     issue(s) related, providing an appropriate warning code and
7233     warning message
7234     </p>
7235     </blockquote>
7236    
7237    
7238     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
7239     </p>
7240     <blockquote class="text">
7241     <p>in case it failed, providing an appropriate error code and error message
7242     </p>
7243     </blockquote>
7244    
7245    
7246     </blockquote><p>
7247    
7248     </p>
7249     <p>Note: the given value will be passed to all sampler engine instances.
7250     The total amount of maximum disk streams on the running system might
7251     thus be as big as the given value multiplied by the current amount of
7252     engine instances.
7253     </p>
7254     <p>Caution: when adjusting the disk stream limit, you SHOULD also
7255     adjust the voice limit respectively and vice versa.
7256     </p>
7257     <a name="MIDI Instrument Mapping"></a><br /><hr />
7258     <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>
7259     <a name="rfc.section.6.7"></a><h3>6.7.&nbsp;
7260     MIDI Instrument Mapping</h3>
7261    
7262     <p>The MIDI protocol provides a way to switch between instruments
7263     by sending so called MIDI bank select and MIDI program change
7264     messages which are essentially just numbers. The following commands
7265     allow to actually map arbitrary MIDI bank select / program change
7266     numbers with real instruments.
7267     </p>
7268     <p>The sampler allows to manage an arbitrary amount of MIDI
7269     instrument maps which define which instrument to load on
7270     which MIDI program change message.
7271     </p>
7272     <p>By default, that is when the sampler is launched, there is no
7273     map, thus the sampler will simply ignore all program change
7274     messages. The front-end has to explicitly create at least one
7275     map, add entries to the map and tell the respective sampler
7276     channel(s) which MIDI instrument map to use, so the sampler
7277     knows how to react on a given program change message on the
7278     respective sampler channel, that is by switching to the
7279     respectively defined engine type and loading the respective
7280     instrument. See command
7281     <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>
7282     for how to assign a MIDI instrument map to a sampler channel.
7283     </p>
7284     <p>Also note per MIDI specification a bank select message does not
7285     cause to switch to another instrument. Instead when receiving a
7286     bank select message the bank value will be stored and a subsequent
7287     program change message (which may occur at any time) will finally
7288     cause the sampler to switch to the respective instrument as
7289     reflected by the current MIDI instrument map.
7290     </p>
7291     <a name="ADD MIDI_INSTRUMENT_MAP"></a><br /><hr />
7292     <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>
7293     <a name="rfc.section.6.7.1"></a><h3>6.7.1.&nbsp;
7294     Create a new MIDI instrument map</h3>
7295    
7296     <p>The front-end can add a new MIDI instrument map by sending
7297     the following command:
7298     </p>
7299     <p>
7300     </p>
7301     <blockquote class="text">
7302     <p>ADD MIDI_INSTRUMENT_MAP [&lt;name&gt;]
7303     </p>
7304     </blockquote><p>
7305    
7306     </p>
7307     <p>Where &lt;name&gt; is an optional argument allowing to
7308     assign a custom name to the new map. MIDI instrument Map
7309     names do not have to be unique, but MUST be encapsulated
7310     into apostrophes and support escape sequences as described
7311     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>".
7312    
7313     </p>
7314     <p>Possible Answers:
7315     </p>
7316     <p>
7317     </p>
7318     <blockquote class="text">
7319     <p>"OK[&lt;map&gt;]" -
7320     </p>
7321     <blockquote class="text">
7322     <p>in case a new MIDI instrument map could
7323     be added, where &lt;map&gt; reflects the
7324     unique ID of the newly created MIDI
7325     instrument map
7326     </p>
7327     </blockquote>
7328    
7329    
7330     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
7331     </p>
7332     <blockquote class="text">
7333     <p>when a new map could not be created, which
7334     might never occur in practice
7335     </p>
7336     </blockquote>
7337    
7338    
7339     </blockquote><p>
7340    
7341     </p>
7342     <p>Examples:
7343     </p>
7344     <p>
7345     </p>
7346     <blockquote class="text">
7347     <p>C: "ADD MIDI_INSTRUMENT_MAP 'Standard Map'"
7348     </p>
7349     <p>S: "OK[0]"
7350     </p>
7351     </blockquote><p>
7352    
7353     </p>
7354     <p>
7355     </p>
7356     <blockquote class="text">
7357     <p>C: "ADD MIDI_INSTRUMENT_MAP 'Standard Drumkit'"
7358     </p>
7359     <p>S: "OK[1]"
7360     </p>
7361     </blockquote><p>
7362    
7363     </p>
7364     <p>
7365     </p>
7366     <blockquote class="text">
7367     <p>C: "ADD MIDI_INSTRUMENT_MAP"
7368     </p>
7369     <p>S: "OK[5]"
7370     </p>
7371     </blockquote><p>
7372    
7373     </p>
7374     <a name="REMOVE MIDI_INSTRUMENT_MAP"></a><br /><hr />
7375     <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>
7376     <a name="rfc.section.6.7.2"></a><h3>6.7.2.&nbsp;
7377     Delete one particular or all MIDI instrument maps</h3>
7378    
7379     <p>The front-end can delete a particular MIDI instrument map
7380     by sending the following command:
7381     </p>
7382     <p>
7383     </p>
7384     <blockquote class="text">
7385     <p>REMOVE MIDI_INSTRUMENT_MAP &lt;map&gt;
7386     </p>
7387     </blockquote><p>
7388    
7389     </p>
7390     <p>Where &lt;map&gt; reflects the unique ID of the map to delete
7391     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>
7392     command.
7393     </p>
7394     <p>The front-end can delete all MIDI instrument maps by
7395     sending the following command:
7396     </p>
7397     <p>
7398     </p>
7399     <blockquote class="text">
7400     <p>REMOVE MIDI_INSTRUMENT_MAP ALL
7401     </p>
7402     </blockquote><p>
7403    
7404     </p>
7405     <p>Possible Answers:
7406     </p>
7407     <p>
7408     </p>
7409     <blockquote class="text">
7410     <p>"OK" -
7411     </p>
7412     <blockquote class="text">
7413     <p>in case the map(s) could be deleted
7414     </p>
7415     </blockquote>
7416    
7417    
7418     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
7419     </p>
7420     <blockquote class="text">
7421     <p>when the given map does not exist
7422     </p>
7423     </blockquote>
7424    
7425    
7426     </blockquote><p>
7427    
7428     </p>
7429     <p>Examples:
7430     </p>
7431     <p>
7432     </p>
7433     <blockquote class="text">
7434     <p>C: "REMOVE MIDI_INSTRUMENT_MAP 0"
7435     </p>
7436     <p>S: "OK"
7437     </p>
7438     </blockquote><p>
7439    
7440     </p>
7441     <p>
7442     </p>
7443     <blockquote class="text">
7444     <p>C: "REMOVE MIDI_INSTRUMENT_MAP ALL"
7445     </p>
7446     <p>S: "OK"
7447     </p>
7448     </blockquote><p>
7449    
7450     </p>
7451     <a name="GET MIDI_INSTRUMENT_MAPS"></a><br /><hr />
7452     <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>
7453     <a name="rfc.section.6.7.3"></a><h3>6.7.3.&nbsp;
7454     Get amount of existing MIDI instrument maps</h3>
7455    
7456     <p>The front-end can retrieve the current amount of MIDI
7457     instrument maps by sending the following command:
7458     </p>
7459     <p>
7460     </p>
7461     <blockquote class="text">
7462     <p>GET MIDI_INSTRUMENT_MAPS
7463     </p>
7464     </blockquote><p>
7465    
7466     </p>
7467     <p>Possible Answers:
7468     </p>
7469     <p>
7470     </p>
7471     <blockquote class="text">
7472     <p>The sampler will answer by returning the current
7473     number of MIDI instrument maps.
7474     </p>
7475     </blockquote><p>
7476    
7477     </p>
7478     <p>Example:
7479     </p>
7480     <p>
7481     </p>
7482     <blockquote class="text">
7483     <p>C: "GET MIDI_INSTRUMENT_MAPS"
7484     </p>
7485     <p>S: "2"
7486     </p>
7487     </blockquote><p>
7488    
7489     </p>
7490     <a name="LIST MIDI_INSTRUMENT_MAPS"></a><br /><hr />
7491     <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>
7492     <a name="rfc.section.6.7.4"></a><h3>6.7.4.&nbsp;
7493     Getting all created MIDI instrument maps</h3>
7494    
7495     <p>The number of MIDI instrument maps can change on runtime. To get the
7496     current list of MIDI instrument maps, the front-end can send the
7497     following command:
7498     </p>
7499     <p>
7500     </p>
7501     <blockquote class="text">
7502     <p>LIST MIDI_INSTRUMENT_MAPS
7503     </p>
7504     </blockquote><p>
7505    
7506     </p>
7507     <p>Possible Answers:
7508     </p>
7509     <p>
7510     </p>
7511     <blockquote class="text">
7512     <p>The sampler will answer by returning a comma separated list
7513     with all MIDI instrument maps' numerical IDs.
7514     </p>
7515     </blockquote><p>
7516    
7517     </p>
7518     <p>Example:
7519     </p>
7520     <p>
7521     </p>
7522     <blockquote class="text">
7523     <p>C: "LIST MIDI_INSTRUMENT_MAPS"
7524     </p>
7525     <p>S: "0,1,5,12"
7526     </p>
7527     </blockquote><p>
7528    
7529     </p>
7530     <a name="GET MIDI_INSTRUMENT_MAP INFO"></a><br /><hr />
7531     <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>
7532     <a name="rfc.section.6.7.5"></a><h3>6.7.5.&nbsp;
7533     Getting MIDI instrument map information</h3>
7534    
7535     <p>The front-end can ask for the current settings of a MIDI
7536     instrument map by sending the following command:
7537     </p>
7538     <p>
7539     </p>
7540     <blockquote class="text">
7541     <p>GET MIDI_INSTRUMENT_MAP INFO &lt;map&gt;
7542     </p>
7543     </blockquote><p>
7544    
7545     </p>
7546     <p>Where &lt;map&gt; is the numerical ID of the map the
7547     front-end is interested in as returned by the
7548     <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>
7549     command.
7550     </p>
7551     <p>Possible Answers:
7552     </p>
7553     <p>
7554     </p>
7555     <blockquote class="text">
7556     <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
7557     Each answer line begins with the settings category name
7558     followed by a colon and then a space character &lt;SP&gt; and finally
7559     the info character string to that setting category. At the
7560     moment the following categories are defined:
7561     </p>
7562     <p>
7563     </p>
7564     <blockquote class="text">
7565     <p>NAME -
7566     </p>
7567     <blockquote class="text">
7568     <p>custom name of the given map,
7569     which does not have to be unique
7570     (note that this character string may contain
7571     <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>)
7572     </p>
7573     </blockquote>
7574    
7575    
7576     <p>DEFAULT -
7577     </p>
7578     <blockquote class="text">
7579     <p>either true or false,
7580     defines whether this map is the default map
7581     </p>
7582     </blockquote>
7583    
7584    
7585     </blockquote>
7586    
7587    
7588     </blockquote><p>
7589    
7590     </p>
7591     <p>The mentioned fields above don't have to be in particular order.
7592     </p>
7593     <p>Example:
7594     </p>
7595     <p>
7596     </p>
7597     <blockquote class="text">
7598     <p>C: "GET MIDI_INSTRUMENT_MAP INFO 0"
7599     </p>
7600     <p>S: "NAME: Standard Map"
7601     </p>
7602     <p>&nbsp;&nbsp;&nbsp;"DEFAULT: true"
7603     </p>
7604     <p>&nbsp;&nbsp;&nbsp;"."
7605     </p>
7606     </blockquote><p>
7607    
7608     </p>
7609     <a name="SET MIDI_INSTRUMENT_MAP NAME"></a><br /><hr />
7610     <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>
7611     <a name="rfc.section.6.7.6"></a><h3>6.7.6.&nbsp;
7612     Renaming a MIDI instrument map</h3>
7613    
7614     <p>The front-end can alter the custom name of a MIDI
7615     instrument map by sending the following command:
7616     </p>
7617     <p>
7618     </p>
7619     <blockquote class="text">
7620     <p>SET MIDI_INSTRUMENT_MAP NAME &lt;map&gt; &lt;name&gt;
7621     </p>
7622     </blockquote><p>
7623    
7624     </p>
7625     <p>Where &lt;map&gt; is the numerical ID of the map and
7626     &lt;name&gt; the new custom name of the map, which does not
7627     have to be unique (name MUST be encapsulated into apostrophes
7628     and supports escape sequences as described in chapter
7629     "<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>").
7630    
7631     </p>
7632     <p>Possible Answers:
7633     </p>
7634     <p>
7635     </p>
7636     <blockquote class="text">
7637     <p>"OK" -
7638     </p>
7639     <blockquote class="text">
7640     <p>on success
7641     </p>
7642     </blockquote>
7643    
7644    
7645     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
7646     </p>
7647     <blockquote class="text">
7648     <p>in case the given map does not exist
7649     </p>
7650     </blockquote>
7651    
7652    
7653     </blockquote><p>
7654    
7655     </p>
7656     <p>Example:
7657     </p>
7658     <p>
7659     </p>
7660     <blockquote class="text">
7661     <p>C: "SET MIDI_INSTRUMENT_MAP NAME 0 'Foo instruments'"
7662     </p>
7663     <p>S: "OK"
7664     </p>
7665     </blockquote><p>
7666    
7667     </p>
7668     <a name="MAP MIDI_INSTRUMENT"></a><br /><hr />
7669     <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>
7670     <a name="rfc.section.6.7.7"></a><h3>6.7.7.&nbsp;
7671     Create or replace a MIDI instrument map entry</h3>
7672    
7673     <p>The front-end can create a new or replace an existing entry
7674     in a sampler's MIDI instrument map by sending the following
7675     command:
7676     </p>
7677     <p>
7678     </p>
7679     <blockquote class="text">
7680     <p>MAP MIDI_INSTRUMENT [NON_MODAL] &lt;map&gt;
7681     &lt;midi_bank&gt; &lt;midi_prog&gt; &lt;engine_name&gt;
7682     &lt;filename&gt; &lt;instrument_index&gt; &lt;volume_value&gt;
7683     [&lt;instr_load_mode&gt;] [&lt;name&gt;]
7684     </p>
7685     </blockquote><p>
7686    
7687     </p>
7688     <p>Where &lt;map&gt; is the numeric ID of the map to alter,
7689     &lt;midi_bank&gt; is an integer value between
7690     0..16383 reflecting the MIDI bank select index,
7691     &lt;midi_prog&gt; an
7692     integer value between 0..127 reflecting the MIDI program change
7693     index, &lt;engine_name&gt; a sampler engine name as returned by
7694     the <a class='info' href='#LIST AVAILABLE_ENGINES'>"LIST AVAILABLE_ENGINES"<span> (</span><span class='info'>Getting all available engines</span><span>)</span></a>
7695     command (not encapsulated into apostrophes), &lt;filename&gt; the name
7696     of the instrument's file to be deployed (encapsulated into apostrophes,
7697     supporting escape sequences as described in chapter
7698     "<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>"),
7699     &lt;instrument_index&gt; the index (integer value) of the instrument
7700     within the given file, &lt;volume_value&gt; reflects the master
7701     volume of the instrument as optionally dotted number (where a
7702     value &lt; 1.0 means attenuation and a value > 1.0 means
7703     amplification). This parameter easily allows to adjust the
7704     volume of all intruments within a custom instrument map
7705     without having to adjust their instrument files. The
7706     OPTIONAL &lt;instr_load_mode&gt; argument defines the life
7707     time of the instrument, that is when the instrument should
7708     be loaded, when freed and has exactly the following
7709     possibilities:
7710     </p>
7711     <p>
7712     </p>
7713     <blockquote class="text">
7714     <p>"ON_DEMAND" -
7715     </p>
7716     <blockquote class="text">
7717     <p>The instrument will be loaded when needed,
7718     that is when demanded by at least one sampler
7719     channel. It will immediately be freed from memory
7720     when not needed by any sampler channel anymore.
7721     </p>
7722     </blockquote>
7723    
7724    
7725     <p>"ON_DEMAND_HOLD" -
7726     </p>
7727     <blockquote class="text">
7728     <p>The instrument will be loaded when needed,
7729     that is when demanded by at least one sampler
7730     channel. It will be kept in memory even when
7731     not needed by any sampler channel anymore.
7732     Instruments with this mode are only freed
7733     when the sampler is reset or all mapping
7734     entries with this mode (and respective
7735     instrument) are explicitly changed to
7736     "ON_DEMAND" and no sampler channel is using
7737     the instrument anymore.
7738     </p>
7739     </blockquote>
7740    
7741    
7742     <p>"PERSISTENT" -
7743     </p>
7744     <blockquote class="text">
7745     <p>The instrument will immediately be loaded
7746     into memory when this mapping
7747     command is sent and the instrument is kept all
7748     the time. Instruments with this mode are
7749     only freed when the sampler is reset or all
7750     mapping entries with this mode (and
7751     respective instrument) are explicitly
7752     changed to "ON_DEMAND" and no sampler
7753     channel is using the instrument anymore.
7754     </p>
7755     </blockquote>
7756    
7757    
7758     <p>not supplied -
7759     </p>
7760     <blockquote class="text">
7761     <p>In case there is no &lt;instr_load_mode&gt;
7762     argument given, it will be up to the
7763     InstrumentManager to decide which mode to use.
7764     Usually it will use "ON_DEMAND" if an entry
7765     for the given instrument does not exist in
7766     the InstrumentManager's list yet, otherwise
7767     if an entry already exists, it will simply
7768     stick with the mode currently reflected by
7769     the already existing entry, that is it will
7770     not change the mode.
7771     </p>
7772     </blockquote>
7773    
7774    
7775     </blockquote><p>
7776    
7777     </p>
7778     <p>
7779     The &lt;instr_load_mode&gt; argument thus allows to define an
7780     appropriate strategy (low memory consumption vs. fast
7781     instrument switching) for each instrument individually. Note, the
7782     following restrictions apply to this argument: "ON_DEMAND_HOLD" and
7783     "PERSISTENT" have to be supported by the respective sampler engine
7784     (which is technically the case when the engine provides an
7785     InstrumentManager for its format). If this is not the case the
7786     argument will automatically fall back to the default value
7787     "ON_DEMAND". Also the load mode of one instrument may
7788     automatically change the laod mode of other instrument(s), i.e.
7789     because the instruments are part of the same file and the
7790     engine does not allow a way to manage load modes for them
7791     individually. Due to this, in case the frontend shows the
7792     load modes of entries, the frontend should retrieve the actual
7793     mode by i.e. sending
7794     <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>
7795     command(s). Finally the OPTIONAL &lt;name&gt; argument allows to set a custom name
7796     (encapsulated into apostrophes, supporting escape sequences as described in chapter
7797     "<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
7798     mapping entry, useful for frontends for displaying an appropriate name for
7799     mapped instruments (using
7800     <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>).
7801    
7802     </p>
7803     <p>
7804     By default, "MAP MIDI_INSTRUMENT" commands block until the mapping is
7805     completely established in the sampler. The OPTIONAL "NON_MODAL" argument
7806     however causes the respective "MAP MIDI_INSTRUMENT" command to return
7807     immediately, that is to let the sampler establish the mapping in the
7808     background. So this argument might be especially useful for mappings with
7809     a "PERSISTENT" type, because these have to load the respective instruments
7810     immediately and might thus block for a very long time. It is recommended
7811     however to use the OPTIONAL "NON_MODAL" argument only if really necessary,
7812     because it has the following drawbacks: as "NON_MODAL" instructions return
7813     immediately, they may not necessarily return an error i.e. when the given
7814     instrument file turns out to be corrupt, beside that subsequent commands
7815     in a LSCP instruction sequence might fail, because mandatory mappings are
7816     not yet completed.
7817    
7818     </p>
7819     <p>Possible Answers:
7820     </p>
7821     <p>
7822     </p>
7823     <blockquote class="text">
7824     <p>"OK" -
7825     </p>
7826     <blockquote class="text">
7827     <p>usually
7828     </p>
7829     </blockquote>
7830    
7831    
7832     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
7833     </p>
7834     <blockquote class="text">
7835     <p>when the given map or engine does not exist or a value
7836     is out of range
7837     </p>
7838     </blockquote>
7839    
7840    
7841     </blockquote><p>
7842    
7843     </p>
7844     <p>Examples:
7845     </p>
7846     <p>
7847     </p>
7848     <blockquote class="text">
7849     <p>C: "MAP MIDI_INSTRUMENT 0 3 0 gig '/usr/share/Steinway D.gig' 0 0.8 PERSISTENT"
7850     </p>
7851     <p>S: "OK"
7852     </p>
7853     </blockquote><p>
7854    
7855     </p>
7856     <p>
7857     </p>
7858     <blockquote class="text">
7859     <p>C: "MAP MIDI_INSTRUMENT 0 4 50 gig '/home/john/foostrings.gig' 7 1.0"
7860     </p>
7861     <p>S: "OK"
7862     </p>
7863     </blockquote><p>
7864    
7865     </p>
7866     <p>
7867     </p>
7868     <blockquote class="text">
7869     <p>C: "MAP MIDI_INSTRUMENT 0 0 0 gig '/usr/share/piano.gig' 0 1.0 'Normal Piano'"
7870     </p>
7871     <p>S: "OK"
7872     </p>
7873     <p>C: "MAP MIDI_INSTRUMENT 0 1 0 gig '/usr/share/piano.gig' 0 0.25 'Silent Piano'"
7874     </p>
7875     <p>S: "OK"
7876     </p>
7877     </blockquote><p>
7878    
7879     </p>
7880     <p>
7881     </p>
7882     <blockquote class="text">
7883     <p>C: "MAP MIDI_INSTRUMENT NON_MODAL 1 8 120 gig '/home/joe/foodrums.gig' 0 1.0 PERSISTENT 'Foo Drumkit'"
7884     </p>
7885     <p>S: "OK"
7886     </p>
7887     </blockquote><p>
7888    
7889     </p>
7890     <a name="GET MIDI_INSTRUMENTS"></a><br /><hr />
7891     <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>
7892     <a name="rfc.section.6.7.8"></a><h3>6.7.8.&nbsp;
7893     Getting amount of MIDI instrument map entries</h3>
7894    
7895     <p>The front-end can query the amount of currently existing
7896     entries in a MIDI instrument map by sending the following
7897     command:
7898     </p>
7899     <p>
7900     </p>
7901     <blockquote class="text">
7902     <p>GET MIDI_INSTRUMENTS &lt;map&gt;
7903     </p>
7904     </blockquote><p>
7905    
7906     </p>
7907     <p>The front-end can query the amount of currently existing
7908     entries in all MIDI instrument maps by sending the following
7909     command:
7910     </p>
7911     <p>
7912     </p>
7913     <blockquote class="text">
7914     <p>GET MIDI_INSTRUMENTS ALL
7915     </p>
7916     </blockquote><p>
7917    
7918     </p>
7919     <p>Possible Answers:
7920     </p>
7921     <p>
7922     </p>
7923     <blockquote class="text">
7924     <p>The sampler will answer by sending the current number of
7925     entries in the MIDI instrument map(s).
7926     </p>
7927     </blockquote><p>
7928    
7929     </p>
7930     <p>Example:
7931     </p>
7932     <p>
7933     </p>
7934     <blockquote class="text">
7935     <p>C: "GET MIDI_INSTRUMENTS 0"
7936     </p>
7937     <p>S: "234"
7938     </p>
7939     </blockquote><p>
7940    
7941     </p>
7942     <p>
7943     </p>
7944     <blockquote class="text">
7945     <p>C: "GET MIDI_INSTRUMENTS ALL"
7946     </p>
7947     <p>S: "954"
7948     </p>
7949     </blockquote><p>
7950    
7951     </p>
7952     <a name="LIST MIDI_INSTRUMENTS"></a><br /><hr />
7953     <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>
7954     <a name="rfc.section.6.7.9"></a><h3>6.7.9.&nbsp;
7955     Getting indeces of all entries of a MIDI instrument map</h3>
7956    
7957     <p>The front-end can query a list of all currently existing
7958     entries in a certain MIDI instrument map by sending the following
7959     command:
7960     </p>
7961     <p>
7962     </p>
7963     <blockquote class="text">
7964     <p>LIST MIDI_INSTRUMENTS &lt;map&gt;
7965     </p>
7966     </blockquote><p>
7967    
7968     </p>
7969     <p>Where &lt;map&gt; is the numeric ID of the MIDI instrument map.
7970     </p>
7971     <p>The front-end can query a list of all currently existing
7972     entries of all MIDI instrument maps by sending the following
7973     command:
7974     </p>
7975     <p>
7976     </p>
7977     <blockquote class="text">
7978     <p>LIST MIDI_INSTRUMENTS ALL
7979     </p>
7980     </blockquote><p>
7981    
7982     </p>
7983     <p>Possible Answers:
7984     </p>
7985     <p>
7986     </p>
7987     <blockquote class="text">
7988     <p>The sampler will answer by sending a comma separated
7989     list of map ID - MIDI bank - MIDI program triples, where
7990     each triple is encapsulated into curly braces. The
7991     list is returned in one single line. Each triple
7992     just reflects the key of the respective map entry,
7993     thus subsequent
7994     <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>
7995     command(s) are necessary to retrieve detailed informations
7996     about each entry.
7997     </p>
7998     </blockquote><p>
7999    
8000     </p>
8001     <p>Example:
8002     </p>
8003     <p>
8004     </p>
8005     <blockquote class="text">
8006     <p>C: "LIST MIDI_INSTRUMENTS 0"
8007     </p>
8008     <p>S: "{0,0,0},{0,0,1},{0,0,3},{0,1,4},{1,127,127}"
8009     </p>
8010     </blockquote><p>
8011    
8012     </p>
8013     <a name="UNMAP MIDI_INSTRUMENT"></a><br /><hr />
8014     <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>
8015     <a name="rfc.section.6.7.10"></a><h3>6.7.10.&nbsp;
8016     Remove an entry from the MIDI instrument map</h3>
8017    
8018     <p>The front-end can delete an entry from a MIDI instrument
8019     map by sending the following command:
8020     </p>
8021     <p>
8022     </p>
8023     <blockquote class="text">
8024     <p>UNMAP MIDI_INSTRUMENT &lt;map&gt; &lt;midi_bank&gt; &lt;midi_prog&gt;
8025     </p>
8026     </blockquote><p>
8027    
8028     </p>
8029     <p>
8030     Where &lt;map&gt; is the numeric ID of the MIDI instrument map,
8031     &lt;midi_bank&gt; is an integer value between 0..16383
8032     reflecting the MIDI bank value and
8033     &lt;midi_prog&gt; an integer value between
8034     0..127 reflecting the MIDI program value of the map's entrie's key
8035     index triple.
8036    
8037     </p>
8038     <p>Possible Answers:
8039     </p>
8040     <p>
8041     </p>
8042     <blockquote class="text">
8043     <p>"OK" -
8044     </p>
8045     <blockquote class="text">
8046     <p>usually
8047     </p>
8048     </blockquote>
8049    
8050    
8051     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
8052     </p>
8053     <blockquote class="text">
8054     <p>when index out of bounds
8055     </p>
8056     </blockquote>
8057    
8058    
8059     </blockquote><p>
8060    
8061     </p>
8062     <p>Example:
8063     </p>
8064     <p>
8065     </p>
8066     <blockquote class="text">
8067     <p>C: "UNMAP MIDI_INSTRUMENT 0 2 127"
8068     </p>
8069     <p>S: "OK"
8070     </p>
8071     </blockquote><p>
8072    
8073     </p>
8074     <a name="GET MIDI_INSTRUMENT INFO"></a><br /><hr />
8075     <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>
8076     <a name="rfc.section.6.7.11"></a><h3>6.7.11.&nbsp;
8077     Get current settings of MIDI instrument map entry</h3>
8078    
8079     <p>The front-end can retrieve the current settings of a certain
8080     instrument map entry by sending the following command:
8081     </p>
8082     <p>
8083     </p>
8084     <blockquote class="text">
8085     <p>GET MIDI_INSTRUMENT INFO &lt;map&gt; &lt;midi_bank&gt; &lt;midi_prog&gt;
8086     </p>
8087     </blockquote><p>
8088    
8089     </p>
8090     <p>
8091     Where &lt;map&gt; is the numeric ID of the MIDI instrument map,
8092     &lt;midi_bank&gt; is an integer value between 0..16383
8093     reflecting the MIDI bank value, &lt;midi_bank&gt;
8094     and &lt;midi_prog&gt; an integer value between
8095     0..127 reflecting the MIDI program value of the map's entrie's key
8096     index triple.
8097    
8098     </p>
8099     <p>Possible Answers:
8100     </p>
8101     <p>
8102     </p>
8103     <blockquote class="text">
8104     <p>LinuxSampler will answer by sending a &lt;CRLF&gt;
8105     separated list. Each answer line begins with the
8106     information category name followed by a colon and then
8107     a space character &lt;SP&gt; and finally the info
8108     character string to that info category. At the moment
8109     the following categories are defined:
8110     </p>
8111     <p>"NAME" -
8112     </p>
8113     <blockquote class="text">
8114     <p>Name for this MIDI instrument map entry (if defined).
8115     This name shall be used by frontends for displaying a
8116     name for this mapped instrument. It can be set and
8117     changed with the
8118     <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>
8119     command and does not have to be unique.
8120     (note that this character string may contain
8121     <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>)
8122     </p>
8123     </blockquote>
8124    
8125    
8126     <p>"ENGINE_NAME" -
8127     </p>
8128     <blockquote class="text">
8129     <p>Name of the engine to be deployed for this
8130     instrument.
8131     </p>
8132     </blockquote>
8133    
8134    
8135     <p>"INSTRUMENT_FILE" -
8136     </p>
8137     <blockquote class="text">
8138     <p>File name of the instrument
8139     (note that this path may contain
8140     <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>).
8141     </p>
8142     </blockquote>
8143    
8144    
8145     <p>"INSTRUMENT_NR" -
8146     </p>
8147     <blockquote class="text">
8148     <p>Index of the instrument within the file.
8149     </p>
8150     </blockquote>
8151    
8152    
8153     <p>"INSTRUMENT_NAME" -
8154     </p>
8155     <blockquote class="text">
8156     <p>Name of the loaded instrument as reflected by its file.
8157     In contrast to the "NAME" field, the "INSTRUMENT_NAME" field
8158     cannot be changed (note that this character string may contain
8159     <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>).
8160     </p>
8161     </blockquote>
8162    
8163    
8164     <p>"LOAD_MODE" -
8165     </p>
8166     <blockquote class="text">
8167     <p>Life time of instrument
8168     (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).
8169     </p>
8170     </blockquote>
8171    
8172    
8173     <p>"VOLUME" -
8174     </p>
8175     <blockquote class="text">
8176     <p>master volume of the instrument as optionally
8177     dotted number (where a value &lt; 1.0 means attenuation
8178     and a value > 1.0 means amplification)
8179     </p>
8180     </blockquote>
8181    
8182    
8183     <p>The mentioned fields above don't have to be in particular order.
8184     </p>
8185     </blockquote><p>
8186    
8187     </p>
8188     <p>Example:
8189     </p>
8190     <p>
8191     </p>
8192     <blockquote class="text">
8193     <p>C: "GET MIDI_INSTRUMENT INFO 1 45 120"
8194     </p>
8195     <p>S: "NAME: Drums for Foo Song"
8196     </p>
8197     <p>&nbsp;&nbsp;&nbsp;"ENGINE_NAME: GigEngine"
8198     </p>
8199     <p>&nbsp;&nbsp;&nbsp;"INSTRUMENT_FILE: /usr/share/joesdrumkit.gig"
8200     </p>
8201     <p>&nbsp;&nbsp;&nbsp;"INSTRUMENT_NR: 0"
8202     </p>
8203     <p>&nbsp;&nbsp;&nbsp;"INSTRUMENT_NAME: Joe's Drumkit"
8204     </p>
8205     <p>&nbsp;&nbsp;&nbsp;"LOAD_MODE: PERSISTENT"
8206     </p>
8207     <p>&nbsp;&nbsp;&nbsp;"VOLUME: 1.0"
8208     </p>
8209     <p>&nbsp;&nbsp;&nbsp;"."
8210     </p>
8211     </blockquote><p>
8212    
8213     </p>
8214     <a name="CLEAR MIDI_INSTRUMENTS"></a><br /><hr />
8215     <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>
8216     <a name="rfc.section.6.7.12"></a><h3>6.7.12.&nbsp;
8217     Clear MIDI instrument map</h3>
8218    
8219     <p>The front-end can clear a whole MIDI instrument map, that
8220     is delete all its entries by sending the following command:
8221     </p>
8222     <p>
8223     </p>
8224     <blockquote class="text">
8225     <p>CLEAR MIDI_INSTRUMENTS &lt;map&gt;
8226     </p>
8227     </blockquote><p>
8228    
8229     </p>
8230     <p>Where &lt;map&gt; is the numeric ID of the map to clear.
8231     </p>
8232     <p>The front-end can clear all MIDI instrument maps, that
8233     is delete all entries of all maps by sending the following
8234     command:
8235     </p>
8236     <p>
8237     </p>
8238     <blockquote class="text">
8239     <p>CLEAR MIDI_INSTRUMENTS ALL
8240     </p>
8241     </blockquote><p>
8242    
8243     </p>
8244     <p>The command "CLEAR MIDI_INSTRUMENTS ALL" does not delete the
8245     maps, only their entries, thus the map's settings like
8246     custom name will be preservevd.
8247     </p>
8248     <p>Possible Answers:
8249     </p>
8250     <p>
8251     </p>
8252     <blockquote class="text">
8253     <p>"OK" -
8254     </p>
8255     <blockquote class="text">
8256     <p>always
8257     </p>
8258     </blockquote>
8259    
8260    
8261     </blockquote><p>
8262    
8263     </p>
8264     <p>Examples:
8265     </p>
8266     <p>
8267     </p>
8268     <blockquote class="text">
8269     <p>C: "CLEAR MIDI_INSTRUMENTS 0"
8270     </p>
8271     <p>S: "OK"
8272     </p>
8273     </blockquote><p>
8274    
8275     </p>
8276     <p>
8277     </p>
8278     <blockquote class="text">
8279     <p>C: "CLEAR MIDI_INSTRUMENTS ALL"
8280     </p>
8281     <p>S: "OK"
8282     </p>
8283     </blockquote><p>
8284    
8285     </p>
8286     <a name="Managing Instruments Database"></a><br /><hr />
8287     <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>
8288     <a name="rfc.section.6.8"></a><h3>6.8.&nbsp;
8289     Managing Instruments Database</h3>
8290    
8291     <p>The following commands describe how to use and manage
8292     the instruments database.
8293     </p>
8294     <p>Notice:
8295     </p>
8296     <p>
8297     </p>
8298     <blockquote class="text">
8299     <p>All command arguments representing a path or
8300     instrument/directory name support escape sequences as described in chapter
8301     "<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>".
8302    
8303     </p>
8304     <p>All occurrences of a forward slash in instrument and directory
8305     names are escaped with its hex (\x2f) or octal (\057) escape sequence.
8306    
8307     </p>
8308     </blockquote><p>
8309    
8310     </p>
8311     <a name="ADD DB_INSTRUMENT_DIRECTORY"></a><br /><hr />
8312     <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>
8313     <a name="rfc.section.6.8.1"></a><h3>6.8.1.&nbsp;
8314     Creating a new instrument directory</h3>
8315    
8316     <p>The front-end can add a new instrument directory to the
8317     instruments database by sending the following command:
8318     </p>
8319     <p>
8320     </p>
8321     <blockquote class="text">
8322     <p>ADD DB_INSTRUMENT_DIRECTORY &lt;dir&gt;
8323     </p>
8324     </blockquote><p>
8325    
8326     </p>
8327     <p>Where &lt;dir&gt; is the absolute path name of the directory
8328     to be created (encapsulated into apostrophes).
8329     </p>
8330     <p>Possible Answers:
8331     </p>
8332     <p>
8333     </p>
8334     <blockquote class="text">
8335     <p>"OK" -
8336     </p>
8337     <blockquote class="text">
8338     <p>on success
8339     </p>
8340     </blockquote>
8341    
8342    
8343     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
8344     </p>
8345     <blockquote class="text">
8346     <p>when the directory could not be created, which
8347     can happen if the directory already exists or the
8348     name contains not allowed symbols
8349     </p>
8350     </blockquote>
8351    
8352    
8353     </blockquote><p>
8354    
8355     </p>
8356     <p>Examples:
8357     </p>
8358     <p>
8359     </p>
8360     <blockquote class="text">
8361     <p>C: "ADD DB_INSTRUMENT_DIRECTORY '/Piano Collection'"
8362     </p>
8363     <p>S: "OK"
8364     </p>
8365     </blockquote><p>
8366    
8367     </p>
8368     <a name="REMOVE DB_INSTRUMENT_DIRECTORY"></a><br /><hr />
8369     <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>
8370     <a name="rfc.section.6.8.2"></a><h3>6.8.2.&nbsp;
8371     Deleting an instrument directory</h3>
8372    
8373     <p>The front-end can delete a particular instrument directory
8374     from the instruments database by sending the following command:
8375     </p>
8376     <p>
8377     </p>
8378     <blockquote class="text">
8379     <p>REMOVE DB_INSTRUMENT_DIRECTORY [FORCE] &lt;dir&gt;
8380     </p>
8381     </blockquote><p>
8382    
8383     </p>
8384     <p>Where &lt;dir&gt; is the absolute path name of the directory
8385     to delete. The optional FORCE argument can be used to
8386     force the deletion of a non-empty directory and all its content.
8387     </p>
8388     <p>Possible Answers:
8389     </p>
8390     <p>
8391     </p>
8392     <blockquote class="text">
8393     <p>"OK" -
8394     </p>
8395     <blockquote class="text">
8396     <p>if the directory is deleted successfully
8397     </p>
8398     </blockquote>
8399    
8400    
8401     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
8402     </p>
8403     <blockquote class="text">
8404     <p>if the given directory does not exist, or
8405     if trying to delete a non-empty directory,
8406     without using the FORCE argument.
8407     </p>
8408     </blockquote>
8409    
8410    
8411     </blockquote><p>
8412    
8413     </p>
8414     <p>Examples:
8415     </p>
8416     <p>
8417     </p>
8418     <blockquote class="text">
8419     <p>C: "REMOVE DB_INSTRUMENT_DIRECTORY FORCE '/Piano Collection'"
8420     </p>
8421     <p>S: "OK"
8422     </p>
8423     </blockquote><p>
8424    
8425     </p>
8426     <a name="GET DB_INSTRUMENT_DIRECTORIES"></a><br /><hr />
8427     <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>
8428     <a name="rfc.section.6.8.3"></a><h3>6.8.3.&nbsp;
8429     Getting amount of instrument directories</h3>
8430    
8431     <p>The front-end can retrieve the current amount of
8432     directories in a specific directory by sending the following command:
8433     </p>
8434     <p>
8435     </p>
8436     <blockquote class="text">
8437     <p>GET DB_INSTRUMENT_DIRECTORIES [RECURSIVE] &lt;dir&gt;
8438     </p>
8439     </blockquote><p>
8440    
8441     </p>
8442     <p>Where &lt;dir&gt; should be replaced by the absolute path
8443     name of the directory. If RECURSIVE is specified, the number of
8444     all directories, including those located in subdirectories of the
8445     specified directory, will be returned.
8446     </p>
8447     <p>Possible Answers:
8448     </p>
8449     <p>
8450     </p>
8451     <blockquote class="text">
8452     <p>The current number of instrument directories
8453     in the specified directory.
8454     </p>
8455     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
8456     </p>
8457     <blockquote class="text">
8458     <p>if the given directory does not exist.
8459     </p>
8460     </blockquote>
8461    
8462    
8463     </blockquote><p>
8464    
8465     </p>
8466     <p>Example:
8467     </p>
8468     <p>
8469     </p>
8470     <blockquote class="text">
8471     <p>C: "GET DB_INSTRUMENT_DIRECTORIES '/'"
8472     </p>
8473     <p>S: "2"
8474     </p>
8475     </blockquote><p>
8476    
8477     </p>
8478     <a name="LIST DB_INSTRUMENT_DIRECTORIES"></a><br /><hr />
8479     <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>
8480     <a name="rfc.section.6.8.4"></a><h3>6.8.4.&nbsp;
8481     Listing all directories in specific directory</h3>
8482    
8483     <p>The front-end can retrieve the current list of directories
8484     in specific directory by sending the following command:
8485     </p>
8486     <p>
8487     </p>
8488     <blockquote class="text">
8489     <p>LIST DB_INSTRUMENT_DIRECTORIES [RECURSIVE] &lt;dir&gt;
8490     </p>
8491     </blockquote><p>
8492    
8493     </p>
8494     <p>Where &lt;dir&gt; should be replaced by the absolute path
8495     name of the directory. If RECURSIVE is specified, the absolute path names
8496     of all directories, including those located in subdirectories of the
8497     specified directory, will be returned.
8498     </p>
8499     <p>Possible Answers:
8500     </p>
8501     <p>
8502     </p>
8503     <blockquote class="text">
8504     <p>A comma separated list of all instrument directories
8505     (encapsulated into apostrophes) in the specified directory.
8506     </p>
8507     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
8508     </p>
8509     <blockquote class="text">
8510     <p>if the given directory does not exist.
8511     </p>
8512     </blockquote>
8513    
8514    
8515     </blockquote><p>
8516    
8517     </p>
8518     <p>Example:
8519     </p>
8520     <p>
8521     </p>
8522     <blockquote class="text">
8523     <p>C: "LIST DB_INSTRUMENT_DIRECTORIES '/'"
8524     </p>
8525     <p>S: "'Piano Collection','Percussion Collection'"
8526     </p>
8527     </blockquote><p>
8528    
8529     </p>
8530     <p>
8531     </p>
8532     <blockquote class="text">
8533     <p>C: "LIST DB_INSTRUMENT_DIRECTORIES RECURSIVE '/'"
8534     </p>
8535     <p>S: "'/Piano Collection','/Piano Collection/Acoustic','/Piano Collection/Acoustic/New','/Percussion Collection'"
8536     </p>
8537     </blockquote><p>
8538    
8539     </p>
8540     <a name="GET DB_INSTRUMENT_DIRECTORY INFO"></a><br /><hr />
8541     <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>
8542     <a name="rfc.section.6.8.5"></a><h3>6.8.5.&nbsp;
8543     Getting instrument directory information</h3>
8544    
8545     <p>The front-end can ask for the current settings of an
8546     instrument directory by sending the following command:
8547     </p>
8548     <p>
8549     </p>
8550     <blockquote class="text">
8551     <p>GET DB_INSTRUMENT_DIRECTORY INFO &lt;dir&gt;
8552     </p>
8553     </blockquote><p>
8554    
8555     </p>
8556     <p>Where &lt;dir&gt; should be replaced by the absolute path
8557     name of the directory the front-end is interested in.
8558     </p>
8559     <p>Possible Answers:
8560     </p>
8561     <p>
8562     </p>
8563     <blockquote class="text">
8564     <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
8565     Each answer line begins with the settings category name
8566     followed by a colon and then a space character &lt;SP&gt; and finally
8567     the info character string to that setting category. At the
8568     moment the following categories are defined:
8569     </p>
8570     <p>
8571     </p>
8572     <blockquote class="text">
8573     <p>DESCRIPTION -
8574     </p>
8575     <blockquote class="text">
8576     <p>A brief description of the directory content.
8577     Note that the character string may contain
8578     <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>.
8579     </p>
8580     </blockquote>
8581    
8582    
8583     <p>CREATED -
8584     </p>
8585     <blockquote class="text">
8586     <p>The creation date and time of the directory,
8587     represented in "YYYY-MM-DD HH:MM:SS" format
8588     </p>
8589     </blockquote>
8590    
8591    
8592     <p>MODIFIED -
8593     </p>
8594     <blockquote class="text">
8595     <p>The date and time of the last modification of the
8596     directory, represented in "YYYY-MM-DD HH:MM:SS" format
8597     </p>
8598     </blockquote>
8599    
8600    
8601     </blockquote>
8602    
8603    
8604     </blockquote><p>
8605    
8606     </p>
8607     <p>The mentioned fields above don't have to be in particular order.
8608     </p>
8609     <p>Example:
8610     </p>
8611     <p>
8612     </p>
8613     <blockquote class="text">
8614     <p>C: "GET DB_INSTRUMENT_DIRECTORY INFO '/Piano Collection'"
8615     </p>
8616     <p>S: "DESCRIPTION: Piano collection of instruments in GigaSampler format."
8617     </p>
8618     <p>&nbsp;&nbsp;&nbsp;"CREATED: 2007-02-05 10:23:12"
8619     </p>
8620     <p>&nbsp;&nbsp;&nbsp;"MODIFIED: 2007-04-07 12:50:21"
8621     </p>
8622     <p>&nbsp;&nbsp;&nbsp;"."
8623     </p>
8624     </blockquote><p>
8625    
8626     </p>
8627     <a name="SET DB_INSTRUMENT_DIRECTORY NAME"></a><br /><hr />
8628     <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>
8629     <a name="rfc.section.6.8.6"></a><h3>6.8.6.&nbsp;
8630     Renaming an instrument directory</h3>
8631    
8632     <p>The front-end can alter the name of a specific
8633     instrument directory by sending the following command:
8634     </p>
8635     <p>
8636     </p>
8637     <blockquote class="text">
8638     <p>SET DB_INSTRUMENT_DIRECTORY NAME &lt;dir&gt; &lt;name&gt;
8639     </p>
8640     </blockquote><p>
8641    
8642     </p>
8643     <p>Where &lt;dir&gt; is the absolute path name of the directory and
8644     &lt;name&gt; is the new name for that directory.
8645     </p>
8646     <p>Possible Answers:
8647     </p>
8648     <p>
8649     </p>
8650     <blockquote class="text">
8651     <p>"OK" -
8652     </p>
8653     <blockquote class="text">
8654     <p>on success
8655     </p>
8656     </blockquote>
8657    
8658    
8659     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
8660     </p>
8661     <blockquote class="text">
8662     <p>in case the given directory does not exists,
8663     or if a directory with name equal to the new
8664     name already exists.
8665     </p>
8666     </blockquote>
8667    
8668    
8669     </blockquote><p>
8670    
8671     </p>
8672     <p>Example:
8673     </p>
8674     <p>
8675     </p>
8676     <blockquote class="text">
8677     <p>C: "SET DB_INSTRUMENT_DIRECTORY NAME '/Piano Collection/Acustic' 'Acoustic'"
8678     </p>
8679     <p>S: "OK"
8680     </p>
8681     </blockquote><p>
8682    
8683     </p>
8684     <a name="MOVE DB_INSTRUMENT_DIRECTORY"></a><br /><hr />
8685     <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>
8686     <a name="rfc.section.6.8.7"></a><h3>6.8.7.&nbsp;
8687     Moving an instrument directory</h3>
8688    
8689     <p>The front-end can move a specific
8690     instrument directory by sending the following command:
8691     </p>
8692     <p>
8693     </p>
8694     <blockquote class="text">
8695     <p>MOVE DB_INSTRUMENT_DIRECTORY &lt;dir&gt; &lt;dst&gt;
8696     </p>
8697     </blockquote><p>
8698    
8699     </p>
8700     <p>Where &lt;dir&gt; is the absolute path name of the directory
8701     to move and &lt;dst&gt; is the location where the directory will
8702     be moved to.
8703     </p>
8704     <p>Possible Answers:
8705     </p>
8706     <p>
8707     </p>
8708     <blockquote class="text">
8709     <p>"OK" -
8710     </p>
8711     <blockquote class="text">
8712     <p>on success
8713     </p>
8714     </blockquote>
8715    
8716    
8717     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
8718     </p>
8719     <blockquote class="text">
8720     <p>in case a given directory does not exists,
8721     or if a directory with name equal to the name
8722     of the specified directory already exists in
8723     the destination directory. Error is also thrown
8724     when trying to move a directory to a subdirectory
8725     of itself.
8726     </p>
8727     </blockquote>
8728    
8729    
8730     </blockquote><p>
8731    
8732     </p>
8733     <p>Example:
8734     </p>
8735     <p>
8736     </p>
8737     <blockquote class="text">
8738     <p>C: "MOVE DB_INSTRUMENT_DIRECTORY '/Acoustic' '/Piano Collection/Acoustic'"
8739     </p>
8740     <p>S: "OK"
8741     </p>
8742     </blockquote><p>
8743    
8744     </p>
8745     <a name="COPY DB_INSTRUMENT_DIRECTORY"></a><br /><hr />
8746     <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>
8747     <a name="rfc.section.6.8.8"></a><h3>6.8.8.&nbsp;
8748     Copying instrument directories</h3>
8749    
8750     <p>The front-end can copy a specific
8751     instrument directory by sending the following command:
8752     </p>
8753     <p>
8754     </p>
8755     <blockquote class="text">
8756     <p>COPY DB_INSTRUMENT_DIRECTORY &lt;dir&gt; &lt;dst&gt;
8757     </p>
8758     </blockquote><p>
8759    
8760     </p>
8761     <p>Where &lt;dir&gt; is the absolute path name of the directory
8762     to copy and &lt;dst&gt; is the location where the directory will
8763     be copied to.
8764     </p>
8765     <p>Possible Answers:
8766     </p>
8767     <p>
8768     </p>
8769     <blockquote class="text">
8770     <p>"OK" -
8771     </p>
8772     <blockquote class="text">
8773     <p>on success
8774     </p>
8775     </blockquote>
8776    
8777    
8778     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
8779     </p>
8780     <blockquote class="text">
8781     <p>in case a given directory does not exists,
8782     or if a directory with name equal to the name
8783     of the specified directory already exists in
8784     the destination directory. Error is also thrown
8785     when trying to copy a directory to a subdirectory
8786     of itself.
8787     </p>
8788     </blockquote>
8789    
8790    
8791     </blockquote><p>
8792    
8793     </p>
8794     <p>Example:
8795     </p>
8796     <p>
8797     </p>
8798     <blockquote class="text">
8799     <p>C: "COPY DB_INSTRUMENT_DIRECTORY '/Piano Collection/Acoustic' '/Acoustic/Pianos'"
8800     </p>
8801     <p>S: "OK"
8802     </p>
8803     </blockquote><p>
8804    
8805     </p>
8806     <a name="SET DB_INSTRUMENT_DIRECTORY DESCRIPTION"></a><br /><hr />
8807     <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>
8808     <a name="rfc.section.6.8.9"></a><h3>6.8.9.&nbsp;
8809     Changing the description of directory</h3>
8810    
8811     <p>The front-end can alter the description of a specific
8812     instrument directory by sending the following command:
8813     </p>
8814     <p>
8815     </p>
8816     <blockquote class="text">
8817     <p>SET DB_INSTRUMENT_DIRECTORY DESCRIPTION &lt;dir&gt; &lt;desc&gt;
8818     </p>
8819     </blockquote><p>
8820    
8821     </p>
8822     <p>Where &lt;dir&gt; is the absolute path name of the directory and
8823     &lt;desc&gt; is the new description for the directory
8824     (encapsulated into apostrophes, supporting escape sequences as described in chapter
8825     "<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>").
8826     </p>
8827     <p>Possible Answers:
8828     </p>
8829     <p>
8830     </p>
8831     <blockquote class="text">
8832     <p>"OK" -
8833     </p>
8834     <blockquote class="text">
8835     <p>on success
8836     </p>
8837     </blockquote>
8838    
8839    
8840     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
8841     </p>
8842     <blockquote class="text">
8843     <p>in case the given directory does not exists.
8844     </p>
8845     </blockquote>
8846    
8847    
8848     </blockquote><p>
8849    
8850     </p>
8851     <p>Example:
8852     </p>
8853     <p>
8854     </p>
8855     <blockquote class="text">
8856     <p>C: "SET DB_INSTRUMENT_DIRECTORY DESCRIPTION '/Piano Collection' 'A collection of piano instruments in various format.'"
8857     </p>
8858     <p>S: "OK"
8859     </p>
8860     </blockquote><p>
8861    
8862     </p>
8863     <a name="FIND DB_INSTRUMENT_DIRECTORIES"></a><br /><hr />
8864     <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>
8865     <a name="rfc.section.6.8.10"></a><h3>6.8.10.&nbsp;
8866     Finding directories</h3>
8867    
8868     <p>The front-end can search for directories
8869     in specific directory by sending the following command:
8870     </p>
8871     <p>
8872     </p>
8873     <blockquote class="text">
8874     <p>FIND DB_INSTRUMENT_DIRECTORIES [NON_RECURSIVE] &lt;dir&gt; &lt;criteria-list&gt;
8875     </p>
8876     </blockquote><p>
8877    
8878     </p>
8879     <p>Where &lt;dir&gt; should be replaced by the absolute path
8880     name of the directory to search in. If NON_RECURSIVE is specified, the
8881     directories located in subdirectories of the specified directory will not
8882     be searched. &lt;criteria-list&gt; is a list of search criterias
8883     in form of "key1=val1 key2=val2 ...". The following criterias are
8884     allowed:
8885     </p>
8886     <p>
8887    
8888     <p>NAME='&lt;search-string&gt;'
8889     </p>
8890     <blockquote class="text">
8891     <p>Restricts the search to directories, which names
8892     satisfy the supplied search string (encapsulated into apostrophes,
8893     supporting escape sequences as described in chapter
8894     "<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>").
8895     </p>
8896     </blockquote><p>
8897    
8898     </p>
8899    
8900    
8901     <p>CREATED='[&lt;date-after&gt;]..[&lt;date-before&gt;]'
8902     </p>
8903     <blockquote class="text">
8904     <p>Restricts the search to directories, which creation
8905     date satisfies the specified period, where &lt;date-after&gt;
8906     and &lt;date-before&gt; are in "YYYY-MM-DD HH:MM:SS" format.
8907     If &lt;date-after&gt; is omitted the search is restricted to
8908     directories created before &lt;date-before&gt;. If
8909     &lt;date-before&gt; is omitted, the search is restricted
8910     to directories created after &lt;date-after&gt;.
8911     </p>
8912     </blockquote><p>
8913    
8914     </p>
8915    
8916    
8917     <p>MODIFIED='[&lt;date-after&gt;]..[&lt;date-before&gt;]'
8918     </p>
8919     <blockquote class="text">
8920     <p>Restricts the search to directories, which
8921     date of last modification satisfies the specified period, where
8922     &lt;date-after&gt; and &lt;date-before&gt; are in "YYYY-MM-DD HH:MM:SS"
8923     format. If &lt;date-after&gt; is omitted the search is restricted to
8924     directories, which are last modified before &lt;date-before&gt;. If
8925     &lt;date-before&gt; is omitted, the search is restricted to directories,
8926     which are last modified after &lt;date-after&gt;.
8927     </p>
8928     </blockquote><p>
8929    
8930     </p>
8931    
8932    
8933     <p>DESCRIPTION='&lt;search-string&gt;'
8934     </p>
8935     <blockquote class="text">
8936     <p>Restricts the search to directories with description
8937     that satisfies the supplied search string
8938     (encapsulated into apostrophes, supporting escape
8939     sequences as described in chapter
8940     "<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>").
8941     </p>
8942     </blockquote><p>
8943    
8944     </p>
8945    
8946    
8947     <p>Where &lt;search-string&gt; is either a regular expression, or a
8948     word list separated with spaces for OR search and with '+' for AND search.
8949     </p>
8950     <p>Possible Answers:
8951     </p>
8952     <p>
8953     </p>
8954     <blockquote class="text">
8955     <p>A comma separated list with the absolute path names (encapsulated into
8956     apostrophes) of all directories in the specified directory that satisfy
8957     the supplied search criterias.
8958     </p>
8959     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
8960     </p>
8961     <blockquote class="text">
8962     <p>if the given directory does not exist.
8963     </p>
8964     </blockquote>
8965    
8966    
8967     </blockquote><p>
8968    
8969     </p>
8970     <p>Example:
8971     </p>
8972     <p>
8973     </p>
8974     <blockquote class="text">
8975     <p>C: "FIND DB_INSTRUMENT_DIRECTORIES '/' NAME='Piano'"
8976     </p>
8977     <p>S: "'/Piano Collection'"
8978     </p>
8979     </blockquote><p>
8980    
8981     </p>
8982     <p>
8983     </p>
8984     <blockquote class="text">
8985     <p>C: "FIND DB_INSTRUMENT_DIRECTORIES '/' CREATED='..2007-04-01 09:30:13'"
8986     </p>
8987     <p>S: "'/Piano Collection','/Percussions'"
8988     </p>
8989     </blockquote><p>
8990    
8991     </p>
8992     <a name="ADD DB_INSTRUMENTS"></a><br /><hr />
8993     <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>
8994     <a name="rfc.section.6.8.11"></a><h3>6.8.11.&nbsp;
8995     Adding instruments to the instruments database</h3>
8996    
8997     <p>The front-end can add one or more instruments
8998     to the instruments database by sending the following command:
8999     </p>
9000     <p>
9001     </p>
9002     <blockquote class="text">
9003     <p>ADD DB_INSTRUMENTS [NON_MODAL] [&lt;mode&gt;[ FILE_AS_DIR]] &lt;db_dir&gt; &lt;file_path&gt; [&lt;instr_index&gt;]
9004     </p>
9005     </blockquote><p>
9006    
9007     </p>
9008     <p>Where &lt;db_dir&gt; is the absolute path name of a directory
9009     (encapsulated into apostrophes) in the instruments database in which
9010     only the new instruments (that are not already in the database) will
9011     be added, &lt;file_path&gt; is the absolute path name of a file or
9012     directory in the file system (encapsulated into apostrophes). In case
9013     an instrument file is supplied, only the instruments in the specified
9014     file will be added to the instruments database. If the optional
9015     &lt;instr_index&gt; (the index of the instrument within the given file)
9016     is supplied too, then only the specified instrument will be added.
9017     In case a directory is supplied, the instruments in that directory
9018     will be added. The OPTIONAL &lt;mode&gt; argument is only applied
9019     when a directory is provided as &lt;file_path&gt; and specifies how the
9020     scanning will be done and has exactly the following possibilities:
9021     </p>
9022     <p>
9023     </p>
9024     <blockquote class="text">
9025     <p>"RECURSIVE" -
9026     </p>
9027     <blockquote class="text">
9028     <p>All instruments will be processed, including those
9029     in the subdirectories, and the respective subdirectory
9030     tree structure will be recreated in the instruments
9031     database
9032     </p>
9033     </blockquote>
9034    
9035    
9036     <p>"NON_RECURSIVE" -
9037     </p>
9038     <blockquote class="text">
9039     <p>Only the instruments in the specified directory
9040     will be added, the instruments in the subdirectories
9041     will not be processed.
9042     </p>
9043     </blockquote>
9044    
9045    
9046     <p>"FLAT" -
9047     </p>
9048     <blockquote class="text">
9049     <p>All instruments will be processed, including those
9050     in the subdirectories, but the respective subdirectory
9051     structure will not be recreated in the instruments
9052     database. All instruments will be added directly in
9053     the specified database directory.
9054     </p>
9055     </blockquote>
9056    
9057    
9058     </blockquote><p>
9059    
9060     </p>
9061     <p> If FILE_AS_DIR argument is supplied, all instruments in an instrument
9062     file will be added to a separate directory in the instruments database, which
9063     name will be the name of the instrument file with the file extension stripped off.
9064    
9065     </p>
9066     <p>The difference between regular and NON_MODAL versions of the command
9067     is that the regular command returns when the scanning is finished
9068     while NON_MODAL version returns immediately and a background process is launched.
9069     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>
9070     command can be used to monitor the scanning progress.
9071     </p>
9072     <p>Possible Answers:
9073     </p>
9074     <p>
9075     </p>
9076     <blockquote class="text">
9077     <p>"OK" -
9078     </p>
9079     <blockquote class="text">
9080     <p>on success when NON_MODAL is not supplied
9081     </p>
9082     </blockquote>
9083    
9084    
9085     <p>"OK[&lt;job-id&gt;]" -
9086     </p>
9087     <blockquote class="text">
9088     <p>on success when NON_MODAL is supplied, where &lt;job-id&gt;
9089     is a numerical ID used to obtain status information about the job progress.
9090     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>
9091    
9092     </p>
9093     </blockquote>
9094    
9095    
9096     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
9097     </p>
9098     <blockquote class="text">
9099     <p>if an invalid path is specified.
9100     </p>
9101     </blockquote>
9102    
9103    
9104     </blockquote><p>
9105    
9106     </p>
9107     <p>Examples:
9108     </p>
9109     <p>
9110     </p>
9111     <blockquote class="text">
9112     <p>C: "ADD DB_INSTRUMENTS '/Piano Collection' '/home/me/gigs/PMI Bosendorfer 290.gig' 0"
9113     </p>
9114     <p>S: "OK"
9115     </p>
9116     </blockquote><p>
9117    
9118     </p>
9119     <a name="REMOVE DB_INSTRUMENT"></a><br /><hr />
9120     <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>
9121     <a name="rfc.section.6.8.12"></a><h3>6.8.12.&nbsp;
9122     Removing an instrument</h3>
9123    
9124     <p>The front-end can remove a particular instrument
9125     from the instruments database by sending the following command:
9126     </p>
9127     <p>
9128     </p>
9129     <blockquote class="text">
9130     <p>REMOVE DB_INSTRUMENT &lt;instr_path&gt;
9131     </p>
9132     </blockquote><p>
9133    
9134     </p>
9135     <p>Where &lt;instr_path&gt; is the absolute path name
9136     (in the instruments database) of the instrument to remove.
9137     </p>
9138     <p>Possible Answers:
9139     </p>
9140     <p>
9141     </p>
9142     <blockquote class="text">
9143     <p>"OK" -
9144     </p>
9145     <blockquote class="text">
9146     <p>if the instrument is removed successfully
9147     </p>
9148     </blockquote>
9149    
9150    
9151     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
9152     </p>
9153     <blockquote class="text">
9154     <p>if the given path does not exist or
9155     is a directory.
9156     </p>
9157     </blockquote>
9158    
9159    
9160     </blockquote><p>
9161    
9162     </p>
9163     <p>Examples:
9164     </p>
9165     <p>
9166     </p>
9167     <blockquote class="text">
9168     <p>C: "REMOVE DB_INSTRUMENT '/Piano Collection/Bosendorfer 290'"
9169     </p>
9170     <p>S: "OK"
9171     </p>
9172     </blockquote><p>
9173    
9174     </p>
9175     <a name="GET DB_INSTRUMENTS"></a><br /><hr />
9176     <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>
9177     <a name="rfc.section.6.8.13"></a><h3>6.8.13.&nbsp;
9178     Getting amount of instruments</h3>
9179    
9180     <p>The front-end can retrieve the current amount of
9181     instruments in a specific directory by sending the following command:
9182     </p>
9183     <p>
9184     </p>
9185     <blockquote class="text">
9186     <p>GET DB_INSTRUMENTS [RECURSIVE] &lt;dir&gt;
9187     </p>
9188     </blockquote><p>
9189    
9190     </p>
9191     <p>Where &lt;dir&gt; should be replaced by the absolute path name
9192     of the directory. If RECURSIVE is specified, the number of all
9193     instruments, including those located in subdirectories of the
9194     specified directory, will be returned.
9195     </p>
9196     <p>Possible Answers:
9197     </p>
9198     <p>
9199     </p>
9200     <blockquote class="text">
9201     <p>The current number of instruments
9202     in the specified directory.
9203     </p>
9204     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
9205     </p>
9206     <blockquote class="text">
9207     <p>if the given directory does not exist.
9208     </p>
9209     </blockquote>
9210    
9211    
9212     </blockquote><p>
9213    
9214     </p>
9215     <p>Example:
9216     </p>
9217     <p>
9218     </p>
9219     <blockquote class="text">
9220     <p>C: "GET DB_INSTRUMENTS '/Piano Collection'"
9221     </p>
9222     <p>S: "2"
9223     </p>
9224     </blockquote><p>
9225    
9226     </p>
9227     <a name="LIST DB_INSTRUMENTS"></a><br /><hr />
9228     <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>
9229     <a name="rfc.section.6.8.14"></a><h3>6.8.14.&nbsp;
9230     Listing all instruments in specific directory</h3>
9231    
9232     <p>The front-end can retrieve the current list of instruments
9233     in specific directory by sending the following command:
9234     </p>
9235     <p>
9236     </p>
9237     <blockquote class="text">
9238     <p>LIST DB_INSTRUMENTS [RECURSIVE] &lt;dir&gt;
9239     </p>
9240     </blockquote><p>
9241    
9242     </p>
9243     <p>Where &lt;dir&gt; should be replaced by the absolute path
9244     name of the directory. If RECURSIVE is specified, the absolute path
9245     names of all instruments, including those located in subdirectories
9246     of the specified directory, will be returned.
9247     </p>
9248     <p>Possible Answers:
9249     </p>
9250     <p>
9251     </p>
9252     <blockquote class="text">
9253     <p>A comma separated list of all instruments
9254     (encapsulated into apostrophes) in the specified directory.
9255     </p>
9256     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
9257     </p>
9258     <blockquote class="text">
9259     <p>if the given directory does not exist.
9260     </p>
9261     </blockquote>
9262    
9263    
9264     </blockquote><p>
9265    
9266     </p>
9267     <p>Example:
9268     </p>
9269     <p>
9270     </p>
9271     <blockquote class="text">
9272     <p>C: "LIST DB_INSTRUMENTS '/Piano Collection'"
9273     </p>
9274     <p>S: "'Bosendorfer 290','Steinway D'"
9275     </p>
9276     </blockquote><p>
9277    
9278     </p>
9279     <p>
9280     </p>
9281     <blockquote class="text">
9282     <p>C: "LIST DB_INSTRUMENTS RECURSIVE '/Piano Collection'"
9283     </p>
9284     <p>S: "'/Piano Collection/Bosendorfer 290','/Piano Collection/Steinway D','/Piano Collection/Lite/Free Piano'"
9285     </p>
9286     </blockquote><p>
9287    
9288     </p>
9289     <a name="GET DB_INSTRUMENT INFO"></a><br /><hr />
9290     <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>
9291     <a name="rfc.section.6.8.15"></a><h3>6.8.15.&nbsp;
9292     Getting instrument information</h3>
9293    
9294     <p>The front-end can ask for the current settings of an
9295     instrument by sending the following command:
9296     </p>
9297     <p>
9298     </p>
9299     <blockquote class="text">
9300     <p>GET DB_INSTRUMENT INFO &lt;instr_path&gt;
9301     </p>
9302     </blockquote><p>
9303    
9304     </p>
9305     <p>Where &lt;instr_path&gt; should be replaced by the absolute path
9306     name of the instrument the front-end is interested in.
9307     </p>
9308     <p>Possible Answers:
9309     </p>
9310     <p>
9311     </p>
9312     <blockquote class="text">
9313     <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
9314     Each answer line begins with the settings category name
9315     followed by a colon and then a space character &lt;SP&gt; and finally
9316     the info character string to that setting category. At the
9317     moment the following categories are defined:
9318     </p>
9319     <p>
9320     </p>
9321     <blockquote class="text">
9322     <p>INSTRUMENT_FILE -
9323     </p>
9324     <blockquote class="text">
9325     <p>File name of the instrument.
9326     Note that the character string may contain
9327     <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>.
9328     </p>
9329     </blockquote>
9330    
9331    
9332     <p>INSTRUMENT_NR -
9333     </p>
9334     <blockquote class="text">
9335     <p>Index of the instrument within the file.
9336     </p>
9337     </blockquote>
9338    
9339    
9340     <p>FORMAT_FAMILY -
9341     </p>
9342     <blockquote class="text">
9343     <p>The format family of the instrument.
9344     </p>
9345     </blockquote>
9346    
9347    
9348     <p>FORMAT_VERSION -
9349     </p>
9350     <blockquote class="text">
9351     <p>The format version of the instrument.
9352     </p>
9353     </blockquote>
9354    
9355    
9356     <p>SIZE -
9357     </p>
9358     <blockquote class="text">
9359     <p>The size of the instrument in bytes.
9360     </p>
9361     </blockquote>
9362    
9363    
9364     <p>CREATED -
9365     </p>
9366     <blockquote class="text">
9367     <p>The date and time when the instrument is added
9368     in the instruments database, represented in
9369     "YYYY-MM-DD HH:MM:SS" format
9370     </p>
9371     </blockquote>
9372    
9373    
9374     <p>MODIFIED -
9375     </p>
9376     <blockquote class="text">
9377     <p>The date and time of the last modification of the
9378     instrument's database settings, represented in
9379     "YYYY-MM-DD HH:MM:SS" format
9380     </p>
9381     </blockquote>
9382    
9383    
9384     <p>DESCRIPTION -
9385     </p>
9386     <blockquote class="text">
9387     <p>A brief description of the instrument.
9388     Note that the character string may contain
9389     <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>.
9390     </p>
9391     </blockquote>
9392    
9393    
9394     <p>IS_DRUM -
9395     </p>
9396     <blockquote class="text">
9397     <p>either true or false, determines whether the
9398     instrument is a drumkit or a chromatic instrument
9399     </p>
9400     </blockquote>
9401    
9402    
9403     <p>PRODUCT -
9404     </p>
9405     <blockquote class="text">
9406     <p>The product title of the instrument.
9407     Note that the character string may contain
9408     <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>.
9409     </p>
9410     </blockquote>
9411    
9412    
9413     <p>ARTISTS -
9414     </p>
9415     <blockquote class="text">
9416     <p>Lists the artist names.
9417     Note that the character string may contain
9418     <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>.
9419     </p>
9420     </blockquote>
9421    
9422    
9423     <p>KEYWORDS -
9424     </p>
9425     <blockquote class="text">
9426     <p>Provides a list of keywords that refer to the instrument.
9427     Keywords are separated with semicolon and blank.
9428     Note that the character string may contain
9429     <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>.
9430     </p>
9431     </blockquote>
9432    
9433    
9434     </blockquote>
9435    
9436    
9437     </blockquote><p>
9438    
9439     </p>
9440     <p>The mentioned fields above don't have to be in particular order.
9441     </p>
9442     <p>Example:
9443     </p>
9444     <p>
9445     </p>
9446     <blockquote class="text">
9447     <p>C: "GET DB_INSTRUMENT INFO '/Piano Collection/Bosendorfer 290'"
9448     </p>
9449     <p>S: "INSTRUMENT_FILE: /home/me/gigs/Bosendorfer 290.gig"
9450     </p>
9451     <p>&nbsp;&nbsp;&nbsp;"INSTRUMENT_NR: 0"
9452     </p>
9453     <p>&nbsp;&nbsp;&nbsp;"FORMAT_FAMILY: GIG"
9454     </p>
9455     <p>&nbsp;&nbsp;&nbsp;"FORMAT_VERSION: 2"
9456     </p>
9457     <p>&nbsp;&nbsp;&nbsp;"SIZE: 2050871870"
9458     </p>
9459     <p>&nbsp;&nbsp;&nbsp;"CREATED: 2007-02-05 10:23:12"
9460     </p>
9461     <p>&nbsp;&nbsp;&nbsp;"MODIFIED: 2007-04-07 12:50:21"
9462     </p>
9463     <p>&nbsp;&nbsp;&nbsp;"DESCRIPTION: "
9464     </p>
9465     <p>&nbsp;&nbsp;&nbsp;"IS_DRUM: false"
9466     </p>
9467     <p>&nbsp;&nbsp;&nbsp;"PRODUCT: GRANDIOSO Bosendorfer 290"
9468     </p>
9469     <p>&nbsp;&nbsp;&nbsp;"ARTISTS: Post Musical Instruments"
9470     </p>
9471     <p>&nbsp;&nbsp;&nbsp;"KEYWORDS: Bosendorfer"
9472     </p>
9473     <p>&nbsp;&nbsp;&nbsp;"."
9474     </p>
9475     </blockquote><p>
9476    
9477     </p>
9478     <a name="SET DB_INSTRUMENT NAME"></a><br /><hr />
9479     <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>
9480     <a name="rfc.section.6.8.16"></a><h3>6.8.16.&nbsp;
9481     Renaming an instrument</h3>
9482    
9483     <p>The front-end can alter the name of a specific
9484     instrument by sending the following command:
9485     </p>
9486     <p>
9487     </p>
9488     <blockquote class="text">
9489     <p>SET DB_INSTRUMENT NAME &lt;instr&gt; &lt;name&gt;
9490     </p>
9491     </blockquote><p>
9492    
9493     </p>
9494     <p>Where &lt;instr&gt; is the absolute path name of the instrument and
9495     &lt;name&gt; is the new name for that instrument.
9496     </p>
9497     <p>Possible Answers:
9498     </p>
9499     <p>
9500     </p>
9501     <blockquote class="text">
9502     <p>"OK" -
9503     </p>
9504     <blockquote class="text">
9505     <p>on success
9506     </p>
9507     </blockquote>
9508    
9509    
9510     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
9511     </p>
9512     <blockquote class="text">
9513     <p>in case the given instrument does not exists,
9514     or if an instrument with name equal to the new
9515     name already exists.
9516     </p>
9517     </blockquote>
9518    
9519    
9520     </blockquote><p>
9521    
9522     </p>
9523     <p>Example:
9524     </p>
9525     <p>
9526     </p>
9527     <blockquote class="text">
9528     <p>C: "SET DB_INSTRUMENT NAME '/Piano Collection/Bosendorfer' 'Bosendorfer 290'"
9529     </p>
9530     <p>S: "OK"
9531     </p>
9532     </blockquote><p>
9533    
9534     </p>
9535     <a name="MOVE DB_INSTRUMENT"></a><br /><hr />
9536     <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>
9537     <a name="rfc.section.6.8.17"></a><h3>6.8.17.&nbsp;
9538     Moving an instrument</h3>
9539    
9540     <p>The front-end can move a specific instrument to another directory by
9541     sending the following command:
9542     </p>
9543     <p>
9544     </p>
9545     <blockquote class="text">
9546     <p>MOVE DB_INSTRUMENT &lt;instr&gt; &lt;dst&gt;
9547     </p>
9548     </blockquote><p>
9549    
9550     </p>
9551     <p>Where &lt;instr&gt; is the absolute path name of the instrument
9552     to move and &lt;dst&gt; is the directory where the instrument will
9553     be moved to.
9554     </p>
9555     <p>Possible Answers:
9556     </p>
9557     <p>
9558     </p>
9559     <blockquote class="text">
9560     <p>"OK" -
9561     </p>
9562     <blockquote class="text">
9563     <p>on success
9564     </p>
9565     </blockquote>
9566    
9567    
9568     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
9569     </p>
9570     <blockquote class="text">
9571     <p>in case the given instrument does not exists,
9572     or if an instrument with name equal to the name of the
9573     specified instrument already exists in the destination
9574     directory.
9575     </p>
9576     </blockquote>
9577    
9578    
9579     </blockquote><p>
9580    
9581     </p>
9582     <p>Example:
9583     </p>
9584     <p>
9585     </p>
9586     <blockquote class="text">
9587     <p>C: "MOVE DB_INSTRUMENT '/Piano Collection/Bosendorfer 290' '/Piano Collection/Acoustic'"
9588     </p>
9589     <p>S: "OK"
9590     </p>
9591     </blockquote><p>
9592    
9593     </p>
9594     <a name="COPY DB_INSTRUMENT"></a><br /><hr />
9595     <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>
9596     <a name="rfc.section.6.8.18"></a><h3>6.8.18.&nbsp;
9597     Copying instruments</h3>
9598    
9599     <p>The front-end can copy a specific instrument to another directory by
9600     sending the following command:
9601     </p>
9602     <p>
9603     </p>
9604     <blockquote class="text">
9605     <p>COPY DB_INSTRUMENT &lt;instr&gt; &lt;dst&gt;
9606     </p>
9607     </blockquote><p>
9608    
9609     </p>
9610     <p>Where &lt;instr&gt; is the absolute path name of the instrument
9611     to copy and &lt;dst&gt; is the directory where the instrument will
9612     be copied to.
9613     </p>
9614     <p>Possible Answers:
9615     </p>
9616     <p>
9617     </p>
9618     <blockquote class="text">
9619     <p>"OK" -
9620     </p>
9621     <blockquote class="text">
9622     <p>on success
9623     </p>
9624     </blockquote>
9625    
9626    
9627     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
9628     </p>
9629     <blockquote class="text">
9630     <p>in case the given instrument does not exists,
9631     or if an instrument with name equal to the name of the
9632     specified instrument already exists in the destination
9633     directory.
9634     </p>
9635     </blockquote>
9636    
9637    
9638     </blockquote><p>
9639    
9640     </p>
9641     <p>Example:
9642     </p>
9643     <p>
9644     </p>
9645     <blockquote class="text">
9646     <p>C: "COPY DB_INSTRUMENT '/Piano Collection/Bosendorfer 290' '/Acoustic/Pianos/'"
9647     </p>
9648     <p>S: "OK"
9649     </p>
9650     </blockquote><p>
9651    
9652     </p>
9653     <a name="SET DB_INSTRUMENT DESCRIPTION"></a><br /><hr />
9654     <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>
9655     <a name="rfc.section.6.8.19"></a><h3>6.8.19.&nbsp;
9656     Changing the description of instrument</h3>
9657    
9658     <p>The front-end can alter the description of a specific
9659     instrument by sending the following command:
9660     </p>
9661     <p>
9662     </p>
9663     <blockquote class="text">
9664     <p>SET DB_INSTRUMENT DESCRIPTION &lt;instr&gt; &lt;desc&gt;
9665     </p>
9666     </blockquote><p>
9667    
9668     </p>
9669     <p>Where &lt;instr&gt; is the absolute path name of the instrument and
9670     &lt;desc&gt; is the new description for the instrument
9671     (encapsulated into apostrophes, supporting escape sequences as described in chapter
9672     "<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>").
9673     </p>
9674     <p>Possible Answers:
9675     </p>
9676     <p>
9677     </p>
9678     <blockquote class="text">
9679     <p>"OK" -
9680     </p>
9681     <blockquote class="text">
9682     <p>on success
9683     </p>
9684     </blockquote>
9685    
9686    
9687     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
9688     </p>
9689     <blockquote class="text">
9690     <p>in case the given instrument does not exists.
9691     </p>
9692     </blockquote>
9693    
9694    
9695     </blockquote><p>
9696    
9697     </p>
9698     <p>Example:
9699     </p>
9700     <p>
9701     </p>
9702     <blockquote class="text">
9703     <p>C: "SET DB_INSTRUMENT DESCRIPTION '/Piano Collection/Acoustic/Bosendorfer 290' 'No comment :)'"
9704     </p>
9705     <p>S: "OK"
9706     </p>
9707     </blockquote><p>
9708    
9709     </p>
9710     <a name="FIND DB_INSTRUMENTS"></a><br /><hr />
9711     <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>
9712     <a name="rfc.section.6.8.20"></a><h3>6.8.20.&nbsp;
9713     Finding instruments</h3>
9714    
9715     <p>The front-end can search for instruments
9716     in specific directory by sending the following command:
9717     </p>
9718     <p>
9719     </p>
9720     <blockquote class="text">
9721     <p>FIND DB_INSTRUMENTS [NON_RECURSIVE] &lt;dir&gt; &lt;criteria-list&gt;
9722     </p>
9723     </blockquote><p>
9724    
9725     </p>
9726     <p>Where &lt;dir&gt; should be replaced by the absolute path
9727     name of the directory to search in. If NON_RECURSIVE is specified, the
9728     directories located in subdirectories of the specified directory will not
9729     be searched. &lt;criteria-list&gt; is a list of search criterias
9730     in form of "key1=val1 key2=val2 ...". The following criterias are
9731     allowed:
9732     </p>
9733     <p>
9734    
9735     <p>NAME='&lt;search-string&gt;'
9736     </p>
9737     <blockquote class="text">
9738     <p>Restricts the search to instruments, which names
9739     satisfy the supplied search string (encapsulated into apostrophes,
9740     supporting escape sequences as described in chapter
9741     "<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>").
9742     </p>
9743     </blockquote><p>
9744    
9745     </p>
9746    
9747    
9748     <p>SIZE=[&lt;min&gt;]..[&lt;max&gt;]
9749     </p>
9750     <blockquote class="text">
9751     <p>Restricts the search to instruments, which
9752     size is in the specified range. If &lt;min&gt; is omitted,
9753     the search results are restricted to instruments with size less then
9754     or equal to &lt;max&gt;. If &lt;max&gt; is omitted, the
9755     search is restricted to instruments with size greater then
9756     or equal to &lt;min&gt;.
9757     </p>
9758     </blockquote><p>
9759    
9760     </p>
9761    
9762    
9763     <p>CREATED='[&lt;date-after&gt;]..[&lt;date-before&gt;]'
9764     </p>
9765     <blockquote class="text">
9766     <p>Restricts the search to instruments, which creation
9767     date satisfies the specified period, where &lt;date-after&gt;
9768     and &lt;date-before&gt; are in "YYYY-MM-DD HH:MM:SS" format.
9769     If &lt;date-after&gt; is omitted the search is restricted to
9770     instruments created before &lt;date-before&gt;. If
9771     &lt;date-before&gt; is omitted, the search is restricted
9772     to instruments created after &lt;date-after&gt;.
9773     </p>
9774     </blockquote><p>
9775    
9776     </p>
9777    
9778    
9779     <p>MODIFIED='[&lt;date-after&gt;]..[&lt;date-before&gt;]'
9780     </p>
9781     <blockquote class="text">
9782     <p>Restricts the search to instruments, which
9783     date of last modification satisfies the specified period, where
9784     &lt;date-after&gt; and &lt;date-before&gt; are in "YYYY-MM-DD HH:MM:SS"
9785     format. If &lt;date-after&gt; is omitted the search is restricted to
9786     instruments, which are last modified before &lt;date-before&gt;. If
9787     &lt;date-before&gt; is omitted, the search is restricted to instruments,
9788     which are last modified after &lt;date-after&gt;.
9789     </p>
9790     </blockquote><p>
9791    
9792     </p>
9793    
9794    
9795     <p>DESCRIPTION='&lt;search-string&gt;'
9796     </p>
9797     <blockquote class="text">
9798     <p>Restricts the search to instruments with description
9799     that satisfies the supplied search string (encapsulated into apostrophes,
9800     supporting escape sequences as described in chapter
9801     "<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>").
9802     </p>
9803     </blockquote><p>
9804    
9805     </p>
9806    
9807    
9808     <p>PRODUCT='&lt;search-string&gt;'
9809     </p>
9810     <blockquote class="text">
9811     <p>Restricts the search to instruments with product info
9812     that satisfies the supplied search string (encapsulated into apostrophes,
9813     supporting escape sequences as described in chapter
9814     "<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>").
9815     </p>
9816     </blockquote><p>
9817    
9818     </p>
9819    
9820    
9821     <p>ARTISTS='&lt;search-string&gt;'
9822     </p>
9823     <blockquote class="text">
9824     <p>Restricts the search to instruments with artists info
9825     that satisfies the supplied search string (encapsulated into apostrophes,
9826     supporting escape sequences as described in chapter
9827     "<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>").
9828     </p>
9829     </blockquote><p>
9830    
9831     </p>
9832    
9833    
9834     <p>KEYWORDS='&lt;search-string&gt;'
9835     </p>
9836     <blockquote class="text">
9837     <p>Restricts the search to instruments with keyword list
9838     that satisfies the supplied search string (encapsulated into apostrophes,
9839     supporting escape sequences as described in chapter
9840     "<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>").
9841     </p>
9842     </blockquote><p>
9843    
9844     </p>
9845    
9846    
9847     <p>IS_DRUM=true | false
9848     </p>
9849     <blockquote class="text">
9850     <p>Either true or false. Restricts the search to
9851     drum kits or chromatic instruments.
9852     </p>
9853     </blockquote><p>
9854    
9855     </p>
9856    
9857    
9858     <p>FORMAT_FAMILIES='&lt;format-list&gt;'
9859     </p>
9860     <blockquote class="text">
9861     <p>Restricts the search to instruments of the supplied format families,
9862     where &lt;format-list&gt; is a comma separated list of format families.
9863     </p>
9864     </blockquote><p>
9865    
9866     </p>
9867    
9868    
9869     <p>Where &lt;search-string&gt; is either a regular expression, or a
9870     word list separated with spaces for OR search and with '+' for AND search.
9871     </p>
9872     <p>Possible Answers:
9873     </p>
9874     <p>
9875     </p>
9876     <blockquote class="text">
9877     <p>A comma separated list with the absolute path names (encapsulated into
9878     apostrophes) of all instruments in the specified directory that satisfy
9879     the supplied search criterias.
9880     </p>
9881     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
9882     </p>
9883     <blockquote class="text">
9884     <p>if the given directory does not exist.
9885     </p>
9886     </blockquote>
9887    
9888    
9889     </blockquote><p>
9890    
9891     </p>
9892     <p>Example:
9893     </p>
9894     <p>
9895     </p>
9896     <blockquote class="text">
9897     <p>C: "FIND DB_INSTRUMENTS '/Piano Collection' NAME='bosendorfer+290'"
9898     </p>
9899     <p>S: "'/Piano Collection/Bosendorfer 290'"
9900     </p>
9901     </blockquote><p>
9902    
9903     </p>
9904     <p>
9905     </p>
9906     <blockquote class="text">
9907     <p>C: "FIND DB_INSTRUMENTS '/Piano Collection' CREATED='2007-04-01 09:30:13..'"
9908     </p>
9909     <p>S: "'/Piano Collection/Bosendorfer 290','/Piano Collection/Steinway D'"
9910     </p>
9911     </blockquote><p>
9912    
9913     </p>
9914     <a name="GET DB_INSTRUMENTS_JOB INFO"></a><br /><hr />
9915     <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>
9916     <a name="rfc.section.6.8.21"></a><h3>6.8.21.&nbsp;
9917     Getting job status information</h3>
9918    
9919     <p>The front-end can ask for the current status of a
9920     particular database instruments job by sending the following command:
9921     </p>
9922     <p>
9923     </p>
9924     <blockquote class="text">
9925     <p>GET DB_INSTRUMENTS_JOB INFO &lt;job-id&gt;
9926     </p>
9927     </blockquote><p>
9928    
9929     </p>
9930     <p>Where &lt;job-id&gt; should be replaced by the numerical ID
9931     of the job the front-end is interested in.
9932     </p>
9933     <p>Possible Answers:
9934     </p>
9935     <p>
9936     </p>
9937     <blockquote class="text">
9938     <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
9939     Each answer line begins with the settings category name
9940     followed by a colon and then a space character &lt;SP&gt; and finally
9941     the info character string to that setting category. At the
9942     moment the following categories are defined:
9943     </p>
9944     <p>
9945     </p>
9946     <blockquote class="text">
9947     <p>FILES_TOTAL -
9948     </p>
9949     <blockquote class="text">
9950     <p>The total number of files scheduled for scanning
9951     </p>
9952     </blockquote>
9953    
9954    
9955     <p>FILES_SCANNED -
9956     </p>
9957     <blockquote class="text">
9958     <p>The current number of scanned files
9959     </p>
9960     </blockquote>
9961    
9962    
9963     <p>SCANNING -
9964     </p>
9965     <blockquote class="text">
9966     <p>The absolute path name of the file which is currently
9967     being scanned
9968     </p>
9969     </blockquote>
9970    
9971    
9972     <p>STATUS -
9973     </p>
9974     <blockquote class="text">
9975     <p>An integer value between 0 and 100 indicating the
9976     scanning progress percentage of the file which is
9977     currently being scanned
9978     </p>
9979     </blockquote>
9980    
9981    
9982     </blockquote>
9983    
9984    
9985     </blockquote><p>
9986    
9987     </p>
9988     <p>The mentioned fields above don't have to be in particular order.
9989     </p>
9990     <p>Example:
9991     </p>
9992     <p>
9993     </p>
9994     <blockquote class="text">
9995     <p>C: "GET DB_INSTRUMENTS_JOB INFO 2"
9996     </p>
9997     <p>S: "FILES_TOTAL: 12"
9998     </p>
9999     <p>&nbsp;&nbsp;&nbsp;"FILES_SCANNED: 7"
10000     </p>
10001     <p>&nbsp;&nbsp;&nbsp;"SCANNING: /home/me/gigs/Bosendorfer 290.gig"
10002     </p>
10003     <p>&nbsp;&nbsp;&nbsp;"STATUS: 42"
10004     </p>
10005     <p>&nbsp;&nbsp;&nbsp;"."
10006     </p>
10007     </blockquote><p>
10008    
10009     </p>
10010     <a name="FORMAT INSTRUMENTS_DB"></a><br /><hr />
10011     <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>
10012     <a name="rfc.section.6.8.22"></a><h3>6.8.22.&nbsp;
10013     Formatting the instruments database</h3>
10014    
10015     <p>The front-end can remove all instruments and directories and re-create
10016     the instruments database structure (e.g., in case of a database corruption)
10017     by sending the following command:
10018     </p>
10019     <p>
10020     </p>
10021     <blockquote class="text">
10022     <p>FORMAT INSTRUMENTS_DB
10023     </p>
10024     </blockquote><p>
10025    
10026     </p>
10027     <p>Possible Answers:
10028     </p>
10029     <p>
10030     </p>
10031     <blockquote class="text">
10032     <p>"OK" -
10033     </p>
10034     <blockquote class="text">
10035     <p>on success
10036     </p>
10037     </blockquote>
10038    
10039    
10040     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
10041     </p>
10042     <blockquote class="text">
10043     <p>If the formatting of the instruments database
10044     failed.
10045     </p>
10046     </blockquote>
10047    
10048    
10049     </blockquote><p>
10050    
10051     </p>
10052     <a name="FIND LOST DB_INSTRUMENT_FILES"></a><br /><hr />
10053     <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>
10054     <a name="rfc.section.6.8.23"></a><h3>6.8.23.&nbsp;
10055     Checking for lost instrument files</h3>
10056    
10057     <p>The front-end can retrieve the list of all instrument files in the instruments database
10058     that don't exist in the filesystem by sending the following command:
10059     </p>
10060     <p>
10061     </p>
10062     <blockquote class="text">
10063     <p>FIND LOST DB_INSTRUMENT_FILES
10064     </p>
10065     </blockquote><p>
10066    
10067     </p>
10068     <p>Possible Answers:
10069     </p>
10070     <p>
10071     </p>
10072     <blockquote class="text">
10073     <p>A comma separated list with the absolute path names
10074     (encapsulated into apostrophes) of all lost instrument files.
10075     </p>
10076     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
10077     </p>
10078     <blockquote class="text">
10079     <p>in case it failed, providing an appropriate error code and error message.
10080     </p>
10081     </blockquote>
10082    
10083    
10084     </blockquote><p>
10085    
10086     </p>
10087     <p>Example:
10088     </p>
10089     <p>
10090     </p>
10091     <blockquote class="text">
10092     <p>C: "FIND LOST DB_INSTRUMENT_FILES"
10093     </p>
10094     <p>S: "'/gigs/Bosendorfer 290.gig','/gigs/Steinway D.gig','/gigs/Free Piano.gig'"
10095     </p>
10096     </blockquote><p>
10097    
10098     </p>
10099     <a name="SET DB_INSTRUMENT FILE_PATH"></a><br /><hr />
10100     <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>
10101     <a name="rfc.section.6.8.24"></a><h3>6.8.24.&nbsp;
10102     Replacing an instrument file</h3>
10103    
10104     <p>The front-end can substitute all occurrences of an instrument file
10105     in the instruments database with a new one by sending the following command:
10106     </p>
10107     <p>
10108     </p>
10109     <blockquote class="text">
10110     <p>SET DB_INSTRUMENT FILE_PATH &lt;old_path&gt; &lt;new_path&gt;
10111     </p>
10112     </blockquote><p>
10113    
10114     </p>
10115     <p>Where &lt;old_path&gt; is the absolute path name of the instrument file
10116     to substitute with &lt;new_path&gt;.
10117     </p>
10118     <p>Possible Answers:
10119     </p>
10120     <p>
10121     </p>
10122     <blockquote class="text">
10123     <p>"OK" -
10124     </p>
10125     <blockquote class="text">
10126     <p>on success
10127     </p>
10128     </blockquote>
10129    
10130    
10131     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
10132     </p>
10133     <blockquote class="text">
10134     <p>in case it failed, providing an appropriate error code and error message.
10135     </p>
10136     </blockquote>
10137    
10138    
10139     </blockquote><p>
10140    
10141     </p>
10142     <p>Example:
10143     </p>
10144     <p>
10145     </p>
10146     <blockquote class="text">
10147     <p>C: "SET DB_INSTRUMENT FILE_PATH '/gigs/Bosendorfer 290.gig' '/gigs/pianos/Bosendorfer 290.gig'"
10148     </p>
10149     <p>S: "OK"
10150     </p>
10151     </blockquote><p>
10152    
10153     </p>
10154     <a name="editing_instruments"></a><br /><hr />
10155     <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>
10156     <a name="rfc.section.6.9"></a><h3>6.9.&nbsp;
10157     Editing Instruments</h3>
10158    
10159     <p>The sampler allows to edit instruments while playing with the
10160     sampler by spawning an external (3rd party) instrument editor
10161     application for a given instrument. The 3rd party instrument
10162     editor applications have to place a respective plugin DLL file
10163     into the sampler's plugins directory. The sampler will
10164     automatically try to load all plugin DLLs in that directory on
10165     startup and only on startup!
10166     </p>
10167     <p>At the moment there is only one command for this feature set,
10168     but this will most probably change in future.
10169     </p>
10170     <a name="EDIT INSTRUMENT"></a><br /><hr />
10171     <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>
10172     <a name="rfc.section.6.9.1"></a><h3>6.9.1.&nbsp;
10173     Opening an appropriate instrument editor application</h3>
10174    
10175     <p>The front-end can request to open an appropriate instrument
10176     editor application by sending the following command:
10177     </p>
10178     <p>
10179     </p>
10180     <blockquote class="text">
10181     <p>EDIT CHANNEL INSTRUMENT &lt;sampler-channel&gt;
10182     </p>
10183     </blockquote><p>
10184    
10185     </p>
10186     <p>Where &lt;sampler-channel&gt; should be replaced by the
10187     number of the sampler channel as given by the
10188     <a class='info' href='#ADD CHANNEL'>"ADD CHANNEL"<span> (</span><span class='info'>Adding a new sampler channel</span><span>)</span></a>
10189     or <a class='info' href='#LIST CHANNELS'>"LIST CHANNELS"<span> (</span><span class='info'>Getting all created sampler channel list</span><span>)</span></a>
10190     command.
10191     </p>
10192     <p>The sampler will try to ask all registered instrument
10193     editors (or to be more specific: their sampler plugins)
10194     whether they are capable to handle the instrument on the
10195     given sampler channel. The sampler will simply use the first
10196     instrument editor application which replied with a positive
10197     answer and spawn that instrument editor application within
10198     the sampler's process and provide that application access
10199     to the instrument's data structures, so both applications
10200     can share and access the same instruments data at the same
10201     time, thus allowing to immediately hear changes with the
10202     sampler made by the instrument editor.
10203     </p>
10204     <p>Note: consequently instrument editors are always spawned
10205     locally on the same machine where the sampler is running
10206     on!
10207     </p>
10208     <p>Possible Answers:
10209     </p>
10210     <p>
10211     </p>
10212     <blockquote class="text">
10213     <p>"OK" -
10214     </p>
10215     <blockquote class="text">
10216     <p>when an appropriate instrument editor was
10217     launched
10218     </p>
10219     </blockquote>
10220    
10221    
10222     <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
10223     </p>
10224     <blockquote class="text">
10225     <p>when an appropriate instrument editor was
10226     launched, but there are noteworthy issues
10227     </p>
10228     </blockquote>
10229    
10230    
10231     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
10232     </p>
10233     <blockquote class="text">
10234     <p>when an appropriate instrument editor
10235     could not be launched
10236     </p>
10237     </blockquote>
10238    
10239    
10240     </blockquote><p>
10241    
10242     </p>
10243     <p>Examples:
10244     </p>
10245     <p>
10246     </p>
10247     <blockquote class="text">
10248     <p>C: "EDIT CHANNEL INSTRUMENT 0"
10249     </p>
10250     <p>S: "OK"
10251     </p>
10252     </blockquote><p>
10253    
10254     </p>
10255     <a name="file_management"></a><br /><hr />
10256     <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>
10257     <a name="rfc.section.6.10"></a><h3>6.10.&nbsp;
10258     Managing Files</h3>
10259    
10260     <p>You can query detailed informations about files located
10261     at the same system where the sampler instance is running on.
10262     Using this command set allows to retrieve file informations
10263     even remotely from another machine.
10264     </p>
10265     <a name="GET FILE INSTRUMENTS"></a><br /><hr />
10266     <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>
10267     <a name="rfc.section.6.10.1"></a><h3>6.10.1.&nbsp;
10268     Retrieving amount of instruments of a file</h3>
10269    
10270     <p>The front-end can retrieve the amount of instruments
10271     within a given instrument file by sending the
10272     following command:
10273     </p>
10274     <p>
10275     </p>
10276     <blockquote class="text">
10277     <p>GET FILE INSTRUMENTS &lt;filename&gt;
10278     </p>
10279     </blockquote><p>
10280    
10281     </p>
10282     <p>Where &lt;filename&gt; is the name of the instrument
10283     file (encapsulated into apostrophes, supporting escape
10284     sequences as described in chapter
10285     "<a class='info' href='#character_set'>Character Set and Escape
10286     Sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>").
10287     </p>
10288     <p>The sampler will try to ask all sampler engines,
10289     whether they support the given file and ask the first
10290     engine with a positive answer for the amount of
10291     instruments.
10292     </p>
10293     <p>Possible Answers:
10294     </p>
10295     <p>
10296     </p>
10297     <blockquote class="text">
10298     <p>On success, the sampler will answer by
10299     returning the amount of instruments.
10300    
10301     </p>
10302     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
10303     </p>
10304     <blockquote class="text">
10305     <p>if the file could not be handled
10306     </p>
10307     </blockquote>
10308    
10309    
10310     </blockquote><p>
10311    
10312     </p>
10313     <p>Examples:
10314     </p>
10315     <p>
10316     </p>
10317     <blockquote class="text">
10318     <p>C: "GET FILE INSTRUMENTS 'D:/Sounds/Foo.gig'"
10319     </p>
10320     <p>S: "10"
10321     </p>
10322     </blockquote><p>
10323    
10324     </p>
10325     <a name="LIST FILE INSTRUMENTS"></a><br /><hr />
10326     <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>
10327     <a name="rfc.section.6.10.2"></a><h3>6.10.2.&nbsp;
10328     Retrieving all instruments of a file</h3>
10329    
10330     <p>The front-end can retrieve a list of all instruments
10331     within a given instrument file by sending the
10332     following command:
10333     </p>
10334     <p>
10335     </p>
10336     <blockquote class="text">
10337     <p>LIST FILE INSTRUMENTS &lt;filename&gt;
10338     </p>
10339     </blockquote><p>
10340    
10341     </p>
10342     <p>Where &lt;filename&gt; is the name of the instrument
10343     file (encapsulated into apostrophes, supporting escape
10344     sequences as described in chapter
10345     "<a class='info' href='#character_set'>Character Set and Escape
10346     Sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>").
10347     </p>
10348     <p>The sampler will try to ask all sampler engines,
10349     whether they support the given file and ask the first
10350     engine with a positive answer for a list of IDs for the
10351     instruments in the given file.
10352     </p>
10353     <p>Possible Answers:
10354     </p>
10355     <p>
10356     </p>
10357     <blockquote class="text">
10358     <p>On success, the sampler will answer by
10359     returning a comma separated list of
10360     instrument IDs.
10361    
10362     </p>
10363     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
10364     </p>
10365     <blockquote class="text">
10366     <p>if the file could not be handled
10367     </p>
10368     </blockquote>
10369    
10370    
10371     </blockquote><p>
10372    
10373     </p>
10374     <p>Examples:
10375     </p>
10376     <p>
10377     </p>
10378     <blockquote class="text">
10379     <p>C: "LIST FILE INSTRUMENTS 'D:/Sounds/Foo.gig'"
10380     </p>
10381     <p>S: "0,1,2,3,4,5,6,7,8,9"
10382     </p>
10383     </blockquote><p>
10384    
10385     </p>
10386     <a name="GET FILE INSTRUMENT INFO"></a><br /><hr />
10387     <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>
10388     <a name="rfc.section.6.10.3"></a><h3>6.10.3.&nbsp;
10389     Retrieving informations about one instrument in a file</h3>
10390    
10391     <p>The front-end can retrieve detailed informations
10392     about a specific instrument within a given instrument
10393     file by sending the following command:
10394     </p>
10395     <p>
10396     </p>
10397     <blockquote class="text">
10398     <p>GET FILE INSTRUMENT INFO &lt;filename&gt;
10399     &lt;instr-id&gt;
10400     </p>
10401     </blockquote><p>
10402    
10403     </p>
10404     <p>Where &lt;filename&gt; is the name of the instrument
10405     file (encapsulated into apostrophes, supporting escape
10406     sequences as described in chapter
10407     "<a class='info' href='#character_set'>Character Set and Escape
10408     Sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>") and &lt;instr-id&gt; is the numeric
10409     instrument ID as returned by the
10410     <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.
10411     </p>
10412     <p>The sampler will try to ask all sampler engines,
10413     whether they support the given file and ask the first
10414     engine with a positive answer for informations about the
10415     specific instrument in the given file.
10416     </p>
10417     <p>Possible Answers:
10418     </p>
10419     <p>
10420     </p>
10421     <blockquote class="text">
10422     <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
10423     Each answer line begins with the settings category name
10424     followed by a colon and then a space character &lt;SP&gt; and finally
10425     the info character string to that setting category. At the
10426     moment the following categories are defined:
10427     </p>
10428     <p>
10429     </p>
10430     <blockquote class="text">
10431     <p>NAME -
10432     </p>
10433     <blockquote class="text">
10434     <p>name of the instrument as
10435     stored in the instrument file
10436     </p>
10437     </blockquote>
10438    
10439    
10440     <p>FORMAT_FAMILY -
10441     </p>
10442     <blockquote class="text">
10443     <p>name of the sampler format
10444     of the given instrument
10445     </p>
10446     </blockquote>
10447    
10448    
10449     <p>FORMAT_VERSION -
10450     </p>
10451     <blockquote class="text">
10452     <p>version of the sampler format
10453     the instrumen is stored as
10454     </p>
10455     </blockquote>
10456    
10457    
10458     <p>PRODUCT -
10459     </p>
10460     <blockquote class="text">
10461     <p>official product name of the
10462     instrument as stored in the file
10463    
10464     </p>
10465     </blockquote>
10466    
10467    
10468     <p>ARTISTS -
10469     </p>
10470     <blockquote class="text">
10471     <p>artists / sample library
10472     vendor of the instrument
10473     </p>
10474     </blockquote>
10475    
10476    
10477     <p>KEY_BINDINGS -
10478     </p>
10479     <blockquote class="text">
10480     <p>comma separated list of integer values representing
10481     the instrument's key mapping in the range between 0 .. 127,
10482     reflecting the analog meaning of the MIDI specification.
10483     </p>
10484     </blockquote>
10485    
10486    
10487     <p>KEYSWITCH_BINDINGS -
10488     </p>
10489     <blockquote class="text">
10490     <p>comma separated list of integer values representing
10491     the instrument's keyswitch mapping in the range between 0 .. 127,
10492     reflecting the analog meaning of the MIDI specification.
10493     </p>
10494     </blockquote>
10495    
10496    
10497     </blockquote>
10498    
10499    
10500     </blockquote><p>
10501    
10502     </p>
10503     <p>The mentioned fields above don't have to be in particular order.
10504     </p>
10505     <p>Example:
10506     </p>
10507     <p>
10508     </p>
10509     <blockquote class="text">
10510     <p>C: "GET FILE INSTRUMENT INFO 'D:/Sounds/Foo.gig' 0"
10511     </p>
10512     <p>S: "NAME: Lunatic Loops"
10513     </p>
10514     <p>&nbsp;&nbsp;&nbsp;"FORMAT_FAMILY: GIG"
10515     </p>
10516     <p>&nbsp;&nbsp;&nbsp;"FORMAT_VERSION: 3"
10517     </p>
10518     <p>&nbsp;&nbsp;&nbsp;"PRODUCT: The Backbone Bongo Beats"
10519     </p>
10520     <p>&nbsp;&nbsp;&nbsp;"ARTISTS: Jimmy the Fish"
10521     </p>
10522     <p>&nbsp;&nbsp;&nbsp;"."
10523     </p>
10524     </blockquote><p>
10525    
10526     </p>
10527     <a name="effects"></a><br /><hr />
10528     <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>
10529     <a name="rfc.section.6.11"></a><h3>6.11.&nbsp;
10530     Managing Effects</h3>
10531    
10532     <p>Audio effects (e.g. reverb, delay, compression) can be
10533     applied to the audio signals generated by the sampler. The
10534     sampler usually provides a set of internal audio effects for
10535     this task. The exact set of effects depends on the availability
10536     of third party effect plugins installed on the system where the
10537     sampler runs on.
10538     </p>
10539     <p>At the moment only "send effects" are supported. Support for
10540     "insert effects" and "master effects" is planned to be added at
10541     a later point.
10542     </p>
10543     <p>The following commands allow to retrieve the set of internal
10544     effects available to the sampler, detailed informations about
10545     those effects and to create and destroy instances of such
10546     effects. After an instance of an effect is created, the effect
10547     instance can be inserted into the audio signal path of the
10548     sampler, e.g. as send effect.
10549     </p>
10550     <p>The sampler allows to create an arbitrary amount of so called
10551     send effect chains. Each effect chain can host an arbitrary
10552     amount of effect instances. The output of the first effect
10553     instance in an effect chain is fed to the input of the second
10554     effect instance of the chain and so on. So effects in one chain
10555     are processed sequentially. Send effect chains however are
10556     processed in parallel to other send effect chains. Audio signals
10557     of sampler channels are fed to send effects by creating FX sends
10558     to the respective sampler channel and assigning a destination
10559     send effect to that FX by using the
10560     <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>
10561     command. The latter allows to route the FX send to the beginning
10562     of a send effect chain, as well as directly to any other
10563     position of the send effect chain.
10564     </p>
10565     <a name="GET AVAILABLE_EFFECTS"></a><br /><hr />
10566     <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>
10567     <a name="rfc.section.6.11.1"></a><h3>6.11.1.&nbsp;
10568     Retrieve amount of available effects</h3>
10569    
10570     <p>The front-end can retrieve the amount of internal
10571     effects, available to the sampler by sending
10572     the following command:
10573     </p>
10574     <p>
10575     </p>
10576     <blockquote class="text">
10577     <p>GET AVAILABLE_EFFECTS
10578     </p>
10579     </blockquote><p>
10580    
10581     </p>
10582     <p>Possible Answers:
10583     </p>
10584     <p>
10585     </p>
10586     <blockquote class="text">
10587     <p>The sampler will answer by returning the current
10588     number of effects available to the sampler.
10589     </p>
10590     </blockquote><p>
10591    
10592     </p>
10593     <p>Examples:
10594     </p>
10595     <p>
10596     </p>
10597     <blockquote class="text">
10598     <p>C: "GET AVAILABLE_EFFECTS"
10599     </p>
10600     <p>S: "129"
10601     </p>
10602     </blockquote><p>
10603    
10604     </p>
10605     <a name="LIST AVAILABLE_EFFECTS"></a><br /><hr />
10606     <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>
10607     <a name="rfc.section.6.11.2"></a><h3>6.11.2.&nbsp;
10608     Get list of available effects</h3>
10609    
10610     <p>The set of available internal effects can change at
10611     runtime. The front-end can retrieve the list of internal
10612     effects, available to the sampler by sending the following
10613     command:
10614     </p>
10615     <p>
10616     </p>
10617     <blockquote class="text">
10618     <p>LIST AVAILABLE_EFFECTS
10619     </p>
10620     </blockquote><p>
10621    
10622     </p>
10623     <p>Possible Answers:
10624     </p>
10625     <p>
10626     </p>
10627     <blockquote class="text">
10628     <p>The sampler will answer by returning a comma
10629     separated list with numerical IDs of effects. Note:
10630     the numercial ID of an effect is generated by the
10631     sampler for the current moment. The numerical ID of
10632     the same effect can change at runtime, e.g. when the
10633     user requests a rescan of available effect plugins.
10634    
10635     </p>
10636     </blockquote><p>
10637    
10638     </p>
10639     <p>Example:
10640     </p>
10641     <p>
10642     </p>
10643     <blockquote class="text">
10644     <p>C: "LIST AVAILABLE_EFFECTS"
10645     </p>
10646     <p>S: "5,6,7,120,121,122,123,124"
10647     </p>
10648     </blockquote><p>
10649    
10650     </p>
10651     <a name="GET EFFECT INFO"></a><br /><hr />
10652     <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>
10653     <a name="rfc.section.6.11.3"></a><h3>6.11.3.&nbsp;
10654     Retrieving general information about an effect</h3>
10655    
10656     <p>The front-end can ask for general informations about an
10657     effect by sending the following command:
10658     </p>
10659     <p>
10660     </p>
10661     <blockquote class="text">
10662     <p>GET EFFECT INFO &lt;effect-index&gt;
10663     </p>
10664     </blockquote><p>
10665    
10666     </p>
10667     <p>Where &lt;effect-index&gt; is the numerical ID of an
10668     effect as returned by the
10669     <a class='info' href='#LIST AVAILABLE_EFFECTS'>"LIST AVAILABLE_EFFECTS"<span> (</span><span class='info'>Get list of available effects</span><span>)</span></a>
10670     command.
10671     </p>
10672     <p>Possible Answers:
10673     </p>
10674     <p>
10675     </p>
10676     <blockquote class="text">
10677     <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
10678     Each answer line begins with the effect information
10679     category name, followed by a colon and then a space
10680     character &lt;SP&gt; and finally the info character
10681     string to that effect information category. At the
10682     moment the following categories are defined:
10683     </p>
10684     <p>
10685     </p>
10686     <blockquote class="text">
10687     <p>SYSTEM -
10688     </p>
10689     <blockquote class="text">
10690     <p>name of the effect plugin system
10691     the effect is based on
10692     (e.g. "LADSPA")
10693     </p>
10694     </blockquote>
10695    
10696    
10697     <p>MODULE -
10698     </p>
10699     <blockquote class="text">
10700     <p>module of the effect plugin
10701     system that contains this effect,
10702     the module is usually the
10703     dynamic-linked library (DLL)
10704     filename of the effect plugin,
10705     including full path (note that this
10706     filename may contain
10707     <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>)
10708     </p>
10709     </blockquote>
10710    
10711    
10712     <p>NAME -
10713     </p>
10714     <blockquote class="text">
10715     <p>character string defining the
10716     unique name of the effect within its
10717     module (note that the character
10718     string may contain
10719     <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>)
10720     </p>
10721     </blockquote>
10722    
10723    
10724     <p>DESCRIPTION -
10725     </p>
10726     <blockquote class="text">
10727     <p>human readable name of the
10728     effect, intended to be displayed in
10729     user interfaces (note that the
10730     character string may contain
10731     <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>)
10732     </p>
10733     </blockquote>
10734    
10735    
10736     </blockquote>
10737    
10738    
10739     </blockquote><p>
10740    
10741     </p>
10742     <p>The mentioned fields above don't have to be in particular order.
10743     </p>
10744     <p>Example:
10745     </p>
10746     <p>
10747     </p>
10748     <blockquote class="text">
10749     <p>C: "GET EFFECT INFO 121"
10750     </p>
10751     <p>S: "SYSTEM: LADSPA"
10752     </p>
10753     <p>&nbsp;&nbsp;&nbsp;"MODULE: /usr/lib/ladspa/lowpass_iir_1891.so"
10754     </p>
10755     <p>&nbsp;&nbsp;&nbsp;"NAME: lowpass_iir"
10756     </p>
10757     <p>&nbsp;&nbsp;&nbsp;"DESCRIPTION: Glame Lowpass Filter"
10758     </p>
10759     <p>&nbsp;&nbsp;&nbsp;"."
10760     </p>
10761     </blockquote><p>
10762    
10763     </p>
10764     <a name="CREATE EFFECT_INSTANCE"></a><br /><hr />
10765     <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>
10766     <a name="rfc.section.6.11.4"></a><h3>6.11.4.&nbsp;
10767     Creating an instance of an effect by its portable ID</h3>
10768    
10769     <p>The front-end can spawn an instance of the desired
10770     effect by sending the following command:
10771     </p>
10772     <p>
10773     </p>
10774     <blockquote class="text">
10775     <p>CREATE EFFECT_INSTANCE &lt;effect-system&gt; &lt;module&gt; &lt;effect-name&gt;
10776     </p>
10777     </blockquote><p>
10778    
10779     </p>
10780     <p>Where &lt;effect-system&gt; is the "SYSTEM" field,
10781     &lt;module&gt; the "MODULE" field and &lt;effect-name&gt;
10782     the "NAME" field as returned by the
10783     <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>
10784     command. The filename of argument &lt;module&gt; and the
10785     character string of argument &lt;effect-name&gt; may contain
10786     <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>.
10787     </p>
10788     <p>The sampler will try to load the requested effect and to
10789     create an instance of it. To allow loading the same effect
10790     on a different machine, probably even running a completely
10791     different operating system (e.g. Linux vs. Windows), the
10792     sampler tries to match &lt;module&gt; "softly". That means
10793     it first tries to find an effect that exactly matches the
10794     given &lt;module&gt; argument. If there is no exact match,
10795     the sampler will try to lower the restrictions on matching
10796     the &lt;module&gt; argument more and more, e.g. by ignoring
10797     upper / lower case differences and by ignoring the path of
10798     the DLL filename and file extension. If there is still no
10799     match at the end, the sampler will try to ignore the
10800     &lt;module&gt; argument completely and as a last resort
10801     search for an effect that only matches the given
10802     &lt;effect-system&gt; and &lt;effect-name&gt; arguments.
10803     </p>
10804     <p>Possible Answers:
10805     </p>
10806     <p>
10807     </p>
10808     <blockquote class="text">
10809     <p>"OK[&lt;effect-instance&gt;]" -
10810     </p>
10811     <blockquote class="text">
10812     <p>in case the effect instance was
10813     successfully created, where
10814     &lt;effect-instance&gt; is the numerical ID
10815     of the new effect instance
10816     </p>
10817     </blockquote>
10818    
10819    
10820     <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
10821     </p>
10822     <blockquote class="text">
10823     <p>in case the effect instance was spawned
10824     successfully, but there are noteworthy
10825     issue(s) related, providing an appropriate
10826     warning code and warning message
10827     </p>
10828     </blockquote>
10829    
10830    
10831     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
10832     </p>
10833     <blockquote class="text">
10834     <p>if the effect could not be instantiated
10835     </p>
10836     </blockquote>
10837    
10838    
10839     </blockquote><p>
10840    
10841     </p>
10842     <p>Examples:
10843     </p>
10844     <p>
10845     </p>
10846     <blockquote class="text">
10847     <p>C: "CREATE EFFECT_INSTANCE LADSPA '/usr/lib/ladspa/mod_delay_1419.so' 'modDelay'"
10848     </p>
10849     <p>S: "OK[0]"
10850     </p>
10851     </blockquote><p>
10852    
10853     </p>
10854     <a name="CREATE EFFECT_INSTANCE (non-portable)"></a><br /><hr />
10855     <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>
10856     <a name="rfc.section.6.11.5"></a><h3>6.11.5.&nbsp;
10857     Creating an instance of an effect by its numerical ID</h3>
10858    
10859     <p>The front-end can spawn an instance of the desired
10860     effect by sending the following command:
10861     </p>
10862     <p>
10863     </p>
10864     <blockquote class="text">
10865     <p>CREATE EFFECT_INSTANCE &lt;effect-index&gt;
10866     </p>
10867     </blockquote><p>
10868    
10869     </p>
10870     <p>Where &lt;effect-index&gt; is the numerical ID of the
10871     effect as returned by the
10872     <a class='info' href='#LIST AVAILABLE_EFFECTS'>"LIST AVAILABLE_EFFECTS"<span> (</span><span class='info'>Get list of available effects</span><span>)</span></a>
10873     command.
10874     </p>
10875     <p>The sampler will try to load the requested effect and to
10876     create an instance of it.
10877     </p>
10878     <p>Note: Since the numerical ID of a certain effect can
10879     change at any time, you should not use this command in
10880     LSCP files to restore a certain effect at a later time! To
10881     store a sampler session including all its effects, use the
10882     <a class='info' href='#CREATE EFFECT_INSTANCE'>portable text-based
10883     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
10884     allows to restore a sampler session with all its effects
10885     also on other machines, possibly even running a completely
10886     different operating system (e.g. Linux vs. Windows), with
10887     different plugin directories or plugin DLL names.
10888     </p>
10889     <p>Possible Answers:
10890     </p>
10891     <p>
10892     </p>
10893     <blockquote class="text">
10894     <p>"OK[&lt;effect-instance&gt;]" -
10895     </p>
10896     <blockquote class="text">
10897     <p>in case the effect instance was
10898     successfully created, where
10899     &lt;effect-instance&gt; is the numerical ID
10900     of the new effect instance
10901     </p>
10902     </blockquote>
10903    
10904    
10905     <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
10906     </p>
10907     <blockquote class="text">
10908     <p>in case the effect instance was spawned
10909     successfully, but there are noteworthy
10910     issue(s) related, providing an appropriate
10911     warning code and warning message
10912     </p>
10913     </blockquote>
10914    
10915    
10916     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
10917     </p>
10918     <blockquote class="text">
10919     <p>if the effect could not be instantiated
10920     </p>
10921     </blockquote>
10922    
10923    
10924     </blockquote><p>
10925    
10926     </p>
10927     <p>Examples:
10928     </p>
10929     <p>
10930     </p>
10931     <blockquote class="text">
10932     <p>C: "CREATE EFFECT_INSTANCE 72"
10933     </p>
10934     <p>S: "OK[5]"
10935     </p>
10936     </blockquote><p>
10937    
10938     </p>
10939     <a name="DESTROY EFFECT_INSTANCE"></a><br /><hr />
10940     <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>
10941     <a name="rfc.section.6.11.6"></a><h3>6.11.6.&nbsp;
10942     Destroy an effect instance</h3>
10943    
10944     <p>The front-end can destroy an unusued effect instance and
10945     thus freeing it from memory by sending the following command:
10946     </p>
10947     <p>
10948     </p>
10949     <blockquote class="text">
10950     <p>DESTROY EFFECT_INSTANCE &lt;effect-instance&gt;
10951     </p>
10952     </blockquote><p>
10953    
10954     </p>
10955     <p>Where &lt;effect-instance&gt; is the numerical ID of the
10956     effect instance as returned by the
10957     <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
10958     <a class='info' href='#LIST EFFECT_INSTANCES'>"LIST EFFECT_INSTANCES"<span> (</span><span class='info'>Get list of effect instances</span><span>)</span></a>
10959     command.
10960     </p>
10961     <p>The effect instance can only be destroyed if it's not
10962     used in any part of the sampler's audio signal path anymore.
10963     If the effect instance is still in use somewhere, trying to
10964     destroy the effect instance will result in an error
10965     message.
10966     </p>
10967     <p>Possible Answers:
10968     </p>
10969     <p>
10970     </p>
10971     <blockquote class="text">
10972     <p>"OK" -
10973     </p>
10974     <blockquote class="text">
10975     <p>in case the effect instance was successfully destroyed
10976     </p>
10977     </blockquote>
10978    
10979    
10980     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
10981     </p>
10982     <blockquote class="text">
10983     <p>in case it failed, providing an appropriate error code and
10984     error message
10985     </p>
10986     </blockquote>
10987    
10988    
10989     </blockquote><p>
10990    
10991     </p>
10992     <p>Examples:
10993     </p>
10994     <p>
10995     </p>
10996     <blockquote class="text">
10997     <p>C: "DESTROY EFFECT_INSTANCE 5"
10998     </p>
10999     <p>S: "OK"
11000     </p>
11001     </blockquote><p>
11002    
11003     </p>
11004     <a name="GET EFFECT_INSTANCES"></a><br /><hr />
11005     <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>
11006     <a name="rfc.section.6.11.7"></a><h3>6.11.7.&nbsp;
11007     Retrieve amount of effect instances</h3>
11008    
11009     <p>The front-end can retrieve the current amount of effect
11010     instances by sending the following command:
11011     </p>
11012     <p>
11013     </p>
11014     <blockquote class="text">
11015     <p>GET EFFECT_INSTANCES
11016     </p>
11017     </blockquote><p>
11018    
11019     </p>
11020     <p>Possible Answers:
11021     </p>
11022     <p>
11023     </p>
11024     <blockquote class="text">
11025     <p>The sampler will answer by returning the current
11026     number of effect instances created and not yet
11027     destroyed in the current sampler session.
11028     </p>
11029     </blockquote><p>
11030    
11031     </p>
11032     <p>Examples:
11033     </p>
11034     <p>
11035     </p>
11036     <blockquote class="text">
11037     <p>C: "GET EFFECT_INSTANCES"
11038     </p>
11039     <p>S: "14"
11040     </p>
11041     </blockquote><p>
11042    
11043     </p>
11044     <a name="LIST EFFECT_INSTANCES"></a><br /><hr />
11045     <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>
11046     <a name="rfc.section.6.11.8"></a><h3>6.11.8.&nbsp;
11047     Get list of effect instances</h3>
11048    
11049     <p>The front-end can retrieve the current list of effect
11050     instances by sending the following command:
11051     </p>
11052     <p>
11053     </p>
11054     <blockquote class="text">
11055     <p>LIST EFFECT_INSTANCES
11056     </p>
11057     </blockquote><p>
11058    
11059     </p>
11060     <p>Possible Answers:
11061     </p>
11062     <p>
11063     </p>
11064     <blockquote class="text">
11065     <p>The sampler will answer by returning a comma
11066     separated list with numerical IDs of effects
11067     instances.
11068    
11069     </p>
11070     </blockquote><p>
11071    
11072     </p>
11073     <p>Example:
11074     </p>
11075     <p>
11076     </p>
11077     <blockquote class="text">
11078     <p>C: "LIST EFFECT_INSTANCES"
11079     </p>
11080     <p>S: "9,11,14,15,16,17,25"
11081     </p>
11082     </blockquote><p>
11083    
11084     </p>
11085     <a name="GET EFFECT_INSTANCE INFO"></a><br /><hr />
11086     <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>
11087     <a name="rfc.section.6.11.9"></a><h3>6.11.9.&nbsp;
11088     Retrieving current information about an effect instance</h3>
11089    
11090     <p>The front-end can ask for the current informations about
11091     a particular effect instance by sending the following command:
11092     </p>
11093     <p>
11094     </p>
11095     <blockquote class="text">
11096     <p>GET EFFECT_INSTANCE INFO &lt;effect-instance&gt;
11097     </p>
11098     </blockquote><p>
11099    
11100     </p>
11101     <p>Where &lt;effect-instance&gt; is the numerical ID of an
11102     effect instance as returned by the
11103     <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>
11104     or
11105     <a class='info' href='#LIST EFFECT_INSTANCES'>"LIST EFFECT_INSTANCES"<span> (</span><span class='info'>Get list of effect instances</span><span>)</span></a>
11106     command.
11107     </p>
11108     <p>Possible Answers:
11109     </p>
11110     <p>
11111     </p>
11112     <blockquote class="text">
11113     <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
11114     Each answer line begins with the information
11115     category name, followed by a colon and then a space
11116     character &lt;SP&gt; and finally the info character
11117     string to that information category. At the
11118     moment the following categories are defined:
11119     </p>
11120     <p>
11121     </p>
11122     <blockquote class="text">
11123     <p>SYSTEM -
11124     </p>
11125     <blockquote class="text">
11126     <p>name of the effect plugin system
11127     the effect is based on
11128     (e.g. "LADSPA")
11129     </p>
11130     </blockquote>
11131    
11132    
11133     <p>MODULE -
11134     </p>
11135     <blockquote class="text">
11136     <p>module of the effect plugin
11137     system that contains this effect,
11138     the module is usually the
11139     dynamic-linked library (DLL)
11140     filename of the effect plugin,
11141     including full path (note that this
11142     filename may contain
11143     <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>)
11144     </p>
11145     </blockquote>
11146    
11147    
11148     <p>NAME -
11149     </p>
11150     <blockquote class="text">
11151     <p>character string defining the
11152     unique name of the effect within its
11153     module (note that the character
11154     string may contain
11155     <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>)
11156     </p>
11157     </blockquote>
11158    
11159    
11160     <p>DESCRIPTION -
11161     </p>
11162     <blockquote class="text">
11163     <p>human readable name of the
11164     effect, intended to be displayed in
11165     user interfaces (note that the
11166     character string may contain
11167     <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>)
11168     </p>
11169     </blockquote>
11170    
11171    
11172     <p>INPUT_CONTROLS -
11173     </p>
11174     <blockquote class="text">
11175     <p>amount of input controls the
11176     effect instance provides, to allow
11177     controlling the effect parameters in
11178     realtime
11179     </p>
11180     </blockquote>
11181    
11182    
11183     </blockquote>
11184    
11185    
11186     </blockquote><p>
11187    
11188     </p>
11189     <p>The mentioned fields above don't have to be in particular order.
11190     </p>
11191     <p>Example:
11192     </p>
11193     <p>
11194     </p>
11195     <blockquote class="text">
11196     <p>C: "GET EFFECT_INSTANCE INFO 3"
11197     </p>
11198     <p>S: "SYSTEM: LADSPA"
11199     </p>
11200     <p>&nbsp;&nbsp;&nbsp;"MODULE: /usr/lib/ladspa/mod_delay_1419.so"
11201     </p>
11202     <p>&nbsp;&nbsp;&nbsp;"NAME: modDelay"
11203     </p>
11204     <p>&nbsp;&nbsp;&nbsp;"DESCRIPTION: Modulatable delay"
11205     </p>
11206     <p>&nbsp;&nbsp;&nbsp;"INPUT_CONTROLS: 1"
11207     </p>
11208     <p>&nbsp;&nbsp;&nbsp;"."
11209     </p>
11210     </blockquote><p>
11211    
11212     </p>
11213     <a name="GET EFFECT_INSTANCE_INPUT_CONTROL INFO"></a><br /><hr />
11214     <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>
11215     <a name="rfc.section.6.11.10"></a><h3>6.11.10.&nbsp;
11216     Retrieving information about an effect parameter</h3>
11217    
11218     <p>Effects typically provide a certain set of effect
11219     parameters which can be altered by the user in realtime
11220     (e.g. depth of a reverb effect, duration of a delay effect,
11221     dry / wet signal ratio). Those controllable effect parameters
11222     are called "input controls". The front-end can ask for the
11223     current informations of an effect instance's input control
11224     by sending the following command:
11225     </p>
11226     <p>
11227     </p>
11228     <blockquote class="text">
11229     <p>GET EFFECT_INSTANCE_INPUT_CONTROL INFO &lt;effect-instance&gt; &lt;input-control&gt;
11230     </p>
11231     </blockquote><p>
11232    
11233     </p>
11234     <p>Where &lt;effect-instance&gt; is the numerical ID of an
11235     effect instance as returned by the
11236     <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>
11237     or
11238     <a class='info' href='#LIST EFFECT_INSTANCES'>"LIST EFFECT_INSTANCES"<span> (</span><span class='info'>Get list of effect instances</span><span>)</span></a>
11239     command and &lt;input-control&gt; is the index of the input
11240     control within the numerical bounds as returned by the
11241     "INPUT_CONTROLS" field of the
11242     <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>
11243     command.
11244     </p>
11245     <p>Possible Answers:
11246     </p>
11247     <p>
11248     </p>
11249     <blockquote class="text">
11250     <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
11251     Each answer line begins with the information
11252     category name, followed by a colon and then a space
11253     character &lt;SP&gt; and finally the info character
11254     string to that information category. There are
11255     information categories which are always returned,
11256     independent of the respective effect parameter and
11257     there are optional information categories
11258     which are only shown for certain effect parameters.
11259     At the moment the following categories are defined:
11260     </p>
11261     <p>
11262     </p>
11263     <blockquote class="text">
11264     <p>DESCRIPTION -
11265     </p>
11266     <blockquote class="text">
11267     <p>(always returned)
11268     human readable name of the
11269     effect parameter, intended to be
11270     displayed in user interfaces (note
11271     that the character string may
11272     contain <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>)
11273     </p>
11274     </blockquote>
11275    
11276    
11277     <p>VALUE -
11278     </p>
11279     <blockquote class="text">
11280     <p>
11281     (always returned)
11282     current (optional dotted)
11283     floating point value of this effect
11284     parameter
11285     </p>
11286     </blockquote>
11287    
11288    
11289     <p>RANGE_MIN -
11290     </p>
11291     <blockquote class="text">
11292     <p>
11293     (optionally returned)
11294     minimum allowed value for this
11295     effect parameter
11296     </p>
11297     </blockquote>
11298    
11299    
11300     <p>RANGE_MAX -
11301     </p>
11302     <blockquote class="text">
11303     <p>
11304     (optionally returned)
11305     maximum allowed value for this
11306     effect parameter
11307     </p>
11308     </blockquote>
11309    
11310    
11311     <p>POSSIBILITIES -
11312     </p>
11313     <blockquote class="text">
11314     <p>
11315     (optionally returned)
11316     comma separated list of
11317     (optional dotted) floating point
11318     numbers, reflecting the exact set of
11319     possible values for this effect
11320     parameter
11321     </p>
11322     </blockquote>
11323    
11324    
11325     <p>DEFAULT -
11326     </p>
11327     <blockquote class="text">
11328     <p>
11329     (optionally returned)
11330     default value of this effect
11331     parameter
11332     </p>
11333     </blockquote>
11334    
11335    
11336     </blockquote>
11337    
11338    
11339     </blockquote><p>
11340    
11341     </p>
11342     <p>The mentioned fields above don't have to be in particular order.
11343     </p>
11344     <p>Example:
11345     </p>
11346     <p>
11347     </p>
11348     <blockquote class="text">
11349     <p>C: "GET EFFECT_INSTANCE_INPUT_CONTROL INFO 1 0"
11350     </p>
11351     <p>S: "DESCRIPTION: Base delay (s)"
11352     </p>
11353     <p>&nbsp;&nbsp;&nbsp;"VALUE: 0.500"
11354     </p>
11355     <p>&nbsp;&nbsp;&nbsp;"RANGE_MIN: 0.000"
11356     </p>
11357     <p>&nbsp;&nbsp;&nbsp;"."
11358     </p>
11359     </blockquote><p>
11360    
11361     </p>
11362     <a name="SET EFFECT_INSTANCE_INPUT_CONTROL VALUE"></a><br /><hr />
11363     <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>
11364     <a name="rfc.section.6.11.11"></a><h3>6.11.11.&nbsp;
11365     Altering an effect parameter</h3>
11366    
11367     <p>The front-end can alter the current value of an effect
11368     parameter by sending the following command:
11369     </p>
11370     <p>
11371     </p>
11372     <blockquote class="text">
11373     <p>SET EFFECT_INSTANCE_INPUT_CONTROL VALUE &lt;effect-instance&gt; &lt;input-control&gt; &lt;value&gt;
11374     </p>
11375     </blockquote><p>
11376    
11377     </p>
11378     <p>Where &lt;effect-instance&gt; is the numerical ID of the
11379     effect instance as returned by the
11380     <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
11381     <a class='info' href='#LIST EFFECT_INSTANCES'>"LIST EFFECT_INSTANCES"<span> (</span><span class='info'>Get list of effect instances</span><span>)</span></a>
11382     command, &lt;input-control&gt; is the index of the input
11383     control within the numerical bounds as returned by the
11384     "INPUT_CONTROLS" field of the
11385     <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>
11386     command and &lt;value&gt; is the new (optional dotted)
11387     floating point value for this effect parameter.
11388     </p>
11389     <p>Possible Answers:
11390     </p>
11391     <p>
11392     </p>
11393     <blockquote class="text">
11394     <p>"OK" -
11395     </p>
11396     <blockquote class="text">
11397     <p>in case the effect was altered successfully
11398     </p>
11399     </blockquote>
11400    
11401    
11402     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
11403     </p>
11404     <blockquote class="text">
11405     <p>in case it failed, providing an appropriate error code and
11406     error message
11407     </p>
11408     </blockquote>
11409    
11410    
11411     </blockquote><p>
11412    
11413     </p>
11414     <p>Examples:
11415     </p>
11416     <p>
11417     </p>
11418     <blockquote class="text">
11419     <p>C: "SET EFFECT_INSTANCE_INPUT_CONTROL VALUE 0 1 0.5"
11420     </p>
11421     <p>S: "OK"
11422     </p>
11423     </blockquote><p>
11424    
11425     </p>
11426     <a name="GET SEND_EFFECT_CHAINS"></a><br /><hr />
11427     <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>
11428     <a name="rfc.section.6.11.12"></a><h3>6.11.12.&nbsp;
11429     Retrieve amount of send effect chains</h3>
11430    
11431     <p>The front-end can retrieve the current amount of send
11432     effect chains of an audio output device by sending the
11433     following command:
11434     </p>
11435     <p>
11436     </p>
11437     <blockquote class="text">
11438     <p>GET SEND_EFFECT_CHAINS &lt;audio-device&gt;
11439     </p>
11440     </blockquote><p>
11441    
11442     </p>
11443     <p>Where &lt;audio-device&gt; should be replaced by the
11444     numerical ID of the audio output device as given by the
11445     <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>
11446     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>
11447     command.
11448     </p>
11449     <p>Possible Answers:
11450     </p>
11451     <p>
11452     </p>
11453     <blockquote class="text">
11454     <p>The sampler will answer by returning the current
11455     number of send effect chains of the supplied audio
11456     output device.
11457     </p>
11458     </blockquote><p>
11459    
11460     </p>
11461     <p>Examples:
11462     </p>
11463     <p>
11464     </p>
11465     <blockquote class="text">
11466     <p>C: "GET SEND_EFFECT_CHAINS 0"
11467     </p>
11468     <p>S: "4"
11469     </p>
11470     </blockquote><p>
11471    
11472     </p>
11473     <a name="LIST SEND_EFFECT_CHAINS"></a><br /><hr />
11474     <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>
11475     <a name="rfc.section.6.11.13"></a><h3>6.11.13.&nbsp;
11476     Retrieve list of send effect chains</h3>
11477    
11478     <p>The front-end can retrieve the current list of send
11479     effect chains of an audio output device by sending the
11480     following command:
11481     </p>
11482     <p>
11483     </p>
11484     <blockquote class="text">
11485     <p>LIST SEND_EFFECT_CHAINS &lt;audio-device&gt;
11486     </p>
11487     </blockquote><p>
11488    
11489     </p>
11490     <p>Where &lt;audio-device&gt; should be replaced by the
11491     numerical ID of the audio output device as given by the
11492     <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>
11493     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>
11494     command.
11495     </p>
11496     <p>Possible Answers:
11497     </p>
11498     <p>
11499     </p>
11500     <blockquote class="text">
11501     <p>The sampler will answer by returning a comma
11502     separated list with numerical IDs of send effect
11503     chains of the supplied audio output device.
11504    
11505     </p>
11506     </blockquote><p>
11507    
11508     </p>
11509     <p>Examples:
11510     </p>
11511     <p>
11512     </p>
11513     <blockquote class="text">
11514     <p>C: "LIST SEND_EFFECT_CHAINS 0"
11515     </p>
11516     <p>S: "3,4,7"
11517     </p>
11518     </blockquote><p>
11519    
11520     </p>
11521     <a name="ADD SEND_EFFECT_CHAIN"></a><br /><hr />
11522     <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>
11523     <a name="rfc.section.6.11.14"></a><h3>6.11.14.&nbsp;
11524     Add send effect chain</h3>
11525    
11526     <p>The front-end can add a send effect chain by sending the
11527     following command:
11528     </p>
11529     <p>
11530     </p>
11531     <blockquote class="text">
11532     <p>ADD SEND_EFFECT_CHAIN &lt;audio-device&gt;
11533     </p>
11534     </blockquote><p>
11535    
11536     </p>
11537     <p>Where &lt;audio-device&gt; should be replaced by the
11538     numerical ID of the audio output device as given by the
11539     <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>
11540     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>
11541     command.
11542     </p>
11543     <p>Possible Answers:
11544     </p>
11545     <p>
11546     </p>
11547     <blockquote class="text">
11548     <p>"OK[&lt;effect-chain&gt;]" -
11549     </p>
11550     <blockquote class="text">
11551     <p>in case the send effect chain was
11552     added successfully, where
11553     &lt;effect-chain&gt; is the numerical ID
11554     of the new send effect chain
11555     </p>
11556     </blockquote>
11557    
11558    
11559     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
11560     </p>
11561     <blockquote class="text">
11562     <p>if the send effect chain could not be added
11563     </p>
11564     </blockquote>
11565    
11566    
11567     </blockquote><p>
11568    
11569     </p>
11570     <p>Examples:
11571     </p>
11572     <p>
11573     </p>
11574     <blockquote class="text">
11575     <p>C: "ADD SEND_EFFECT_CHAIN 0"
11576     </p>
11577     <p>S: "OK[2]"
11578     </p>
11579     </blockquote><p>
11580    
11581     </p>
11582     <a name="REMOVE SEND_EFFECT_CHAIN"></a><br /><hr />
11583     <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>
11584     <a name="rfc.section.6.11.15"></a><h3>6.11.15.&nbsp;
11585     Remove send effect chain</h3>
11586    
11587     <p>The front-end can remove a send effect chain by sending
11588     the following command:
11589     </p>
11590     <p>
11591     </p>
11592     <blockquote class="text">
11593     <p>REMOVE SEND_EFFECT_CHAIN &lt;audio-device&gt; &lt;effect-chain&gt;
11594     </p>
11595     </blockquote><p>
11596    
11597     </p>
11598     <p>Where &lt;audio-device&gt; should be replaced by the
11599     numerical ID of the audio output device as given by the
11600     <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>
11601     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>
11602     command and &lt;effect-chain&gt; by the numerical ID as
11603     returned by the
11604     <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>
11605     or
11606     <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>
11607     command.
11608     </p>
11609     <p>Possible Answers:
11610     </p>
11611     <p>
11612     </p>
11613     <blockquote class="text">
11614     <p>"OK" -
11615     </p>
11616     <blockquote class="text">
11617     <p>in case the send effect chain was
11618     removed successfully
11619     </p>
11620     </blockquote>
11621    
11622    
11623     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
11624     </p>
11625     <blockquote class="text">
11626     <p>if the send effect chain could not be removed
11627     </p>
11628     </blockquote>
11629    
11630    
11631     </blockquote><p>
11632    
11633     </p>
11634     <p>Examples:
11635     </p>
11636     <p>
11637     </p>
11638     <blockquote class="text">
11639     <p>C: "REMOVE SEND_EFFECT_CHAIN 0 2"
11640     </p>
11641     <p>S: "OK"
11642     </p>
11643     </blockquote><p>
11644    
11645     </p>
11646     <a name="GET SEND_EFFECT_CHAIN INFO"></a><br /><hr />
11647     <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>
11648     <a name="rfc.section.6.11.16"></a><h3>6.11.16.&nbsp;
11649     Retrieving information about a send effect chain</h3>
11650    
11651     <p>The front-end can ask for informations of a send effect
11652     chain by sending the following command:
11653     </p>
11654     <p>
11655     </p>
11656     <blockquote class="text">
11657     <p>GET SEND_EFFECT_CHAIN INFO &lt;audio-device&gt; &lt;effect-chain&gt;
11658     </p>
11659     </blockquote><p>
11660    
11661     </p>
11662     <p>Where &lt;audio-device&gt; should be replaced by the
11663     numerical ID of the audio output device as given by the
11664     <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>
11665     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>
11666     command and &lt;effect-chain&gt; by the numerical ID as
11667     returned by the
11668     <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>
11669     or
11670     <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>
11671     command.
11672     </p>
11673     <p>Possible Answers:
11674     </p>
11675     <p>
11676     </p>
11677     <blockquote class="text">
11678     <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
11679     Each answer line begins with the information
11680     category name, followed by a colon and then a space
11681     character &lt;SP&gt; and finally the info character
11682     string to that information category.
11683     At the moment the following categories are defined:
11684     </p>
11685     <p>
11686     </p>
11687     <blockquote class="text">
11688     <p>EFFECT_COUNT -
11689     </p>
11690     <blockquote class="text">
11691     <p>amount of effects in this send
11692     effect chain
11693     </p>
11694     </blockquote>
11695    
11696    
11697     <p>EFFECT_SEQUENCE -
11698     </p>
11699     <blockquote class="text">
11700     <p>comma separated list of the
11701     numerical IDs of the effect
11702     instances in this send effect chain,
11703     in the order as they are procssed in
11704     the effect chain
11705     </p>
11706     </blockquote>
11707    
11708    
11709     </blockquote>
11710    
11711    
11712     </blockquote><p>
11713    
11714     </p>
11715     <p>The mentioned fields above don't have to be in particular order.
11716     </p>
11717     <p>Example:
11718     </p>
11719     <p>
11720     </p>
11721     <blockquote class="text">
11722     <p>C: "GET SEND_EFFECT_CHAIN INFO 0 2"
11723     </p>
11724     <p>S: "EFFECT_COUNT: 3"
11725     </p>
11726     <p>&nbsp;&nbsp;&nbsp;"EFFECT_SEQUENCE: 31,4,7"
11727     </p>
11728     <p>&nbsp;&nbsp;&nbsp;"."
11729     </p>
11730     </blockquote><p>
11731    
11732     </p>
11733     <a name="APPEND SEND_EFFECT_CHAIN EFFECT"></a><br /><hr />
11734     <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>
11735     <a name="rfc.section.6.11.17"></a><h3>6.11.17.&nbsp;
11736     Append effect instance to a send effect chain</h3>
11737    
11738     <p>The front-end can add an unused effect instance to the
11739     end of a send effect chain by sending the following command:
11740     </p>
11741     <p>
11742     </p>
11743     <blockquote class="text">
11744     <p>APPEND SEND_EFFECT_CHAIN EFFECT &lt;audio-device&gt; &lt;effect-chain&gt; &lt;effect-instance&gt;
11745     </p>
11746     </blockquote><p>
11747    
11748     </p>
11749     <p>Where &lt;audio-device&gt; should be replaced by the
11750     numerical ID of the audio output device as given by the
11751     <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>
11752     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>
11753     command and &lt;effect-chain&gt; by the numerical ID as
11754     returned by the
11755     <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>
11756     or
11757     <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>
11758     command and &lt;effect-instance&gt; as returned by the
11759     <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
11760     <a class='info' href='#LIST EFFECT_INSTANCES'>"LIST EFFECT_INSTANCES"<span> (</span><span class='info'>Get list of effect instances</span><span>)</span></a>
11761     command.
11762     </p>
11763     <p>Only unused effect instances can be added to the effect
11764     chain. Trying to add an effect instance which is already in
11765     use somewhere in the audio signal path of the sampler will
11766     result in an error.
11767     </p>
11768     <p>Possible Answers:
11769     </p>
11770     <p>
11771     </p>
11772     <blockquote class="text">
11773     <p>"OK" -
11774     </p>
11775     <blockquote class="text">
11776     <p>in case the effect instance was
11777     added successfully to the chain
11778     </p>
11779     </blockquote>
11780    
11781    
11782     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
11783     </p>
11784     <blockquote class="text">
11785     <p>if the effect instance could not be added
11786     </p>
11787     </blockquote>
11788    
11789    
11790     </blockquote><p>
11791    
11792     </p>
11793     <p>Examples:
11794     </p>
11795     <p>
11796     </p>
11797     <blockquote class="text">
11798     <p>C: "APPEND SEND_EFFECT_CHAIN EFFECT 0 2 38"
11799     </p>
11800     <p>S: "OK"
11801     </p>
11802     </blockquote><p>
11803    
11804     </p>
11805     <a name="INSERT SEND_EFFECT_CHAIN EFFECT"></a><br /><hr />
11806     <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>
11807     <a name="rfc.section.6.11.18"></a><h3>6.11.18.&nbsp;
11808     Insert effect instance to a send effect chain</h3>
11809    
11810     <p>The front-end can add an unused effect instance to a
11811     certain position of a send effect chain by sending the
11812     following command:
11813     </p>
11814     <p>
11815     </p>
11816     <blockquote class="text">
11817     <p>INSERT SEND_EFFECT_CHAIN EFFECT &lt;audio-device&gt; &lt;effect-chain&gt; &lt;chain-pos&gt; &lt;effect-instance&gt;
11818     </p>
11819     </blockquote><p>
11820    
11821     </p>
11822     <p>Where &lt;audio-device&gt; should be replaced by the
11823     numerical ID of the audio output device as given by the
11824     <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>
11825     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>
11826     command, &lt;effect-chain&gt; by the numerical ID as
11827     returned by the
11828     <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>
11829     or
11830     <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>
11831     command, &lt;effect-instance&gt; as returned by the
11832     <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
11833     <a class='info' href='#LIST EFFECT_INSTANCES'>"LIST EFFECT_INSTANCES"<span> (</span><span class='info'>Get list of effect instances</span><span>)</span></a>
11834     command and &lt;chain-pos&gt; the exact position of the
11835     effect chain where the supplied effect shall be inserted
11836     to.
11837     </p>
11838     <p>Only unused effect instances can be added to the effect
11839     chain. Trying to add an effect instance which is already in
11840     use somewhere in the audio signal path of the sampler will
11841     result in an error.
11842     </p>
11843     <p>Possible Answers:
11844     </p>
11845     <p>
11846     </p>
11847     <blockquote class="text">
11848     <p>"OK" -
11849     </p>
11850     <blockquote class="text">
11851     <p>in case the effect instance was
11852     added successfully to the chain
11853     </p>
11854     </blockquote>
11855    
11856    
11857     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
11858     </p>
11859     <blockquote class="text">
11860     <p>if the effect instance could not be added
11861     </p>
11862     </blockquote>
11863    
11864    
11865     </blockquote><p>
11866    
11867     </p>
11868     <p>Examples:
11869     </p>
11870     <p>
11871     </p>
11872     <blockquote class="text">
11873     <p>C: "INSERT SEND_EFFECT_CHAIN EFFECT 0 2 4 38"
11874     </p>
11875     <p>S: "OK"
11876     </p>
11877     </blockquote><p>
11878    
11879     </p>
11880     <a name="REMOVE SEND_EFFECT_CHAIN EFFECT"></a><br /><hr />
11881     <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>
11882     <a name="rfc.section.6.11.19"></a><h3>6.11.19.&nbsp;
11883     Remove effect instance from send effect chain</h3>
11884    
11885     <p>The front-end can remove an effect instance from a
11886     certain position of a send effect chain by sending the
11887     following command:
11888     </p>
11889     <p>
11890     </p>
11891     <blockquote class="text">
11892     <p>REMOVE SEND_EFFECT_CHAIN EFFECT &lt;audio-device&gt; &lt;effect-chain&gt; &lt;chain-pos&gt;
11893     </p>
11894     </blockquote><p>
11895    
11896     </p>
11897     <p>Where &lt;audio-device&gt; should be replaced by the
11898     numerical ID of the audio output device as given by the
11899     <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>
11900     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>
11901     command, &lt;effect-chain&gt; by the numerical ID as
11902     returned by the
11903     <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>
11904     or
11905     <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>
11906     command and &lt;chain-pos&gt; the exact position of the
11907     effect instance to be removed from the effect chain.
11908     </p>
11909     <p>Possible Answers:
11910     </p>
11911     <p>
11912     </p>
11913     <blockquote class="text">
11914     <p>"OK" -
11915     </p>
11916     <blockquote class="text">
11917     <p>in case the effect instance was
11918     removed successfully
11919     </p>
11920     </blockquote>
11921    
11922    
11923     <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
11924     </p>
11925     <blockquote class="text">
11926     <p>if the effect instance could not be removed
11927     </p>
11928     </blockquote>
11929    
11930    
11931     </blockquote><p>
11932    
11933     </p>
11934     <p>Examples:
11935     </p>
11936     <p>
11937     </p>
11938     <blockquote class="text">
11939     <p>C: "REMOVE SEND_EFFECT_CHAIN EFFECT 0 2 4"
11940     </p>
11941     <p>S: "OK"
11942     </p>
11943     </blockquote><p>
11944    
11945     </p>
11946     <a name="command_syntax"></a><br /><hr />
11947     <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>
11948     <a name="rfc.section.7"></a><h3>7.&nbsp;
11949     Command Syntax</h3>
11950    
11951     <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>
11952     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>)
11953     where applicable.
11954    
11955     </p>
11956     <p>input =
11957     </p>
11958     <blockquote class="text">
11959     <p>line LF
11960    
11961     </p>
11962     <p>/ line CR LF
11963    
11964     </p>
11965     </blockquote><p>
11966    
11967     </p>
11968     <p>line =
11969     </p>
11970     <blockquote class="text">
11971     <p>/* epsilon (empty line ignored) */
11972    
11973     </p>
11974     <p>/ comment
11975    
11976     </p>
11977     <p>/ command
11978    
11979     </p>
11980     <p>/ error
11981    
11982     </p>
11983     </blockquote><p>
11984    
11985     </p>
11986     <p>comment =
11987     </p>
11988     <blockquote class="text">
11989     <p>'#'
11990    
11991     </p>
11992     <p>/ comment '#'
11993    
11994     </p>
11995     <p>/ comment SP
11996    
11997     </p>
11998     <p>/ comment number
11999    
12000     </p>
12001     <p>/ comment string
12002    
12003     </p>
12004     </blockquote><p>
12005    
12006     </p>
12007     <p>command =
12008     </p>
12009     <blockquote class="text">
12010     <p>ADD SP add_instruction
12011    
12012     </p>
12013     <p>/ MAP SP map_instruction
12014    
12015     </p>
12016     <p>/ UNMAP SP unmap_instruction
12017    
12018     </p>
12019     <p>/ GET SP get_instruction
12020    
12021     </p>
12022     <p>/ CREATE SP create_instruction
12023    
12024     </p>
12025     <p>/ DESTROY SP destroy_instruction
12026    
12027     </p>
12028     <p>/ LIST SP list_instruction
12029    
12030     </p>
12031     <p>/ LOAD SP load_instruction
12032    
12033     </p>
12034     <p>/ REMOVE SP remove_instruction
12035    
12036     </p>
12037     <p>/ SET SP set_instruction
12038    
12039     </p>
12040     <p>/ SUBSCRIBE SP subscribe_event
12041    
12042     </p>
12043     <p>/ UNSUBSCRIBE SP unsubscribe_event
12044    
12045     </p>
12046     <p>/ RESET SP reset_instruction
12047    
12048     </p>
12049     <p>/ CLEAR SP clear_instruction
12050    
12051     </p>
12052     <p>/ FIND SP find_instruction
12053    
12054     </p>
12055     <p>/ MOVE SP move_instruction
12056    
12057     </p>
12058     <p>/ COPY SP copy_instruction
12059    
12060     </p>
12061     <p>/ EDIT SP edit_instruction
12062    
12063     </p>
12064     <p>/ FORMAT SP format_instruction
12065    
12066     </p>
12067     <p>/ SEND SP send_instruction
12068    
12069     </p>
12070     <p>/ APPEND SP append_instruction
12071    
12072     </p>
12073     <p>/ INSERT SP insert_instruction
12074    
12075     </p>
12076     <p>/ RESET
12077    
12078     </p>
12079     <p>/ QUIT
12080    
12081     </p>
12082     </blockquote><p>
12083    
12084     </p>
12085     <p>add_instruction =
12086     </p>
12087     <blockquote class="text">
12088     <p>CHANNEL
12089    
12090     </p>
12091     <p>/ CHANNEL SP MIDI_INPUT SP sampler_channel SP device_index
12092    
12093     </p>
12094     <p>/ CHANNEL SP MIDI_INPUT SP sampler_channel SP device_index SP midi_input_port_index
12095    
12096     </p>
12097     <p>/ DB_INSTRUMENT_DIRECTORY SP db_path
12098    
12099     </p>
12100     <p>/ DB_INSTRUMENTS SP NON_MODAL SP scan_mode SP db_path SP filename
12101    
12102     </p>
12103     <p>/ DB_INSTRUMENTS SP NON_MODAL SP scan_mode SP FILE_AS_DIR SP db_path SP filename
12104    
12105     </p>
12106     <p>/ DB_INSTRUMENTS SP scan_mode SP db_path SP filename
12107    
12108     </p>
12109     <p>/ DB_INSTRUMENTS SP scan_mode SP FILE_AS_DIR SP db_path SP filename
12110    
12111     </p>
12112     <p>/ DB_INSTRUMENTS SP NON_MODAL SP db_path SP filename
12113    
12114     </p>
12115     <p>/ DB_INSTRUMENTS SP NON_MODAL SP db_path SP filename SP instrument_index
12116    
12117     </p>
12118     <p>/ DB_INSTRUMENTS SP db_path SP filename
12119    
12120     </p>
12121     <p>/ DB_INSTRUMENTS SP db_path SP filename SP instrument_index
12122    
12123     </p>
12124     <p>/ MIDI_INSTRUMENT_MAP
12125    
12126     </p>
12127     <p>/ MIDI_INSTRUMENT_MAP SP map_name
12128    
12129     </p>
12130     <p>/ SEND_EFFECT_CHAIN SP device_index
12131    
12132     </p>
12133     </blockquote><p>
12134    
12135     </p>
12136     <p>subscribe_event =
12137     </p>
12138     <blockquote class="text">
12139     <p>AUDIO_OUTPUT_DEVICE_COUNT
12140    
12141     </p>
12142     <p>/ AUDIO_OUTPUT_DEVICE_INFO
12143    
12144     </p>
12145     <p>/ MIDI_INPUT_DEVICE_COUNT
12146    
12147     </p>
12148     <p>/ MIDI_INPUT_DEVICE_INFO
12149    
12150     </p>
12151     <p>/ CHANNEL_COUNT
12152    
12153     </p>
12154     <p>/ CHANNEL_MIDI
12155    
12156     </p>
12157     <p>/ DEVICE_MIDI
12158    
12159     </p>
12160     <p>/ VOICE_COUNT
12161    
12162     </p>
12163     <p>/ STREAM_COUNT
12164    
12165     </p>
12166     <p>/ BUFFER_FILL
12167    
12168     </p>
12169     <p>/ CHANNEL_INFO
12170    
12171     </p>
12172     <p>/ FX_SEND_COUNT
12173    
12174     </p>
12175     <p>/ FX_SEND_INFO
12176    
12177     </p>
12178     <p>/ MIDI_INSTRUMENT_MAP_COUNT
12179    
12180     </p>
12181     <p>/ MIDI_INSTRUMENT_MAP_INFO
12182    
12183     </p>
12184     <p>/ MIDI_INSTRUMENT_COUNT
12185    
12186     </p>
12187     <p>/ MIDI_INSTRUMENT_INFO
12188    
12189     </p>
12190     <p>/ DB_INSTRUMENT_DIRECTORY_COUNT
12191    
12192     </p>
12193     <p>/ DB_INSTRUMENT_DIRECTORY_INFO
12194    
12195     </p>
12196     <p>/ DB_INSTRUMENT_COUNT
12197    
12198     </p>
12199     <p>/ DB_INSTRUMENT_INFO
12200    
12201     </p>
12202     <p>/ DB_INSTRUMENTS_JOB_INFO
12203    
12204     </p>
12205     <p>/ MISCELLANEOUS
12206    
12207     </p>
12208     <p>/ TOTAL_STREAM_COUNT
12209    
12210     </p>
12211     <p>/ TOTAL_VOICE_COUNT
12212    
12213     </p>
12214     <p>/ GLOBAL_INFO
12215    
12216     </p>
12217     <p>/ EFFECT_INSTANCE_COUNT
12218    
12219     </p>
12220     <p>/ EFFECT_INSTANCE_INFO
12221    
12222     </p>
12223     <p>/ SEND_EFFECT_CHAIN_COUNT
12224    
12225     </p>
12226     <p>/ SEND_EFFECT_CHAIN_INFO
12227    
12228     </p>
12229     </blockquote><p>
12230    
12231     </p>
12232     <p>unsubscribe_event =
12233     </p>
12234     <blockquote class="text">
12235     <p>AUDIO_OUTPUT_DEVICE_COUNT
12236    
12237     </p>
12238     <p>/ AUDIO_OUTPUT_DEVICE_INFO
12239    
12240     </p>
12241     <p>/ MIDI_INPUT_DEVICE_COUNT
12242    
12243     </p>
12244     <p>/ MIDI_INPUT_DEVICE_INFO
12245    
12246     </p>
12247     <p>/ CHANNEL_COUNT
12248    
12249     </p>
12250     <p>/ CHANNEL_MIDI
12251    
12252     </p>
12253     <p>/ DEVICE_MIDI
12254    
12255     </p>
12256     <p>/ VOICE_COUNT
12257    
12258     </p>
12259     <p>/ STREAM_COUNT
12260    
12261     </p>
12262     <p>/ BUFFER_FILL
12263    
12264     </p>
12265     <p>/ CHANNEL_INFO
12266    
12267     </p>
12268     <p>/ FX_SEND_COUNT
12269    
12270     </p>
12271     <p>/ FX_SEND_INFO
12272    
12273     </p>
12274     <p>/ MIDI_INSTRUMENT_MAP_COUNT
12275    
12276     </p>
12277     <p>/ MIDI_INSTRUMENT_MAP_INFO
12278    
12279     </p>
12280     <p>/ MIDI_INSTRUMENT_COUNT
12281    
12282     </p>
12283     <p>/ MIDI_INSTRUMENT_INFO
12284    
12285     </p>
12286     <p>/ DB_INSTRUMENT_DIRECTORY_COUNT
12287    
12288     </p>
12289     <p>/ DB_INSTRUMENT_DIRECTORY_INFO
12290    
12291     </p>
12292     <p>/ DB_INSTRUMENT_COUNT
12293    
12294     </p>
12295     <p>/ DB_INSTRUMENT_INFO
12296    
12297     </p>
12298     <p>/ DB_INSTRUMENTS_JOB_INFO
12299    
12300     </p>
12301     <p>/ MISCELLANEOUS
12302    
12303     </p>
12304     <p>/ TOTAL_STREAM_COUNT
12305    
12306     </p>
12307     <p>/ TOTAL_VOICE_COUNT
12308    
12309     </p>
12310     <p>/ GLOBAL_INFO
12311    
12312     </p>
12313     <p>/ EFFECT_INSTANCE_COUNT
12314    
12315     </p>
12316     <p>/ EFFECT_INSTANCE_INFO
12317    
12318     </p>
12319     <p>/ SEND_EFFECT_CHAIN_COUNT
12320    
12321     </p>
12322     <p>/ SEND_EFFECT_CHAIN_INFO
12323    
12324     </p>
12325     </blockquote><p>
12326    
12327     </p>
12328     <p>map_instruction =
12329     </p>
12330     <blockquote class="text">
12331     <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
12332    
12333     </p>
12334     <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
12335    
12336     </p>
12337     <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
12338    
12339     </p>
12340     <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
12341    
12342     </p>
12343     </blockquote><p>
12344    
12345     </p>
12346     <p>unmap_instruction =
12347     </p>
12348     <blockquote class="text">
12349     <p>MIDI_INSTRUMENT SP midi_map SP midi_bank SP midi_prog
12350    
12351     </p>
12352     </blockquote><p>
12353    
12354     </p>
12355     <p>remove_instruction =
12356     </p>
12357     <blockquote class="text">
12358     <p>CHANNEL SP sampler_channel
12359    
12360     </p>
12361     <p>/ CHANNEL SP MIDI_INPUT SP sampler_channel
12362    
12363     </p>
12364     <p>/ CHANNEL SP MIDI_INPUT SP sampler_channel SP device_index
12365    
12366     </p>
12367     <p>/ CHANNEL SP MIDI_INPUT SP sampler_channel SP device_index SP midi_input_port_index
12368    
12369     </p>
12370     <p>/ MIDI_INSTRUMENT_MAP SP midi_map
12371    
12372     </p>
12373     <p>/ MIDI_INSTRUMENT_MAP SP ALL
12374    
12375     </p>
12376     <p>/ SEND_EFFECT_CHAIN SP device_index SP effect_chain
12377    
12378     </p>
12379     <p>/ SEND_EFFECT_CHAIN SP EFFECT SP device_index SP effect_chain SP chain_pos
12380    
12381     </p>
12382     <p>/ FX_SEND SP EFFECT SP sampler_channel SP fx_send_id
12383    
12384     </p>
12385     <p>/ DB_INSTRUMENT_DIRECTORY SP FORCE SP db_path
12386    
12387     </p>
12388     <p>/ DB_INSTRUMENT_DIRECTORY SP db_path
12389    
12390     </p>
12391     <p>/ DB_INSTRUMENT SP db_path
12392    
12393     </p>
12394     </blockquote><p>
12395    
12396     </p>
12397     <p>get_instruction =
12398     </p>
12399     <blockquote class="text">
12400     <p>AVAILABLE_ENGINES
12401    
12402     </p>
12403     <p>/ AVAILABLE_EFFECTS
12404    
12405     </p>
12406     <p>/ EFFECT_INSTANCES
12407    
12408     </p>
12409     <p>/ EFFECT SP INFO SP effect_index
12410    
12411     </p>
12412     <p>/ EFFECT_INSTANCE SP INFO SP effect_instance
12413    
12414     </p>
12415     <p>/ EFFECT_INSTANCE_INPUT_CONTROL SP INFO SP effect_instance SP input_control
12416    
12417     </p>
12418     <p>/ SEND_EFFECT_CHAINS SP device_index
12419    
12420     </p>
12421     <p>/ SEND_EFFECT_CHAIN SP INFO SP device_index SP effect_chain
12422    
12423     </p>
12424     <p>/ AVAILABLE_MIDI_INPUT_DRIVERS
12425    
12426     </p>
12427     <p>/ MIDI_INPUT_DRIVER SP INFO SP string
12428    
12429     </p>
12430     <p>/ MIDI_INPUT_DRIVER_PARAMETER SP INFO SP string SP string
12431    
12432     </p>
12433     <p>/ MIDI_INPUT_DRIVER_PARAMETER SP INFO SP string SP string SP key_val_list
12434    
12435     </p>
12436     <p>/ AVAILABLE_AUDIO_OUTPUT_DRIVERS
12437    
12438     </p>
12439     <p>/ AUDIO_OUTPUT_DRIVER SP INFO SP string
12440    
12441     </p>
12442     <p>/ AUDIO_OUTPUT_DRIVER_PARAMETER SP INFO SP string SP string
12443    
12444     </p>
12445     <p>/ AUDIO_OUTPUT_DRIVER_PARAMETER SP INFO SP string SP string SP key_val_list
12446    
12447     </p>
12448     <p>/ AUDIO_OUTPUT_DEVICES
12449    
12450     </p>
12451     <p>/ MIDI_INPUT_DEVICES
12452    
12453     </p>
12454     <p>/ AUDIO_OUTPUT_DEVICE SP INFO SP number
12455    
12456     </p>
12457     <p>/ MIDI_INPUT_DEVICE SP INFO SP number
12458    
12459     </p>
12460     <p>/ MIDI_INPUT_PORT SP INFO SP number SP number
12461    
12462     </p>
12463     <p>/ MIDI_INPUT_PORT_PARAMETER SP INFO SP number SP number SP string
12464    
12465     </p>
12466     <p>/ AUDIO_OUTPUT_CHANNEL SP INFO SP number SP number
12467    
12468     </p>
12469     <p>/ AUDIO_OUTPUT_CHANNEL_PARAMETER SP INFO SP number SP number SP string
12470    
12471     </p>
12472     <p>/ CHANNELS
12473    
12474     </p>
12475     <p>/ CHANNEL SP INFO SP sampler_channel
12476    
12477     </p>
12478     <p>/ CHANNEL SP BUFFER_FILL SP buffer_size_type SP sampler_channel
12479    
12480     </p>
12481     <p>/ CHANNEL SP STREAM_COUNT SP sampler_channel
12482    
12483     </p>
12484     <p>/ CHANNEL SP VOICE_COUNT SP sampler_channel
12485    
12486     </p>
12487     <p>/ ENGINE SP INFO SP engine_name
12488    
12489     </p>
12490     <p>/ SERVER SP INFO
12491    
12492     </p>
12493     <p>/ TOTAL_STREAM_COUNT
12494    
12495     </p>
12496     <p>/ TOTAL_VOICE_COUNT
12497    
12498     </p>
12499     <p>/ TOTAL_VOICE_COUNT_MAX
12500    
12501     </p>
12502     <p>/ MIDI_INSTRUMENTS SP midi_map
12503    
12504     </p>
12505     <p>/ MIDI_INSTRUMENTS SP ALL
12506    
12507     </p>
12508     <p>/ MIDI_INSTRUMENT SP INFO SP midi_map SP midi_bank SP midi_prog
12509    
12510     </p>
12511     <p>/ MIDI_INSTRUMENT_MAPS
12512    
12513     </p>
12514     <p>/ MIDI_INSTRUMENT_MAP SP INFO SP midi_map
12515    
12516     </p>
12517     <p>/ FX_SENDS SP sampler_channel
12518    
12519     </p>
12520     <p>/ FX_SEND SP INFO SP sampler_channel SP fx_send_id
12521    
12522     </p>
12523     <p>/ DB_INSTRUMENT_DIRECTORIES SP RECURSIVE SP db_path
12524    
12525     </p>
12526     <p>/ DB_INSTRUMENT_DIRECTORIES SP db_path
12527    
12528     </p>
12529     <p>/ DB_INSTRUMENT_DIRECTORY SP INFO SP db_path
12530    
12531     </p>
12532     <p>/ DB_INSTRUMENTS SP RECURSIVE SP db_path
12533    
12534     </p>
12535     <p>/ DB_INSTRUMENTS SP db_path
12536    
12537     </p>
12538     <p>/ DB_INSTRUMENT SP INFO SP db_path
12539    
12540     </p>
12541     <p>/ DB_INSTRUMENTS_JOB SP INFO SP number
12542    
12543     </p>
12544     <p>/ VOLUME
12545    
12546     </p>
12547     <p>/ VOICES
12548    
12549     </p>
12550     <p>/ STREAMS
12551    
12552     </p>
12553     <p>/ FILE SP INSTRUMENTS SP filename
12554    
12555     </p>
12556     <p>/ FILE SP INSTRUMENT SP INFO SP filename SP instrument_index
12557    
12558     </p>
12559     </blockquote><p>
12560    
12561     </p>
12562     <p>set_instruction =
12563     </p>
12564     <blockquote class="text">
12565     <p>AUDIO_OUTPUT_DEVICE_PARAMETER SP number SP string '=' param_val_list
12566    
12567     </p>
12568     <p>/ AUDIO_OUTPUT_CHANNEL_PARAMETER SP number SP number SP string '=' param_val_list
12569    
12570     </p>
12571     <p>/ MIDI_INPUT_DEVICE_PARAMETER SP number SP string '=' param_val_list
12572    
12573     </p>
12574     <p>/ MIDI_INPUT_PORT_PARAMETER SP number SP number SP string '=' NONE
12575    
12576     </p>
12577     <p>/ MIDI_INPUT_PORT_PARAMETER SP number SP number SP string '=' param_val_list
12578    
12579     </p>
12580     <p>/ EFFECT_INSTANCE_INPUT_CONTROL SP VALUE SP effect_instance SP input_control SP control_value
12581    
12582     </p>
12583     <p>/ CHANNEL SP set_chan_instruction
12584    
12585     </p>
12586     <p>/ MIDI_INSTRUMENT_MAP SP NAME SP midi_map SP map_name
12587    
12588     </p>
12589     <p>/ FX_SEND SP NAME SP sampler_channel SP fx_send_id SP fx_send_name
12590    
12591     </p>
12592     <p>/ FX_SEND SP AUDIO_OUTPUT_CHANNEL SP sampler_channel SP fx_send_id SP audio_channel_index SP audio_channel_index
12593    
12594     </p>
12595     <p>/ FX_SEND SP MIDI_CONTROLLER SP sampler_channel SP fx_send_id SP midi_ctrl
12596    
12597     </p>
12598     <p>/ FX_SEND SP LEVEL SP sampler_channel SP fx_send_id SP volume_value
12599    
12600     </p>
12601     <p>/ FX_SEND SP EFFECT SP sampler_channel SP fx_send_id SP effect_chain SP chain_pos
12602    
12603     </p>
12604     <p>/ DB_INSTRUMENT_DIRECTORY SP NAME SP db_path SP stringval_escaped
12605    
12606     </p>
12607     <p>/ DB_INSTRUMENT_DIRECTORY SP DESCRIPTION SP db_path SP stringval_escaped
12608    
12609     </p>
12610     <p>/ DB_INSTRUMENT SP NAME SP db_path SP stringval_escaped
12611    
12612     </p>
12613     <p>/ DB_INSTRUMENT SP DESCRIPTION SP db_path SP stringval_escaped
12614    
12615     </p>
12616     <p>/ DB_INSTRUMENT SP FILE_PATH SP filename SP filename
12617    
12618     </p>
12619     <p>/ ECHO SP boolean
12620    
12621     </p>
12622     <p>/ VOLUME SP volume_value
12623    
12624     </p>
12625     <p>/ VOICES SP number
12626    
12627     </p>
12628     <p>/ STREAMS SP number
12629    
12630     </p>
12631     </blockquote><p>
12632    
12633     </p>
12634     <p>create_instruction =
12635     </p>
12636     <blockquote class="text">
12637     <p>AUDIO_OUTPUT_DEVICE SP string SP key_val_list
12638    
12639     </p>
12640     <p>/ AUDIO_OUTPUT_DEVICE SP string
12641    
12642     </p>
12643     <p>/ MIDI_INPUT_DEVICE SP string SP key_val_list
12644    
12645     </p>
12646     <p>/ MIDI_INPUT_DEVICE SP string
12647    
12648     </p>
12649     <p>/ FX_SEND SP sampler_channel SP midi_ctrl
12650    
12651     </p>
12652     <p>/ FX_SEND SP sampler_channel SP midi_ctrl SP fx_send_name
12653    
12654     </p>
12655     <p>/ EFFECT_INSTANCE SP effect_index
12656    
12657     </p>
12658     <p>/ EFFECT_INSTANCE SP effect_system SP module SP effect_name
12659    
12660     </p>
12661     </blockquote><p>
12662    
12663     </p>
12664     <p>reset_instruction =
12665     </p>
12666     <blockquote class="text">
12667     <p>CHANNEL SP sampler_channel
12668    
12669     </p>
12670     </blockquote><p>
12671    
12672     </p>
12673     <p>clear_instruction =
12674     </p>
12675     <blockquote class="text">
12676     <p>MIDI_INSTRUMENTS SP midi_map
12677    
12678     </p>
12679     <p>/ MIDI_INSTRUMENTS SP ALL
12680    
12681     </p>
12682     </blockquote><p>
12683    
12684     </p>
12685     <p>find_instruction =
12686     </p>
12687     <blockquote class="text">
12688     <p>DB_INSTRUMENTS SP NON_RECURSIVE SP db_path SP query_val_list
12689    
12690     </p>
12691     <p>/ DB_INSTRUMENTS SP db_path SP query_val_list
12692    
12693     </p>
12694     <p>/ DB_INSTRUMENT_DIRECTORIES SP NON_RECURSIVE SP db_path SP query_val_list
12695    
12696     </p>
12697     <p>/ DB_INSTRUMENT_DIRECTORIES SP db_path SP query_val_list
12698    
12699     </p>
12700     <p>/ LOST SP DB_INSTRUMENT_FILES
12701    
12702     </p>
12703     </blockquote><p>
12704    
12705     </p>
12706     <p>move_instruction =
12707     </p>
12708     <blockquote class="text">
12709     <p>DB_INSTRUMENT_DIRECTORY SP db_path SP db_path
12710    
12711     </p>
12712     <p>/ DB_INSTRUMENT SP db_path SP db_path
12713    
12714     </p>
12715     </blockquote><p>
12716    
12717     </p>
12718     <p>copy_instruction =
12719     </p>
12720     <blockquote class="text">
12721     <p>DB_INSTRUMENT_DIRECTORY SP db_path SP db_path
12722    
12723     </p>
12724     <p>/ DB_INSTRUMENT SP db_path SP db_path
12725    
12726     </p>
12727     </blockquote><p>
12728    
12729     </p>
12730     <p>destroy_instruction =
12731     </p>
12732     <blockquote class="text">
12733     <p>AUDIO_OUTPUT_DEVICE SP number
12734    
12735     </p>
12736     <p>/ MIDI_INPUT_DEVICE SP number
12737    
12738     </p>
12739     <p>/ FX_SEND SP sampler_channel SP fx_send_id
12740    
12741     </p>
12742     <p>/ EFFECT_INSTANCE SP number
12743    
12744     </p>
12745     </blockquote><p>
12746    
12747     </p>
12748     <p>load_instruction =
12749     </p>
12750     <blockquote class="text">
12751     <p>INSTRUMENT SP load_instr_args
12752    
12753     </p>
12754     <p>/ ENGINE SP load_engine_args
12755    
12756     </p>
12757     </blockquote><p>
12758    
12759     </p>
12760     <p>append_instruction =
12761     </p>
12762     <blockquote class="text">
12763     <p>SEND_EFFECT_CHAIN SP EFFECT SP device_index SP effect_chain SP effect_instance
12764    
12765     </p>
12766     </blockquote><p>
12767    
12768     </p>
12769     <p>insert_instruction =
12770     </p>
12771     <blockquote class="text">
12772     <p>SEND_EFFECT_CHAIN SP EFFECT SP device_index SP effect_chain SP chain_pos SP effect_instance
12773    
12774     </p>
12775     </blockquote><p>
12776    
12777     </p>
12778     <p>set_chan_instruction =
12779     </p>
12780     <blockquote class="text">
12781     <p>AUDIO_OUTPUT_DEVICE SP sampler_channel SP device_index
12782    
12783     </p>
12784     <p>/ AUDIO_OUTPUT_CHANNEL SP sampler_channel SP audio_channel_index SP audio_channel_index
12785    
12786     </p>
12787     <p>/ AUDIO_OUTPUT_TYPE SP sampler_channel SP audio_output_type_name
12788    
12789     </p>
12790     <p>/ MIDI_INPUT SP sampler_channel SP device_index SP midi_input_port_index SP midi_input_channel_index
12791    
12792     </p>
12793     <p>/ MIDI_INPUT_DEVICE SP sampler_channel SP device_index
12794    
12795     </p>
12796     <p>/ MIDI_INPUT_PORT SP sampler_channel SP midi_input_port_index
12797    
12798     </p>
12799     <p>/ MIDI_INPUT_CHANNEL SP sampler_channel SP midi_input_channel_index
12800    
12801     </p>
12802     <p>/ MIDI_INPUT_TYPE SP sampler_channel SP midi_input_type_name
12803    
12804     </p>
12805     <p>/ VOLUME SP sampler_channel SP volume_value
12806    
12807     </p>
12808     <p>/ MUTE SP sampler_channel SP boolean
12809    
12810     </p>
12811     <p>/ SOLO SP sampler_channel SP boolean
12812    
12813     </p>
12814     <p>/ MIDI_INSTRUMENT_MAP SP sampler_channel SP midi_map
12815    
12816     </p>
12817     <p>/ MIDI_INSTRUMENT_MAP SP sampler_channel SP NONE
12818    
12819     </p>
12820     <p>/ MIDI_INSTRUMENT_MAP SP sampler_channel SP DEFAULT
12821    
12822     </p>
12823     </blockquote><p>
12824    
12825     </p>
12826     <p>edit_instruction =
12827     </p>
12828     <blockquote class="text">
12829     <p>CHANNEL SP INSTRUMENT SP sampler_channel
12830    
12831     </p>
12832     </blockquote><p>
12833    
12834     </p>
12835     <p>format_instruction =
12836     </p>
12837     <blockquote class="text">
12838     <p>INSTRUMENTS_DB
12839    
12840     </p>
12841     </blockquote><p>
12842    
12843     </p>
12844     <p>modal_arg =
12845     </p>
12846     <blockquote class="text">
12847     <p>/* epsilon (empty argument) */
12848    
12849     </p>
12850     <p>/ NON_MODAL SP
12851    
12852     </p>
12853     </blockquote><p>
12854    
12855     </p>
12856     <p>key_val_list =
12857     </p>
12858     <blockquote class="text">
12859     <p>string '=' param_val_list
12860    
12861     </p>
12862     <p>/ key_val_list SP string '=' param_val_list
12863    
12864     </p>
12865     </blockquote><p>
12866    
12867     </p>
12868     <p>buffer_size_type =
12869     </p>
12870     <blockquote class="text">
12871     <p>BYTES
12872    
12873     </p>
12874     <p>/ PERCENTAGE
12875    
12876     </p>
12877     </blockquote><p>
12878    
12879     </p>
12880     <p>list_instruction =
12881     </p>
12882     <blockquote class="text">
12883     <p>AUDIO_OUTPUT_DEVICES
12884    
12885     </p>
12886     <p>/ MIDI_INPUT_DEVICES
12887    
12888     </p>
12889     <p>/ CHANNELS
12890    
12891     </p>
12892     <p>/ CHANNEL SP MIDI_INPUTS SP sampler_channel
12893    
12894     </p>
12895     <p>/ AVAILABLE_ENGINES
12896    
12897     </p>
12898     <p>/ AVAILABLE_EFFECTS
12899    
12900     </p>
12901     <p>/ EFFECT_INSTANCES
12902    
12903     </p>
12904     <p>/ SEND_EFFECT_CHAINS SP number
12905    
12906     </p>
12907     <p>/ AVAILABLE_MIDI_INPUT_DRIVERS
12908    
12909     </p>
12910     <p>/ AVAILABLE_AUDIO_OUTPUT_DRIVERS
12911    
12912     </p>
12913     <p>/ MIDI_INSTRUMENTS SP midi_map
12914    
12915     </p>
12916     <p>/ MIDI_INSTRUMENTS SP ALL
12917    
12918     </p>
12919     <p>/ MIDI_INSTRUMENT_MAPS
12920    
12921     </p>
12922     <p>/ FX_SENDS SP sampler_channel
12923    
12924     </p>
12925     <p>/ DB_INSTRUMENT_DIRECTORIES SP RECURSIVE SP db_path
12926    
12927     </p>
12928     <p>/ DB_INSTRUMENT_DIRECTORIES SP db_path
12929    
12930     </p>
12931     <p>/ DB_INSTRUMENTS SP RECURSIVE SP db_path
12932    
12933     </p>
12934     <p>/ DB_INSTRUMENTS SP db_path
12935    
12936     </p>
12937     <p>/ FILE SP INSTRUMENTS SP filename
12938    
12939     </p>
12940     </blockquote><p>
12941    
12942     </p>
12943     <p>send_instruction =
12944     </p>
12945     <blockquote class="text">
12946     <p>CHANNEL SP MIDI_DATA SP string SP sampler_channel SP number SP number
12947    
12948     </p>
12949     </blockquote><p>
12950    
12951     </p>
12952     <p>load_instr_args =
12953     </p>
12954     <blockquote class="text">
12955     <p>filename SP instrument_index SP sampler_channel
12956    
12957     </p>
12958     <p>/ NON_MODAL SP filename SP instrument_index SP sampler_channel
12959    
12960     </p>
12961     </blockquote><p>
12962    
12963     </p>
12964     <p>load_engine_args =
12965     </p>
12966     <blockquote class="text">
12967     <p>engine_name SP sampler_channel
12968    
12969     </p>
12970     </blockquote><p>
12971    
12972     </p>
12973     <p>instr_load_mode =
12974     </p>
12975     <blockquote class="text">
12976     <p>ON_DEMAND
12977    
12978     </p>
12979     <p>/ ON_DEMAND_HOLD
12980    
12981     </p>
12982     <p>/ PERSISTENT
12983    
12984     </p>
12985     </blockquote><p>
12986    
12987     </p>
12988     <p>effect_instance =
12989     </p>
12990     <blockquote class="text">
12991     <p>number
12992    
12993     </p>
12994     </blockquote><p>
12995    
12996     </p>
12997     <p>device_index =
12998     </p>
12999     <blockquote class="text">
13000     <p>number
13001    
13002     </p>
13003     </blockquote><p>
13004    
13005     </p>
13006     <p>audio_channel_index =
13007     </p>
13008     <blockquote class="text">
13009     <p>number
13010    
13011     </p>
13012     </blockquote><p>
13013    
13014     </p>
13015     <p>audio_output_type_name =
13016     </p>
13017     <blockquote class="text">
13018     <p>string
13019    
13020     </p>
13021     </blockquote><p>
13022    
13023     </p>
13024     <p>midi_input_port_index =
13025     </p>
13026     <blockquote class="text">
13027     <p>number
13028    
13029     </p>
13030     </blockquote><p>
13031    
13032     </p>
13033     <p>midi_input_channel_index =
13034     </p>
13035     <blockquote class="text">
13036     <p>number
13037    
13038     </p>
13039     <p>/ ALL
13040    
13041     </p>
13042     </blockquote><p>
13043    
13044     </p>
13045     <p>midi_input_type_name =
13046     </p>
13047     <blockquote class="text">
13048     <p>string
13049    
13050     </p>
13051     </blockquote><p>
13052    
13053     </p>
13054     <p>midi_map =
13055     </p>
13056     <blockquote class="text">
13057     <p>number
13058    
13059     </p>
13060     </blockquote><p>
13061    
13062     </p>
13063     <p>midi_bank =
13064     </p>
13065     <blockquote class="text">
13066     <p>number
13067    
13068     </p>
13069     </blockquote><p>
13070    
13071     </p>
13072     <p>midi_prog =
13073     </p>
13074     <blockquote class="text">
13075     <p>number
13076    
13077     </p>
13078     </blockquote><p>
13079    
13080     </p>
13081     <p>midi_ctrl =
13082     </p>
13083     <blockquote class="text">
13084     <p>number
13085    
13086     </p>
13087     </blockquote><p>
13088    
13089     </p>
13090     <p>volume_value =
13091     </p>
13092     <blockquote class="text">
13093     <p>dotnum
13094    
13095     </p>
13096     <p>/ number
13097    
13098     </p>
13099     </blockquote><p>
13100    
13101     </p>
13102     <p>control_value =
13103     </p>
13104     <blockquote class="text">
13105     <p>real
13106    
13107     </p>
13108     </blockquote><p>
13109    
13110     </p>
13111     <p>sampler_channel =
13112     </p>
13113     <blockquote class="text">
13114     <p>number
13115    
13116     </p>
13117     </blockquote><p>
13118    
13119     </p>
13120     <p>instrument_index =
13121     </p>
13122     <blockquote class="text">
13123     <p>number
13124    
13125     </p>
13126     </blockquote><p>
13127    
13128     </p>
13129     <p>fx_send_id =
13130     </p>
13131     <blockquote class="text">
13132     <p>number
13133    
13134     </p>
13135     </blockquote><p>
13136    
13137     </p>
13138     <p>engine_name =
13139     </p>
13140     <blockquote class="text">
13141     <p>string
13142    
13143     </p>
13144     </blockquote><p>
13145    
13146     </p>
13147     <p>filename =
13148     </p>
13149     <blockquote class="text">
13150     <p>path
13151    
13152     </p>
13153     </blockquote><p>
13154    
13155     </p>
13156     <p>db_path =
13157     </p>
13158     <blockquote class="text">
13159     <p>path
13160    
13161     </p>
13162     </blockquote><p>
13163    
13164     </p>
13165     <p>map_name =
13166     </p>
13167     <blockquote class="text">
13168     <p>stringval_escaped
13169    
13170     </p>
13171     </blockquote><p>
13172    
13173     </p>
13174     <p>entry_name =
13175     </p>
13176     <blockquote class="text">
13177     <p>stringval_escaped
13178    
13179     </p>
13180     </blockquote><p>
13181    
13182     </p>
13183     <p>fx_send_name =
13184     </p>
13185     <blockquote class="text">
13186     <p>stringval_escaped
13187    
13188     </p>
13189     </blockquote><p>
13190    
13191     </p>
13192     <p>effect_name =
13193     </p>
13194     <blockquote class="text">
13195     <p>stringval_escaped
13196    
13197     </p>
13198     </blockquote><p>
13199    
13200     </p>
13201     <p>effect_index =
13202     </p>
13203     <blockquote class="text">
13204     <p>number
13205    
13206     </p>
13207     </blockquote><p>
13208    
13209     </p>
13210     <p>effect_chain =
13211     </p>
13212     <blockquote class="text">
13213     <p>number
13214    
13215     </p>
13216     </blockquote><p>
13217    
13218     </p>
13219     <p>chain_pos =
13220     </p>
13221     <blockquote class="text">
13222     <p>number
13223    
13224     </p>
13225     </blockquote><p>
13226    
13227     </p>
13228     <p>input_control =
13229     </p>
13230     <blockquote class="text">
13231     <p>number
13232    
13233     </p>
13234     </blockquote><p>
13235    
13236     </p>
13237     <p>param_val_list =
13238     </p>
13239     <blockquote class="text">
13240     <p>param_val
13241    
13242     </p>
13243     <p>/ param_val_list','param_val
13244    
13245     </p>
13246     </blockquote><p>
13247    
13248     </p>
13249     <p>param_val =
13250     </p>
13251     <blockquote class="text">
13252     <p>string
13253    
13254     </p>
13255     <p>/ stringval
13256    
13257     </p>
13258     <p>/ number
13259    
13260     </p>
13261     <p>/ dotnum
13262    
13263     </p>
13264     </blockquote><p>
13265    
13266     </p>
13267     <p>query_val_list =
13268     </p>
13269     <blockquote class="text">
13270     <p>string '=' query_val
13271    
13272     </p>
13273     <p>/ query_val_list SP string '=' query_val
13274    
13275     </p>
13276     </blockquote><p>
13277    
13278     </p>
13279     <p>query_val =
13280     </p>
13281     <blockquote class="text">
13282     <p>text_escaped
13283    
13284     </p>
13285     <p>/ stringval_escaped
13286    
13287     </p>
13288     </blockquote><p>
13289    
13290     </p>
13291     <p>scan_mode =
13292     </p>
13293     <blockquote class="text">
13294     <p>RECURSIVE
13295    
13296     </p>
13297     <p>/ NON_RECURSIVE
13298    
13299     </p>
13300     <p>/ FLAT
13301    
13302     </p>
13303     </blockquote><p>
13304    
13305     </p>
13306     <p>effect_system =
13307     </p>
13308     <blockquote class="text">
13309     <p>string
13310    
13311     </p>
13312     </blockquote><p>
13313    
13314     </p>
13315     <p>module =
13316     </p>
13317     <blockquote class="text">
13318     <p>filename
13319    
13320     </p>
13321     </blockquote><p>
13322    
13323     </p>
13324     <a name="character_set"></a><br /><hr />
13325     <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>
13326     <a name="rfc.section.7.1"></a><h3>7.1.&nbsp;
13327     Character Set and Escape Sequences</h3>
13328    
13329     <p>Older versions of this protocol up to and including v1.1 only
13330     supported the standard ASCII character set (ASCII code 0 - 127)
13331     <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
13332     however support the Extended ASCII character set (ASCII code
13333     0 - 255). The same group of younger protocols also support
13334     escape sequences, but only for certain, explicitly declared
13335     parts of the protocol. The supported escape sequences are
13336     defined as follows:
13337     </p><table class="full" align="center" border="0" cellpadding="2" cellspacing="2">
13338     <col align="left"><col align="left">
13339     <tr><th align="left">ASCII Character Sequence</th><th align="left">Translated into (Name)</th></tr>
13340     <tr>
13341     <td align="left">\n</td>
13342     <td align="left">new line</td>
13343     </tr>
13344     <tr>
13345     <td align="left">\r</td>
13346     <td align="left">carriage return</td>
13347     </tr>
13348     <tr>
13349     <td align="left">\f</td>
13350     <td align="left">form feed</td>
13351     </tr>
13352     <tr>
13353     <td align="left">\t</td>
13354     <td align="left">horizontal tab</td>
13355     </tr>
13356     <tr>
13357     <td align="left">\v</td>
13358     <td align="left">vertical tab</td>
13359     </tr>
13360     <tr>
13361     <td align="left">\'</td>
13362     <td align="left">apostrophe</td>
13363     </tr>
13364     <tr>
13365     <td align="left">\"</td>
13366     <td align="left">quotation mark</td>
13367     </tr>
13368     <tr>
13369     <td align="left">\\</td>
13370     <td align="left">backslash</td>
13371     </tr>
13372     <tr>
13373     <td align="left">\OOO</td>
13374     <td align="left">three digit octal ASCII code of the character</td>
13375     </tr>
13376     <tr>
13377     <td align="left">\xHH</td>
13378     <td align="left">two digit hex ASCII code of the character</td>
13379     </tr>
13380     </table>
13381     <br clear="all" />
13382    
13383     <p>Notice: due to the transition of certain parts of the
13384     protocol which now support escape sequences, a slight backward
13385     incompatibility to protocols version v1.1 and younger has been
13386     introduced. The only difference is that in parts of the protocol
13387     where escape characters are now supported, a backslash characters
13388     MUST be escaped as well (that is as double backslash), whereas
13389     in the old versions a single backslash was sufficient.
13390     </p>
13391     <p>The following LSCP commands support escape sequences as part
13392     of their filename / path based arguments and / or may contain
13393     a filename / path with escape sequences in their response:
13394     </p>
13395     <blockquote class="text">
13396     <p><a class='info' href='#LOAD INSTRUMENT'>"LOAD INSTRUMENT"<span> (</span><span class='info'>Loading an instrument</span><span>)</span></a>
13397     </p>
13398     <p><a class='info' href='#GET CHANNEL INFO'>"GET CHANNEL INFO"<span> (</span><span class='info'>Getting sampler channel information</span><span>)</span></a>
13399     </p>
13400     <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>
13401     </p>
13402     <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>
13403     </p>
13404     <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>
13405     </p>
13406     <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>
13407     </p>
13408     <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>
13409     </p>
13410     <p><a class='info' href='#REMOVE DB_INSTRUMENT'>"REMOVE DB_INSTRUMENT"<span> (</span><span class='info'>Removing an instrument</span><span>)</span></a>
13411     </p>
13412     <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>
13413     </p>
13414     <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>
13415     </p>
13416     <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>
13417     </p>
13418     <p><a class='info' href='#GET DB_INSTRUMENTS'>"GET DB_INSTRUMENTS"<span> (</span><span class='info'>Getting amount of instruments</span><span>)</span></a>
13419     </p>
13420     <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>
13421     </p>
13422     <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>
13423     </p>
13424     <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>
13425     </p>
13426     <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>
13427     </p>
13428     <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>
13429     </p>
13430     <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>
13431     </p>
13432     <p><a class='info' href='#FIND DB_INSTRUMENTS'>"FIND DB_INSTRUMENTS"<span> (</span><span class='info'>Finding instruments</span><span>)</span></a>
13433     </p>
13434     <p><a class='info' href='#FIND DB_INSTRUMENT_DIRECTORIES'>"FIND DB_INSTRUMENT_DIRECTORIES"<span> (</span><span class='info'>Finding directories</span><span>)</span></a>
13435     </p>
13436     <p><a class='info' href='#MOVE DB_INSTRUMENT'>"MOVE DB_INSTRUMENT"<span> (</span><span class='info'>Moving an instrument</span><span>)</span></a>
13437     </p>
13438     <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>
13439     </p>
13440     <p><a class='info' href='#COPY DB_INSTRUMENT'>"COPY DB_INSTRUMENT"<span> (</span><span class='info'>Copying instruments</span><span>)</span></a>
13441     </p>
13442     <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>
13443     </p>
13444     <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>
13445     </p>
13446     <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>
13447     </p>
13448     <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>
13449     </p>
13450     <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>
13451     </p>
13452     <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>
13453     </p>
13454     <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>
13455     </p>
13456     <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>
13457     </p>
13458     <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>
13459     </p>
13460     </blockquote><p>
13461     Note that the forward slash character ('/') has a special meaning in
13462     filename / path based arguments: it acts as separator of the nodes in
13463     the path, thus if a directory- or filename includes a forward slash
13464     (not intended as path node separator), you MUST escape that slash
13465     either with the respective hex escape sequence ("\x2f") or with the
13466     respective octal escape sequence ("\057").
13467    
13468     </p>
13469     <p>
13470     Note for Windows: file path arguments in LSCP are expected
13471     to use forward slashes as directory node separator similar
13472     to Unix based operating systems. In contrast to Unix however
13473     a Windows typical drive character is expected to be
13474     prefixed to the path. That is an original Windows file path
13475     like "D:\Sounds\My.gig" would become in LSCP:
13476     "D:/Sounds/My.gig".
13477    
13478     </p>
13479     <p>
13480     The following LSCP commands even support escape sequences as
13481     part of at least one of their text-based arguments (i.e. entity name,
13482     description) and / or may contain escape sequences in at least one of
13483     their text-based fields in their response:
13484     </p>
13485     <blockquote class="text">
13486     <p><a class='info' href='#GET SERVER INFO'>"GET SERVER INFO"<span> (</span><span class='info'>General sampler informations</span><span>)</span></a>
13487     </p>
13488     <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>
13489     </p>
13490     <p><a class='info' href='#GET CHANNEL INFO'>"GET CHANNEL INFO"<span> (</span><span class='info'>Getting sampler channel information</span><span>)</span></a>
13491     </p>
13492     <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>
13493     </p>
13494     <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>
13495     </p>
13496     <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>
13497     </p>
13498     <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>
13499     </p>
13500     <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>
13501     </p>
13502     <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>
13503     </p>
13504     <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>
13505     </p>
13506     <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>
13507     </p>
13508     <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>
13509     </p>
13510     <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>
13511     </p>
13512     <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>
13513     </p>
13514     <p><a class='info' href='#FIND DB_INSTRUMENT_DIRECTORIES'>"FIND DB_INSTRUMENT_DIRECTORIES"<span> (</span><span class='info'>Finding directories</span><span>)</span></a>
13515     </p>
13516     <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>
13517     </p>
13518     <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>
13519     </p>
13520     <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>
13521     </p>
13522     <p><a class='info' href='#FIND DB_INSTRUMENTS'>"FIND DB_INSTRUMENTS"<span> (</span><span class='info'>Finding instruments</span><span>)</span></a>
13523     </p>
13524     <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>
13525     </p>
13526     <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>
13527     </p>
13528     <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>
13529     </p>
13530     </blockquote><p>
13531     Please note that these lists are manually maintained. If you
13532     find a command that also supports escape sequences we forgot to
13533     mention here, please report it!
13534    
13535     </p>
13536     <a name="events"></a><br /><hr />
13537     <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>
13538     <a name="rfc.section.8"></a><h3>8.&nbsp;
13539     Events</h3>
13540    
13541     <p>This chapter will describe all currently defined events supported by LinuxSampler.
13542     </p>
13543     <a name="SUBSCRIBE AUDIO_OUTPUT_DEVICE_COUNT"></a><br /><hr />
13544     <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>
13545     <a name="rfc.section.8.1"></a><h3>8.1.&nbsp;
13546     Number of audio output devices changed</h3>
13547    
13548     <p>Client may want to be notified when the total number of audio output devices on the
13549     back-end changes by issuing the following command:
13550     </p>
13551     <p>
13552     </p>
13553     <blockquote class="text">
13554     <p>SUBSCRIBE AUDIO_OUTPUT_DEVICE_COUNT
13555     </p>
13556     </blockquote><p>
13557    
13558     </p>
13559     <p>Server will start sending the following notification messages:
13560     </p>
13561     <p>
13562     </p>
13563     <blockquote class="text">
13564     <p>"NOTIFY:AUDIO_OUTPUT_DEVICE_COUNT:&lt;devices&gt;"
13565     </p>
13566     </blockquote><p>
13567    
13568     </p>
13569     <p>where &lt;devices&gt; will be replaced by the new number
13570     of audio output devices.
13571     </p>
13572     <a name="SUBSCRIBE AUDIO_OUTPUT_DEVICE_INFO"></a><br /><hr />
13573     <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>
13574     <a name="rfc.section.8.2"></a><h3>8.2.&nbsp;
13575     Audio output device's settings changed</h3>
13576    
13577     <p>Client may want to be notified when changes were made to audio output devices on the
13578     back-end by issuing the following command:
13579     </p>
13580     <p>
13581     </p>
13582     <blockquote class="text">
13583     <p>SUBSCRIBE AUDIO_OUTPUT_DEVICE_INFO
13584     </p>
13585     </blockquote><p>
13586    
13587     </p>
13588     <p>Server will start sending the following notification messages:
13589     </p>
13590     <p>
13591     </p>
13592     <blockquote class="text">
13593     <p>"NOTIFY:AUDIO_OUTPUT_DEVICE_INFO:&lt;device-id&gt;"
13594     </p>
13595     </blockquote><p>
13596    
13597     </p>
13598     <p>where &lt;device-id&gt; will be replaced by the numerical ID of the audio output device,
13599     which settings has been changed. The front-end will have to send
13600     the respective command to actually get the audio output device info. Because these messages
13601     will be triggered by LSCP commands issued by other clients rather than real
13602     time events happening on the server, it is believed that an empty notification
13603     message is sufficient here.
13604     </p>
13605     <a name="SUBSCRIBE MIDI_INPUT_DEVICE_COUNT"></a><br /><hr />
13606     <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>
13607     <a name="rfc.section.8.3"></a><h3>8.3.&nbsp;
13608     Number of MIDI input devices changed</h3>
13609    
13610     <p>Client may want to be notified when the total number of MIDI input devices on the
13611     back-end changes by issuing the following command:
13612     </p>
13613     <p>
13614     </p>
13615     <blockquote class="text">
13616     <p>SUBSCRIBE MIDI_INPUT_DEVICE_COUNT
13617     </p>
13618     </blockquote><p>
13619    
13620     </p>
13621     <p>Server will start sending the following notification messages:
13622     </p>
13623     <p>
13624     </p>
13625     <blockquote class="text">
13626     <p>"NOTIFY:MIDI_INPUT_DEVICE_COUNT:&lt;devices&gt;"
13627     </p>
13628     </blockquote><p>
13629    
13630     </p>
13631     <p>where &lt;devices&gt; will be replaced by the new number
13632     of MIDI input devices.
13633     </p>
13634     <a name="SUBSCRIBE MIDI_INPUT_DEVICE_INFO"></a><br /><hr />
13635     <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>
13636     <a name="rfc.section.8.4"></a><h3>8.4.&nbsp;
13637     MIDI input device's settings changed</h3>
13638    
13639     <p>Client may want to be notified when changes were made to MIDI input devices on the
13640     back-end by issuing the following command:
13641     </p>
13642     <p>
13643     </p>
13644     <blockquote class="text">
13645     <p>SUBSCRIBE MIDI_INPUT_DEVICE_INFO
13646     </p>
13647     </blockquote><p>
13648    
13649     </p>
13650     <p>Server will start sending the following notification messages:
13651     </p>
13652     <p>
13653     </p>
13654     <blockquote class="text">
13655     <p>"NOTIFY:MIDI_INPUT_DEVICE_INFO:&lt;device-id&gt;"
13656     </p>
13657     </blockquote><p>
13658    
13659     </p>
13660     <p>where &lt;device-id&gt; will be replaced by the numerical ID of the MIDI input device,
13661     which settings has been changed. The front-end will have to send
13662     the respective command to actually get the MIDI input device info. Because these messages
13663     will be triggered by LSCP commands issued by other clients rather than real
13664     time events happening on the server, it is believed that an empty notification
13665     message is sufficient here.
13666     </p>
13667     <a name="SUBSCRIBE CHANNEL_COUNT"></a><br /><hr />
13668     <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>
13669     <a name="rfc.section.8.5"></a><h3>8.5.&nbsp;
13670     Number of sampler channels changed</h3>
13671    
13672     <p>Client may want to be notified when the total number of channels on the
13673     back-end changes by issuing the following command:
13674     </p>
13675     <p>
13676     </p>
13677     <blockquote class="text">
13678     <p>SUBSCRIBE CHANNEL_COUNT
13679     </p>
13680     </blockquote><p>
13681    
13682     </p>
13683     <p>Server will start sending the following notification messages:
13684     </p>
13685     <p>
13686     </p>
13687     <blockquote class="text">
13688     <p>"NOTIFY:CHANNEL_COUNT:&lt;channels&gt;"
13689     </p>
13690     </blockquote><p>
13691    
13692     </p>
13693     <p>where &lt;channels&gt; will be replaced by the new number
13694     of sampler channels.
13695     </p>
13696     <a name="SUBSCRIBE CHANNEL_MIDI"></a><br /><hr />
13697     <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>
13698     <a name="rfc.section.8.6"></a><h3>8.6.&nbsp;
13699     MIDI data on a sampler channel arrived</h3>
13700    
13701     <p>Client may want to be notified when MIDI data arrive on sampler channels on
13702     back-end side, by issuing the following command:
13703     </p>
13704     <p>
13705     </p>
13706     <blockquote class="text">
13707     <p>SUBSCRIBE CHANNEL_MIDI
13708     </p>
13709     </blockquote><p>
13710    
13711     </p>
13712     <p>Server will start sending one of the the following notification messages:
13713     </p>
13714     <p>
13715     </p>
13716     <blockquote class="text">
13717     <p>"NOTIFY:CHANNEL_MIDI:&lt;channel-id&gt; NOTE_ON &lt;note&gt; &lt;velocity&gt;"
13718     </p>
13719     <p>"NOTIFY:CHANNEL_MIDI:&lt;channel-id&gt; NOTE_OFF &lt;note&gt; &lt;velocity&gt;"
13720     </p>
13721     </blockquote><p>
13722    
13723     </p>
13724     <p>where &lt;channel-id&gt; will be replaced by the ID of the sampler channel where the MIDI
13725     data arrived. &lt;note&gt; and &lt;velocity&gt; are integer values in the range between
13726     0 .. 127, reflecting the analog meaning of the MIDI specification.
13727    
13728     </p>
13729     <p>CAUTION: no guarantee whatsoever will be made that MIDI events are actually all
13730     delivered by this mechanism! With other words: events could be lost at any time!
13731     This restriction was made to keep the RT-safeness of the backend's MIDI and audio
13732     thread unaffected by this feature.
13733     </p>
13734     <a name="SUBSCRIBE DEVICE_MIDI"></a><br /><hr />
13735     <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>
13736     <a name="rfc.section.8.7"></a><h3>8.7.&nbsp;
13737     MIDI data on a MIDI input device arrived</h3>
13738    
13739     <p>Client may want to be notified when MIDI data arrive on MIDI input devices by issuing the following command:
13740     </p>
13741     <p>
13742     </p>
13743     <blockquote class="text">
13744     <p>SUBSCRIBE DEVICE_MIDI
13745     </p>
13746     </blockquote><p>
13747    
13748     </p>
13749     <p>Server will start sending one of the the following notification messages:
13750     </p>
13751     <p>
13752     </p>
13753     <blockquote class="text">
13754     <p>"NOTIFY:DEVICE_MIDI:&lt;device-id&gt; &lt;port-id&gt; NOTE_ON &lt;note&gt; &lt;velocity&gt;"
13755     </p>
13756     <p>"NOTIFY:DEVICE_MIDI:&lt;device-id&gt; &lt;port-id&gt; NOTE_OFF &lt;note&gt; &lt;velocity&gt;"
13757     </p>
13758     </blockquote><p>
13759    
13760     </p>
13761     <p>where &lt;device-id&gt; &lt;port-id&gt; will be replaced
13762     by the IDs of the respective MIDI input device and the device's MIDI port where the MIDI
13763     data arrived. &lt;note&gt; and &lt;velocity&gt; are integer values in the range between
13764     0 .. 127, reflecting the analog meaning of the MIDI specification.
13765    
13766     </p>
13767     <p>CAUTION: no guarantee whatsoever will be made that MIDI events are actually all
13768     delivered by this mechanism! With other words: events could be lost at any time!
13769     This restriction was made to keep the RT-safeness of the backend's MIDI and audio
13770     thread unaffected by this feature.
13771     </p>
13772     <a name="SUBSCRIBE VOICE_COUNT"></a><br /><hr />
13773     <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>
13774     <a name="rfc.section.8.8"></a><h3>8.8.&nbsp;
13775     Number of active voices changed</h3>
13776    
13777     <p>Client may want to be notified when the number of voices on the
13778     back-end changes by issuing the following command:
13779     </p>
13780     <p>
13781     </p>
13782     <blockquote class="text">
13783     <p>SUBSCRIBE VOICE_COUNT
13784     </p>
13785     </blockquote><p>
13786    
13787     </p>
13788     <p>Server will start sending the following notification messages:
13789     </p>
13790     <p>
13791     </p>
13792     <blockquote class="text">
13793     <p>"NOTIFY:VOICE_COUNT:&lt;sampler-channel&gt; &lt;voices&gt;"
13794     </p>
13795     </blockquote><p>
13796    
13797     </p>
13798     <p>where &lt;sampler-channel&gt; will be replaced by the sampler channel the
13799     voice count change occurred and &lt;voices&gt; by the new number of
13800     active voices on that channel.
13801     </p>
13802     <a name="SUBSCRIBE STREAM_COUNT"></a><br /><hr />
13803     <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>
13804     <a name="rfc.section.8.9"></a><h3>8.9.&nbsp;
13805     Number of active disk streams changed</h3>
13806    
13807     <p>Client may want to be notified when the number of streams on the back-end
13808     changes by issuing the following command: SUBSCRIBE STREAM_COUNT
13809     </p>
13810     <p>
13811     </p>
13812     <blockquote class="text">
13813     <p>SUBSCRIBE STREAM_COUNT
13814     </p>
13815     </blockquote><p>
13816    
13817     </p>
13818     <p>Server will start sending the following notification messages:
13819     </p>
13820     <p>
13821     </p>
13822     <blockquote class="text">
13823     <p>"NOTIFY:STREAM_COUNT:&lt;sampler-channel&gt; &lt;streams&gt;"
13824     </p>
13825     </blockquote><p>
13826    
13827     </p>
13828     <p>where &lt;sampler-channel&gt; will be replaced by the sampler channel the
13829     stream count change occurred and &lt;streams&gt; by the new number of
13830     active disk streams on that channel.
13831     </p>
13832     <a name="SUBSCRIBE BUFFER_FILL"></a><br /><hr />
13833     <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>
13834     <a name="rfc.section.8.10"></a><h3>8.10.&nbsp;
13835     Disk stream buffer fill state changed</h3>
13836    
13837     <p>Client may want to be notified when the buffer fill state of a disk stream
13838     on the back-end changes by issuing the following command:
13839     </p>
13840     <p>
13841     </p>
13842     <blockquote class="text">
13843     <p>SUBSCRIBE BUFFER_FILL
13844     </p>
13845     </blockquote><p>
13846    
13847     </p>
13848     <p>Server will start sending the following notification messages:
13849     </p>
13850     <p>
13851     </p>
13852     <blockquote class="text">
13853     <p>"NOTIFY:BUFFER_FILL:&lt;sampler-channel&gt; &lt;fill-data&gt;"
13854     </p>
13855     </blockquote><p>
13856    
13857     </p>
13858     <p>where &lt;sampler-channel&gt; will be replaced by the sampler channel the
13859     buffer fill state change occurred on and &lt;fill-data&gt; will be replaced by the
13860     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>
13861     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.
13862     </p>
13863     <a name="SUBSCRIBE CHANNEL_INFO"></a><br /><hr />
13864     <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>
13865     <a name="rfc.section.8.11"></a><h3>8.11.&nbsp;
13866     Channel information changed</h3>
13867    
13868     <p>Client may want to be notified when changes were made to sampler channels on the
13869     back-end by issuing the following command:
13870     </p>
13871     <p>
13872     </p>
13873     <blockquote class="text">
13874     <p>SUBSCRIBE CHANNEL_INFO
13875     </p>
13876     </blockquote><p>
13877    
13878     </p>
13879     <p>Server will start sending the following notification messages:
13880     </p>
13881     <p>
13882     </p>
13883     <blockquote class="text">
13884     <p>"NOTIFY:CHANNEL_INFO:&lt;sampler-channel&gt;"
13885     </p>
13886     </blockquote><p>
13887    
13888     </p>
13889     <p>where &lt;sampler-channel&gt; will be replaced by the sampler channel the
13890     channel info change occurred. The front-end will have to send
13891     the respective command to actually get the channel info. Because these messages
13892     will be triggered by LSCP commands issued by other clients rather than real
13893     time events happening on the server, it is believed that an empty notification
13894     message is sufficient here.
13895     </p>
13896     <a name="SUBSCRIBE FX_SEND_COUNT"></a><br /><hr />
13897     <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>
13898     <a name="rfc.section.8.12"></a><h3>8.12.&nbsp;
13899     Number of effect sends changed</h3>
13900    
13901     <p>Client may want to be notified when the number of effect sends on
13902     a particular sampler channel is changed by issuing the following command:
13903     </p>
13904     <p>
13905     </p>
13906     <blockquote class="text">
13907     <p>SUBSCRIBE FX_SEND_COUNT
13908     </p>
13909     </blockquote><p>
13910    
13911     </p>
13912     <p>Server will start sending the following notification messages:
13913     </p>
13914     <p>
13915     </p>
13916     <blockquote class="text">
13917     <p>"NOTIFY:FX_SEND_COUNT:&lt;channel-id&gt; &lt;fx-sends&gt;"
13918     </p>
13919     </blockquote><p>
13920    
13921     </p>
13922     <p>where &lt;channel-id&gt; will be replaced by the numerical ID of the sampler
13923     channel, on which the effect sends number is changed and &lt;fx-sends&gt; will
13924     be replaced by the new number of effect sends on that channel.
13925     </p>
13926     <a name="SUBSCRIBE FX_SEND_INFO"></a><br /><hr />
13927     <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>
13928     <a name="rfc.section.8.13"></a><h3>8.13.&nbsp;
13929     Effect send information changed</h3>
13930    
13931     <p>Client may want to be notified when changes were made to effect sends on a
13932     a particular sampler channel by issuing the following command:
13933     </p>
13934     <p>
13935     </p>
13936     <blockquote class="text">
13937     <p>SUBSCRIBE FX_SEND_INFO
13938     </p>
13939     </blockquote><p>
13940    
13941     </p>
13942     <p>Server will start sending the following notification messages:
13943     </p>
13944     <p>
13945     </p>
13946     <blockquote class="text">
13947     <p>"NOTIFY:FX_SEND_INFO:&lt;channel-id&gt; &lt;fx-send-id&gt;"
13948     </p>
13949     </blockquote><p>
13950    
13951     </p>
13952     <p>where &lt;channel-id&gt; will be replaced by the numerical ID of the sampler
13953     channel, on which an effect send entity is changed and &lt;fx-send-id&gt; will
13954     be replaced by the numerical ID of the changed effect send.
13955     </p>
13956     <a name="SUBSCRIBE TOTAL_VOICE_COUNT"></a><br /><hr />
13957     <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>
13958     <a name="rfc.section.8.14"></a><h3>8.14.&nbsp;
13959     Total number of active voices changed</h3>
13960    
13961     <p>Client may want to be notified when the total number of voices on the
13962     back-end changes by issuing the following command:
13963     </p>
13964     <p>
13965     </p>
13966     <blockquote class="text">
13967     <p>SUBSCRIBE TOTAL_VOICE_COUNT
13968     </p>
13969     </blockquote><p>
13970    
13971     </p>
13972     <p>Server will start sending the following notification messages:
13973     </p>
13974     <p>
13975     </p>
13976     <blockquote class="text">
13977     <p>"NOTIFY:TOTAL_VOICE_COUNT:&lt;voices&gt;"
13978     </p>
13979     </blockquote><p>
13980    
13981     </p>
13982     <p>where &lt;voices&gt; will be replaced by the new number of
13983     all currently active voices.
13984     </p>
13985     <a name="SUBSCRIBE TOTAL_STREAM_COUNT"></a><br /><hr />
13986     <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>
13987     <a name="rfc.section.8.15"></a><h3>8.15.&nbsp;
13988     Total number of active disk streams changed</h3>
13989    
13990     <p>Client may want to be notified when the total number of disk streams on the
13991     back-end changes by issuing the following command:
13992     </p>
13993     <p>
13994     </p>
13995     <blockquote class="text">
13996     <p>SUBSCRIBE TOTAL_STREAM_COUNT
13997     </p>
13998     </blockquote><p>
13999    
14000     </p>
14001     <p>Server will start sending the following notification messages:
14002     </p>
14003     <p>
14004     </p>
14005     <blockquote class="text">
14006     <p>"NOTIFY:TOTAL_STREAM_COUNT:&lt;streams&gt;"
14007     </p>
14008     </blockquote><p>
14009    
14010     </p>
14011     <p>where &lt;streams&gt; will be replaced by the new number of
14012     all currently active disk streams.
14013     </p>
14014     <a name="SUBSCRIBE MIDI_INSTRUMENT_MAP_COUNT"></a><br /><hr />
14015     <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>
14016     <a name="rfc.section.8.16"></a><h3>8.16.&nbsp;
14017     Number of MIDI instrument maps changed</h3>
14018    
14019     <p>Client may want to be notified when the number of MIDI instrument maps on the
14020     back-end changes by issuing the following command:
14021     </p>
14022     <p>
14023     </p>
14024     <blockquote class="text">
14025     <p>SUBSCRIBE MIDI_INSTRUMENT_MAP_COUNT
14026     </p>
14027     </blockquote><p>
14028    
14029     </p>
14030     <p>Server will start sending the following notification messages:
14031     </p>
14032     <p>
14033     </p>
14034     <blockquote class="text">
14035     <p>"NOTIFY:MIDI_INSTRUMENT_MAP_COUNT:&lt;maps&gt;"
14036     </p>
14037     </blockquote><p>
14038    
14039     </p>
14040     <p>where &lt;maps&gt; will be replaced by the new number
14041     of MIDI instrument maps.
14042     </p>
14043     <a name="SUBSCRIBE MIDI_INSTRUMENT_MAP_INFO"></a><br /><hr />
14044     <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>
14045     <a name="rfc.section.8.17"></a><h3>8.17.&nbsp;
14046     MIDI instrument map information changed</h3>
14047    
14048     <p>Client may want to be notified when changes were made to MIDI instrument maps on the
14049     back-end by issuing the following command:
14050     </p>
14051     <p>
14052     </p>
14053     <blockquote class="text">
14054     <p>SUBSCRIBE MIDI_INSTRUMENT_MAP_INFO
14055     </p>
14056     </blockquote><p>
14057    
14058     </p>
14059     <p>Server will start sending the following notification messages:
14060     </p>
14061     <p>
14062     </p>
14063     <blockquote class="text">
14064     <p>"NOTIFY:MIDI_INSTRUMENT_MAP_INFO:&lt;map-id&gt;"
14065     </p>
14066     </blockquote><p>
14067    
14068     </p>
14069     <p>where &lt;map-id&gt; will be replaced by the numerical ID of the MIDI instrument map,
14070     for which information changes occurred. The front-end will have to send
14071     the respective command to actually get the MIDI instrument map info. Because these messages
14072     will be triggered by LSCP commands issued by other clients rather than real
14073     time events happening on the server, it is believed that an empty notification
14074     message is sufficient here.
14075     </p>
14076     <a name="SUBSCRIBE MIDI_INSTRUMENT_COUNT"></a><br /><hr />
14077     <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>
14078     <a name="rfc.section.8.18"></a><h3>8.18.&nbsp;
14079     Number of MIDI instruments changed</h3>
14080    
14081     <p>Client may want to be notified when the number of MIDI instrument maps on the
14082     back-end changes by issuing the following command:
14083     </p>
14084     <p>
14085     </p>
14086     <blockquote class="text">
14087     <p>SUBSCRIBE MIDI_INSTRUMENT_COUNT
14088     </p>
14089     </blockquote><p>
14090    
14091     </p>
14092     <p>Server will start sending the following notification messages:
14093     </p>
14094     <p>
14095     </p>
14096     <blockquote class="text">
14097     <p>"NOTIFY:MIDI_INSTRUMENT_COUNT:&lt;map-id&gt; &lt;instruments&gt;"
14098     </p>
14099     </blockquote><p>
14100    
14101     </p>
14102     <p>where &lt;map-id&gt; is the numerical ID of the MIDI instrument map, in which
14103     the nuber of instruments has changed and &lt;instruments&gt; will be replaced by
14104     the new number of MIDI instruments in the specified map.
14105     </p>
14106     <a name="SUBSCRIBE MIDI_INSTRUMENT_INFO"></a><br /><hr />
14107     <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>
14108     <a name="rfc.section.8.19"></a><h3>8.19.&nbsp;
14109     MIDI instrument information changed</h3>
14110    
14111     <p>Client may want to be notified when changes were made to MIDI instruments on the
14112     back-end by issuing the following command:
14113     </p>
14114     <p>
14115     </p>
14116     <blockquote class="text">
14117     <p>SUBSCRIBE MIDI_INSTRUMENT_INFO
14118     </p>
14119     </blockquote><p>
14120    
14121     </p>
14122     <p>Server will start sending the following notification messages:
14123     </p>
14124     <p>
14125     </p>
14126     <blockquote class="text">
14127     <p>"NOTIFY:MIDI_INSTRUMENT_INFO:&lt;map-id&gt; &lt;bank&gt; &lt;program&gt;"
14128     </p>
14129     </blockquote><p>
14130    
14131     </p>
14132     <p>where &lt;map-id&gt; will be replaced by the numerical ID of the MIDI instrument map,
14133     in which a MIDI instrument is changed. &lt;bank&gt; and &lt;program&gt; specifies
14134     the location of the changed MIDI instrument in the map. The front-end will have to send
14135     the respective command to actually get the MIDI instrument info. Because these messages
14136     will be triggered by LSCP commands issued by other clients rather than real
14137     time events happening on the server, it is believed that an empty notification
14138     message is sufficient here.
14139     </p>
14140     <a name="SUBSCRIBE GLOBAL_INFO"></a><br /><hr />
14141     <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>
14142     <a name="rfc.section.8.20"></a><h3>8.20.&nbsp;
14143     Global settings changed</h3>
14144    
14145     <p>Client may want to be notified when changes to the global settings
14146     of the sampler were made by issuing the following command:
14147     </p>
14148     <p>
14149     </p>
14150     <blockquote class="text">
14151     <p>SUBSCRIBE GLOBAL_INFO
14152     </p>
14153     </blockquote><p>
14154    
14155     </p>
14156     <p>Server will start sending the following types of notification messages:
14157     </p>
14158     <p>
14159     </p>
14160     <blockquote class="text">
14161     <p>"NOTIFY:GLOBAL_INFO:VOLUME &lt;volume&gt;" - Notifies that the
14162     golbal volume of the sampler is changed, where &lt;volume&gt; will be
14163     replaced by the optional dotted floating point value, reflecting the
14164     new global volume parameter.
14165     </p>
14166     </blockquote><p>
14167     </p>
14168     <blockquote class="text">
14169     <p>"NOTIFY:GLOBAL_INFO:VOICES &lt;max-voices&gt;" - Notifies that the
14170     golbal limit of the sampler for maximum voices is changed, where
14171     &lt;max-voices&gt; will be an integer value, reflecting the
14172     new global voice limit parameter.
14173     </p>
14174     </blockquote><p>
14175     </p>
14176     <blockquote class="text">
14177     <p>"NOTIFY:GLOBAL_INFO:STREAMS &lt;max-streams&gt;" - Notifies that the
14178     golbal limit of the sampler for maximum disk streams is changed, where
14179     &lt;max-streams&gt; will be an integer value, reflecting the
14180     new global disk streams limit parameter.
14181     </p>
14182     </blockquote><p>
14183    
14184     </p>
14185     <a name="SUBSCRIBE DB_INSTRUMENT_DIRECTORY_COUNT"></a><br /><hr />
14186     <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>
14187     <a name="rfc.section.8.21"></a><h3>8.21.&nbsp;
14188     Number of database instrument directories changed</h3>
14189    
14190     <p>Client may want to be notified when the number of instrument
14191     directories in a particular directory in the instruments database
14192     is changed by issuing the following command:
14193     </p>
14194     <p>
14195     </p>
14196     <blockquote class="text">
14197     <p>SUBSCRIBE DB_INSTRUMENT_DIRECTORY_COUNT
14198     </p>
14199     </blockquote><p>
14200    
14201     </p>
14202     <p>Server will start sending the following notification messages:
14203     </p>
14204     <p>
14205     </p>
14206     <blockquote class="text">
14207     <p>"NOTIFY:DB_INSTRUMENT_DIRECTORY_COUNT:&lt;dir-path&gt;"
14208     </p>
14209     </blockquote><p>
14210    
14211     </p>
14212     <p>where &lt;dir-path&gt; will be replaced by the absolute path
14213     name of the directory in the instruments database,
14214     in which the number of directories is changed.
14215     </p>
14216     <p>Note that when a non-empty directory is removed, this event
14217     is not sent for the subdirectories in that directory.
14218     </p>
14219     <a name="SUBSCRIBE DB_INSTRUMENT_DIRECTORY_INFO"></a><br /><hr />
14220     <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>
14221     <a name="rfc.section.8.22"></a><h3>8.22.&nbsp;
14222     Database instrument directory information changed</h3>
14223    
14224     <p>Client may want to be notified when changes were made to directories
14225     in the instruments database by issuing the following command:
14226     </p>
14227     <p>
14228     </p>
14229     <blockquote class="text">
14230     <p>SUBSCRIBE DB_INSTRUMENT_DIRECTORY_INFO
14231     </p>
14232     </blockquote><p>
14233    
14234     </p>
14235     <p>Server will start sending the following notification messages:
14236     </p>
14237     <p>
14238     </p>
14239     <blockquote class="text">
14240     <p>"NOTIFY:DB_INSTRUMENT_DIRECTORY_INFO:&lt;dir-path&gt;"
14241     </p>
14242     </blockquote><p>
14243    
14244     </p>
14245     <p>where &lt;dir-path&gt; will be replaced by the absolute path name
14246     of the directory, for which information changes occurred. The front-end will have to send
14247     the respective command to actually get the updated directory info. Because these messages
14248     will be triggered by LSCP commands issued by other clients rather than real
14249     time events happening on the server, it is believed that an empty notification
14250     message is sufficient here.
14251     </p>
14252     <p>
14253     </p>
14254     <blockquote class="text">
14255     <p>"NOTIFY:DB_INSTRUMENT_DIRECTORY_INFO:NAME &lt;old-dir-path&gt; &lt;new-name&gt;"
14256     </p>
14257     </blockquote><p>
14258    
14259     </p>
14260     <p>where &lt;old-dir-path&gt; is the old absolute path name of the directory
14261     (encapsulated into apostrophes), which name is changes and &lt;new-name&gt; is
14262     the new name of the directory, encapsulated into apostrophes.
14263     </p>
14264     <a name="SUBSCRIBE DB_INSTRUMENT_COUNT"></a><br /><hr />
14265     <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>
14266     <a name="rfc.section.8.23"></a><h3>8.23.&nbsp;
14267     Number of database instruments changed</h3>
14268    
14269     <p>Client may want to be notified when the number of instruments
14270     in a particular directory in the instruments database
14271     is changed by issuing the following command:
14272     </p>
14273     <p>
14274     </p>
14275     <blockquote class="text">
14276     <p>SUBSCRIBE DB_INSTRUMENT_COUNT
14277     </p>
14278     </blockquote><p>
14279    
14280     </p>
14281     <p>Server will start sending the following notification messages:
14282     </p>
14283     <p>
14284     </p>
14285     <blockquote class="text">
14286     <p>"NOTIFY:DB_INSTRUMENT_COUNT:&lt;dir-path&gt;"
14287     </p>
14288     </blockquote><p>
14289    
14290     </p>
14291     <p>where &lt;dir-path&gt; will be replaced by the absolute path
14292     name of the directory in the instruments database,
14293     in which the number of instruments is changed.
14294     </p>
14295     <p>Note that when a non-empty directory is removed, this event
14296     is not sent for the instruments in that directory.
14297     </p>
14298     <a name="SUBSCRIBE DB_INSTRUMENT_INFO"></a><br /><hr />
14299     <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>
14300     <a name="rfc.section.8.24"></a><h3>8.24.&nbsp;
14301     Database instrument information changed</h3>
14302    
14303     <p>Client may want to be notified when changes were made to instruments
14304     in the instruments database by issuing the following command:
14305     </p>
14306     <p>
14307     </p>
14308     <blockquote class="text">
14309     <p>SUBSCRIBE DB_INSTRUMENT_INFO
14310     </p>
14311     </blockquote><p>
14312    
14313     </p>
14314     <p>Server will start sending the following notification messages:
14315     </p>
14316     <p>
14317     </p>
14318     <blockquote class="text">
14319     <p>"NOTIFY:DB_INSTRUMENT_INFO:&lt;instr-path&gt;"
14320     </p>
14321     </blockquote><p>
14322    
14323     </p>
14324     <p>where &lt;instr-path&gt; will be replaced by the absolute path name
14325     of the instrument, which settings are changed. The front-end will have to send
14326     the respective command to actually get the updated directory info. Because these messages
14327     will be triggered by LSCP commands issued by other clients rather than real
14328     time events happening on the server, it is believed that an empty notification
14329     message is sufficient here.
14330     </p>
14331     <p>
14332     </p>
14333     <blockquote class="text">
14334     <p>"NOTIFY:DB_INSTRUMENT_INFO:NAME &lt;old-instr-path&gt; &lt;new-name&gt;"
14335     </p>
14336     </blockquote><p>
14337    
14338     </p>
14339     <p>where &lt;old-instr-path&gt; is the old absolute path name of the instrument
14340     (encapsulated into apostrophes), which name is changes and &lt;new-name&gt; is
14341     the new name of the instrument, encapsulated into apostrophes.
14342     </p>
14343     <a name="SUBSCRIBE DB_INSTRUMENTS_JOB_INFO"></a><br /><hr />
14344     <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>
14345     <a name="rfc.section.8.25"></a><h3>8.25.&nbsp;
14346     Database job status information changed</h3>
14347    
14348     <p>Client may want to be notified when the status of particular database
14349     instruments job is changed by issuing the following command:
14350     </p>
14351     <p>
14352     </p>
14353     <blockquote class="text">
14354     <p>SUBSCRIBE DB_INSTRUMENTS_JOB_INFO
14355     </p>
14356     </blockquote><p>
14357    
14358     </p>
14359     <p>Server will start sending the following notification messages:
14360     </p>
14361     <p>
14362     </p>
14363     <blockquote class="text">
14364     <p>"NOTIFY:DB_INSTRUMENTS_JOB_INFO:&lt;job-id&gt;"
14365     </p>
14366     </blockquote><p>
14367    
14368     </p>
14369     <p>where &lt;job-id&gt; will be replaced by the numerical ID of the job,
14370     which status is changed. The front-end will have to send the respective
14371     command to actually get the status info. Because these messages
14372     will be triggered by LSCP commands issued by other clients rather than real
14373     time events happening on the server, it is believed that an empty notification
14374     message is sufficient here.
14375     </p>
14376     <a name="SUBSCRIBE EFFECT_INSTANCE_COUNT"></a><br /><hr />
14377     <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>
14378     <a name="rfc.section.8.26"></a><h3>8.26.&nbsp;
14379     Number of effect instances changed</h3>
14380    
14381     <p>Client may want to be notified when the number of effect instances
14382     is changed by issuing the following command:
14383     </p>
14384     <p>
14385     </p>
14386     <blockquote class="text">
14387     <p>SUBSCRIBE EFFECT_INSTANCE_COUNT
14388     </p>
14389     </blockquote><p>
14390    
14391     </p>
14392     <p>Server will start sending the following notification messages:
14393     </p>
14394     <p>
14395     </p>
14396     <blockquote class="text">
14397     <p>"EFFECT_INSTANCE_COUNT:&lt;instances&gt;"
14398     </p>
14399     </blockquote><p>
14400    
14401     </p>
14402     <p>where &lt;instances&gt; will be replaced by the new number
14403     of effect instances.
14404     </p>
14405     <a name="SUBSCRIBE EFFECT_INSTANCE_INFO"></a><br /><hr />
14406     <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>
14407     <a name="rfc.section.8.27"></a><h3>8.27.&nbsp;
14408     Effect instance information changed</h3>
14409    
14410     <p>Client may want to be notified when changes were made to effect instances
14411     on the back-end by issuing the following command:
14412     </p>
14413     <p>
14414     </p>
14415     <blockquote class="text">
14416     <p>SUBSCRIBE EFFECT_INSTANCE_INFO
14417     </p>
14418     </blockquote><p>
14419    
14420     </p>
14421     <p>Server will start sending the following notification messages:
14422     </p>
14423     <p>
14424     </p>
14425     <blockquote class="text">
14426     <p>"EFFECT_INSTANCE_INFO:&lt;instance-id&gt;"
14427     </p>
14428     </blockquote><p>
14429    
14430     </p>
14431     <p>where &lt;instance-id&gt; will be replaced by the numerical ID
14432     of the effect instance.
14433     </p>
14434     <a name="SUBSCRIBE SEND_EFFECT_CHAIN_COUNT"></a><br /><hr />
14435     <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>
14436     <a name="rfc.section.8.28"></a><h3>8.28.&nbsp;
14437     Number of send effect chains changed</h3>
14438    
14439     <p>Client may want to be notified when the number of send effect chains
14440     is changed by issuing the following command:
14441     </p>
14442     <p>
14443     </p>
14444     <blockquote class="text">
14445     <p>SUBSCRIBE SEND_EFFECT_CHAIN_COUNT
14446     </p>
14447     </blockquote><p>
14448    
14449     </p>
14450     <p>Server will start sending the following notification messages:
14451     </p>
14452     <p>
14453     </p>
14454     <blockquote class="text">
14455     <p>"NOTIFY:SEND_EFFECT_CHAIN_COUNT:&lt;device-id&gt; &lt;chains&gt;"
14456     </p>
14457     </blockquote><p>
14458    
14459     </p>
14460     <p>where &lt;device-id&gt; will be replaced by the numerical ID of the audio
14461     output device, in which the number of send effect chains is changed and
14462     &lt;chains&gt; will be replaced by the new number of send effect chains.
14463     </p>
14464     <a name="SUBSCRIBE SEND_EFFECT_CHAIN_INFO"></a><br /><hr />
14465     <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>
14466     <a name="rfc.section.8.29"></a><h3>8.29.&nbsp;
14467     Send effect chain information changed</h3>
14468    
14469     <p>Client may want to be notified when changes were made to send effect chains
14470     on the back-end by issuing the following command:
14471     </p>
14472     <p>
14473     </p>
14474     <blockquote class="text">
14475     <p>SUBSCRIBE SEND_EFFECT_CHAIN_INFO
14476     </p>
14477     </blockquote><p>
14478    
14479     </p>
14480     <p>Server will start sending the following notification messages:
14481     </p>
14482     <p>
14483     </p>
14484     <blockquote class="text">
14485     <p>"SEND_EFFECT_CHAIN_INFO:&lt;device-id&gt; &lt;chain-id&gt; &lt;instances&gt;" -
14486     Notifies that the number of effect instances in a particular send effect chain
14487     is changed, where &lt;device-id&gt; will be replaced by the numerical ID of the audio
14488     output device the send effect chain belongs to, &lt;chain-id&gt; will be replaced
14489     by the numerical ID of the send effect chain in which the number of effect instances
14490     has changed and &lt;instances&gt; will be replaced by the new number
14491     of effect instances in the specified send effect chain.
14492     </p>
14493     </blockquote><p>
14494    
14495     </p>
14496     <a name="SUBSCRIBE MISCELLANEOUS"></a><br /><hr />
14497     <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>
14498     <a name="rfc.section.8.30"></a><h3>8.30.&nbsp;
14499     Miscellaneous and debugging events</h3>
14500    
14501     <p>Client may want to be notified of miscellaneous and debugging events occurring at
14502     the server by issuing the following command:
14503     </p>
14504     <p>
14505     </p>
14506     <blockquote class="text">
14507     <p>SUBSCRIBE MISCELLANEOUS
14508     </p>
14509     </blockquote><p>
14510    
14511     </p>
14512     <p>Server will start sending the following notification messages:
14513     </p>
14514     <p>
14515     </p>
14516     <blockquote class="text">
14517     <p>"NOTIFY:MISCELLANEOUS:&lt;string&gt;"
14518     </p>
14519     </blockquote><p>
14520    
14521     </p>
14522     <p>where &lt;string&gt; will be replaced by whatever data server
14523     wants to send to the client. Client MAY display this data to the
14524     user AS IS to facilitate debugging.
14525     </p>
14526     <a name="anchor14"></a><br /><hr />
14527     <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>
14528     <a name="rfc.section.9"></a><h3>9.&nbsp;
14529     Security Considerations</h3>
14530    
14531     <p>As there is so far no method of authentication and authorization
14532     defined and so not required for a client applications to succeed to
14533     connect, running LinuxSampler might be a security risk for the host
14534     system the LinuxSampler instance is running on.
14535     </p>
14536     <a name="anchor15"></a><br /><hr />
14537     <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>
14538     <a name="rfc.section.10"></a><h3>10.&nbsp;
14539     Acknowledgments</h3>
14540    
14541     <p>This document has benefited greatly from the comments of the
14542     following people, discussed on the LinuxSampler developer's mailing
14543     list:
14544     </p>
14545     <p>
14546     </p>
14547     <blockquote class="text">
14548     <p>Rui Nuno Capela
14549     </p>
14550     <p>Vladimir Senkov
14551     </p>
14552     <p>Mark Knecht
14553     </p>
14554     <p>Grigor Iliev
14555     </p>
14556     </blockquote><p>
14557    
14558     </p>
14559     <a name="rfc.references1"></a><br /><hr />
14560     <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>
14561     <h3>11.&nbsp;References</h3>
14562     <table width="99%" border="0">
14563     <tr><td class="author-text" valign="top"><a name="RFC20">[RFC20]</a></td>
14564     <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>
14565     <tr><td class="author-text" valign="top"><a name="RFC2119">[RFC2119]</a></td>
14566     <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>
14567     <tr><td class="author-text" valign="top"><a name="RFC2234">[RFC2234]</a></td>
14568     <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>
14569     <tr><td class="author-text" valign="top"><a name="RFC793">[RFC793]</a></td>
14570     <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>
14571     </table>
14572    
14573     <a name="rfc.authors"></a><br /><hr />
14574     <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>
14575     <h3>Author's Address</h3>
14576     <table width="99%" border="0" cellpadding="0" cellspacing="0">
14577     <tr><td class="author-text">&nbsp;</td>
14578     <td class="author-text">C.
14579     Schoenebeck</td></tr>
14580     <tr><td class="author-text">&nbsp;</td>
14581     <td class="author-text">LinuxSampler.org</td></tr>
14582     <tr><td class="author-text">&nbsp;</td>
14583     <td class="author-text">Crudebyte Engineering</td></tr>
14584     <tr><td class="author-text">&nbsp;</td>
14585     <td class="author-text">Hofgartenstr. 3</td></tr>
14586     <tr><td class="author-text">&nbsp;</td>
14587     <td class="author-text">74189 Weinsberg</td></tr>
14588     <tr><td class="author-text">&nbsp;</td>
14589     <td class="author-text">Germany</td></tr>
14590     <tr><td class="author" align="right">Phone:&nbsp;</td>
14591     <td class="author-text">+49 7134 911614</td></tr>
14592     <tr><td class="author" align="right">Email:&nbsp;</td>
14593     <td class="author-text"><a href="mailto:cuse@users.sf.net">cuse@users.sf.net</a></td></tr>
14594     </table>
14595     <a name="rfc.copyright"></a><br /><hr />
14596     <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>
14597     <h3>Full Copyright Statement</h3>
14598     <p class='copyright'>
14599     Copyright &copy; The IETF Trust (2014).</p>
14600     <p class='copyright'>
14601     This document is subject to the rights,
14602     licenses and restrictions contained in BCP&nbsp;78,
14603     and except as set forth therein,
14604     the authors retain all their rights.</p>
14605     <p class='copyright'>
14606     This document and the information contained herein are provided
14607     on an &ldquo;AS IS&rdquo; basis and THE CONTRIBUTOR,
14608     THE ORGANIZATION HE/SHE REPRESENTS
14609     OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST
14610     AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES,
14611     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT
14612     THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY
14613     IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR
14614     PURPOSE.</p>
14615     <h3>Intellectual Property</h3>
14616     <p class='copyright'>
14617     The IETF takes no position regarding the validity or scope of any
14618     Intellectual Property Rights or other rights that might be claimed
14619     to pertain to the implementation or use of the technology
14620     described in this document or the extent to which any license
14621     under such rights might or might not be available; nor does it
14622     represent that it has made any independent effort to identify any
14623     such rights.
14624     Information on the procedures with respect to
14625     rights in RFC documents can be found in BCP&nbsp;78 and BCP&nbsp;79.</p>
14626     <p class='copyright'>
14627     Copies of IPR disclosures made to the IETF Secretariat and any
14628     assurances of licenses to be made available,
14629     or the result of an attempt made to obtain a general license or
14630     permission for the use of such proprietary rights by implementers or
14631     users of this specification can be obtained from the IETF on-line IPR
14632     repository at <a href='http://www.ietf.org/ipr'>http://www.ietf.org/ipr</a>.</p>
14633     <p class='copyright'>
14634     The IETF invites any interested party to bring to its attention
14635     any copyrights,
14636     patents or patent applications,
14637     or other
14638     proprietary rights that may cover technology that may be required
14639     to implement this standard.
14640     Please address the information to the IETF at <a href='mailto:ietf-ipr@ietf.org'>ietf-ipr@ietf.org</a>.</p>
14641     </body></html>

  ViewVC Help
Powered by ViewVC