/[svn]/web/trunk/www.linuxsampler.org/api/draft-linuxsampler-protocol.html
ViewVC logotype

Diff of /web/trunk/www.linuxsampler.org/api/draft-linuxsampler-protocol.html

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

revision 974 by schoenebeck, Fri Dec 15 21:46:48 2006 UTC revision 1363 by schoenebeck, Sun Sep 30 21:51:14 2007 UTC
# Line 1  Line 1 
1  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  <!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>  <html lang="en"><head><title>LinuxSampler Control Protocol (draft)</title>
3  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
4  <meta name="description" content="LinuxSampler Control Protocol">  <meta name="description" content="LinuxSampler Control Protocol (draft)">
5  <meta name="keywords" content="LSCP">  <meta name="keywords" content="LSCP">
6  <meta name="generator" content="xml2rfc v1.31 (http://xml.resource.org/)">  <meta name="generator" content="xml2rfc v1.32 (http://xml.resource.org/)">
7  <style type='text/css'><!--  <style type='text/css'><!--
8          body {          body {
9                  font-family: verdana, charcoal, helvetica, arial, sans-serif;                  font-family: verdana, charcoal, helvetica, arial, sans-serif;
10                  font-size: small; color: #000; background-color: #FFF;                  font-size: small; color: #000; background-color: #FFF;
11                  margin: 2em;                  margin: 2em;
12          }          }
13          h1, h2, h3, h4, h5, h6 {          h1, h2, h3, h4, h5, h6 {
14                  font-family: helvetica, monaco, "MS Sans Serif", arial, sans-serif;                  font-family: helvetica, monaco, "MS Sans Serif", arial, sans-serif;
15                  font-weight: bold; font-style: normal;                  font-weight: bold; font-style: normal;
16          }          }
17          h1 { color: #900; background-color: transparent; text-align: right; }          h1 { color: #900; background-color: transparent; text-align: right; }
18          h3 { color: #333; background-color: transparent; }          h3 { color: #333; background-color: transparent; }
19    
20          td.RFCbug {          td.RFCbug {
21                  font-size: x-small; text-decoration: none;                  font-size: x-small; text-decoration: none;
22                  width: 30px; height: 30px; padding-top: 2px;                  width: 30px; height: 30px; padding-top: 2px;
23                  text-align: justify; vertical-align: middle;                  text-align: justify; vertical-align: middle;
24                  background-color: #000;                  background-color: #000;
25          }          }
26          td.RFCbug span.RFC {          td.RFCbug span.RFC {
27                  font-family: monaco, charcoal, geneva, "MS Sans Serif", helvetica, verdana, sans-serif;                  font-family: monaco, charcoal, geneva, "MS Sans Serif", helvetica, verdana, sans-serif;
28                  font-weight: bold; color: #666;                  font-weight: bold; color: #666;
29          }          }
30          td.RFCbug span.hotText {          td.RFCbug span.hotText {
31                  font-family: charcoal, monaco, geneva, "MS Sans Serif", helvetica, verdana, sans-serif;                  font-family: charcoal, monaco, geneva, "MS Sans Serif", helvetica, verdana, sans-serif;
32                  font-weight: normal; text-align: center; color: #FFF;                  font-weight: normal; text-align: center; color: #FFF;
33          }          }
34    
35          table.TOCbug { width: 30px; height: 15px; }          table.TOCbug { width: 30px; height: 15px; }
36          td.TOCbug {          td.TOCbug {
37                  text-align: center; width: 30px; height: 15px;                  text-align: center; width: 30px; height: 15px;
38                  color: #FFF; background-color: #900;                  color: #FFF; background-color: #900;
39          }          }
40          td.TOCbug a {          td.TOCbug a {
41                  font-family: monaco, charcoal, geneva, "MS Sans Serif", helvetica, sans-serif;                  font-family: monaco, charcoal, geneva, "MS Sans Serif", helvetica, sans-serif;
42                  font-weight: bold; font-size: x-small; text-decoration: none;                  font-weight: bold; font-size: x-small; text-decoration: none;
43                  color: #FFF; background-color: transparent;                  color: #FFF; background-color: transparent;
44          }          }
45    
46          td.header {          td.header {
47                  font-family: arial, helvetica, sans-serif; font-size: x-small;                  font-family: arial, helvetica, sans-serif; font-size: x-small;
48                  vertical-align: top; width: 33%;                  vertical-align: top; width: 33%;
49                  color: #FFF; background-color: #666;                  color: #FFF; background-color: #666;
50          }          }
51          td.author { font-weight: bold; font-size: x-small; margin-left: 4em; }          td.author { font-weight: bold; font-size: x-small; margin-left: 4em; }
52          td.author-text { font-size: x-small; }          td.author-text { font-size: x-small; }
53    
54          /* info code from SantaKlauss at http://www.madaboutstyle.com/tooltip2.html */          /* info code from SantaKlauss at http://www.madaboutstyle.com/tooltip2.html */
55          a.info {          a.info {
56                  /* This is the key. */                  /* This is the key. */
57                  position: relative;                  position: relative;
58                  z-index: 24;                  z-index: 24;
59                  text-decoration: none;                  text-decoration: none;
60          }          }
61          a.info:hover {          a.info:hover {
62                  z-index: 25;                  z-index: 25;
63                  color: #FFF; background-color: #900;                  color: #FFF; background-color: #900;
64          }          }
65          a.info span { display: none; }          a.info span { display: none; }
66          a.info:hover span.info {          a.info:hover span.info {
67                  /* The span will display just on :hover state. */                  /* The span will display just on :hover state. */
68                  display: block;                  display: block;
69                  position: absolute;                  position: absolute;
70                  font-size: smaller;                  font-size: smaller;
71                  top: 2em; left: -5em; width: 15em;                  top: 2em; left: -5em; width: 15em;
72                  padding: 2px; border: 1px solid #333;                  padding: 2px; border: 1px solid #333;
73                  color: #900; background-color: #EEE;                  color: #900; background-color: #EEE;
74                  text-align: left;                  text-align: left;
75          }          }
76    
77          a { font-weight: bold; }          a { font-weight: bold; }
78          a:link    { color: #900; background-color: transparent; }          a:link    { color: #900; background-color: transparent; }
79          a:visited { color: #633; background-color: transparent; }          a:visited { color: #633; background-color: transparent; }
80          a:active  { color: #633; background-color: transparent; }          a:active  { color: #633; background-color: transparent; }
81    
82          p { margin-left: 2em; margin-right: 2em; }          p { margin-left: 2em; margin-right: 2em; }
83          p.copyright { font-size: x-small; }          p.copyright { font-size: x-small; }
84          p.toc { font-size: small; font-weight: bold; margin-left: 3em; }          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; }          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; }          td.toc { font-size: small; font-weight: bold; vertical-align: text-top; }
87    
88          ol.text { margin-left: 2em; margin-right: 2em; }          ol.text { margin-left: 2em; margin-right: 2em; }
89          ul.text { margin-left: 2em; margin-right: 2em; }          ul.text { margin-left: 2em; margin-right: 2em; }
90          li      { margin-left: 3em; }          li      { margin-left: 3em; }
91    
92          /* RFC-2629 <spanx>s and <artwork>s. */          /* RFC-2629 <spanx>s and <artwork>s. */
93          em     { font-style: italic; }          em     { font-style: italic; }
94          strong { font-weight: bold; }          strong { font-weight: bold; }
95          dfn    { font-weight: bold; font-style: normal; }          dfn    { font-weight: bold; font-style: normal; }
96          cite   { font-weight: normal; font-style: normal; }          cite   { font-weight: normal; font-style: normal; }
97          tt     { color: #036; }          tt     { color: #036; }
98          tt, pre, pre dfn, pre em, pre cite, pre span {          tt, pre, pre dfn, pre em, pre cite, pre span {
99                  font-family: "Courier New", Courier, monospace; font-size: small;                  font-family: "Courier New", Courier, monospace; font-size: small;
100          }          }
101          pre {          pre {
102                  text-align: left; padding: 4px;                  text-align: left; padding: 4px;
103                  color: #000; background-color: #CCC;                  color: #000; background-color: #CCC;
104          }          }
105          pre dfn  { color: #900; }          pre dfn  { color: #900; }
106          pre em   { color: #66F; background-color: #FFC; font-weight: normal; }          pre em   { color: #66F; background-color: #FFC; font-weight: normal; }
107          pre .key { color: #33C; font-weight: bold; }          pre .key { color: #33C; font-weight: bold; }
108          pre .id  { color: #900; }          pre .id  { color: #900; }
109          pre .str { color: #000; background-color: #CFF; }          pre .str { color: #000; background-color: #CFF; }
110          pre .val { color: #066; }          pre .val { color: #066; }
111          pre .rep { color: #909; }          pre .rep { color: #909; }
112          pre .oth { color: #000; background-color: #FCF; }          pre .oth { color: #000; background-color: #FCF; }
113          pre .err { background-color: #FCC; }          pre .err { background-color: #FCC; }
114    
115          /* RFC-2629 <texttable>s. */          /* RFC-2629 <texttable>s. */
116          table.full, table.headers, table.none {          table.all, table.full, table.headers, table.none {
117                  font-size: small; text-align: center; border-width: 2px;                  font-size: small; text-align: center; border-width: 2px;
118                  vertical-align: top; border-collapse: collapse;                  vertical-align: top; border-collapse: collapse;
119          }          }
120          table.full { border-style: solid; border-color: black; }          table.all, table.full { border-style: solid; border-color: black; }
121          table.headers, table.none { border-style: none; }          table.headers, table.none { border-style: none; }
122          th {          th {
123                  font-weight: bold; border-color: black;                  font-weight: bold; border-color: black;
124                  border-width: 2px 2px 3px 2px;                  border-width: 2px 2px 3px 2px;
125          }          }
126          table.full th { border-style: solid; }          table.all th, table.full th { border-style: solid; }
127          table.headers th { border-style: none none solid none; }          table.headers th { border-style: none none solid none; }
128          table.none th { border-style: none; }          table.none th { border-style: none; }
129          table.full td {          table.all td {
130                  border-style: solid; border-color: #333;                  border-style: solid; border-color: #333;
131                  border-width: 1px 2px;                  border-width: 1px 2px;
132          }          }
133          table.headers td, table.none td { border-style: none; }          table.full td, table.headers td, table.none td { border-style: none; }
134    
135          hr { height: 1px; }          hr { height: 1px; }
136          hr.insert {          hr.insert {
137                  width: 80%; border-style: none; border-width: 0;                  width: 80%; border-style: none; border-width: 0;
138                  color: #CCC; background-color: #CCC;                  color: #CCC; background-color: #CCC;
139          }          }
140  --></style>  --></style>
141  </head>  </head>
142  <body>  <body>
# Line 145  Line 145 
145  <tr><td class="header">LinuxSampler Developers</td><td class="header">C. Schoenebeck</td></tr>  <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">Interessengemeinschaft Software</td></tr>  <tr><td class="header">Internet-Draft</td><td class="header">Interessengemeinschaft Software</td></tr>
147  <tr><td class="header">Intended status: Standards Track</td><td class="header">Engineering e. V.</td></tr>  <tr><td class="header">Intended status: Standards Track</td><td class="header">Engineering e. V.</td></tr>
148  <tr><td class="header">Expires: June 18, 2007</td><td class="header">December 15, 2006</td></tr>  <tr><td class="header">Expires: March 4, 2008</td><td class="header">September 2007</td></tr>
149  </table></td></tr></table>  </table></td></tr></table>
150  <h1><br />LinuxSampler Control Protocol<br />LSCP 1.2</h1>  <h1><br />LinuxSampler Control Protocol (draft)<br />LSCP 1.2cvs</h1>
151    
152  <h3>Status of this Memo</h3>  <h3>Status of this Memo</h3>
153  <p>  <p>
# Line 173  The list of current Internet-Drafts can Line 173  The list of current Internet-Drafts can
173  The list of Internet-Draft Shadow Directories can be accessed at  The list of Internet-Draft Shadow Directories can be accessed at
174  <a href='http://www.ietf.org/shadow.html'>http://www.ietf.org/shadow.html</a>.</p>  <a href='http://www.ietf.org/shadow.html'>http://www.ietf.org/shadow.html</a>.</p>
175  <p>  <p>
176  This Internet-Draft will expire on June 18, 2007.</p>  This Internet-Draft will expire on March 4, 2008.</p>
177    
178  <h3>Copyright Notice</h3>  <h3>Copyright Notice</h3>
179  <p>  <p>
180  Copyright &copy; The Internet Society (2006).</p>  Copyright &copy; The IETF Trust (2007).</p>
181    
182  <h3>Abstract</h3>  <h3>Abstract</h3>
183    
# Line 318  Muting a sampler channel<br /> Line 318  Muting a sampler channel<br />
318  Soloing a sampler channel<br />  Soloing a sampler channel<br />
319  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET CHANNEL MIDI_INSTRUMENT_MAP">6.4.24.</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET CHANNEL MIDI_INSTRUMENT_MAP">6.4.24.</a>&nbsp;
320  Assigning a MIDI instrument map to a sampler channel<br />  Assigning a MIDI instrument map to a sampler channel<br />
321  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#RESET CHANNEL">6.4.25.</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#CREATE FX_SEND">6.4.25.</a>&nbsp;
322    Adding an effect send to a sampler channel<br />
323    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#DESTROY FX_SEND">6.4.26.</a>&nbsp;
324    Removing an effect send from a sampler channel<br />
325    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET FX_SENDS">6.4.27.</a>&nbsp;
326    Getting amount of effect sends on a sampler channel<br />
327    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#LIST FX_SENDS">6.4.28.</a>&nbsp;
328    Listing all effect sends on a sampler channel<br />
329    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET FX_SEND INFO">6.4.29.</a>&nbsp;
330    Getting effect send information<br />
331    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET FX_SEND NAME">6.4.30.</a>&nbsp;
332    Changing effect send's name<br />
333    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET FX_SEND AUDIO_OUTPUT_CHANNEL">6.4.31.</a>&nbsp;
334    Altering effect send's audio routing<br />
335    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET FX_SEND MIDI_CONTROLLER">6.4.32.</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.33.</a>&nbsp;
338    Altering effect send's send level<br />
339    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#RESET CHANNEL">6.4.34.</a>&nbsp;
340  Resetting a sampler channel<br />  Resetting a sampler channel<br />
341  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor12">6.5.</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor12">6.5.</a>&nbsp;
342  Controlling connection<br />  Controlling connection<br />
# Line 340  Maximum amount of active voices<br /> Line 358  Maximum amount of active voices<br />
358  Reset sampler<br />  Reset sampler<br />
359  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET SERVER INFO">6.6.4.</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET SERVER INFO">6.6.4.</a>&nbsp;
360  General sampler informations<br />  General sampler informations<br />
361    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET VOLUME">6.6.5.</a>&nbsp;
362    Getting global volume attenuation<br />
363    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET VOLUME">6.6.6.</a>&nbsp;
364    Setting global volume attenuation<br />
365  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#MIDI Instrument Mapping">6.7.</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#MIDI Instrument Mapping">6.7.</a>&nbsp;
366  MIDI Instrument Mapping<br />  MIDI Instrument Mapping<br />
367  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ADD MIDI_INSTRUMENT MAP">6.7.1.</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ADD MIDI_INSTRUMENT MAP">6.7.1.</a>&nbsp;
# Line 366  Remove an entry from the MIDI instrument Line 388  Remove an entry from the MIDI instrument
388  Get current settings of MIDI instrument map entry<br />  Get current settings of MIDI instrument map entry<br />
389  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#CLEAR MIDI_INSTRUMENTS">6.7.12.</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#CLEAR MIDI_INSTRUMENTS">6.7.12.</a>&nbsp;
390  Clear MIDI instrument map<br />  Clear MIDI instrument map<br />
391    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#Managing Instruments Database">6.8.</a>&nbsp;
392    Managing Instruments Database<br />
393    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ADD DB_INSTRUMENT_DIRECTORY">6.8.1.</a>&nbsp;
394    Creating a new instrument directory<br />
395    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#REMOVE DB_INSTRUMENT_DIRECTORY">6.8.2.</a>&nbsp;
396    Deleting an instrument directory<br />
397    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET DB_INSTRUMENT_DIRECTORIES">6.8.3.</a>&nbsp;
398    Getting amount of instrument directories<br />
399    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#LIST DB_INSTRUMENT_DIRECTORIES">6.8.4.</a>&nbsp;
400    Listing all directories in specific directory<br />
401    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET DB_INSTRUMENT_DIRECTORY INFO">6.8.5.</a>&nbsp;
402    Getting instrument directory information<br />
403    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET DB_INSTRUMENT_DIRECTORY NAME">6.8.6.</a>&nbsp;
404    Renaming an instrument directory<br />
405    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#MOVE DB_INSTRUMENT_DIRECTORY">6.8.7.</a>&nbsp;
406    Moving an instrument directory<br />
407    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#COPY DB_INSTRUMENT_DIRECTORY">6.8.8.</a>&nbsp;
408    Copying instrument directories<br />
409    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET DB_INSTRUMENT_DIRECTORY DESCRIPTION">6.8.9.</a>&nbsp;
410    Changing the description of directory<br />
411    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#FIND DB_INSTRUMENT_DIRECTORIES">6.8.10.</a>&nbsp;
412    Finding directories<br />
413    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ADD DB_INSTRUMENTS">6.8.11.</a>&nbsp;
414    Adding instruments to the instruments database<br />
415    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#REMOVE DB_INSTRUMENT">6.8.12.</a>&nbsp;
416    Removing an instrument<br />
417    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET DB_INSTRUMENTS">6.8.13.</a>&nbsp;
418    Getting amount of instruments<br />
419    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#LIST DB_INSTRUMENTS">6.8.14.</a>&nbsp;
420    Listing all instruments in specific directory<br />
421    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET DB_INSTRUMENT INFO">6.8.15.</a>&nbsp;
422    Getting instrument information<br />
423    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET DB_INSTRUMENT NAME">6.8.16.</a>&nbsp;
424    Renaming an instrument<br />
425    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#MOVE DB_INSTRUMENT">6.8.17.</a>&nbsp;
426    Moving an instrument<br />
427    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#COPY DB_INSTRUMENT">6.8.18.</a>&nbsp;
428    Copying instruments<br />
429    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET DB_INSTRUMENT DESCRIPTION">6.8.19.</a>&nbsp;
430    Changing the description of instrument<br />
431    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#FIND DB_INSTRUMENTS">6.8.20.</a>&nbsp;
432    Finding instruments<br />
433    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET DB_INSTRUMENTS_JOB INFO">6.8.21.</a>&nbsp;
434    Getting job status information<br />
435    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#FORMAT INSTRUMENTS_DB">6.8.22.</a>&nbsp;
436    Formatting the instruments database<br />
437    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#editing_instruments">6.9.</a>&nbsp;
438    Editing Instruments<br />
439    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#EDIT INSTRUMENT">6.9.1.</a>&nbsp;
440    Opening an appropriate instrument editor application<br />
441  <a href="#command_syntax">7.</a>&nbsp;  <a href="#command_syntax">7.</a>&nbsp;
442  Command Syntax<br />  Command Syntax<br />
443    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#character_set">7.1.</a>&nbsp;
444    Character Set and Escape Sequences<br />
445  <a href="#events">8.</a>&nbsp;  <a href="#events">8.</a>&nbsp;
446  Events<br />  Events<br />
447  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE CHANNEL">8.1.</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE AUDIO_OUTPUT_DEVICE_COUNT">8.1.</a>&nbsp;
448    Number of audio output devices changed<br />
449    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE AUDIO_OUTPUT_DEVICE_INFO">8.2.</a>&nbsp;
450    Audio output device's settings changed<br />
451    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE MIDI_INPUT_DEVICE_COUNT">8.3.</a>&nbsp;
452    Number of MIDI input devices changed<br />
453    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE MIDI_INPUT_DEVICE_INFO">8.4.</a>&nbsp;
454    MIDI input device's settings changed<br />
455    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE CHANNEL_COUNT">8.5.</a>&nbsp;
456  Number of sampler channels changed<br />  Number of sampler channels changed<br />
457  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE VOICE_COUNT">8.2.</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE VOICE_COUNT">8.6.</a>&nbsp;
458  Number of active voices changed<br />  Number of active voices changed<br />
459  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE STREAM_COUNT">8.3.</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE STREAM_COUNT">8.7.</a>&nbsp;
460  Number of active disk streams changed<br />  Number of active disk streams changed<br />
461  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE BUFFER_FILL">8.4.</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE BUFFER_FILL">8.8.</a>&nbsp;
462  Disk stream buffer fill state changed<br />  Disk stream buffer fill state changed<br />
463  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE INFO">8.5.</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE CHANNEL_INFO">8.9.</a>&nbsp;
464  Channel information changed<br />  Channel information changed<br />
465  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE TOTAL_VOICE_COUNT">8.6.</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE FX_SEND_COUNT">8.10.</a>&nbsp;
466    Number of effect sends changed<br />
467    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE FX_SEND_INFO">8.11.</a>&nbsp;
468    Effect send information changed<br />
469    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE TOTAL_VOICE_COUNT">8.12.</a>&nbsp;
470  Total number of active voices changed<br />  Total number of active voices changed<br />
471  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE MISCELLANEOUS">8.7.</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE MIDI_INSTRUMENT_MAP_COUNT">8.13.</a>&nbsp;
472    Number of MIDI instrument maps changed<br />
473    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE MIDI_INSTRUMENT_MAP_INFO">8.14.</a>&nbsp;
474    MIDI instrument map information changed<br />
475    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE MIDI_INSTRUMENT_COUNT">8.15.</a>&nbsp;
476    Number of MIDI instruments changed<br />
477    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE MIDI_INSTRUMENT_INFO">8.16.</a>&nbsp;
478    MIDI instrument information changed<br />
479    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE GLOBAL_INFO">8.17.</a>&nbsp;
480    Global settings changed<br />
481    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE DB_INSTRUMENT_DIRECTORY_COUNT">8.18.</a>&nbsp;
482    Number of database instrument directories changed<br />
483    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE DB_INSTRUMENT_DIRECTORY_INFO">8.19.</a>&nbsp;
484    Database instrument directory information changed<br />
485    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE DB_INSTRUMENT_COUNT">8.20.</a>&nbsp;
486    Number of database instruments changed<br />
487    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE DB_INSTRUMENT_INFO">8.21.</a>&nbsp;
488    Database instrument information changed<br />
489    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE DB_INSTRUMENTS_JOB_INFO">8.22.</a>&nbsp;
490    Database job status information changed<br />
491    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE MISCELLANEOUS">8.23.</a>&nbsp;
492  Miscellaneous and debugging events<br />  Miscellaneous and debugging events<br />
493  <a href="#anchor14">9.</a>&nbsp;  <a href="#anchor14">9.</a>&nbsp;
494  Security Considerations<br />  Security Considerations<br />
# Line 414  Requirements notation</h3> Line 520  Requirements notation</h3>
520              (front-end) and server (LinuxSampler) respectively. Lines in              (front-end) and server (LinuxSampler) respectively. Lines in
521              examples must be interpreted as every line being CRLF              examples must be interpreted as every line being CRLF
522              terminated (carriage return character followed by line feed              terminated (carriage return character followed by line feed
523              character as defined in the ASCII standard), thus the following              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>),
524              example:              thus the following example:
525  </p>  </p>
526  <p>  <p>
527                  </p>                  </p>
# Line 3201  Changing settings of MIDI input ports</h Line 3307  Changing settings of MIDI input ports</h
3307                      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>                      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>
3308                      command, &lt;port&gt; by the MIDI port number, &lt;key&gt; by the name of                      command, &lt;port&gt; by the MIDI port number, &lt;key&gt; by the name of
3309                      the parameter to change and &lt;value&gt; by the new value for this                      the parameter to change and &lt;value&gt; by the new value for this
3310                      parameter.                      parameter (encapsulated into apostrophes) or NONE (not encapsulated into apostrophes)
3311                        for specifying no value for parameters allowing a list of values.
3312  </p>  </p>
3313  <p>Possible Answers:  <p>Possible Answers:
3314  </p>  </p>
# Line 3242  Changing settings of MIDI input ports</h Line 3349  Changing settings of MIDI input ports</h
3349  <p>  <p>
3350                          </p>                          </p>
3351  <blockquote class="text">  <blockquote class="text">
3352    <p>C: "SET MIDI_INPUT_PORT_PARAMETER 0 0 ALSA_SEQ_BINDINGS='20:0'"
3353    </p>
3354    <p>S: "OK"
3355    </p>
3356    </blockquote><p>
3357                        
3358    </p>
3359  <p>  <p>
3360                            </p>
3361    <blockquote class="text">
3362    <p>C: "SET MIDI_INPUT_PORT_PARAMETER 0 0 ALSA_SEQ_BINDINGS=NONE"
3363    </p>
3364    <p>S: "OK"
3365  </p>  </p>
3366  </blockquote><p>  </blockquote><p>
3367                                            
# Line 3277  Loading an instrument</h3> Line 3396  Loading an instrument</h3>
3396                      number of the sampler channel the instrument should be assigned to.                      number of the sampler channel the instrument should be assigned to.
3397                      Each sampler channel can only have one instrument.                      Each sampler channel can only have one instrument.
3398  </p>  </p>
3399    <p>Notice: since LSCP 1.2 the &lt;filename&gt; argument supports
3400                        escape characters for special characters (see chapter
3401                        "<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>"
3402                        for details) and accordingly backslash characters in the filename
3403                        MUST now be escaped as well!
3404    </p>
3405  <p>The difference between regular and NON_MODAL versions of the command  <p>The difference between regular and NON_MODAL versions of the command
3406                      is that the regular command returns OK only after the instrument has been                      is that the regular command returns OK only after the instrument has been
3407                      fully loaded and the channel is ready to be used while NON_MODAL version                      fully loaded and the channel is ready to be used while NON_MODAL version
# Line 3926  Getting sampler channel information</h3> Line 4051  Getting sampler channel information</h3>
4051                                          </p>                                          </p>
4052  <blockquote class="text">  <blockquote class="text">
4053  <p>optionally dotted number for the channel volume factor  <p>optionally dotted number for the channel volume factor
4054                                              (where a value < 1.0 means attenuation and a value >                                              (where a value &lt; 1.0 means attenuation and a value >
4055                                              1.0 means amplification)                                              1.0 means amplification)
4056  </p>  </p>
4057  </blockquote>  </blockquote>
# Line 4933  Assigning a MIDI instrument map to a sam Line 5058  Assigning a MIDI instrument map to a sam
5058  </blockquote><p>  </blockquote><p>
5059                                            
5060  </p>  </p>
5061  <a name="RESET CHANNEL"></a><br /><hr />  <a name="CREATE FX_SEND"></a><br /><hr />
5062  <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>  <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
5063  <a name="rfc.section.6.4.25"></a><h3>6.4.25.&nbsp;  <a name="rfc.section.6.4.25"></a><h3>6.4.25.&nbsp;
5064    Adding an effect send to a sampler channel</h3>
5065    
5066    <p>The front-end can create an additional effect send on a specific sampler channel
5067                        by sending the following command:
5068    </p>
5069    <p>
5070                            </p>
5071    <blockquote class="text">
5072    <p>CREATE FX_SEND &lt;sampler-channel&gt; &lt;midi-ctrl&gt; [&lt;name&gt;]
5073    </p>
5074    </blockquote><p>
5075                        
5076    </p>
5077    <p>Where &lt;sampler-channel&gt; is the respective sampler channel
5078                        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>
5079                        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
5080                        sampler channel on which the effect send should be created on, &lt;midi-ctrl&gt;
5081                        is a number between 0..127 defining the MIDI controller which can alter the
5082                        effect send level and &lt;name&gt; is an optional argument defining a name
5083                        for the effect send entity. The name does not have to be unique.
5084    </p>
5085    <p>By default, that is as initial routing, the effect send's audio channels
5086                        are automatically routed to the last audio channels of the sampler channel's
5087                        audio output device, that way you can i.e. first increase the amount of audio
5088                        channels on the audio output device for having dedicated effect send output
5089                        channels and when "CREATE FX_SEND" is called, those channels will automatically
5090                        be picked. You can alter the destination channels however with
5091                        <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>.
5092                        
5093    </p>
5094    <p>Note: Create effect sends on a sampler channel only when needed, because having effect
5095                        sends on a sampler channel will decrease runtime performance, because for implementing channel
5096                        effect sends, separate (sampler channel local) audio buffers are needed to render and mix
5097                        the voices and route the audio signal afterwards to the master outputs and effect send
5098                        outputs (along with their respective effect send levels). A sampler channel without effect
5099                        sends however can mix its voices directly into the audio output devices's audio buffers
5100                        and is thus faster.
5101                        
5102    </p>
5103    <p>Possible Answers:
5104    </p>
5105    <p>
5106                            </p>
5107    <blockquote class="text">
5108    <p>"OK[&lt;fx-send-id&gt;]" -
5109                                    </p>
5110    <blockquote class="text">
5111    <p>in case a new effect send could be added to the
5112                                        sampler channel, where &lt;fx-send-id&gt; reflects the
5113                                        unique ID of the newly created effect send entity
5114    </p>
5115    </blockquote>
5116                                
5117    
5118    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
5119                                    </p>
5120    <blockquote class="text">
5121    <p>when a new effect send could not be added, i.e.
5122                                        due to invalid parameters
5123    </p>
5124    </blockquote>
5125                                
5126    
5127    </blockquote><p>
5128                        
5129    </p>
5130    <p>Examples:
5131    </p>
5132    <p>
5133                            </p>
5134    <blockquote class="text">
5135    <p>C: "CREATE FX_SEND 0 91 'Reverb Send'"
5136    </p>
5137    <p>S: "OK[0]"
5138    </p>
5139    </blockquote><p>
5140                        
5141    </p>
5142    <p>
5143                            </p>
5144    <blockquote class="text">
5145    <p>C: "CREATE FX_SEND 0 93"
5146    </p>
5147    <p>S: "OK[1]"
5148    </p>
5149    </blockquote><p>
5150                        
5151    </p>
5152    <a name="DESTROY FX_SEND"></a><br /><hr />
5153    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
5154    <a name="rfc.section.6.4.26"></a><h3>6.4.26.&nbsp;
5155    Removing an effect send from a sampler channel</h3>
5156    
5157    <p>The front-end can remove an existing effect send on a specific sampler channel
5158                        by sending the following command:
5159    </p>
5160    <p>
5161                            </p>
5162    <blockquote class="text">
5163    <p>DESTROY FX_SEND &lt;sampler-channel&gt; &lt;fx-send-id&gt;
5164    </p>
5165    </blockquote><p>
5166                        
5167    </p>
5168    <p>Where &lt;sampler-channel&gt; is the respective sampler channel
5169                        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>
5170                        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
5171                        sampler channel from which the effect send should be removed from and
5172                        &lt;fx-send-id&gt; is the respective effect send number as returned by the
5173                        <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>
5174                        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.
5175    </p>
5176    <p>Possible Answers:
5177    </p>
5178    <p>
5179                            </p>
5180    <blockquote class="text">
5181    <p>"OK" -
5182                                    </p>
5183    <blockquote class="text">
5184    <p>on success
5185    </p>
5186    </blockquote>
5187                                
5188    
5189    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
5190                                    </p>
5191    <blockquote class="text">
5192    <p>in case it failed, providing an appropriate error code and
5193                                        error message
5194    </p>
5195    </blockquote>
5196                                
5197    
5198    </blockquote><p>
5199                        
5200    </p>
5201    <p>Example:
5202    </p>
5203    <p>
5204                            </p>
5205    <blockquote class="text">
5206    <p>C: "DESTROY FX_SEND 0 0"
5207    </p>
5208    <p>S: "OK"
5209    </p>
5210    </blockquote><p>
5211                        
5212    </p>
5213    <a name="GET FX_SENDS"></a><br /><hr />
5214    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
5215    <a name="rfc.section.6.4.27"></a><h3>6.4.27.&nbsp;
5216    Getting amount of effect sends on a sampler channel</h3>
5217    
5218    <p>The front-end can ask for the amount of effect sends on a specific sampler channel
5219                        by sending the following command:
5220    </p>
5221    <p>
5222                            </p>
5223    <blockquote class="text">
5224    <p>GET FX_SENDS &lt;sampler-channel&gt;
5225    </p>
5226    </blockquote><p>
5227                        
5228    </p>
5229    <p>Where &lt;sampler-channel&gt; is the respective sampler channel
5230                        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>
5231                        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.
5232    </p>
5233    <p>Possible Answers:
5234    </p>
5235    <p>
5236                            </p>
5237    <blockquote class="text">
5238    <p>The sampler will answer by returning the number of effect
5239                                sends on the given sampler channel.
5240    </p>
5241    </blockquote><p>
5242                        
5243    </p>
5244    <p>Example:
5245    </p>
5246    <p>
5247                            </p>
5248    <blockquote class="text">
5249    <p>C: "GET FX_SENDS 0"
5250    </p>
5251    <p>S: "2"
5252    </p>
5253    </blockquote><p>
5254                        
5255    </p>
5256    <a name="LIST FX_SENDS"></a><br /><hr />
5257    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
5258    <a name="rfc.section.6.4.28"></a><h3>6.4.28.&nbsp;
5259    Listing all effect sends on a sampler channel</h3>
5260    
5261    <p>The front-end can ask for a list of effect sends on a specific sampler channel
5262                        by sending the following command:
5263    </p>
5264    <p>
5265                            </p>
5266    <blockquote class="text">
5267    <p>LIST FX_SENDS &lt;sampler-channel&gt;
5268    </p>
5269    </blockquote><p>
5270                        
5271    </p>
5272    <p>Where &lt;sampler-channel&gt; is the respective sampler channel
5273                        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>
5274                        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.
5275    </p>
5276    <p>Possible Answers:
5277    </p>
5278    <p>
5279                            </p>
5280    <blockquote class="text">
5281    <p>The sampler will answer by returning a comma separated list
5282                                with all effect sends' numerical IDs on the given sampler
5283                                channel.
5284    </p>
5285    </blockquote><p>
5286                        
5287    </p>
5288    <p>Examples:
5289    </p>
5290    <p>
5291                            </p>
5292    <blockquote class="text">
5293    <p>C: "LIST FX_SENDS 0"
5294    </p>
5295    <p>S: "0,1"
5296    </p>
5297    </blockquote><p>
5298                        
5299    </p>
5300    <p>
5301                            </p>
5302    <blockquote class="text">
5303    <p>C: "LIST FX_SENDS 1"
5304    </p>
5305    <p>S: ""
5306    </p>
5307    </blockquote><p>
5308                        
5309    </p>
5310    <a name="GET FX_SEND INFO"></a><br /><hr />
5311    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
5312    <a name="rfc.section.6.4.29"></a><h3>6.4.29.&nbsp;
5313    Getting effect send information</h3>
5314    
5315    <p>The front-end can ask for the current settings of an effect send entity
5316                        by sending the following command:
5317    </p>
5318    <p>
5319                            </p>
5320    <blockquote class="text">
5321    <p>GET FX_SEND INFO &lt;sampler-channel&gt; &lt;fx-send-id&gt;
5322    </p>
5323    </blockquote><p>
5324                        
5325    </p>
5326    <p>Where &lt;sampler-channel&gt; is the sampler channel number
5327                        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>
5328                        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
5329                        &lt;fx-send-id&gt; reflects the numerical ID of the effect send entity
5330                        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>
5331                        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.
5332                      
5333    </p>
5334    <p>Possible Answers:
5335    </p>
5336    <p>
5337                            </p>
5338    <blockquote class="text">
5339    <p>The sampler will answer by sending a &lt;CRLF&gt; separated list.
5340                                Each answer line begins with the settings category name
5341                                followed by a colon and then a space character &lt;SP&gt; and finally
5342                                the info character string to that setting category. At the
5343                                moment the following categories are defined:
5344    </p>
5345    <p>
5346                                    </p>
5347    <blockquote class="text">
5348    <p>NAME -
5349                                            </p>
5350    <blockquote class="text">
5351    <p>name of the effect send entity
5352    </p>
5353    </blockquote>
5354                                        
5355    
5356    <p>MIDI_CONTROLLER -
5357                                            </p>
5358    <blockquote class="text">
5359    <p>a value between 0 and 127 reflecting the MIDI controller
5360                                                which is able to modify the effect send's send level
5361    </p>
5362    </blockquote>
5363                                        
5364    
5365    <p>LEVEL -
5366                                            </p>
5367    <blockquote class="text">
5368    <p>optionally dotted number reflecting the effect send's
5369                                                current send level (where a value &lt; 1.0 means attenuation
5370                                                and a value > 1.0 means amplification)
5371    </p>
5372    </blockquote>
5373                                        
5374    
5375    <p>AUDIO_OUTPUT_ROUTING -
5376                                            </p>
5377    <blockquote class="text">
5378    <p>comma separated list which reflects to which audio
5379                                                channel of the selected audio output device each
5380                                                effect send output channel is routed to, e.g. "0,3" would
5381                                                mean the effect send's output channel 0 is routed to channel
5382                                                0 of the audio output device and the effect send's output
5383                                                channel 1 is routed to the channel 3 of the audio
5384                                                output device (see
5385                                                <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>
5386                                                for details)
5387    </p>
5388    </blockquote>
5389                                        
5390    
5391    </blockquote>
5392                                
5393    
5394    </blockquote><p>
5395                        
5396    </p>
5397    <p>The mentioned fields above don't have to be in particular order.
5398    </p>
5399    <p>Example:
5400    </p>
5401    <p>
5402                            </p>
5403    <blockquote class="text">
5404    <p>C: "GET FX_SEND INFO 0 0"
5405    </p>
5406    <p>S: "NAME: Reverb Send"
5407    </p>
5408    <p>&nbsp;&nbsp;&nbsp;"MIDI_CONTROLLER: 91"
5409    </p>
5410    <p>&nbsp;&nbsp;&nbsp;"LEVEL: 0.3"
5411    </p>
5412    <p>&nbsp;&nbsp;&nbsp;"AUDIO_OUTPUT_ROUTING: 2,3"
5413    </p>
5414    <p>&nbsp;&nbsp;&nbsp;"."
5415    </p>
5416    </blockquote><p>
5417                        
5418    </p>
5419    <a name="SET FX_SEND NAME"></a><br /><hr />
5420    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
5421    <a name="rfc.section.6.4.30"></a><h3>6.4.30.&nbsp;
5422    Changing effect send's name</h3>
5423    
5424    <p>The front-end can alter the current name of an effect
5425                        send entity by sending the following command:
5426    </p>
5427    <p>
5428                            </p>
5429    <blockquote class="text">
5430    <p>SET FX_SEND NAME &lt;sampler-chan&gt; &lt;fx-send-id&gt; &lt;name&gt;
5431    </p>
5432    </blockquote><p>
5433                        
5434    </p>
5435    <p>Where &lt;sampler-chan&gt; is the sampler channel number
5436                        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>
5437                        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,
5438                        &lt;fx-send-id&gt; reflects the numerical ID of the effect send entity
5439                        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>
5440                        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
5441                        &lt;name&gt; is the new name of the effect send entity, which
5442                        does not have to be unique.
5443    </p>
5444    <p>Possible Answers:
5445    </p>
5446    <p>
5447                            </p>
5448    <blockquote class="text">
5449    <p>"OK" -
5450                                    </p>
5451    <blockquote class="text">
5452    <p>on success
5453    </p>
5454    </blockquote>
5455                                
5456    
5457    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
5458                                    </p>
5459    <blockquote class="text">
5460    <p>in case it failed, providing an appropriate error code and error message
5461    </p>
5462    </blockquote>
5463                                
5464    
5465    </blockquote><p>
5466                        
5467    </p>
5468    <p>Example:
5469    </p>
5470    <p>
5471                            </p>
5472    <blockquote class="text">
5473    <p>C: "SET FX_SEND NAME 0 0 'Fx Send 1'"
5474    </p>
5475    <p>S: "OK"
5476    </p>
5477    </blockquote><p>
5478                        
5479    </p>
5480    <a name="SET FX_SEND AUDIO_OUTPUT_CHANNEL"></a><br /><hr />
5481    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
5482    <a name="rfc.section.6.4.31"></a><h3>6.4.31.&nbsp;
5483    Altering effect send's audio routing</h3>
5484    
5485    <p>The front-end can alter the destination of an effect send's audio channel on a specific
5486                        sampler channel by sending the following command:
5487    </p>
5488    <p>
5489                            </p>
5490    <blockquote class="text">
5491    <p>SET FX_SEND AUDIO_OUTPUT_CHANNEL &lt;sampler-chan&gt; &lt;fx-send-id&gt; &lt;audio-src&gt; &lt;audio-dst&gt;
5492    </p>
5493    </blockquote><p>
5494                        
5495    </p>
5496    <p>Where &lt;sampler-chan&gt; is the sampler channel number
5497                        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>
5498                        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,
5499                        &lt;fx-send-id&gt; reflects the numerical ID of the effect send entity
5500                        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>
5501                        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,
5502                        &lt;audio-src&gt; is the numerical ID of the effect send's audio channel
5503                        which should be rerouted and &lt;audio-dst&gt; is the numerical ID of
5504                        the audio channel of the selected audio output device where &lt;audio-src&gt;
5505                        should be routed to.
5506    </p>
5507    <p>Note that effect sends can only route audio to the same audio output
5508                        device as assigned to the effect send's sampler channel. Also note that an
5509                        effect send entity does always have exactly as much audio channels as its
5510                        sampler channel. So if the sampler channel is stereo, the effect send does
5511                        have two audio channels as well. Also keep in mind that the amount of audio
5512                        channels on a sampler channel might be dependant not only to the deployed
5513                        sampler engine on the sampler channel, but also dependant to the instrument
5514                        currently loaded. However you can (effectively) turn an i.e. stereo effect
5515                        send into a mono one by simply altering its audio routing appropriately.
5516    </p>
5517    <p>Possible Answers:
5518    </p>
5519    <p>
5520                            </p>
5521    <blockquote class="text">
5522    <p>"OK" -
5523                                    </p>
5524    <blockquote class="text">
5525    <p>on success
5526    </p>
5527    </blockquote>
5528                                
5529    
5530    <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
5531                                    </p>
5532    <blockquote class="text">
5533    <p>if audio output channel was set, but there are noteworthy
5534                                        issue(s) related, providing an appropriate warning code and
5535                                        warning message
5536    </p>
5537    </blockquote>
5538                                
5539    
5540    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
5541                                    </p>
5542    <blockquote class="text">
5543    <p>in case it failed, providing an appropriate error code and error message
5544    </p>
5545    </blockquote>
5546                                
5547    
5548    </blockquote><p>
5549                        
5550    </p>
5551    <p>Example:
5552    </p>
5553    <p>
5554                            </p>
5555    <blockquote class="text">
5556    <p>C: "SET FX_SEND AUDIO_OUTPUT_CHANNEL 0 0 0 2"
5557    </p>
5558    <p>S: "OK"
5559    </p>
5560    </blockquote><p>
5561                        
5562    </p>
5563    <a name="SET FX_SEND MIDI_CONTROLLER"></a><br /><hr />
5564    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
5565    <a name="rfc.section.6.4.32"></a><h3>6.4.32.&nbsp;
5566    Altering effect send's MIDI controller</h3>
5567    
5568    <p>The front-end can alter the MIDI controller of an effect
5569                        send entity by sending the following command:
5570    </p>
5571    <p>
5572                            </p>
5573    <blockquote class="text">
5574    <p>SET FX_SEND MIDI_CONTROLLER &lt;sampler-chan&gt; &lt;fx-send-id&gt; &lt;midi-ctrl&gt;
5575    </p>
5576    </blockquote><p>
5577                        
5578    </p>
5579    <p>Where &lt;sampler-chan&gt; is the sampler channel number
5580                        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>
5581                        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,
5582                        &lt;fx-send-id&gt; reflects the numerical ID of the effect send entity
5583                        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>
5584                        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
5585                        &lt;midi-ctrl&gt; reflects the MIDI controller which shall be
5586                        able to modify the effect send's send level.
5587    </p>
5588    <p>Possible Answers:
5589    </p>
5590    <p>
5591                            </p>
5592    <blockquote class="text">
5593    <p>"OK" -
5594                                    </p>
5595    <blockquote class="text">
5596    <p>on success
5597    </p>
5598    </blockquote>
5599                                
5600    
5601    <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
5602                                    </p>
5603    <blockquote class="text">
5604    <p>if MIDI controller was set, but there are noteworthy
5605                                        issue(s) related, providing an appropriate warning code and
5606                                        warning message
5607    </p>
5608    </blockquote>
5609                                
5610    
5611    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
5612                                    </p>
5613    <blockquote class="text">
5614    <p>in case it failed, providing an appropriate error code and error message
5615    </p>
5616    </blockquote>
5617                                
5618    
5619    </blockquote><p>
5620                        
5621    </p>
5622    <p>Example:
5623    </p>
5624    <p>
5625                            </p>
5626    <blockquote class="text">
5627    <p>C: "SET FX_SEND MIDI_CONTROLLER 0 0 91"
5628    </p>
5629    <p>S: "OK"
5630    </p>
5631    </blockquote><p>
5632                        
5633    </p>
5634    <a name="SET FX_SEND LEVEL"></a><br /><hr />
5635    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
5636    <a name="rfc.section.6.4.33"></a><h3>6.4.33.&nbsp;
5637    Altering effect send's send level</h3>
5638    
5639    <p>The front-end can alter the current send level of an effect
5640                        send entity by sending the following command:
5641    </p>
5642    <p>
5643                            </p>
5644    <blockquote class="text">
5645    <p>SET FX_SEND LEVEL &lt;sampler-chan&gt; &lt;fx-send-id&gt; &lt;volume&gt;
5646    </p>
5647    </blockquote><p>
5648                        
5649    </p>
5650    <p>Where &lt;sampler-chan&gt; is the sampler channel number
5651                        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>
5652                        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,
5653                        &lt;fx-send-id&gt; reflects the numerical ID of the effect send entity
5654                        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>
5655                        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
5656                        &lt;volume&gt; is an optionally dotted positive number (a value
5657                        smaller than 1.0 means attenuation, whereas a value greater than
5658                        1.0 means amplification) reflecting the new send level.
5659    </p>
5660    <p>Possible Answers:
5661    </p>
5662    <p>
5663                            </p>
5664    <blockquote class="text">
5665    <p>"OK" -
5666                                    </p>
5667    <blockquote class="text">
5668    <p>on success
5669    </p>
5670    </blockquote>
5671                                
5672    
5673    <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
5674                                    </p>
5675    <blockquote class="text">
5676    <p>if new send level was set, but there are noteworthy
5677                                        issue(s) related, providing an appropriate warning code and
5678                                        warning message
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 error message
5687    </p>
5688    </blockquote>
5689                                
5690    
5691    </blockquote><p>
5692                        
5693    </p>
5694    <p>Example:
5695    </p>
5696    <p>
5697                            </p>
5698    <blockquote class="text">
5699    <p>C: "SET FX_SEND LEVEL 0 0 0.15"
5700    </p>
5701    <p>S: "OK"
5702    </p>
5703    </blockquote><p>
5704                        
5705    </p>
5706    <a name="RESET CHANNEL"></a><br /><hr />
5707    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
5708    <a name="rfc.section.6.4.34"></a><h3>6.4.34.&nbsp;
5709  Resetting a sampler channel</h3>  Resetting a sampler channel</h3>
5710    
5711  <p>The front-end can reset a particular sampler channel by sending the following command:  <p>The front-end can reset a particular sampler channel by sending the following command:
# Line 5367  General sampler informations</h3> Line 6137  General sampler informations</h3>
6137  </blockquote>  </blockquote>
6138                                                                            
6139    
6140    <p>INSTRUMENTS_DB_SUPPORT -
6141                                            </p>
6142    <blockquote class="text">
6143    <p>either yes or no, specifies whether the
6144                                                sampler is build with instruments database support.
6145    </p>
6146    </blockquote>
6147                                        
6148    
6149  </blockquote>  </blockquote>
6150                                                            
6151    
# Line 5376  General sampler informations</h3> Line 6155  General sampler informations</h3>
6155  <p>The mentioned fields above don't have to be in particular order.  <p>The mentioned fields above don't have to be in particular order.
6156                      Other fields might be added in future.                      Other fields might be added in future.
6157  </p>  </p>
6158    <a name="GET VOLUME"></a><br /><hr />
6159    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
6160    <a name="rfc.section.6.6.5"></a><h3>6.6.5.&nbsp;
6161    Getting global volume attenuation</h3>
6162    
6163    <p>The client can ask for the current global sampler-wide volume
6164                        attenuation by sending the following command:
6165    </p>
6166    <p>
6167                            </p>
6168    <blockquote class="text">
6169    <p>GET VOLUME
6170    </p>
6171    </blockquote><p>
6172                        
6173    </p>
6174    <p>Possible Answers:
6175    </p>
6176    <p>
6177                            </p>
6178    <blockquote class="text">
6179    <p>The sampler will always answer by returning the optional
6180                                dotted floating point coefficient, reflecting the current
6181                                global volume attenuation.
6182                                
6183    </p>
6184    </blockquote><p>
6185                        
6186    </p>
6187    <p>Note: it is up to the respective sampler engine whether to obey
6188                        that global volume parameter or not, but in general all engines SHOULD
6189                        use this parameter.
6190    </p>
6191    <a name="SET VOLUME"></a><br /><hr />
6192    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
6193    <a name="rfc.section.6.6.6"></a><h3>6.6.6.&nbsp;
6194    Setting global volume attenuation</h3>
6195    
6196    <p>The client can alter the current global sampler-wide volume
6197                        attenuation by sending the following command:
6198    </p>
6199    <p>
6200                            </p>
6201    <blockquote class="text">
6202    <p>SET VOLUME &lt;volume&gt;
6203    </p>
6204    </blockquote><p>
6205                        
6206    </p>
6207    <p>Where &lt;volume&gt; should be replaced by the optional dotted
6208                       floating point value, reflecting the new global volume parameter.
6209                       This value might usually be in the range between 0.0 and 1.0, that
6210                       is for attenuating the overall volume.
6211    </p>
6212    <p>Possible Answers:
6213    </p>
6214    <p>
6215                            </p>
6216    <blockquote class="text">
6217    <p>"OK" -
6218                                    </p>
6219    <blockquote class="text">
6220    <p>on success
6221    </p>
6222    </blockquote>
6223                                
6224    
6225    <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
6226                                    </p>
6227    <blockquote class="text">
6228    <p>if the global volume was set, but there are noteworthy
6229                                        issue(s) related, providing an appropriate warning code and
6230                                        warning message
6231    </p>
6232    </blockquote>
6233                                
6234    
6235    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
6236                                    </p>
6237    <blockquote class="text">
6238    <p>in case it failed, providing an appropriate error code and error message
6239    </p>
6240    </blockquote>
6241                                
6242    
6243    </blockquote><p>
6244                        
6245    </p>
6246  <a name="MIDI Instrument Mapping"></a><br /><hr />  <a name="MIDI Instrument Mapping"></a><br /><hr />
6247  <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>  <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
6248  <a name="rfc.section.6.7"></a><h3>6.7.&nbsp;  <a name="rfc.section.6.7"></a><h3>6.7.&nbsp;
# Line 5690  Getting MIDI instrument map information< Line 6557  Getting MIDI instrument map information<
6557  </blockquote>  </blockquote>
6558                                                                            
6559    
6560    <p>DEFAULT -
6561                                            </p>
6562    <blockquote class="text">
6563    <p>either true or false,
6564                                                defines whether this map is the default map
6565    </p>
6566    </blockquote>
6567                                        
6568    
6569  </blockquote>  </blockquote>
6570                                                            
6571    
# Line 5707  Getting MIDI instrument map information< Line 6583  Getting MIDI instrument map information<
6583  </p>  </p>
6584  <p>S: "NAME: Standard Map"  <p>S: "NAME: Standard Map"
6585  </p>  </p>
6586    <p>&nbsp;&nbsp;&nbsp;"DEFAULT: true"
6587    </p>
6588  <p>&nbsp;&nbsp;&nbsp;"."  <p>&nbsp;&nbsp;&nbsp;"."
6589  </p>  </p>
6590  </blockquote><p>  </blockquote><p>
# Line 5780  Create or replace a MIDI instrument map Line 6658  Create or replace a MIDI instrument map
6658  <p>  <p>
6659                          </p>                          </p>
6660  <blockquote class="text">  <blockquote class="text">
6661  <p>MAP MIDI_INSTRUMENT &lt;map&gt;  <p>MAP MIDI_INSTRUMENT [NON_MODAL] &lt;map&gt;
6662                              &lt;midi_bank&gt; &lt;midi_prog&gt; &lt;engine_name&gt;                              &lt;midi_bank&gt; &lt;midi_prog&gt; &lt;engine_name&gt;
6663                              &lt;filename&gt; &lt;instrument_index&gt; &lt;volume_value&gt;                              &lt;filename&gt; &lt;instrument_index&gt; &lt;volume_value&gt;
6664                              [&lt;instr_load_mode&gt;] [&lt;name&gt;]                              [&lt;instr_load_mode&gt;] [&lt;name&gt;]
# Line 5796  Create or replace a MIDI instrument map Line 6674  Create or replace a MIDI instrument map
6674                      index, &lt;engine_name&gt; a sampler engine name as returned by                      index, &lt;engine_name&gt; a sampler engine name as returned by
6675                      the <a class='info' href='#LIST AVAILABLE_ENGINES'>"LIST AVAILABLE_ENGINES"<span> (</span><span class='info'>Getting all available engines</span><span>)</span></a>                      the <a class='info' href='#LIST AVAILABLE_ENGINES'>"LIST AVAILABLE_ENGINES"<span> (</span><span class='info'>Getting all available engines</span><span>)</span></a>
6676                      command (not encapsulated into apostrophes), &lt;filename&gt; the name                      command (not encapsulated into apostrophes), &lt;filename&gt; the name
6677                      of the instrument's file to be deployed (encapsulated into apostrophes),                      of the instrument's file to be deployed (encapsulated into apostrophes,
6678                        supporting escape sequences as described in chapter
6679                        "<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>"),
6680                      &lt;instrument_index&gt; the index (integer value) of the instrument                      &lt;instrument_index&gt; the index (integer value) of the instrument
6681                      within the given file, &lt;volume_value&gt; reflects the master                      within the given file, &lt;volume_value&gt; reflects the master
6682                      volume of the instrument as optionally dotted number (where a                      volume of the instrument as optionally dotted number (where a
6683                      value < 1.0 means attenuation and a value > 1.0 means                      value &lt; 1.0 means attenuation and a value > 1.0 means
6684                      amplification). This parameter easily allows to adjust the                      amplification). This parameter easily allows to adjust the
6685                      volume of all intruments within a custom instrument map                      volume of all intruments within a custom instrument map
6686                      without having to adjust their instrument files. The                      without having to adjust their instrument files. The
# Line 5844  Create or replace a MIDI instrument map Line 6724  Create or replace a MIDI instrument map
6724                                  </p>                                  </p>
6725  <blockquote class="text">  <blockquote class="text">
6726  <p>The instrument will immediately be loaded  <p>The instrument will immediately be loaded
6727                                      into memory in the background when this mapping                                      into memory when this mapping
6728                                      command is sent and the instrument is kept all                                      command is sent and the instrument is kept all
6729                                      the time. Instruments with this mode are                                      the time. Instruments with this mode are
6730                                      only freed when the sampler is reset or all                                      only freed when the sampler is reset or all
# Line 5901  Create or replace a MIDI instrument map Line 6781  Create or replace a MIDI instrument map
6781                                            
6782  </p>  </p>
6783  <p>  <p>
6784                      The "MAP MIDI_INSTRUMENT" command                      By default, "MAP MIDI_INSTRUMENT" commands block until the mapping is
6785                      will immediately return, thus it will not block when an                      completely established in the sampler. The OPTIONAL "NON_MODAL" argument
6786                      instrument is to be loaded due to a "PERSISTENT" type                      however causes the respective "MAP MIDI_INSTRUMENT" command to return
6787                      entry as instruments are loaded in the background. As a                      immediately, that is to let the sampler establish the mapping in the
6788                      consequence this command may not necessarily return an error                      background. So this argument might be especially useful for mappings with
6789                      i.e. when the given instrument file does not exist or may                      a "PERSISTENT" type, because these have to load the respective instruments
6790                      turn out to be corrupt.                      immediately and might thus block for a very long time. It is recommended
6791                        however to use the OPTIONAL "NON_MODAL" argument only if really necessary,
6792                        because it has the following drawbacks: as "NON_MODAL" instructions return
6793                        immediately, they may not necessarily return an error i.e. when the given
6794                        instrument file turns out to be corrupt, beside that subsequent commands
6795                        in a LSCP instruction sequence might fail, because mandatory mappings are
6796                        not yet completed.
6797                                            
6798  </p>  </p>
6799  <p>Possible Answers:  <p>Possible Answers:
# Line 5974  Create or replace a MIDI instrument map Line 6860  Create or replace a MIDI instrument map
6860  <p>  <p>
6861                          </p>                          </p>
6862  <blockquote class="text">  <blockquote class="text">
6863  <p>C: "MAP MIDI_INSTRUMENT 1 8 120 gig '/home/joe/foodrums.gig' 0 1.0 PERSISTENT 'Foo Drumkit'"  <p>C: "MAP MIDI_INSTRUMENT NON_MODAL 1 8 120 gig '/home/joe/foodrums.gig' 0 1.0 PERSISTENT 'Foo Drumkit'"
6864  </p>  </p>
6865  <p>S: "OK"  <p>S: "OK"
6866  </p>  </p>
# Line 6263  Get current settings of MIDI instrument Line 7149  Get current settings of MIDI instrument
7149                                  </p>                                  </p>
7150  <blockquote class="text">  <blockquote class="text">
7151  <p>master volume of the instrument as optionally  <p>master volume of the instrument as optionally
7152                                      dotted number (where a value < 1.0 means attenuation                                      dotted number (where a value &lt; 1.0 means attenuation
7153                                      and a value > 1.0 means amplification)                                      and a value > 1.0 means amplification)
7154  </p>  </p>
7155  </blockquote>  </blockquote>
# Line 6372  Clear MIDI instrument map</h3> Line 7258  Clear MIDI instrument map</h3>
7258  </blockquote><p>  </blockquote><p>
7259                                            
7260  </p>  </p>
7261    <a name="Managing Instruments Database"></a><br /><hr />
7262    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
7263    <a name="rfc.section.6.8"></a><h3>6.8.&nbsp;
7264    Managing Instruments Database</h3>
7265    
7266    <p>The following commands describe how to use and manage
7267                    the instruments database.
7268    </p>
7269    <p>Notice:
7270    </p>
7271    <p>
7272                            </p>
7273    <blockquote class="text">
7274    <p>All command arguments representing a path or
7275                                instrument/directory name support escape sequences as described in chapter
7276                                "<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>".
7277                                
7278    </p>
7279    <p>All occurrences of a forward slash in instrument and directory
7280                                   names are escaped with its hex (\x2f) or octal (\057) escape sequence.
7281                                
7282    </p>
7283    </blockquote><p>
7284                        
7285    </p>
7286    <a name="ADD DB_INSTRUMENT_DIRECTORY"></a><br /><hr />
7287    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
7288    <a name="rfc.section.6.8.1"></a><h3>6.8.1.&nbsp;
7289    Creating a new instrument directory</h3>
7290    
7291    <p>The front-end can add a new instrument directory to the
7292                        instruments database by sending the following command:
7293    </p>
7294    <p>
7295                            </p>
7296    <blockquote class="text">
7297    <p>ADD DB_INSTRUMENT_DIRECTORY &lt;dir&gt;
7298    </p>
7299    </blockquote><p>
7300                        
7301    </p>
7302    <p>Where &lt;dir&gt; is the absolute path name of the directory
7303                        to be created (encapsulated into apostrophes).
7304    </p>
7305    <p>Possible Answers:
7306    </p>
7307    <p>
7308                            </p>
7309    <blockquote class="text">
7310    <p>"OK" -
7311                                    </p>
7312    <blockquote class="text">
7313    <p>on success
7314    </p>
7315    </blockquote>
7316                                
7317    
7318    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
7319                                    </p>
7320    <blockquote class="text">
7321    <p>when the directory could not be created, which
7322                                        can happen if the directory already exists or the
7323                                        name contains not allowed symbols
7324    </p>
7325    </blockquote>
7326                                
7327    
7328    </blockquote><p>
7329                        
7330    </p>
7331    <p>Examples:
7332    </p>
7333    <p>
7334                            </p>
7335    <blockquote class="text">
7336    <p>C: "ADD DB_INSTRUMENT_DIRECTORY '/Piano Collection'"
7337    </p>
7338    <p>S: "OK"
7339    </p>
7340    </blockquote><p>
7341                        
7342    </p>
7343    <a name="REMOVE DB_INSTRUMENT_DIRECTORY"></a><br /><hr />
7344    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
7345    <a name="rfc.section.6.8.2"></a><h3>6.8.2.&nbsp;
7346    Deleting an instrument directory</h3>
7347    
7348    <p>The front-end can delete a particular instrument directory
7349                        from the instruments database by sending the following command:
7350    </p>
7351    <p>
7352                            </p>
7353    <blockquote class="text">
7354    <p>REMOVE DB_INSTRUMENT_DIRECTORY [FORCE] &lt;dir&gt;
7355    </p>
7356    </blockquote><p>
7357                        
7358    </p>
7359    <p>Where &lt;dir&gt; is the absolute path name of the directory
7360                        to delete. The optional FORCE argument can be used to
7361                        force the deletion of a non-empty directory and all its content.
7362    </p>
7363    <p>Possible Answers:
7364    </p>
7365    <p>
7366                            </p>
7367    <blockquote class="text">
7368    <p>"OK" -
7369                                    </p>
7370    <blockquote class="text">
7371    <p>if the directory is deleted successfully
7372    </p>
7373    </blockquote>
7374                                
7375    
7376    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
7377                                    </p>
7378    <blockquote class="text">
7379    <p>if the given directory does not exist, or
7380                                        if trying to delete a non-empty directory,
7381                                        without using the FORCE argument.
7382    </p>
7383    </blockquote>
7384                                
7385    
7386    </blockquote><p>
7387                        
7388    </p>
7389    <p>Examples:
7390    </p>
7391    <p>
7392                            </p>
7393    <blockquote class="text">
7394    <p>C: "REMOVE DB_INSTRUMENT_DIRECTORY FORCE '/Piano Collection'"
7395    </p>
7396    <p>S: "OK"
7397    </p>
7398    </blockquote><p>
7399                        
7400    </p>
7401    <a name="GET DB_INSTRUMENT_DIRECTORIES"></a><br /><hr />
7402    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
7403    <a name="rfc.section.6.8.3"></a><h3>6.8.3.&nbsp;
7404    Getting amount of instrument directories</h3>
7405    
7406    <p>The front-end can retrieve the current amount of
7407                        directories in a specific directory by sending the following command:
7408    </p>
7409    <p>
7410                            </p>
7411    <blockquote class="text">
7412    <p>GET DB_INSTRUMENT_DIRECTORIES [RECURSIVE] &lt;dir&gt;
7413    </p>
7414    </blockquote><p>
7415                        
7416    </p>
7417    <p>Where &lt;dir&gt; should be replaced by the absolute path
7418                        name of the directory. If RECURSIVE is specified, the number of
7419                        all directories, including those located in subdirectories of the
7420                        specified directory, will be returned.
7421    </p>
7422    <p>Possible Answers:
7423    </p>
7424    <p>
7425                            </p>
7426    <blockquote class="text">
7427    <p>The current number of instrument directories
7428                                in the specified directory.
7429    </p>
7430    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
7431                                    </p>
7432    <blockquote class="text">
7433    <p>if the given directory does not exist.
7434    </p>
7435    </blockquote>
7436                                
7437    
7438    </blockquote><p>
7439                        
7440    </p>
7441    <p>Example:
7442    </p>
7443    <p>
7444                            </p>
7445    <blockquote class="text">
7446    <p>C: "GET DB_INSTRUMENT_DIRECTORIES '/'"
7447    </p>
7448    <p>S: "2"
7449    </p>
7450    </blockquote><p>
7451                        
7452    </p>
7453    <a name="LIST DB_INSTRUMENT_DIRECTORIES"></a><br /><hr />
7454    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
7455    <a name="rfc.section.6.8.4"></a><h3>6.8.4.&nbsp;
7456    Listing all directories in specific directory</h3>
7457    
7458    <p>The front-end can retrieve the current list of directories
7459                        in specific directory by sending the following command:
7460    </p>
7461    <p>
7462                            </p>
7463    <blockquote class="text">
7464    <p>LIST DB_INSTRUMENT_DIRECTORIES [RECURSIVE] &lt;dir&gt;
7465    </p>
7466    </blockquote><p>
7467                        
7468    </p>
7469    <p>Where &lt;dir&gt; should be replaced by the absolute path
7470                        name of the directory. If RECURSIVE is specified, the absolute path names
7471                        of all directories, including those located in subdirectories of the
7472                        specified directory, will be returned.
7473    </p>
7474    <p>Possible Answers:
7475    </p>
7476    <p>
7477                            </p>
7478    <blockquote class="text">
7479    <p>A comma separated list of all instrument directories
7480                                (encapsulated into apostrophes) in the specified directory.
7481    </p>
7482    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
7483                                    </p>
7484    <blockquote class="text">
7485    <p>if the given directory does not exist.
7486    </p>
7487    </blockquote>
7488                                
7489    
7490    </blockquote><p>
7491                        
7492    </p>
7493    <p>Example:
7494    </p>
7495    <p>
7496                            </p>
7497    <blockquote class="text">
7498    <p>C: "LIST DB_INSTRUMENT_DIRECTORIES '/'"
7499    </p>
7500    <p>S: "'Piano Collection','Percussion Collection'"
7501    </p>
7502    </blockquote><p>
7503                        
7504    </p>
7505    <p>
7506                            </p>
7507    <blockquote class="text">
7508    <p>C: "LIST DB_INSTRUMENT_DIRECTORIES RECURSIVE '/'"
7509    </p>
7510    <p>S: "'/Piano Collection','/Piano Collection/Acoustic','/Piano Collection/Acoustic/New','/Percussion Collection'"
7511    </p>
7512    </blockquote><p>
7513                        
7514    </p>
7515    <a name="GET DB_INSTRUMENT_DIRECTORY INFO"></a><br /><hr />
7516    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
7517    <a name="rfc.section.6.8.5"></a><h3>6.8.5.&nbsp;
7518    Getting instrument directory information</h3>
7519    
7520    <p>The front-end can ask for the current settings of an
7521                        instrument directory by sending the following command:
7522    </p>
7523    <p>
7524                            </p>
7525    <blockquote class="text">
7526    <p>GET DB_INSTRUMENT_DIRECTORY INFO &lt;dir&gt;
7527    </p>
7528    </blockquote><p>
7529                        
7530    </p>
7531    <p>Where &lt;dir&gt; should be replaced by the absolute path
7532                        name of the directory the front-end is interested in.
7533    </p>
7534    <p>Possible Answers:
7535    </p>
7536    <p>
7537                            </p>
7538    <blockquote class="text">
7539    <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
7540                                Each answer line begins with the settings category name
7541                                followed by a colon and then a space character &lt;SP&gt; and finally
7542                                the info character string to that setting category. At the
7543                                moment the following categories are defined:
7544    </p>
7545    <p>
7546                                    </p>
7547    <blockquote class="text">
7548    <p>DESCRIPTION -
7549                                            </p>
7550    <blockquote class="text">
7551    <p>A brief description of the directory content.
7552                                                Note that the character string may contain
7553                                                <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>.
7554    </p>
7555    </blockquote>
7556                                        
7557    
7558    <p>CREATED -
7559                                            </p>
7560    <blockquote class="text">
7561    <p>The creation date and time of the directory,
7562                                                represented in "YYYY-MM-DD HH:MM:SS" format
7563    </p>
7564    </blockquote>
7565                                        
7566    
7567    <p>MODIFIED -
7568                                            </p>
7569    <blockquote class="text">
7570    <p>The date and time of the last modification of the
7571                                                directory, represented in "YYYY-MM-DD HH:MM:SS" format
7572    </p>
7573    </blockquote>
7574                                        
7575    
7576    </blockquote>
7577                                
7578    
7579    </blockquote><p>
7580                        
7581    </p>
7582    <p>The mentioned fields above don't have to be in particular order.
7583    </p>
7584    <p>Example:
7585    </p>
7586    <p>
7587                            </p>
7588    <blockquote class="text">
7589    <p>C: "GET DB_INSTRUMENT_DIRECTORY INFO '/Piano Collection'"
7590    </p>
7591    <p>S: "DESCRIPTION: Piano collection of instruments in GigaSampler format."
7592    </p>
7593    <p>&nbsp;&nbsp;&nbsp;"CREATED: 2007-02-05 10:23:12"
7594    </p>
7595    <p>&nbsp;&nbsp;&nbsp;"MODIFIED: 2007-04-07 12:50:21"
7596    </p>
7597    <p>&nbsp;&nbsp;&nbsp;"."
7598    </p>
7599    </blockquote><p>
7600                        
7601    </p>
7602    <a name="SET DB_INSTRUMENT_DIRECTORY NAME"></a><br /><hr />
7603    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
7604    <a name="rfc.section.6.8.6"></a><h3>6.8.6.&nbsp;
7605    Renaming an instrument directory</h3>
7606    
7607    <p>The front-end can alter the name of a specific
7608                        instrument directory by sending the following command:
7609    </p>
7610    <p>
7611                            </p>
7612    <blockquote class="text">
7613    <p>SET DB_INSTRUMENT_DIRECTORY NAME &lt;dir&gt; &lt;name&gt;
7614    </p>
7615    </blockquote><p>
7616                        
7617    </p>
7618    <p>Where &lt;dir&gt; is the absolute path name of the directory and
7619                        &lt;name&gt; is the new name for that directory.
7620    </p>
7621    <p>Possible Answers:
7622    </p>
7623    <p>
7624                            </p>
7625    <blockquote class="text">
7626    <p>"OK" -
7627                                    </p>
7628    <blockquote class="text">
7629    <p>on success
7630    </p>
7631    </blockquote>
7632                                
7633    
7634    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
7635                                    </p>
7636    <blockquote class="text">
7637    <p>in case the given directory does not exists,
7638                                        or if a directory with name equal to the new
7639                                        name already exists.
7640    </p>
7641    </blockquote>
7642                                
7643    
7644    </blockquote><p>
7645                        
7646    </p>
7647    <p>Example:
7648    </p>
7649    <p>
7650                            </p>
7651    <blockquote class="text">
7652    <p>C: "SET DB_INSTRUMENT_DIRECTORY NAME '/Piano Collection/Acustic' 'Acoustic'"
7653    </p>
7654    <p>S: "OK"
7655    </p>
7656    </blockquote><p>
7657                        
7658    </p>
7659    <a name="MOVE DB_INSTRUMENT_DIRECTORY"></a><br /><hr />
7660    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
7661    <a name="rfc.section.6.8.7"></a><h3>6.8.7.&nbsp;
7662    Moving an instrument directory</h3>
7663    
7664    <p>The front-end can move a specific
7665                        instrument directory by sending the following command:
7666    </p>
7667    <p>
7668                            </p>
7669    <blockquote class="text">
7670    <p>MOVE DB_INSTRUMENT_DIRECTORY &lt;dir&gt; &lt;dst&gt;
7671    </p>
7672    </blockquote><p>
7673                        
7674    </p>
7675    <p>Where &lt;dir&gt; is the absolute path name of the directory
7676                        to move and &lt;dst&gt; is the location where the directory will
7677                        be moved to.
7678    </p>
7679    <p>Possible Answers:
7680    </p>
7681    <p>
7682                            </p>
7683    <blockquote class="text">
7684    <p>"OK" -
7685                                    </p>
7686    <blockquote class="text">
7687    <p>on success
7688    </p>
7689    </blockquote>
7690                                
7691    
7692    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
7693                                    </p>
7694    <blockquote class="text">
7695    <p>in case a given directory does not exists,
7696                                        or if a directory with name equal to the name
7697                                        of the specified directory already exists in
7698                                        the destination directory. Error is also thrown
7699                                        when trying to move a directory to a subdirectory
7700                                        of itself.
7701    </p>
7702    </blockquote>
7703                                
7704    
7705    </blockquote><p>
7706                        
7707    </p>
7708    <p>Example:
7709    </p>
7710    <p>
7711                            </p>
7712    <blockquote class="text">
7713    <p>C: "MOVE DB_INSTRUMENT_DIRECTORY '/Acoustic' '/Piano Collection/Acoustic'"
7714    </p>
7715    <p>S: "OK"
7716    </p>
7717    </blockquote><p>
7718                        
7719    </p>
7720    <a name="COPY DB_INSTRUMENT_DIRECTORY"></a><br /><hr />
7721    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
7722    <a name="rfc.section.6.8.8"></a><h3>6.8.8.&nbsp;
7723    Copying instrument directories</h3>
7724    
7725    <p>The front-end can copy a specific
7726                        instrument directory by sending the following command:
7727    </p>
7728    <p>
7729                            </p>
7730    <blockquote class="text">
7731    <p>COPY DB_INSTRUMENT_DIRECTORY &lt;dir&gt; &lt;dst&gt;
7732    </p>
7733    </blockquote><p>
7734                        
7735    </p>
7736    <p>Where &lt;dir&gt; is the absolute path name of the directory
7737                        to copy and &lt;dst&gt; is the location where the directory will
7738                        be copied to.
7739    </p>
7740    <p>Possible Answers:
7741    </p>
7742    <p>
7743                            </p>
7744    <blockquote class="text">
7745    <p>"OK" -
7746                                    </p>
7747    <blockquote class="text">
7748    <p>on success
7749    </p>
7750    </blockquote>
7751                                
7752    
7753    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
7754                                    </p>
7755    <blockquote class="text">
7756    <p>in case a given directory does not exists,
7757                                        or if a directory with name equal to the name
7758                                        of the specified directory already exists in
7759                                        the destination directory. Error is also thrown
7760                                        when trying to copy a directory to a subdirectory
7761                                        of itself.
7762    </p>
7763    </blockquote>
7764                                
7765    
7766    </blockquote><p>
7767                        
7768    </p>
7769    <p>Example:
7770    </p>
7771    <p>
7772                            </p>
7773    <blockquote class="text">
7774    <p>C: "COPY DB_INSTRUMENT_DIRECTORY '/Piano Collection/Acoustic' '/Acoustic/Pianos'"
7775    </p>
7776    <p>S: "OK"
7777    </p>
7778    </blockquote><p>
7779                        
7780    </p>
7781    <a name="SET DB_INSTRUMENT_DIRECTORY DESCRIPTION"></a><br /><hr />
7782    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
7783    <a name="rfc.section.6.8.9"></a><h3>6.8.9.&nbsp;
7784    Changing the description of directory</h3>
7785    
7786    <p>The front-end can alter the description of a specific
7787                        instrument directory by sending the following command:
7788    </p>
7789    <p>
7790                            </p>
7791    <blockquote class="text">
7792    <p>SET DB_INSTRUMENT_DIRECTORY DESCRIPTION &lt;dir&gt; &lt;desc&gt;
7793    </p>
7794    </blockquote><p>
7795                        
7796    </p>
7797    <p>Where &lt;dir&gt; is the absolute path name of the directory and
7798                        &lt;desc&gt; is the new description for the directory
7799                        (encapsulated into apostrophes, supporting escape sequences as described in chapter
7800                        "<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>").
7801    </p>
7802    <p>Possible Answers:
7803    </p>
7804    <p>
7805                            </p>
7806    <blockquote class="text">
7807    <p>"OK" -
7808                                    </p>
7809    <blockquote class="text">
7810    <p>on success
7811    </p>
7812    </blockquote>
7813                                
7814    
7815    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
7816                                    </p>
7817    <blockquote class="text">
7818    <p>in case the given directory does not exists.
7819    </p>
7820    </blockquote>
7821                                
7822    
7823    </blockquote><p>
7824                        
7825    </p>
7826    <p>Example:
7827    </p>
7828    <p>
7829                            </p>
7830    <blockquote class="text">
7831    <p>C: "SET DB_INSTRUMENT_DIRECTORY DESCRIPTION '/Piano Collection' 'A collection of piano instruments in various format.'"
7832    </p>
7833    <p>S: "OK"
7834    </p>
7835    </blockquote><p>
7836                        
7837    </p>
7838    <a name="FIND DB_INSTRUMENT_DIRECTORIES"></a><br /><hr />
7839    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
7840    <a name="rfc.section.6.8.10"></a><h3>6.8.10.&nbsp;
7841    Finding directories</h3>
7842    
7843    <p>The front-end can search for directories
7844                        in specific directory by sending the following command:
7845    </p>
7846    <p>
7847                            </p>
7848    <blockquote class="text">
7849    <p>FIND DB_INSTRUMENT_DIRECTORIES [NON_RECURSIVE] &lt;dir&gt; &lt;criteria-list&gt;
7850    </p>
7851    </blockquote><p>
7852                        
7853    </p>
7854    <p>Where &lt;dir&gt; should be replaced by the absolute path
7855                        name of the directory to search in. If NON_RECURSIVE is specified, the
7856                        directories located in subdirectories of the specified directory will not
7857                        be searched. &lt;criteria-list&gt; is a list of search criterias
7858                        in form of "key1=val1 key2=val2 ...". The following criterias are
7859                        allowed:
7860    </p>
7861    <p>
7862                          
7863    <p>NAME='&lt;search-string&gt;'
7864                              </p>
7865    <blockquote class="text">
7866    <p>Restricts the search to directories, which names
7867                                  satisfy the supplied search string (encapsulated into apostrophes,
7868                                  supporting escape sequences as described in chapter
7869                                  "<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>").
7870    </p>
7871    </blockquote><p>
7872                          
7873    </p>
7874    
7875                          
7876    <p>CREATED='[&lt;date-after&gt;]..[&lt;date-before&gt;]'
7877                              </p>
7878    <blockquote class="text">
7879    <p>Restricts the search to directories, which creation
7880                                  date satisfies the specified period, where &lt;date-after&gt;
7881                                  and &lt;date-before&gt; are in "YYYY-MM-DD HH:MM:SS" format.
7882                                  If &lt;date-after&gt; is omitted the search is restricted to
7883                                  directories created before &lt;date-before&gt;. If
7884                                  &lt;date-before&gt; is omitted, the search is restricted
7885                                  to directories created after &lt;date-after&gt;.
7886    </p>
7887    </blockquote><p>
7888                          
7889    </p>
7890    
7891                          
7892    <p>MODIFIED='[&lt;date-after&gt;]..[&lt;date-before&gt;]'
7893                              </p>
7894    <blockquote class="text">
7895    <p>Restricts the search to directories, which
7896                                  date of last modification satisfies the specified period, where
7897                                  &lt;date-after&gt; and &lt;date-before&gt; are in "YYYY-MM-DD HH:MM:SS"
7898                                  format. If &lt;date-after&gt; is omitted the search is restricted to
7899                                  directories, which are last modified before &lt;date-before&gt;. If
7900                                  &lt;date-before&gt; is omitted, the search is restricted to directories,
7901                                  which are last modified after &lt;date-after&gt;.
7902    </p>
7903    </blockquote><p>
7904                          
7905    </p>
7906    
7907                          
7908    <p>DESCRIPTION='&lt;search-string&gt;'
7909                              </p>
7910    <blockquote class="text">
7911    <p>Restricts the search to directories with description
7912                                  that satisfies the supplied search string
7913                                  (encapsulated into apostrophes, supporting escape
7914                                  sequences as described in chapter
7915                                  "<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>").
7916    </p>
7917    </blockquote><p>
7918                          
7919    </p>
7920                        
7921    
7922    <p>Where &lt;search-string&gt; is either a regular expression, or a
7923                        word list separated with spaces for OR search and with '+' for AND search.
7924    </p>
7925    <p>Possible Answers:
7926    </p>
7927    <p>
7928                            </p>
7929    <blockquote class="text">
7930    <p>A comma separated list with the absolute path names (encapsulated into
7931                                apostrophes) of all directories in the specified directory that satisfy
7932                                the supplied search criterias.
7933    </p>
7934    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
7935                                    </p>
7936    <blockquote class="text">
7937    <p>if the given directory does not exist.
7938    </p>
7939    </blockquote>
7940                                
7941    
7942    </blockquote><p>
7943                        
7944    </p>
7945    <p>Example:
7946    </p>
7947    <p>
7948                            </p>
7949    <blockquote class="text">
7950    <p>C: "FIND DB_INSTRUMENT_DIRECTORIES '/' NAME='Piano'"
7951    </p>
7952    <p>S: "'/Piano Collection'"
7953    </p>
7954    </blockquote><p>
7955                        
7956    </p>
7957    <p>
7958                            </p>
7959    <blockquote class="text">
7960    <p>C: "FIND DB_INSTRUMENT_DIRECTORIES '/' CREATED='..2007-04-01 09:30:13'"
7961    </p>
7962    <p>S: "'/Piano Collection','/Percussions'"
7963    </p>
7964    </blockquote><p>
7965                        
7966    </p>
7967    <a name="ADD DB_INSTRUMENTS"></a><br /><hr />
7968    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
7969    <a name="rfc.section.6.8.11"></a><h3>6.8.11.&nbsp;
7970    Adding instruments to the instruments database</h3>
7971    
7972    <p>The front-end can add one or more instruments
7973                        to the instruments database by sending the following command:
7974    </p>
7975    <p>
7976                            </p>
7977    <blockquote class="text">
7978    <p>ADD DB_INSTRUMENTS [NON_MODAL] [&lt;mode&gt;] &lt;db_dir&gt; &lt;file_path&gt; [&lt;instr_index&gt;]
7979    </p>
7980    </blockquote><p>
7981                        
7982    </p>
7983    <p>Where &lt;db_dir&gt; is the absolute path name of a directory
7984                        (encapsulated into apostrophes) in the instruments database in which
7985                        only the new instruments (that are not already in the database) will
7986                        be added, &lt;file_path&gt; is the absolute path name of a file or
7987                        directory in the file system (encapsulated into apostrophes). In case
7988                        an instrument file is supplied, only the instruments in the specified
7989                        file will be added to the instruments database. If the optional
7990                        &lt;instr_index&gt; (the index of the instrument within the given file)
7991                        is supplied too, then only the specified instrument will be added.
7992                        In case a directory is supplied, the instruments in that directory
7993                        will be added. The OPTIONAL &lt;mode&gt; argument is only applied
7994                        when a directory is provided as &lt;file_path&gt; and specifies how the
7995                        scanning will be done and has exactly the following possibilities:
7996    </p>
7997    <p>
7998                            </p>
7999    <blockquote class="text">
8000    <p>"RECURSIVE" -
8001                                    </p>
8002    <blockquote class="text">
8003    <p>All instruments will be processed, including those
8004                                        in the subdirectories, and the respective subdirectory
8005                                        tree structure will be recreated in the instruments
8006                                        database
8007    </p>
8008    </blockquote>
8009                                
8010    
8011    <p>"NON_RECURSIVE" -
8012                                    </p>
8013    <blockquote class="text">
8014    <p>Only the instruments in the specified directory
8015                                        will be added, the instruments in the subdirectories
8016                                        will not be processed.
8017    </p>
8018    </blockquote>
8019                                
8020    
8021    <p>"FLAT" -
8022                                    </p>
8023    <blockquote class="text">
8024    <p>All instruments will be processed, including those
8025                                        in the subdirectories, but the respective subdirectory
8026                                        structure will not be recreated in the instruments
8027                                        database. All instruments will be added directly in
8028                                        the specified database directory.
8029    </p>
8030    </blockquote>
8031                                
8032    
8033    </blockquote><p>
8034                        
8035    </p>
8036    <p>The difference between regular and NON_MODAL versions of the command
8037                        is that the regular command returns when the scanning is finished
8038                        while NON_MODAL version returns immediately and a background process is launched.
8039                        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>
8040                        command can be used to monitor the scanning progress.
8041    </p>
8042    <p>Possible Answers:
8043    </p>
8044    <p>
8045                            </p>
8046    <blockquote class="text">
8047    <p>"OK" -
8048                                    </p>
8049    <blockquote class="text">
8050    <p>on success when NON_MODAL is not supplied
8051    </p>
8052    </blockquote>
8053                                
8054    
8055    <p>"OK[&lt;job-id&gt;]" -
8056                                    </p>
8057    <blockquote class="text">
8058    <p>on success when NON_MODAL is supplied, where &lt;job-id&gt;
8059                                        is a numerical ID used to obtain status information about the job progress.
8060                                        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>
8061                                        
8062    </p>
8063    </blockquote>
8064                                
8065    
8066    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
8067                                    </p>
8068    <blockquote class="text">
8069    <p>if an invalid path is specified.
8070    </p>
8071    </blockquote>
8072                                
8073    
8074    </blockquote><p>
8075                        
8076    </p>
8077    <p>Examples:
8078    </p>
8079    <p>
8080                            </p>
8081    <blockquote class="text">
8082    <p>C: "ADD DB_INSTRUMENTS '/Piano Collection' '/home/me/gigs/PMI Bosendorfer 290.gig' 0"
8083    </p>
8084    <p>S: "OK"
8085    </p>
8086    </blockquote><p>
8087                        
8088    </p>
8089    <a name="REMOVE DB_INSTRUMENT"></a><br /><hr />
8090    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
8091    <a name="rfc.section.6.8.12"></a><h3>6.8.12.&nbsp;
8092    Removing an instrument</h3>
8093    
8094    <p>The front-end can remove a particular instrument
8095                        from the instruments database by sending the following command:
8096    </p>
8097    <p>
8098                            </p>
8099    <blockquote class="text">
8100    <p>REMOVE DB_INSTRUMENT &lt;instr_path&gt;
8101    </p>
8102    </blockquote><p>
8103                        
8104    </p>
8105    <p>Where &lt;instr_path&gt; is the absolute path name
8106                        (in the instruments database) of the instrument to remove.
8107    </p>
8108    <p>Possible Answers:
8109    </p>
8110    <p>
8111                            </p>
8112    <blockquote class="text">
8113    <p>"OK" -
8114                                    </p>
8115    <blockquote class="text">
8116    <p>if the instrument is removed successfully
8117    </p>
8118    </blockquote>
8119                                
8120    
8121    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
8122                                    </p>
8123    <blockquote class="text">
8124    <p>if the given path does not exist or
8125                                        is a directory.
8126    </p>
8127    </blockquote>
8128                                
8129    
8130    </blockquote><p>
8131                        
8132    </p>
8133    <p>Examples:
8134    </p>
8135    <p>
8136                            </p>
8137    <blockquote class="text">
8138    <p>C: "REMOVE DB_INSTRUMENT '/Piano Collection/Bosendorfer 290'"
8139    </p>
8140    <p>S: "OK"
8141    </p>
8142    </blockquote><p>
8143                        
8144    </p>
8145    <a name="GET DB_INSTRUMENTS"></a><br /><hr />
8146    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
8147    <a name="rfc.section.6.8.13"></a><h3>6.8.13.&nbsp;
8148    Getting amount of instruments</h3>
8149    
8150    <p>The front-end can retrieve the current amount of
8151                        instruments in a specific directory by sending the following command:
8152    </p>
8153    <p>
8154                            </p>
8155    <blockquote class="text">
8156    <p>GET DB_INSTRUMENTS [RECURSIVE] &lt;dir&gt;
8157    </p>
8158    </blockquote><p>
8159                        
8160    </p>
8161    <p>Where &lt;dir&gt; should be replaced by the absolute path name
8162                        of the directory. If RECURSIVE is specified, the number of all
8163                        instruments, including those located in subdirectories of the
8164                        specified directory, will be returned.
8165    </p>
8166    <p>Possible Answers:
8167    </p>
8168    <p>
8169                            </p>
8170    <blockquote class="text">
8171    <p>The current number of instruments
8172                                in the specified directory.
8173    </p>
8174    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
8175                                    </p>
8176    <blockquote class="text">
8177    <p>if the given directory does not exist.
8178    </p>
8179    </blockquote>
8180                                
8181    
8182    </blockquote><p>
8183                        
8184    </p>
8185    <p>Example:
8186    </p>
8187    <p>
8188                            </p>
8189    <blockquote class="text">
8190    <p>C: "GET DB_INSTRUMENTS '/Piano Collection'"
8191    </p>
8192    <p>S: "2"
8193    </p>
8194    </blockquote><p>
8195                        
8196    </p>
8197    <a name="LIST DB_INSTRUMENTS"></a><br /><hr />
8198    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
8199    <a name="rfc.section.6.8.14"></a><h3>6.8.14.&nbsp;
8200    Listing all instruments in specific directory</h3>
8201    
8202    <p>The front-end can retrieve the current list of instruments
8203                        in specific directory by sending the following command:
8204    </p>
8205    <p>
8206                            </p>
8207    <blockquote class="text">
8208    <p>LIST DB_INSTRUMENTS [RECURSIVE] &lt;dir&gt;
8209    </p>
8210    </blockquote><p>
8211                        
8212    </p>
8213    <p>Where &lt;dir&gt; should be replaced by the absolute path
8214                        name of the directory. If RECURSIVE is specified, the absolute path
8215                        names of all instruments, including those located in subdirectories
8216                        of the specified directory, will be returned.
8217    </p>
8218    <p>Possible Answers:
8219    </p>
8220    <p>
8221                            </p>
8222    <blockquote class="text">
8223    <p>A comma separated list of all instruments
8224                                (encapsulated into apostrophes) in the specified directory.
8225    </p>
8226    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
8227                                    </p>
8228    <blockquote class="text">
8229    <p>if the given directory does not exist.
8230    </p>
8231    </blockquote>
8232                                
8233    
8234    </blockquote><p>
8235                        
8236    </p>
8237    <p>Example:
8238    </p>
8239    <p>
8240                            </p>
8241    <blockquote class="text">
8242    <p>C: "LIST DB_INSTRUMENTS '/Piano Collection'"
8243    </p>
8244    <p>S: "'Bosendorfer 290','Steinway D'"
8245    </p>
8246    </blockquote><p>
8247                        
8248    </p>
8249    <p>
8250                            </p>
8251    <blockquote class="text">
8252    <p>C: "LIST DB_INSTRUMENTS RECURSIVE '/Piano Collection'"
8253    </p>
8254    <p>S: "'/Piano Collection/Bosendorfer 290','/Piano Collection/Steinway D','/Piano Collection/Lite/Free Piano'"
8255    </p>
8256    </blockquote><p>
8257                        
8258    </p>
8259    <a name="GET DB_INSTRUMENT INFO"></a><br /><hr />
8260    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
8261    <a name="rfc.section.6.8.15"></a><h3>6.8.15.&nbsp;
8262    Getting instrument information</h3>
8263    
8264    <p>The front-end can ask for the current settings of an
8265                        instrument by sending the following command:
8266    </p>
8267    <p>
8268                            </p>
8269    <blockquote class="text">
8270    <p>GET DB_INSTRUMENT INFO &lt;instr_path&gt;
8271    </p>
8272    </blockquote><p>
8273                        
8274    </p>
8275    <p>Where &lt;instr_path&gt; should be replaced by the absolute path
8276                        name of the instrument the front-end is interested in.
8277    </p>
8278    <p>Possible Answers:
8279    </p>
8280    <p>
8281                            </p>
8282    <blockquote class="text">
8283    <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
8284                                Each answer line begins with the settings category name
8285                                followed by a colon and then a space character &lt;SP&gt; and finally
8286                                the info character string to that setting category. At the
8287                                moment the following categories are defined:
8288    </p>
8289    <p>
8290                                    </p>
8291    <blockquote class="text">
8292    <p>INSTRUMENT_FILE -
8293                                            </p>
8294    <blockquote class="text">
8295    <p>File name of the instrument.
8296                                                Note that the character string may contain
8297                                                <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>.
8298    </p>
8299    </blockquote>
8300                                        
8301    
8302    <p>INSTRUMENT_NR -
8303                                            </p>
8304    <blockquote class="text">
8305    <p>Index of the instrument within the file.
8306    </p>
8307    </blockquote>
8308                                        
8309    
8310    <p>FORMAT_FAMILY -
8311                                            </p>
8312    <blockquote class="text">
8313    <p>The format family of the instrument.
8314    </p>
8315    </blockquote>
8316                                        
8317    
8318    <p>FORMAT_VERSION -
8319                                            </p>
8320    <blockquote class="text">
8321    <p>The format version of the instrument.
8322    </p>
8323    </blockquote>
8324                                        
8325    
8326    <p>SIZE -
8327                                            </p>
8328    <blockquote class="text">
8329    <p>The size of the instrument in bytes.
8330    </p>
8331    </blockquote>
8332                                        
8333    
8334    <p>CREATED -
8335                                            </p>
8336    <blockquote class="text">
8337    <p>The date and time when the instrument is added
8338                                                in the instruments database, represented in
8339                                               "YYYY-MM-DD HH:MM:SS" format
8340    </p>
8341    </blockquote>
8342                                        
8343    
8344    <p>MODIFIED -
8345                                            </p>
8346    <blockquote class="text">
8347    <p>The date and time of the last modification of the
8348                                                instrument's database settings, represented in
8349                                                "YYYY-MM-DD HH:MM:SS" format
8350    </p>
8351    </blockquote>
8352                                        
8353    
8354    <p>DESCRIPTION -
8355                                            </p>
8356    <blockquote class="text">
8357    <p>A brief description of the instrument.
8358                                                Note that the character string may contain
8359                                                <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>.
8360    </p>
8361    </blockquote>
8362                                        
8363    
8364    <p>IS_DRUM -
8365                                            </p>
8366    <blockquote class="text">
8367    <p>either true or false, determines whether the
8368                                                instrument is a drumkit or a chromatic instrument
8369    </p>
8370    </blockquote>
8371                                        
8372    
8373    <p>PRODUCT -
8374                                            </p>
8375    <blockquote class="text">
8376    <p>The product title of the instrument.
8377                                                Note that the character string may contain
8378                                                <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>.
8379    </p>
8380    </blockquote>
8381                                        
8382    
8383    <p>ARTISTS -
8384                                            </p>
8385    <blockquote class="text">
8386    <p>Lists the artist names.
8387                                                Note that the character string may contain
8388                                                <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>.
8389    </p>
8390    </blockquote>
8391                                        
8392    
8393    <p>KEYWORDS -
8394                                            </p>
8395    <blockquote class="text">
8396    <p>Provides a list of keywords that refer to the instrument.
8397                                                Keywords are separated with semicolon and blank.
8398                                                Note that the character string may contain
8399                                                <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>.
8400    </p>
8401    </blockquote>
8402                                        
8403    
8404    </blockquote>
8405                                
8406    
8407    </blockquote><p>
8408                        
8409    </p>
8410    <p>The mentioned fields above don't have to be in particular order.
8411    </p>
8412    <p>Example:
8413    </p>
8414    <p>
8415                            </p>
8416    <blockquote class="text">
8417    <p>C: "GET DB_INSTRUMENT INFO '/Piano Collection/Bosendorfer 290'"
8418    </p>
8419    <p>S: "INSTRUMENT_FILE: /home/me/gigs/Bosendorfer 290.gig"
8420    </p>
8421    <p>&nbsp;&nbsp;&nbsp;"INSTRUMENT_NR: 0"
8422    </p>
8423    <p>&nbsp;&nbsp;&nbsp;"FORMAT_FAMILY: GIG"
8424    </p>
8425    <p>&nbsp;&nbsp;&nbsp;"FORMAT_VERSION: 2"
8426    </p>
8427    <p>&nbsp;&nbsp;&nbsp;"SIZE: 2050871870"
8428    </p>
8429    <p>&nbsp;&nbsp;&nbsp;"CREATED: 2007-02-05 10:23:12"
8430    </p>
8431    <p>&nbsp;&nbsp;&nbsp;"MODIFIED: 2007-04-07 12:50:21"
8432    </p>
8433    <p>&nbsp;&nbsp;&nbsp;"DESCRIPTION: "
8434    </p>
8435    <p>&nbsp;&nbsp;&nbsp;"IS_DRUM: false"
8436    </p>
8437    <p>&nbsp;&nbsp;&nbsp;"PRODUCT: GRANDIOSO Bosendorfer 290"
8438    </p>
8439    <p>&nbsp;&nbsp;&nbsp;"ARTISTS: Post Musical Instruments"
8440    </p>
8441    <p>&nbsp;&nbsp;&nbsp;"KEYWORDS: Bosendorfer"
8442    </p>
8443    <p>&nbsp;&nbsp;&nbsp;"."
8444    </p>
8445    </blockquote><p>
8446                        
8447    </p>
8448    <a name="SET DB_INSTRUMENT NAME"></a><br /><hr />
8449    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
8450    <a name="rfc.section.6.8.16"></a><h3>6.8.16.&nbsp;
8451    Renaming an instrument</h3>
8452    
8453    <p>The front-end can alter the name of a specific
8454                        instrument by sending the following command:
8455    </p>
8456    <p>
8457                            </p>
8458    <blockquote class="text">
8459    <p>SET DB_INSTRUMENT NAME &lt;instr&gt; &lt;name&gt;
8460    </p>
8461    </blockquote><p>
8462                        
8463    </p>
8464    <p>Where &lt;instr&gt; is the absolute path name of the instrument and
8465                        &lt;name&gt; is the new name for that instrument.
8466    </p>
8467    <p>Possible Answers:
8468    </p>
8469    <p>
8470                            </p>
8471    <blockquote class="text">
8472    <p>"OK" -
8473                                    </p>
8474    <blockquote class="text">
8475    <p>on success
8476    </p>
8477    </blockquote>
8478                                
8479    
8480    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
8481                                    </p>
8482    <blockquote class="text">
8483    <p>in case the given instrument does not exists,
8484                                        or if an instrument with name equal to the new
8485                                        name already exists.
8486    </p>
8487    </blockquote>
8488                                
8489    
8490    </blockquote><p>
8491                        
8492    </p>
8493    <p>Example:
8494    </p>
8495    <p>
8496                            </p>
8497    <blockquote class="text">
8498    <p>C: "SET DB_INSTRUMENT NAME '/Piano Collection/Bosendorfer' 'Bosendorfer 290'"
8499    </p>
8500    <p>S: "OK"
8501    </p>
8502    </blockquote><p>
8503                        
8504    </p>
8505    <a name="MOVE DB_INSTRUMENT"></a><br /><hr />
8506    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
8507    <a name="rfc.section.6.8.17"></a><h3>6.8.17.&nbsp;
8508    Moving an instrument</h3>
8509    
8510    <p>The front-end can move a specific instrument to another directory by
8511                        sending the following command:
8512    </p>
8513    <p>
8514                            </p>
8515    <blockquote class="text">
8516    <p>MOVE DB_INSTRUMENT &lt;instr&gt; &lt;dst&gt;
8517    </p>
8518    </blockquote><p>
8519                        
8520    </p>
8521    <p>Where &lt;instr&gt; is the absolute path name of the instrument
8522                        to move and &lt;dst&gt; is the directory where the instrument will
8523                        be moved to.
8524    </p>
8525    <p>Possible Answers:
8526    </p>
8527    <p>
8528                            </p>
8529    <blockquote class="text">
8530    <p>"OK" -
8531                                    </p>
8532    <blockquote class="text">
8533    <p>on success
8534    </p>
8535    </blockquote>
8536                                
8537    
8538    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
8539                                    </p>
8540    <blockquote class="text">
8541    <p>in case the given instrument does not exists,
8542                                        or if an instrument with name equal to the name of the
8543                                        specified instrument already exists in the destination
8544                                        directory.
8545    </p>
8546    </blockquote>
8547                                
8548    
8549    </blockquote><p>
8550                        
8551    </p>
8552    <p>Example:
8553    </p>
8554    <p>
8555                            </p>
8556    <blockquote class="text">
8557    <p>C: "MOVE DB_INSTRUMENT '/Piano Collection/Bosendorfer 290' '/Piano Collection/Acoustic'"
8558    </p>
8559    <p>S: "OK"
8560    </p>
8561    </blockquote><p>
8562                        
8563    </p>
8564    <a name="COPY DB_INSTRUMENT"></a><br /><hr />
8565    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
8566    <a name="rfc.section.6.8.18"></a><h3>6.8.18.&nbsp;
8567    Copying instruments</h3>
8568    
8569    <p>The front-end can copy a specific instrument to another directory by
8570                        sending the following command:
8571    </p>
8572    <p>
8573                            </p>
8574    <blockquote class="text">
8575    <p>COPY DB_INSTRUMENT &lt;instr&gt; &lt;dst&gt;
8576    </p>
8577    </blockquote><p>
8578                        
8579    </p>
8580    <p>Where &lt;instr&gt; is the absolute path name of the instrument
8581                        to copy and &lt;dst&gt; is the directory where the instrument will
8582                        be copied to.
8583    </p>
8584    <p>Possible Answers:
8585    </p>
8586    <p>
8587                            </p>
8588    <blockquote class="text">
8589    <p>"OK" -
8590                                    </p>
8591    <blockquote class="text">
8592    <p>on success
8593    </p>
8594    </blockquote>
8595                                
8596    
8597    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
8598                                    </p>
8599    <blockquote class="text">
8600    <p>in case the given instrument does not exists,
8601                                        or if an instrument with name equal to the name of the
8602                                        specified instrument already exists in the destination
8603                                        directory.
8604    </p>
8605    </blockquote>
8606                                
8607    
8608    </blockquote><p>
8609                        
8610    </p>
8611    <p>Example:
8612    </p>
8613    <p>
8614                            </p>
8615    <blockquote class="text">
8616    <p>C: "COPY DB_INSTRUMENT '/Piano Collection/Bosendorfer 290' '/Acoustic/Pianos/'"
8617    </p>
8618    <p>S: "OK"
8619    </p>
8620    </blockquote><p>
8621                        
8622    </p>
8623    <a name="SET DB_INSTRUMENT DESCRIPTION"></a><br /><hr />
8624    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
8625    <a name="rfc.section.6.8.19"></a><h3>6.8.19.&nbsp;
8626    Changing the description of instrument</h3>
8627    
8628    <p>The front-end can alter the description of a specific
8629                        instrument by sending the following command:
8630    </p>
8631    <p>
8632                            </p>
8633    <blockquote class="text">
8634    <p>SET DB_INSTRUMENT DESCRIPTION &lt;instr&gt; &lt;desc&gt;
8635    </p>
8636    </blockquote><p>
8637                        
8638    </p>
8639    <p>Where &lt;instr&gt; is the absolute path name of the instrument and
8640                        &lt;desc&gt; is the new description for the instrument
8641                        (encapsulated into apostrophes, supporting escape sequences as described in chapter
8642                        "<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>").
8643    </p>
8644    <p>Possible Answers:
8645    </p>
8646    <p>
8647                            </p>
8648    <blockquote class="text">
8649    <p>"OK" -
8650                                    </p>
8651    <blockquote class="text">
8652    <p>on success
8653    </p>
8654    </blockquote>
8655                                
8656    
8657    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
8658                                    </p>
8659    <blockquote class="text">
8660    <p>in case the given instrument does not exists.
8661    </p>
8662    </blockquote>
8663                                
8664    
8665    </blockquote><p>
8666                        
8667    </p>
8668    <p>Example:
8669    </p>
8670    <p>
8671                            </p>
8672    <blockquote class="text">
8673    <p>C: "SET DB_INSTRUMENT DESCRIPTION '/Piano Collection/Acoustic/Bosendorfer 290' 'No comment :)'"
8674    </p>
8675    <p>S: "OK"
8676    </p>
8677    </blockquote><p>
8678                        
8679    </p>
8680    <a name="FIND DB_INSTRUMENTS"></a><br /><hr />
8681    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
8682    <a name="rfc.section.6.8.20"></a><h3>6.8.20.&nbsp;
8683    Finding instruments</h3>
8684    
8685    <p>The front-end can search for instruments
8686                        in specific directory by sending the following command:
8687    </p>
8688    <p>
8689                            </p>
8690    <blockquote class="text">
8691    <p>FIND DB_INSTRUMENTS [NON_RECURSIVE] &lt;dir&gt; &lt;criteria-list&gt;
8692    </p>
8693    </blockquote><p>
8694                        
8695    </p>
8696    <p>Where &lt;dir&gt; should be replaced by the absolute path
8697                        name of the directory to search in. If NON_RECURSIVE is specified, the
8698                        directories located in subdirectories of the specified directory will not
8699                        be searched. &lt;criteria-list&gt; is a list of search criterias
8700                        in form of "key1=val1 key2=val2 ...". The following criterias are
8701                        allowed:
8702    </p>
8703    <p>
8704                          
8705    <p>NAME='&lt;search-string&gt;'
8706                              </p>
8707    <blockquote class="text">
8708    <p>Restricts the search to instruments, which names
8709                                  satisfy the supplied search string (encapsulated into apostrophes,
8710                                  supporting escape sequences as described in chapter
8711                                  "<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>").
8712    </p>
8713    </blockquote><p>
8714                          
8715    </p>
8716    
8717                          
8718    <p>SIZE=[&lt;min&gt;]..[&lt;max&gt;]
8719                              </p>
8720    <blockquote class="text">
8721    <p>Restricts the search to instruments, which
8722                                  size is in the specified range. If &lt;min&gt; is omitted,
8723                                  the search results are restricted to instruments with size less then
8724                                  or equal to &lt;max&gt;. If &lt;max&gt; is omitted, the
8725                                  search is restricted to instruments with size greater then
8726                                  or equal to &lt;min&gt;.
8727    </p>
8728    </blockquote><p>
8729                          
8730    </p>
8731    
8732                          
8733    <p>CREATED='[&lt;date-after&gt;]..[&lt;date-before&gt;]'
8734                              </p>
8735    <blockquote class="text">
8736    <p>Restricts the search to instruments, which creation
8737                                  date satisfies the specified period, where &lt;date-after&gt;
8738                                  and &lt;date-before&gt; are in "YYYY-MM-DD HH:MM:SS" format.
8739                                  If &lt;date-after&gt; is omitted the search is restricted to
8740                                  instruments created before &lt;date-before&gt;. If
8741                                  &lt;date-before&gt; is omitted, the search is restricted
8742                                  to instruments created after &lt;date-after&gt;.
8743    </p>
8744    </blockquote><p>
8745                          
8746    </p>
8747    
8748                          
8749    <p>MODIFIED='[&lt;date-after&gt;]..[&lt;date-before&gt;]'
8750                              </p>
8751    <blockquote class="text">
8752    <p>Restricts the search to instruments, which
8753                                  date of last modification satisfies the specified period, where
8754                                  &lt;date-after&gt; and &lt;date-before&gt; are in "YYYY-MM-DD HH:MM:SS"
8755                                  format. If &lt;date-after&gt; is omitted the search is restricted to
8756                                  instruments, which are last modified before &lt;date-before&gt;. If
8757                                  &lt;date-before&gt; is omitted, the search is restricted to instruments,
8758                                  which are last modified after &lt;date-after&gt;.
8759    </p>
8760    </blockquote><p>
8761                          
8762    </p>
8763    
8764                          
8765    <p>DESCRIPTION='&lt;search-string&gt;'
8766                              </p>
8767    <blockquote class="text">
8768    <p>Restricts the search to instruments with description
8769                                  that satisfies the supplied search string (encapsulated into apostrophes,
8770                                  supporting escape sequences as described in chapter
8771                                  "<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>").
8772    </p>
8773    </blockquote><p>
8774                          
8775    </p>
8776    
8777                          
8778    <p>PRODUCT='&lt;search-string&gt;'
8779                              </p>
8780    <blockquote class="text">
8781    <p>Restricts the search to instruments with product info
8782                                  that satisfies the supplied search string (encapsulated into apostrophes,
8783                                  supporting escape sequences as described in chapter
8784                                  "<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>").
8785    </p>
8786    </blockquote><p>
8787                          
8788    </p>
8789    
8790                          
8791    <p>ARTISTS='&lt;search-string&gt;'
8792                              </p>
8793    <blockquote class="text">
8794    <p>Restricts the search to instruments with artists info
8795                                  that satisfies the supplied search string (encapsulated into apostrophes,
8796                                  supporting escape sequences as described in chapter
8797                                  "<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>").
8798    </p>
8799    </blockquote><p>
8800                          
8801    </p>
8802    
8803                          
8804    <p>KEYWORDS='&lt;search-string&gt;'
8805                              </p>
8806    <blockquote class="text">
8807    <p>Restricts the search to instruments with keyword list
8808                                  that satisfies the supplied search string (encapsulated into apostrophes,
8809                                  supporting escape sequences as described in chapter
8810                                  "<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>").
8811    </p>
8812    </blockquote><p>
8813                          
8814    </p>
8815    
8816                          
8817    <p>IS_DRUM=true | false
8818                              </p>
8819    <blockquote class="text">
8820    <p>Either true or false. Restricts the search to
8821                                  drum kits or chromatic instruments.
8822    </p>
8823    </blockquote><p>
8824                          
8825    </p>
8826    
8827                          
8828    <p>FORMAT_FAMILIES='&lt;format-list&gt;'
8829                              </p>
8830    <blockquote class="text">
8831    <p>Restricts the search to instruments of the supplied format families,
8832                                  where &lt;format-list&gt; is a comma separated list of format families.
8833    </p>
8834    </blockquote><p>
8835                          
8836    </p>
8837                        
8838    
8839    <p>Where &lt;search-string&gt; is either a regular expression, or a
8840                        word list separated with spaces for OR search and with '+' for AND search.
8841    </p>
8842    <p>Possible Answers:
8843    </p>
8844    <p>
8845                            </p>
8846    <blockquote class="text">
8847    <p>A comma separated list with the absolute path names (encapsulated into
8848                                apostrophes) of all instruments in the specified directory that satisfy
8849                                the supplied search criterias.
8850    </p>
8851    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
8852                                    </p>
8853    <blockquote class="text">
8854    <p>if the given directory does not exist.
8855    </p>
8856    </blockquote>
8857                                
8858    
8859    </blockquote><p>
8860                        
8861    </p>
8862    <p>Example:
8863    </p>
8864    <p>
8865                            </p>
8866    <blockquote class="text">
8867    <p>C: "FIND DB_INSTRUMENTS '/Piano Collection' NAME='bosendorfer+290'"
8868    </p>
8869    <p>S: "'/Piano Collection/Bosendorfer 290'"
8870    </p>
8871    </blockquote><p>
8872                        
8873    </p>
8874    <p>
8875                            </p>
8876    <blockquote class="text">
8877    <p>C: "FIND DB_INSTRUMENTS '/Piano Collection' CREATED='2007-04-01 09:30:13..'"
8878    </p>
8879    <p>S: "'/Piano Collection/Bosendorfer 290','/Piano Collection/Steinway D'"
8880    </p>
8881    </blockquote><p>
8882                        
8883    </p>
8884    <a name="GET DB_INSTRUMENTS_JOB INFO"></a><br /><hr />
8885    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
8886    <a name="rfc.section.6.8.21"></a><h3>6.8.21.&nbsp;
8887    Getting job status information</h3>
8888    
8889    <p>The front-end can ask for the current status of a
8890                        particular database instruments job by sending the following command:
8891    </p>
8892    <p>
8893                            </p>
8894    <blockquote class="text">
8895    <p>GET DB_INSTRUMENTS_JOB INFO &lt;job-id&gt;
8896    </p>
8897    </blockquote><p>
8898                        
8899    </p>
8900    <p>Where &lt;job-id&gt; should be replaced by the numerical ID
8901                        of the job the front-end is interested in.
8902    </p>
8903    <p>Possible Answers:
8904    </p>
8905    <p>
8906                            </p>
8907    <blockquote class="text">
8908    <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
8909                                Each answer line begins with the settings category name
8910                                followed by a colon and then a space character &lt;SP&gt; and finally
8911                                the info character string to that setting category. At the
8912                                moment the following categories are defined:
8913    </p>
8914    <p>
8915                                    </p>
8916    <blockquote class="text">
8917    <p>FILES_TOTAL -
8918                                            </p>
8919    <blockquote class="text">
8920    <p>The total number of files scheduled for scanning
8921    </p>
8922    </blockquote>
8923                                        
8924    
8925    <p>FILES_SCANNED -
8926                                            </p>
8927    <blockquote class="text">
8928    <p>The current number of scanned files
8929    </p>
8930    </blockquote>
8931                                        
8932    
8933    <p>SCANNING -
8934                                            </p>
8935    <blockquote class="text">
8936    <p>The absolute path name of the file which is currently
8937                                                being scanned
8938    </p>
8939    </blockquote>
8940                                        
8941    
8942    <p>STATUS -
8943                                            </p>
8944    <blockquote class="text">
8945    <p>An integer value between 0 and 100 indicating the
8946                                                scanning progress percentage of the file which is
8947                                                currently being scanned
8948    </p>
8949    </blockquote>
8950                                        
8951    
8952    </blockquote>
8953                                
8954    
8955    </blockquote><p>
8956                        
8957    </p>
8958    <p>The mentioned fields above don't have to be in particular order.
8959    </p>
8960    <p>Example:
8961    </p>
8962    <p>
8963                            </p>
8964    <blockquote class="text">
8965    <p>C: "GET DB_INSTRUMENTS_JOB INFO 2"
8966    </p>
8967    <p>S: "FILES_TOTAL: 12"
8968    </p>
8969    <p>&nbsp;&nbsp;&nbsp;"FILES_SCANNED: 7"
8970    </p>
8971    <p>&nbsp;&nbsp;&nbsp;"SCANNING: /home/me/gigs/Bosendorfer 290.gig"
8972    </p>
8973    <p>&nbsp;&nbsp;&nbsp;"STATUS: 42"
8974    </p>
8975    <p>&nbsp;&nbsp;&nbsp;"."
8976    </p>
8977    </blockquote><p>
8978                        
8979    </p>
8980    <a name="FORMAT INSTRUMENTS_DB"></a><br /><hr />
8981    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
8982    <a name="rfc.section.6.8.22"></a><h3>6.8.22.&nbsp;
8983    Formatting the instruments database</h3>
8984    
8985    <p>The front-end can remove all instruments and directories and re-create
8986                        the instruments database structure (e.g., in case of a database corruption)
8987                        by sending the following command:
8988    </p>
8989    <p>
8990                            </p>
8991    <blockquote class="text">
8992    <p>FORMAT INSTRUMENTS_DB
8993    </p>
8994    </blockquote><p>
8995                        
8996    </p>
8997    <p>Possible Answers:
8998    </p>
8999    <p>
9000                            </p>
9001    <blockquote class="text">
9002    <p>"OK" -
9003                                    </p>
9004    <blockquote class="text">
9005    <p>on success
9006    </p>
9007    </blockquote>
9008                                
9009    
9010    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
9011                                    </p>
9012    <blockquote class="text">
9013    <p>If the formatting of the instruments database
9014                                        failed.
9015    </p>
9016    </blockquote>
9017                                
9018    
9019    </blockquote><p>
9020                        
9021    </p>
9022    <a name="editing_instruments"></a><br /><hr />
9023    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
9024    <a name="rfc.section.6.9"></a><h3>6.9.&nbsp;
9025    Editing Instruments</h3>
9026    
9027    <p>The sampler allows to edit instruments while playing with the
9028                    sampler by spawning an external (3rd party) instrument editor
9029                    application for a given instrument. The 3rd party instrument
9030                    editor applications have to place a respective plugin DLL file
9031                    into the sampler's plugins directory. The sampler will
9032                    automatically try to load all plugin DLLs in that directory on
9033                    startup and only on startup!
9034    </p>
9035    <p>At the moment there is only one command for this feature set,
9036                    but this will most probably change in future.
9037    </p>
9038    <a name="EDIT INSTRUMENT"></a><br /><hr />
9039    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
9040    <a name="rfc.section.6.9.1"></a><h3>6.9.1.&nbsp;
9041    Opening an appropriate instrument editor application</h3>
9042    
9043    <p>The front-end can request to open an appropriate instrument
9044                        editor application by sending the following command:
9045    </p>
9046    <p>
9047                            </p>
9048    <blockquote class="text">
9049    <p>EDIT INSTRUMENT &lt;sampler-channel&gt;
9050    </p>
9051    </blockquote><p>
9052                        
9053    </p>
9054    <p>Where &lt;sampler-channel&gt; should be replaced by the
9055                        number of the sampler channel as given by the
9056                        <a class='info' href='#ADD CHANNEL'>"ADD CHANNEL"<span> (</span><span class='info'>Adding a new sampler channel</span><span>)</span></a>
9057                        or <a class='info' href='#LIST CHANNELS'>"LIST CHANNELS"<span> (</span><span class='info'>Getting all created sampler channel list</span><span>)</span></a>
9058                        command.
9059    </p>
9060    <p>The sampler will try to ask all registered instrument
9061                        editors (or to be more specific: their sampler plugins)
9062                        whether they are capable to handle the instrument on the
9063                        given sampler channel. The sampler will simply use the first
9064                        instrument editor application which replied with a positive
9065                        answer and spawn that instrument editor application within
9066                        the sampler's process and provide that application access
9067                        to the instrument's data structures, so both applications
9068                        can share and access the same instruments data at the same
9069                        time, thus allowing to immediately hear changes with the
9070                        sampler made by the instrument editor.
9071    </p>
9072    <p>Note: consequently instrument editors are always spawned
9073                        locally on the same machine where the sampler is running
9074                        on!
9075    </p>
9076    <p>Possible Answers:
9077    </p>
9078    <p>
9079                            </p>
9080    <blockquote class="text">
9081    <p>"OK" -
9082                                    </p>
9083    <blockquote class="text">
9084    <p>when an appropriate instrument editor was
9085                                        launched
9086    </p>
9087    </blockquote>
9088                                
9089    
9090    <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
9091                                    </p>
9092    <blockquote class="text">
9093    <p>when an appropriate instrument editor was
9094                                        launched, but there are noteworthy issues
9095    </p>
9096    </blockquote>
9097                                
9098    
9099    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
9100                                    </p>
9101    <blockquote class="text">
9102    <p>when an appropriate instrument editor
9103                                        could not be launched
9104    </p>
9105    </blockquote>
9106                                
9107    
9108    </blockquote><p>
9109                        
9110    </p>
9111    <p>Examples:
9112    </p>
9113    <p>
9114                            </p>
9115    <blockquote class="text">
9116    <p>C: "EDIT INSTRUMENT 0"
9117    </p>
9118    <p>S: "OK"
9119    </p>
9120    </blockquote><p>
9121                        
9122    </p>
9123  <a name="command_syntax"></a><br /><hr />  <a name="command_syntax"></a><br /><hr />
9124  <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>  <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
9125  <a name="rfc.section.7"></a><h3>7.&nbsp;  <a name="rfc.section.7"></a><h3>7.&nbsp;
# Line 6472  Command Syntax</h3> Line 9220  Command Syntax</h3>
9220  <p>/ UNSUBSCRIBE SP unsubscribe_event  <p>/ UNSUBSCRIBE SP unsubscribe_event
9221                                    
9222  </p>  </p>
 <p>/ SELECT SP text  
                   
 </p>  
9223  <p>/ RESET SP reset_instruction  <p>/ RESET SP reset_instruction
9224                                    
9225  </p>  </p>
9226  <p>/ CLEAR SP clear_instruction  <p>/ CLEAR SP clear_instruction
9227                                    
9228  </p>  </p>
9229    <p>/ FIND SP find_instruction
9230                    
9231    </p>
9232    <p>/ MOVE SP move_instruction
9233                    
9234    </p>
9235    <p>/ COPY SP copy_instruction
9236                    
9237    </p>
9238    <p>/ EDIT SP edit_instruction
9239                    
9240    </p>
9241    <p>/ FORMAT SP format_instruction
9242                    
9243    </p>
9244  <p>/ RESET  <p>/ RESET
9245                                    
9246  </p>  </p>
# Line 6496  Command Syntax</h3> Line 9256  Command Syntax</h3>
9256  <p>CHANNEL  <p>CHANNEL
9257                                    
9258  </p>  </p>
9259    <p>/ DB_INSTRUMENT_DIRECTORY SP db_path
9260                    
9261    </p>
9262    <p>/ DB_INSTRUMENTS SP NON_MODAL SP scan_mode SP db_path SP filename
9263                    
9264    </p>
9265    <p>/ DB_INSTRUMENTS SP scan_mode SP db_path SP filename
9266                    
9267    </p>
9268    <p>/ DB_INSTRUMENTS SP NON_MODAL SP db_path SP filename
9269                    
9270    </p>
9271    <p>/ DB_INSTRUMENTS SP NON_MODAL SP db_path SP filename SP instrument_index
9272                    
9273    </p>
9274    <p>/ DB_INSTRUMENTS SP db_path SP filename
9275                    
9276    </p>
9277    <p>/ DB_INSTRUMENTS SP db_path SP filename SP instrument_index
9278                    
9279    </p>
9280  <p>/ MIDI_INSTRUMENT_MAP  <p>/ MIDI_INSTRUMENT_MAP
9281                                    
9282  </p>  </p>
# Line 6508  Command Syntax</h3> Line 9289  Command Syntax</h3>
9289  <p>subscribe_event =  <p>subscribe_event =
9290          </p>          </p>
9291  <blockquote class="text">  <blockquote class="text">
9292  <p>CHANNEL_COUNT  <p>AUDIO_OUTPUT_DEVICE_COUNT
9293                    
9294    </p>
9295    <p>/ AUDIO_OUTPUT_DEVICE_INFO
9296                    
9297    </p>
9298    <p>/ MIDI_INPUT_DEVICE_COUNT
9299                    
9300    </p>
9301    <p>/ MIDI_INPUT_DEVICE_INFO
9302                    
9303    </p>
9304    <p>/ CHANNEL_COUNT
9305                                    
9306  </p>  </p>
9307  <p>/ VOICE_COUNT  <p>/ VOICE_COUNT
# Line 6523  Command Syntax</h3> Line 9316  Command Syntax</h3>
9316  <p>/ CHANNEL_INFO  <p>/ CHANNEL_INFO
9317                                    
9318  </p>  </p>
9319    <p>/ FX_SEND_COUNT
9320                    
9321    </p>
9322    <p>/ FX_SEND_INFO
9323                    
9324    </p>
9325    <p>/ MIDI_INSTRUMENT_MAP_COUNT
9326                    
9327    </p>
9328    <p>/ MIDI_INSTRUMENT_MAP_INFO
9329                    
9330    </p>
9331    <p>/ MIDI_INSTRUMENT_COUNT
9332                    
9333    </p>
9334    <p>/ MIDI_INSTRUMENT_INFO
9335                    
9336    </p>
9337    <p>/ DB_INSTRUMENT_DIRECTORY_COUNT
9338                    
9339    </p>
9340    <p>/ DB_INSTRUMENT_DIRECTORY_INFO
9341                    
9342    </p>
9343    <p>/ DB_INSTRUMENT_COUNT
9344                    
9345    </p>
9346    <p>/ DB_INSTRUMENT_INFO
9347                    
9348    </p>
9349    <p>/ DB_INSTRUMENTS_JOB_INFO
9350                    
9351    </p>
9352  <p>/ MISCELLANEOUS  <p>/ MISCELLANEOUS
9353                                    
9354  </p>  </p>
9355  <p>/ TOTAL_VOICE_COUNT  <p>/ TOTAL_VOICE_COUNT
9356                                    
9357  </p>  </p>
9358    <p>/ GLOBAL_INFO
9359                    
9360    </p>
9361  </blockquote><p>  </blockquote><p>
9362    
9363  </p>  </p>
9364  <p>unsubscribe_event =  <p>unsubscribe_event =
9365          </p>          </p>
9366  <blockquote class="text">  <blockquote class="text">
9367  <p>CHANNEL_COUNT  <p>AUDIO_OUTPUT_DEVICE_COUNT
9368                    
9369    </p>
9370    <p>/ AUDIO_OUTPUT_DEVICE_INFO
9371                    
9372    </p>
9373    <p>/ MIDI_INPUT_DEVICE_COUNT
9374                    
9375    </p>
9376    <p>/ MIDI_INPUT_DEVICE_INFO
9377                    
9378    </p>
9379    <p>/ CHANNEL_COUNT
9380                                    
9381  </p>  </p>
9382  <p>/ VOICE_COUNT  <p>/ VOICE_COUNT
# Line 6550  Command Syntax</h3> Line 9391  Command Syntax</h3>
9391  <p>/ CHANNEL_INFO  <p>/ CHANNEL_INFO
9392                                    
9393  </p>  </p>
9394    <p>/ FX_SEND_COUNT
9395                    
9396    </p>
9397    <p>/ FX_SEND_INFO
9398                    
9399    </p>
9400    <p>/ MIDI_INSTRUMENT_MAP_COUNT
9401                    
9402    </p>
9403    <p>/ MIDI_INSTRUMENT_MAP_INFO
9404                    
9405    </p>
9406    <p>/ MIDI_INSTRUMENT_COUNT
9407                    
9408    </p>
9409    <p>/ MIDI_INSTRUMENT_INFO
9410                    
9411    </p>
9412    <p>/ DB_INSTRUMENT_DIRECTORY_COUNT
9413                    
9414    </p>
9415    <p>/ DB_INSTRUMENT_DIRECTORY_INFO
9416                    
9417    </p>
9418    <p>/ DB_INSTRUMENT_COUNT
9419                    
9420    </p>
9421    <p>/ DB_INSTRUMENT_INFO
9422                    
9423    </p>
9424    <p>/ DB_INSTRUMENTS_JOB_INFO
9425                    
9426    </p>
9427  <p>/ MISCELLANEOUS  <p>/ MISCELLANEOUS
9428                                    
9429  </p>  </p>
9430  <p>/ TOTAL_VOICE_COUNT  <p>/ TOTAL_VOICE_COUNT
9431                                    
9432  </p>  </p>
9433    <p>/ GLOBAL_INFO
9434                    
9435    </p>
9436  </blockquote><p>  </blockquote><p>
9437    
9438  </p>  </p>
9439  <p>map_instruction =  <p>map_instruction =
9440          </p>          </p>
9441  <blockquote class="text">  <blockquote class="text">
9442  <p>MIDI_INSTRUMENT SP midi_map SP midi_bank SP midi_prog SP engine_name SP filename SP instrument_index SP volume_value  <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
9443                                    
9444  </p>  </p>
9445  <p>/ MIDI_INSTRUMENT SP midi_map SP midi_bank SP midi_prog SP engine_name SP filename SP instrument_index SP volume_value SP instr_load_mode  <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
9446                                    
9447  </p>  </p>
9448  <p>/ MIDI_INSTRUMENT SP midi_map SP midi_bank SP midi_prog SP engine_name SP filename SP instrument_index SP volume_value SP entry_name  <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
9449                                    
9450  </p>  </p>
9451  <p>/ MIDI_INSTRUMENT SP 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  <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
9452                                    
9453  </p>  </p>
9454  </blockquote><p>  </blockquote><p>
# Line 6598  Command Syntax</h3> Line 9475  Command Syntax</h3>
9475  <p>/ MIDI_INSTRUMENT_MAP SP ALL  <p>/ MIDI_INSTRUMENT_MAP SP ALL
9476                                    
9477  </p>  </p>
9478    <p>/ DB_INSTRUMENT_DIRECTORY SP FORCE SP db_path
9479                    
9480    </p>
9481    <p>/ DB_INSTRUMENT_DIRECTORY SP db_path
9482                    
9483    </p>
9484    <p>/ DB_INSTRUMENT SP db_path
9485                    
9486    </p>
9487  </blockquote><p>  </blockquote><p>
9488    
9489  </p>  </p>
# Line 6697  Command Syntax</h3> Line 9583  Command Syntax</h3>
9583  <p>/ MIDI_INSTRUMENT_MAP SP INFO SP midi_map  <p>/ MIDI_INSTRUMENT_MAP SP INFO SP midi_map
9584                                    
9585  </p>  </p>
9586    <p>/ FX_SENDS SP sampler_channel
9587                    
9588    </p>
9589    <p>/ FX_SEND SP INFO SP sampler_channel SP fx_send_id
9590                    
9591    </p>
9592    <p>/ DB_INSTRUMENT_DIRECTORIES SP RECURSIVE SP db_path
9593                    
9594    </p>
9595    <p>/ DB_INSTRUMENT_DIRECTORIES SP db_path
9596                    
9597    </p>
9598    <p>/ DB_INSTRUMENT_DIRECTORY SP INFO SP db_path
9599                    
9600    </p>
9601    <p>/ DB_INSTRUMENTS SP RECURSIVE SP db_path
9602                    
9603    </p>
9604    <p>/ DB_INSTRUMENTS SP db_path
9605                    
9606    </p>
9607    <p>/ DB_INSTRUMENT SP INFO SP db_path
9608                    
9609    </p>
9610    <p>/ DB_INSTRUMENTS_JOB SP INFO SP number
9611                    
9612    </p>
9613    <p>/ VOLUME
9614                    
9615    </p>
9616  </blockquote><p>  </blockquote><p>
9617    
9618  </p>  </p>
# Line 6712  Command Syntax</h3> Line 9628  Command Syntax</h3>
9628  <p>/ MIDI_INPUT_DEVICE_PARAMETER SP number SP string '=' param_val_list  <p>/ MIDI_INPUT_DEVICE_PARAMETER SP number SP string '=' param_val_list
9629                                    
9630  </p>  </p>
9631    <p>/ MIDI_INPUT_PORT_PARAMETER SP number SP number SP string '=' NONE
9632                    
9633    </p>
9634  <p>/ MIDI_INPUT_PORT_PARAMETER SP number SP number SP string '=' param_val_list  <p>/ MIDI_INPUT_PORT_PARAMETER SP number SP number SP string '=' param_val_list
9635                                    
9636  </p>  </p>
# Line 6721  Command Syntax</h3> Line 9640  Command Syntax</h3>
9640  <p>/ MIDI_INSTRUMENT_MAP SP NAME SP midi_map SP map_name  <p>/ MIDI_INSTRUMENT_MAP SP NAME SP midi_map SP map_name
9641                                    
9642  </p>  </p>
9643    <p>/ FX_SEND SP NAME SP sampler_channel SP fx_send_id SP fx_send_name
9644                    
9645    </p>
9646    <p>/ FX_SEND SP AUDIO_OUTPUT_CHANNEL SP sampler_channel SP fx_send_id SP audio_channel_index SP audio_channel_index
9647                    
9648    </p>
9649    <p>/ FX_SEND SP MIDI_CONTROLLER SP sampler_channel SP fx_send_id SP midi_ctrl
9650                    
9651    </p>
9652    <p>/ FX_SEND SP LEVEL SP sampler_channel SP fx_send_id SP volume_value
9653                    
9654    </p>
9655    <p>/ DB_INSTRUMENT_DIRECTORY SP NAME SP db_path SP stringval_escaped
9656                    
9657    </p>
9658    <p>/ DB_INSTRUMENT_DIRECTORY SP DESCRIPTION SP db_path SP stringval_escaped
9659                    
9660    </p>
9661    <p>/ DB_INSTRUMENT SP NAME SP db_path SP stringval_escaped
9662                    
9663    </p>
9664    <p>/ DB_INSTRUMENT SP DESCRIPTION SP db_path SP stringval_escaped
9665                    
9666    </p>
9667  <p>/ ECHO SP boolean  <p>/ ECHO SP boolean
9668                                    
9669  </p>  </p>
9670    <p>/ VOLUME SP volume_value
9671                    
9672    </p>
9673  </blockquote><p>  </blockquote><p>
9674    
9675  </p>  </p>
# Line 6742  Command Syntax</h3> Line 9688  Command Syntax</h3>
9688  <p>/ MIDI_INPUT_DEVICE SP string  <p>/ MIDI_INPUT_DEVICE SP string
9689                                    
9690  </p>  </p>
9691    <p>/ FX_SEND SP sampler_channel SP midi_ctrl
9692                    
9693    </p>
9694    <p>/ FX_SEND SP sampler_channel SP midi_ctrl SP fx_send_name
9695                    
9696    </p>
9697  </blockquote><p>  </blockquote><p>
9698    
9699  </p>  </p>
# Line 6766  Command Syntax</h3> Line 9718  Command Syntax</h3>
9718  </blockquote><p>  </blockquote><p>
9719    
9720  </p>  </p>
9721    <p>find_instruction =
9722            </p>
9723    <blockquote class="text">
9724    <p>DB_INSTRUMENTS SP NON_RECURSIVE SP db_path SP query_val_list
9725                    
9726    </p>
9727    <p>/ DB_INSTRUMENTS SP db_path SP query_val_list
9728                    
9729    </p>
9730    <p>/ DB_INSTRUMENT_DIRECTORIES SP NON_RECURSIVE SP db_path SP query_val_list
9731                    
9732    </p>
9733    <p>/ DB_INSTRUMENT_DIRECTORIES SP db_path SP query_val_list
9734                    
9735    </p>
9736    </blockquote><p>
9737    
9738    </p>
9739    <p>move_instruction =
9740            </p>
9741    <blockquote class="text">
9742    <p>DB_INSTRUMENT_DIRECTORY SP db_path SP db_path
9743                    
9744    </p>
9745    <p>/ DB_INSTRUMENT SP db_path SP db_path
9746                    
9747    </p>
9748    </blockquote><p>
9749    
9750    </p>
9751    <p>copy_instruction =
9752            </p>
9753    <blockquote class="text">
9754    <p>DB_INSTRUMENT_DIRECTORY SP db_path SP db_path
9755                    
9756    </p>
9757    <p>/ DB_INSTRUMENT SP db_path SP db_path
9758                    
9759    </p>
9760    </blockquote><p>
9761    
9762    </p>
9763  <p>destroy_instruction =  <p>destroy_instruction =
9764          </p>          </p>
9765  <blockquote class="text">  <blockquote class="text">
# Line 6775  Command Syntax</h3> Line 9769  Command Syntax</h3>
9769  <p>/ MIDI_INPUT_DEVICE SP number  <p>/ MIDI_INPUT_DEVICE SP number
9770                                    
9771  </p>  </p>
9772    <p>/ FX_SEND SP sampler_channel SP fx_send_id
9773                    
9774    </p>
9775  </blockquote><p>  </blockquote><p>
9776    
9777  </p>  </p>
# Line 6838  Command Syntax</h3> Line 9835  Command Syntax</h3>
9835  </blockquote><p>  </blockquote><p>
9836    
9837  </p>  </p>
9838    <p>edit_instruction =
9839            </p>
9840    <blockquote class="text">
9841    <p>INSTRUMENT SP sampler_channel
9842                    
9843    </p>
9844    </blockquote><p>
9845    
9846    </p>
9847    <p>format_instruction =
9848            </p>
9849    <blockquote class="text">
9850    <p>INSTRUMENTS_DB
9851                    
9852    </p>
9853    </blockquote><p>
9854    
9855    </p>
9856    <p>modal_arg =
9857            </p>
9858    <blockquote class="text">
9859    <p>/* epsilon (empty argument) */
9860                    
9861    </p>
9862    <p>/ NON_MODAL SP
9863                    
9864    </p>
9865    </blockquote><p>
9866    
9867    </p>
9868  <p>key_val_list =  <p>key_val_list =
9869          </p>          </p>
9870  <blockquote class="text">  <blockquote class="text">
# Line 6892  Command Syntax</h3> Line 9919  Command Syntax</h3>
9919  <p>/ MIDI_INSTRUMENT_MAPS  <p>/ MIDI_INSTRUMENT_MAPS
9920                                    
9921  </p>  </p>
9922    <p>/ FX_SENDS SP sampler_channel
9923                    
9924    </p>
9925    <p>/ DB_INSTRUMENT_DIRECTORIES SP RECURSIVE SP db_path
9926                    
9927    </p>
9928    <p>/ DB_INSTRUMENT_DIRECTORIES SP db_path
9929                    
9930    </p>
9931    <p>/ DB_INSTRUMENTS SP RECURSIVE SP db_path
9932                    
9933    </p>
9934    <p>/ DB_INSTRUMENTS SP db_path
9935                    
9936    </p>
9937  </blockquote><p>  </blockquote><p>
9938    
9939  </p>  </p>
# Line 7015  Command Syntax</h3> Line 10057  Command Syntax</h3>
10057  </blockquote><p>  </blockquote><p>
10058    
10059  </p>  </p>
10060    <p>midi_ctrl =
10061            </p>
10062    <blockquote class="text">
10063    <p>number
10064                    
10065    </p>
10066    </blockquote><p>
10067    
10068    </p>
10069  <p>volume_value =  <p>volume_value =
10070          </p>          </p>
10071  <blockquote class="text">  <blockquote class="text">
# Line 7045  Command Syntax</h3> Line 10096  Command Syntax</h3>
10096  </blockquote><p>  </blockquote><p>
10097    
10098  </p>  </p>
10099    <p>fx_send_id =
10100            </p>
10101    <blockquote class="text">
10102    <p>number
10103                    
10104    </p>
10105    </blockquote><p>
10106    
10107    </p>
10108  <p>engine_name =  <p>engine_name =
10109          </p>          </p>
10110  <blockquote class="text">  <blockquote class="text">
# Line 7057  Command Syntax</h3> Line 10117  Command Syntax</h3>
10117  <p>filename =  <p>filename =
10118          </p>          </p>
10119  <blockquote class="text">  <blockquote class="text">
10120  <p>stringval  <p>path
10121                    
10122    </p>
10123    </blockquote><p>
10124    
10125    </p>
10126    <p>db_path =
10127            </p>
10128    <blockquote class="text">
10129    <p>path
10130                                    
10131  </p>  </p>
10132  </blockquote><p>  </blockquote><p>
# Line 7081  Command Syntax</h3> Line 10150  Command Syntax</h3>
10150  </blockquote><p>  </blockquote><p>
10151    
10152  </p>  </p>
10153    <p>fx_send_name =
10154            </p>
10155    <blockquote class="text">
10156    <p>stringval
10157                    
10158    </p>
10159    </blockquote><p>
10160    
10161    </p>
10162  <p>param_val_list =  <p>param_val_list =
10163          </p>          </p>
10164  <blockquote class="text">  <blockquote class="text">
# Line 7111  Command Syntax</h3> Line 10189  Command Syntax</h3>
10189  </blockquote><p>  </blockquote><p>
10190    
10191  </p>  </p>
10192    <p>query_val_list =
10193            </p>
10194    <blockquote class="text">
10195    <p>string '=' query_val
10196                    
10197    </p>
10198    <p>/ query_val_list SP string '=' query_val
10199                    
10200    </p>
10201    </blockquote><p>
10202    
10203    </p>
10204    <p>query_val =
10205            </p>
10206    <blockquote class="text">
10207    <p>textval_escaped
10208                    
10209    </p>
10210    <p>/ stringval_escaped
10211                    
10212    </p>
10213    </blockquote><p>
10214    
10215    </p>
10216    <p>scan_mode =
10217            </p>
10218    <blockquote class="text">
10219    <p>RECURSIVE
10220                    
10221    </p>
10222    <p>/ NON_RECURSIVE
10223                    
10224    </p>
10225    <p>/ FLAT
10226                    
10227    </p>
10228    </blockquote><p>
10229    
10230    </p>
10231    <a name="character_set"></a><br /><hr />
10232    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
10233    <a name="rfc.section.7.1"></a><h3>7.1.&nbsp;
10234    Character Set and Escape Sequences</h3>
10235    
10236    <p>Older versions of this protocol up to and including v1.1 only
10237                    supported the standard ASCII character set (ASCII code 0 - 127)
10238                    <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
10239                    however support the Extended ASCII character set (ASCII code
10240                    0 - 255). The same group of younger protocols also support
10241                    escape sequences, but only for certain, explicitly declared
10242                    parts of the protocol. The supported escape sequences are
10243                    defined as follows:
10244    </p><table class="full" align="center" border="0" cellpadding="2" cellspacing="2">
10245    <col align="left"><col align="left">
10246    <tr><th align="left">ASCII Character Sequence</th><th align="left">Translated into (Name)</th></tr>
10247    <tr>
10248    <td align="left">\n</td>
10249    <td align="left">new line</td>
10250    </tr>
10251    <tr>
10252    <td align="left">\r</td>
10253    <td align="left">carriage return</td>
10254    </tr>
10255    <tr>
10256    <td align="left">\f</td>
10257    <td align="left">form feed</td>
10258    </tr>
10259    <tr>
10260    <td align="left">\t</td>
10261    <td align="left">horizontal tab</td>
10262    </tr>
10263    <tr>
10264    <td align="left">\v</td>
10265    <td align="left">vertical tab</td>
10266    </tr>
10267    <tr>
10268    <td align="left">\'</td>
10269    <td align="left">apostrophe</td>
10270    </tr>
10271    <tr>
10272    <td align="left">\"</td>
10273    <td align="left">quotation mark</td>
10274    </tr>
10275    <tr>
10276    <td align="left">\\</td>
10277    <td align="left">backslash</td>
10278    </tr>
10279    <tr>
10280    <td align="left">\OOO</td>
10281    <td align="left">three digit octal ASCII code of the character</td>
10282    </tr>
10283    <tr>
10284    <td align="left">\xHH</td>
10285    <td align="left">two digit hex ASCII code of the character</td>
10286    </tr>
10287    </table>
10288    
10289    <p>Notice: due to the transition of certain parts of the
10290                    protocol which now support escape sequences, a slight backward
10291                    incompatibility to protocols version v1.1 and younger has been
10292                    introduced. The only difference is that in parts of the protocol
10293                    where escape characters are now supported, a backslash characters
10294                    MUST be escaped as well (that is as double backslash), whereas
10295                    in the old versions a single backslash was sufficient.
10296    </p>
10297  <a name="events"></a><br /><hr />  <a name="events"></a><br /><hr />
10298  <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>  <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
10299  <a name="rfc.section.8"></a><h3>8.&nbsp;  <a name="rfc.section.8"></a><h3>8.&nbsp;
# Line 7118  Events</h3> Line 10301  Events</h3>
10301    
10302  <p>This chapter will describe all currently defined events supported by LinuxSampler.  <p>This chapter will describe all currently defined events supported by LinuxSampler.
10303  </p>  </p>
10304  <a name="SUBSCRIBE CHANNEL"></a><br /><hr />  <a name="SUBSCRIBE AUDIO_OUTPUT_DEVICE_COUNT"></a><br /><hr />
10305  <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>  <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
10306  <a name="rfc.section.8.1"></a><h3>8.1.&nbsp;  <a name="rfc.section.8.1"></a><h3>8.1.&nbsp;
10307    Number of audio output devices changed</h3>
10308    
10309    <p>Client may want to be notified when the total number of audio output devices on the
10310                    back-end changes by issuing the following command:
10311    </p>
10312    <p>
10313                        </p>
10314    <blockquote class="text">
10315    <p>SUBSCRIBE AUDIO_OUTPUT_DEVICE_COUNT
10316    </p>
10317    </blockquote><p>
10318                    
10319    </p>
10320    <p>Server will start sending the following notification messages:
10321    </p>
10322    <p>
10323                        </p>
10324    <blockquote class="text">
10325    <p>"NOTIFY:AUDIO_OUTPUT_DEVICE_COUNT:&lt;devices&gt;"
10326    </p>
10327    </blockquote><p>
10328                    
10329    </p>
10330    <p>where &lt;devices&gt; will be replaced by the new number
10331                    of audio output devices.
10332    </p>
10333    <a name="SUBSCRIBE AUDIO_OUTPUT_DEVICE_INFO"></a><br /><hr />
10334    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
10335    <a name="rfc.section.8.2"></a><h3>8.2.&nbsp;
10336    Audio output device's settings changed</h3>
10337    
10338    <p>Client may want to be notified when changes were made to audio output devices on the
10339                    back-end by issuing the following command:
10340    </p>
10341    <p>
10342                        </p>
10343    <blockquote class="text">
10344    <p>SUBSCRIBE AUDIO_OUTPUT_DEVICE_INFO
10345    </p>
10346    </blockquote><p>
10347                    
10348    </p>
10349    <p>Server will start sending the following notification messages:
10350    </p>
10351    <p>
10352                        </p>
10353    <blockquote class="text">
10354    <p>"NOTIFY:AUDIO_OUTPUT_DEVICE_INFO:&lt;device-id&gt;"
10355    </p>
10356    </blockquote><p>
10357                    
10358    </p>
10359    <p>where &lt;device-id&gt; will be replaced by the numerical ID of the audio output device,
10360                    which settings has been changed. The front-end will have to send
10361                    the respective command to actually get the audio output device info. Because these messages
10362                    will be triggered by LSCP commands issued by other clients rather than real
10363                    time events happening on the server, it is believed that an empty notification
10364                    message is sufficient here.
10365    </p>
10366    <a name="SUBSCRIBE MIDI_INPUT_DEVICE_COUNT"></a><br /><hr />
10367    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
10368    <a name="rfc.section.8.3"></a><h3>8.3.&nbsp;
10369    Number of MIDI input devices changed</h3>
10370    
10371    <p>Client may want to be notified when the total number of MIDI input devices on the
10372                    back-end changes by issuing the following command:
10373    </p>
10374    <p>
10375                        </p>
10376    <blockquote class="text">
10377    <p>SUBSCRIBE MIDI_INPUT_DEVICE_COUNT
10378    </p>
10379    </blockquote><p>
10380                    
10381    </p>
10382    <p>Server will start sending the following notification messages:
10383    </p>
10384    <p>
10385                        </p>
10386    <blockquote class="text">
10387    <p>"NOTIFY:MIDI_INPUT_DEVICE_COUNT:&lt;devices&gt;"
10388    </p>
10389    </blockquote><p>
10390                    
10391    </p>
10392    <p>where &lt;devices&gt; will be replaced by the new number
10393                    of MIDI input devices.
10394    </p>
10395    <a name="SUBSCRIBE MIDI_INPUT_DEVICE_INFO"></a><br /><hr />
10396    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
10397    <a name="rfc.section.8.4"></a><h3>8.4.&nbsp;
10398    MIDI input device's settings changed</h3>
10399    
10400    <p>Client may want to be notified when changes were made to MIDI input devices on the
10401                    back-end by issuing the following command:
10402    </p>
10403    <p>
10404                        </p>
10405    <blockquote class="text">
10406    <p>SUBSCRIBE MIDI_INPUT_DEVICE_INFO
10407    </p>
10408    </blockquote><p>
10409                    
10410    </p>
10411    <p>Server will start sending the following notification messages:
10412    </p>
10413    <p>
10414                        </p>
10415    <blockquote class="text">
10416    <p>"NOTIFY:MIDI_INPUT_DEVICE_INFO:&lt;device-id&gt;"
10417    </p>
10418    </blockquote><p>
10419                    
10420    </p>
10421    <p>where &lt;device-id&gt; will be replaced by the numerical ID of the MIDI input device,
10422                    which settings has been changed. The front-end will have to send
10423                    the respective command to actually get the MIDI input device info. Because these messages
10424                    will be triggered by LSCP commands issued by other clients rather than real
10425                    time events happening on the server, it is believed that an empty notification
10426                    message is sufficient here.
10427    </p>
10428    <a name="SUBSCRIBE CHANNEL_COUNT"></a><br /><hr />
10429    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
10430    <a name="rfc.section.8.5"></a><h3>8.5.&nbsp;
10431  Number of sampler channels changed</h3>  Number of sampler channels changed</h3>
10432    
10433  <p>Client may want to be notified when the total number of channels on the  <p>Client may want to be notified when the total number of channels on the
# Line 7149  Number of sampler channels changed</h3> Line 10456  Number of sampler channels changed</h3>
10456  </p>  </p>
10457  <a name="SUBSCRIBE VOICE_COUNT"></a><br /><hr />  <a name="SUBSCRIBE VOICE_COUNT"></a><br /><hr />
10458  <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>  <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
10459  <a name="rfc.section.8.2"></a><h3>8.2.&nbsp;  <a name="rfc.section.8.6"></a><h3>8.6.&nbsp;
10460  Number of active voices changed</h3>  Number of active voices changed</h3>
10461    
10462  <p>Client may want to be notified when the number of voices on the  <p>Client may want to be notified when the number of voices on the
# Line 7168  Number of active voices changed</h3> Line 10475  Number of active voices changed</h3>
10475  <p>  <p>
10476                      </p>                      </p>
10477  <blockquote class="text">  <blockquote class="text">
10478  <p>"NOTIFY:VOICE_COUNT:&lt;sampler-channel&gt; &lt;voices&gt;  <p>"NOTIFY:VOICE_COUNT:&lt;sampler-channel&gt; &lt;voices&gt;"
10479  </p>  </p>
10480  </blockquote><p>  </blockquote><p>
10481                                    
# Line 7179  Number of active voices changed</h3> Line 10486  Number of active voices changed</h3>
10486  </p>  </p>
10487  <a name="SUBSCRIBE STREAM_COUNT"></a><br /><hr />  <a name="SUBSCRIBE STREAM_COUNT"></a><br /><hr />
10488  <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>  <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
10489  <a name="rfc.section.8.3"></a><h3>8.3.&nbsp;  <a name="rfc.section.8.7"></a><h3>8.7.&nbsp;
10490  Number of active disk streams changed</h3>  Number of active disk streams changed</h3>
10491    
10492  <p>Client may want to be notified when the number of streams on the back-end  <p>Client may want to be notified when the number of streams on the back-end
# Line 7209  Number of active disk streams changed</h Line 10516  Number of active disk streams changed</h
10516  </p>  </p>
10517  <a name="SUBSCRIBE BUFFER_FILL"></a><br /><hr />  <a name="SUBSCRIBE BUFFER_FILL"></a><br /><hr />
10518  <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>  <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
10519  <a name="rfc.section.8.4"></a><h3>8.4.&nbsp;  <a name="rfc.section.8.8"></a><h3>8.8.&nbsp;
10520  Disk stream buffer fill state changed</h3>  Disk stream buffer fill state changed</h3>
10521    
10522  <p>Client may want to be notified when the buffer fill state of a disk stream  <p>Client may want to be notified when the buffer fill state of a disk stream
# Line 7238  Disk stream buffer fill state changed</h Line 10545  Disk stream buffer fill state changed</h
10545                  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>                  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>
10546                  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.                  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.
10547  </p>  </p>
10548  <a name="SUBSCRIBE INFO"></a><br /><hr />  <a name="SUBSCRIBE CHANNEL_INFO"></a><br /><hr />
10549  <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>  <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
10550  <a name="rfc.section.8.5"></a><h3>8.5.&nbsp;  <a name="rfc.section.8.9"></a><h3>8.9.&nbsp;
10551  Channel information changed</h3>  Channel information changed</h3>
10552    
10553  <p>Client may want to be notified when changes were made to sampler channels on the  <p>Client may want to be notified when changes were made to sampler channels on the
# Line 7271  Channel information changed</h3> Line 10578  Channel information changed</h3>
10578                  time events happening on the server, it is believed that an empty notification                  time events happening on the server, it is believed that an empty notification
10579                  message is sufficient here.                  message is sufficient here.
10580  </p>  </p>
10581    <a name="SUBSCRIBE FX_SEND_COUNT"></a><br /><hr />
10582    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
10583    <a name="rfc.section.8.10"></a><h3>8.10.&nbsp;
10584    Number of effect sends changed</h3>
10585    
10586    <p>Client may want to be notified when the number of effect sends on
10587                    a particular sampler channel is changed by issuing the following command:
10588    </p>
10589    <p>
10590                        </p>
10591    <blockquote class="text">
10592    <p>SUBSCRIBE FX_SEND_COUNT
10593    </p>
10594    </blockquote><p>
10595                    
10596    </p>
10597    <p>Server will start sending the following notification messages:
10598    </p>
10599    <p>
10600                        </p>
10601    <blockquote class="text">
10602    <p>"NOTIFY:FX_SEND_COUNT:&lt;channel-id&gt; &lt;fx-sends&gt;"
10603    </p>
10604    </blockquote><p>
10605                    
10606    </p>
10607    <p>where &lt;channel-id&gt; will be replaced by the numerical ID of the sampler
10608                    channel, on which the effect sends number is changed and &lt;fx-sends&gt; will
10609                    be replaced by the new number of effect sends on that channel.
10610    </p>
10611    <a name="SUBSCRIBE FX_SEND_INFO"></a><br /><hr />
10612    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
10613    <a name="rfc.section.8.11"></a><h3>8.11.&nbsp;
10614    Effect send information changed</h3>
10615    
10616    <p>Client may want to be notified when changes were made to effect sends on a
10617                    a particular sampler channel by issuing the following command:
10618    </p>
10619    <p>
10620                        </p>
10621    <blockquote class="text">
10622    <p>SUBSCRIBE FX_SEND_INFO
10623    </p>
10624    </blockquote><p>
10625                    
10626    </p>
10627    <p>Server will start sending the following notification messages:
10628    </p>
10629    <p>
10630                        </p>
10631    <blockquote class="text">
10632    <p>"NOTIFY:FX_SEND_INFO:&lt;channel-id&gt; &lt;fx-send-id&gt;"
10633    </p>
10634    </blockquote><p>
10635                    
10636    </p>
10637    <p>where &lt;channel-id&gt; will be replaced by the numerical ID of the sampler
10638                    channel, on which an effect send entity is changed and &lt;fx-send-id&gt; will
10639                    be replaced by the numerical ID of the changed effect send.
10640    </p>
10641  <a name="SUBSCRIBE TOTAL_VOICE_COUNT"></a><br /><hr />  <a name="SUBSCRIBE TOTAL_VOICE_COUNT"></a><br /><hr />
10642  <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>  <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
10643  <a name="rfc.section.8.6"></a><h3>8.6.&nbsp;  <a name="rfc.section.8.12"></a><h3>8.12.&nbsp;
10644  Total number of active voices changed</h3>  Total number of active voices changed</h3>
10645    
10646  <p>Client may want to be notified when the total number of voices on the  <p>Client may want to be notified when the total number of voices on the
# Line 7292  Total number of active voices changed</h Line 10659  Total number of active voices changed</h
10659  <p>  <p>
10660                      </p>                      </p>
10661  <blockquote class="text">  <blockquote class="text">
10662  <p>"NOTIFY:TOTAL_VOICE_COUNT:&lt;voices&gt;  <p>"NOTIFY:TOTAL_VOICE_COUNT:&lt;voices&gt;"
10663  </p>  </p>
10664  </blockquote><p>  </blockquote><p>
10665                                    
# Line 7300  Total number of active voices changed</h Line 10667  Total number of active voices changed</h
10667  <p>where &lt;voices&gt; will be replaced by the new number of  <p>where &lt;voices&gt; will be replaced by the new number of
10668                  all currently active voices.                  all currently active voices.
10669  </p>  </p>
10670    <a name="SUBSCRIBE MIDI_INSTRUMENT_MAP_COUNT"></a><br /><hr />
10671    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
10672    <a name="rfc.section.8.13"></a><h3>8.13.&nbsp;
10673    Number of MIDI instrument maps changed</h3>
10674    
10675    <p>Client may want to be notified when the number of MIDI instrument maps on the
10676                    back-end changes by issuing the following command:
10677    </p>
10678    <p>
10679                        </p>
10680    <blockquote class="text">
10681    <p>SUBSCRIBE MIDI_INSTRUMENT_MAP_COUNT
10682    </p>
10683    </blockquote><p>
10684                    
10685    </p>
10686    <p>Server will start sending the following notification messages:
10687    </p>
10688    <p>
10689                        </p>
10690    <blockquote class="text">
10691    <p>"NOTIFY:MIDI_INSTRUMENT_MAP_COUNT:&lt;maps&gt;"
10692    </p>
10693    </blockquote><p>
10694                    
10695    </p>
10696    <p>where &lt;maps&gt; will be replaced by the new number
10697                    of MIDI instrument maps.
10698    </p>
10699    <a name="SUBSCRIBE MIDI_INSTRUMENT_MAP_INFO"></a><br /><hr />
10700    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
10701    <a name="rfc.section.8.14"></a><h3>8.14.&nbsp;
10702    MIDI instrument map information changed</h3>
10703    
10704    <p>Client may want to be notified when changes were made to MIDI instrument maps on the
10705                    back-end by issuing the following command:
10706    </p>
10707    <p>
10708                        </p>
10709    <blockquote class="text">
10710    <p>SUBSCRIBE MIDI_INSTRUMENT_MAP_INFO
10711    </p>
10712    </blockquote><p>
10713                    
10714    </p>
10715    <p>Server will start sending the following notification messages:
10716    </p>
10717    <p>
10718                        </p>
10719    <blockquote class="text">
10720    <p>"NOTIFY:MIDI_INSTRUMENT_MAP_INFO:&lt;map-id&gt;"
10721    </p>
10722    </blockquote><p>
10723                    
10724    </p>
10725    <p>where &lt;map-id&gt; will be replaced by the numerical ID of the MIDI instrument map,
10726                    for which information changes occurred. The front-end will have to send
10727                    the respective command to actually get the MIDI instrument map info. Because these messages
10728                    will be triggered by LSCP commands issued by other clients rather than real
10729                    time events happening on the server, it is believed that an empty notification
10730                    message is sufficient here.
10731    </p>
10732    <a name="SUBSCRIBE MIDI_INSTRUMENT_COUNT"></a><br /><hr />
10733    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
10734    <a name="rfc.section.8.15"></a><h3>8.15.&nbsp;
10735    Number of MIDI instruments changed</h3>
10736    
10737    <p>Client may want to be notified when the number of MIDI instrument maps on the
10738                    back-end changes by issuing the following command:
10739    </p>
10740    <p>
10741                        </p>
10742    <blockquote class="text">
10743    <p>SUBSCRIBE MIDI_INSTRUMENT_COUNT
10744    </p>
10745    </blockquote><p>
10746                    
10747    </p>
10748    <p>Server will start sending the following notification messages:
10749    </p>
10750    <p>
10751                        </p>
10752    <blockquote class="text">
10753    <p>"NOTIFY:MIDI_INSTRUMENT_COUNT:&lt;map-id&gt; &lt;instruments&gt;"
10754    </p>
10755    </blockquote><p>
10756                    
10757    </p>
10758    <p>where &lt;map-id&gt; is the numerical ID of the MIDI instrument map, in which
10759                    the nuber of instruments has changed and &lt;instruments&gt; will be replaced by
10760                    the new number of MIDI instruments in the specified map.
10761    </p>
10762    <a name="SUBSCRIBE MIDI_INSTRUMENT_INFO"></a><br /><hr />
10763    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
10764    <a name="rfc.section.8.16"></a><h3>8.16.&nbsp;
10765    MIDI instrument information changed</h3>
10766    
10767    <p>Client may want to be notified when changes were made to MIDI instruments on the
10768                    back-end by issuing the following command:
10769    </p>
10770    <p>
10771                        </p>
10772    <blockquote class="text">
10773    <p>SUBSCRIBE MIDI_INSTRUMENT_INFO
10774    </p>
10775    </blockquote><p>
10776                    
10777    </p>
10778    <p>Server will start sending the following notification messages:
10779    </p>
10780    <p>
10781                        </p>
10782    <blockquote class="text">
10783    <p>"NOTIFY:MIDI_INSTRUMENT_INFO:&lt;map-id&gt; &lt;bank&gt; &lt;program&gt;"
10784    </p>
10785    </blockquote><p>
10786                    
10787    </p>
10788    <p>where &lt;map-id&gt; will be replaced by the numerical ID of the MIDI instrument map,
10789                    in which a MIDI instrument is changed. &lt;bank&gt; and &lt;program&gt; specifies
10790                    the location of the changed MIDI instrument in the map. The front-end will have to send
10791                    the respective command to actually get the MIDI instrument info. Because these messages
10792                    will be triggered by LSCP commands issued by other clients rather than real
10793                    time events happening on the server, it is believed that an empty notification
10794                    message is sufficient here.
10795    </p>
10796    <a name="SUBSCRIBE GLOBAL_INFO"></a><br /><hr />
10797    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
10798    <a name="rfc.section.8.17"></a><h3>8.17.&nbsp;
10799    Global settings changed</h3>
10800    
10801    <p>Client may want to be notified when changes to the global settings
10802                    of the sampler were made by issuing the following command:
10803    </p>
10804    <p>
10805                        </p>
10806    <blockquote class="text">
10807    <p>SUBSCRIBE GLOBAL_INFO
10808    </p>
10809    </blockquote><p>
10810                    
10811    </p>
10812    <p>Server will start sending the following types of notification messages:
10813    </p>
10814    <p>
10815                        </p>
10816    <blockquote class="text">
10817    <p>"NOTIFY:GLOBAL_INFO:VOLUME &lt;volume&gt;" - Notifies that the
10818                            golbal volume of the sampler is changed, where &lt;volume&gt; will be
10819                            replaced by the optional dotted floating point value, reflecting the
10820                            new global volume parameter.
10821    </p>
10822    </blockquote><p>
10823                    
10824    </p>
10825    <a name="SUBSCRIBE DB_INSTRUMENT_DIRECTORY_COUNT"></a><br /><hr />
10826    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
10827    <a name="rfc.section.8.18"></a><h3>8.18.&nbsp;
10828    Number of database instrument directories changed</h3>
10829    
10830    <p>Client may want to be notified when the number of instrument
10831                    directories in a particular directory in the instruments database
10832                    is changed by issuing the following command:
10833    </p>
10834    <p>
10835                        </p>
10836    <blockquote class="text">
10837    <p>SUBSCRIBE DB_INSTRUMENT_DIRECTORY_COUNT
10838    </p>
10839    </blockquote><p>
10840                    
10841    </p>
10842    <p>Server will start sending the following notification messages:
10843    </p>
10844    <p>
10845                        </p>
10846    <blockquote class="text">
10847    <p>"NOTIFY:DB_INSTRUMENT_DIRECTORY_COUNT:&lt;dir-path&gt;"
10848    </p>
10849    </blockquote><p>
10850                    
10851    </p>
10852    <p>where &lt;dir-path&gt; will be replaced by the absolute path
10853                    name of the directory in the instruments database,
10854                    in which the number of directories is changed.
10855    </p>
10856    <p>Note that when a non-empty directory is removed, this event
10857                    is not sent for the subdirectories in that directory.
10858    </p>
10859    <a name="SUBSCRIBE DB_INSTRUMENT_DIRECTORY_INFO"></a><br /><hr />
10860    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
10861    <a name="rfc.section.8.19"></a><h3>8.19.&nbsp;
10862    Database instrument directory information changed</h3>
10863    
10864    <p>Client may want to be notified when changes were made to directories
10865                    in the instruments database by issuing the following command:
10866    </p>
10867    <p>
10868                        </p>
10869    <blockquote class="text">
10870    <p>SUBSCRIBE DB_INSTRUMENT_DIRECTORY_INFO
10871    </p>
10872    </blockquote><p>
10873                    
10874    </p>
10875    <p>Server will start sending the following notification messages:
10876    </p>
10877    <p>
10878                        </p>
10879    <blockquote class="text">
10880    <p>"NOTIFY:DB_INSTRUMENT_DIRECTORY_INFO:&lt;dir-path&gt;"
10881    </p>
10882    </blockquote><p>
10883                    
10884    </p>
10885    <p>where &lt;dir-path&gt; will be replaced by the absolute path name
10886                    of the directory, for which information changes occurred. The front-end will have to send
10887                    the respective command to actually get the updated directory info. Because these messages
10888                    will be triggered by LSCP commands issued by other clients rather than real
10889                    time events happening on the server, it is believed that an empty notification
10890                    message is sufficient here.
10891    </p>
10892    <p>
10893                        </p>
10894    <blockquote class="text">
10895    <p>"NOTIFY:DB_INSTRUMENT_DIRECTORY_INFO:NAME &lt;old-dir-path&gt; &lt;new-name&gt;"
10896    </p>
10897    </blockquote><p>
10898                    
10899    </p>
10900    <p>where &lt;old-dir-path&gt; is the old absolute path name of the directory
10901                    (encapsulated into apostrophes), which name is changes and &lt;new-name&gt; is
10902                    the new name of the directory, encapsulated into apostrophes.
10903    </p>
10904    <a name="SUBSCRIBE DB_INSTRUMENT_COUNT"></a><br /><hr />
10905    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
10906    <a name="rfc.section.8.20"></a><h3>8.20.&nbsp;
10907    Number of database instruments changed</h3>
10908    
10909    <p>Client may want to be notified when the number of instruments
10910                    in a particular directory in the instruments database
10911                    is changed by issuing the following command:
10912    </p>
10913    <p>
10914                        </p>
10915    <blockquote class="text">
10916    <p>SUBSCRIBE DB_INSTRUMENT_COUNT
10917    </p>
10918    </blockquote><p>
10919                    
10920    </p>
10921    <p>Server will start sending the following notification messages:
10922    </p>
10923    <p>
10924                        </p>
10925    <blockquote class="text">
10926    <p>"NOTIFY:DB_INSTRUMENT_COUNT:&lt;dir-path&gt;"
10927    </p>
10928    </blockquote><p>
10929                    
10930    </p>
10931    <p>where &lt;dir-path&gt; will be replaced by the absolute path
10932                    name of the directory in the instruments database,
10933                    in which the number of instruments is changed.
10934    </p>
10935    <p>Note that when a non-empty directory is removed, this event
10936                    is not sent for the instruments in that directory.
10937    </p>
10938    <a name="SUBSCRIBE DB_INSTRUMENT_INFO"></a><br /><hr />
10939    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
10940    <a name="rfc.section.8.21"></a><h3>8.21.&nbsp;
10941    Database instrument information changed</h3>
10942    
10943    <p>Client may want to be notified when changes were made to instruments
10944                    in the instruments database by issuing the following command:
10945    </p>
10946    <p>
10947                        </p>
10948    <blockquote class="text">
10949    <p>SUBSCRIBE DB_INSTRUMENT_INFO
10950    </p>
10951    </blockquote><p>
10952                    
10953    </p>
10954    <p>Server will start sending the following notification messages:
10955    </p>
10956    <p>
10957                        </p>
10958    <blockquote class="text">
10959    <p>"NOTIFY:DB_INSTRUMENT_INFO:&lt;instr-path&gt;"
10960    </p>
10961    </blockquote><p>
10962                    
10963    </p>
10964    <p>where &lt;instr-path&gt; will be replaced by the absolute path name
10965                    of the instrument, which settings are changed. The front-end will have to send
10966                    the respective command to actually get the updated directory info. Because these messages
10967                    will be triggered by LSCP commands issued by other clients rather than real
10968                    time events happening on the server, it is believed that an empty notification
10969                    message is sufficient here.
10970    </p>
10971    <p>
10972                        </p>
10973    <blockquote class="text">
10974    <p>"NOTIFY:DB_INSTRUMENT_INFO:NAME &lt;old-instr-path&gt; &lt;new-name&gt;"
10975    </p>
10976    </blockquote><p>
10977                    
10978    </p>
10979    <p>where &lt;old-instr-path&gt; is the old absolute path name of the instrument
10980                    (encapsulated into apostrophes), which name is changes and &lt;new-name&gt; is
10981                    the new name of the instrument, encapsulated into apostrophes.
10982    </p>
10983    <a name="SUBSCRIBE DB_INSTRUMENTS_JOB_INFO"></a><br /><hr />
10984    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
10985    <a name="rfc.section.8.22"></a><h3>8.22.&nbsp;
10986    Database job status information changed</h3>
10987    
10988    <p>Client may want to be notified when the status of particular database
10989                    instruments job is changed by issuing the following command:
10990    </p>
10991    <p>
10992                        </p>
10993    <blockquote class="text">
10994    <p>SUBSCRIBE DB_INSTRUMENTS_JOB_INFO
10995    </p>
10996    </blockquote><p>
10997                    
10998    </p>
10999    <p>Server will start sending the following notification messages:
11000    </p>
11001    <p>
11002                        </p>
11003    <blockquote class="text">
11004    <p>"NOTIFY:DB_INSTRUMENTS_JOB_INFO:&lt;job-id&gt;"
11005    </p>
11006    </blockquote><p>
11007                    
11008    </p>
11009    <p>where &lt;job-id&gt; will be replaced by the numerical ID of the job,
11010                    which status is changed. The front-end will have to send the respective
11011                    command to actually get the status info. Because these messages
11012                    will be triggered by LSCP commands issued by other clients rather than real
11013                    time events happening on the server, it is believed that an empty notification
11014                    message is sufficient here.
11015    </p>
11016  <a name="SUBSCRIBE MISCELLANEOUS"></a><br /><hr />  <a name="SUBSCRIBE MISCELLANEOUS"></a><br /><hr />
11017  <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>  <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
11018  <a name="rfc.section.8.7"></a><h3>8.7.&nbsp;  <a name="rfc.section.8.23"></a><h3>8.23.&nbsp;
11019  Miscellaneous and debugging events</h3>  Miscellaneous and debugging events</h3>
11020    
11021  <p>Client may want to be notified of miscellaneous and debugging events occurring at  <p>Client may want to be notified of miscellaneous and debugging events occurring at
# Line 7367  Acknowledgments</h3> Line 11080  Acknowledgments</h3>
11080  <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>  <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
11081  <h3>11.&nbsp;References</h3>  <h3>11.&nbsp;References</h3>
11082  <table width="99%" border="0">  <table width="99%" border="0">
11083    <tr><td class="author-text" valign="top"><a name="RFC20">[RFC20]</a></td>
11084    <td class="author-text">UCLA, &ldquo;<a href="ftp://ftp.isi.edu/in-notes/rfc20.txt">ASCII format for Network Interchange</a>,&rdquo; RFC&nbsp;20, 1969.</td></tr>
11085  <tr><td class="author-text" valign="top"><a name="RFC2119">[RFC2119]</a></td>  <tr><td class="author-text" valign="top"><a name="RFC2119">[RFC2119]</a></td>
11086  <td class="author-text">Bradner, S., &ldquo;<a href="ftp://ftp.isi.edu/in-notes/rfc2119.txt">Key words for use in RFCs to Indicate Requirement Levels</a>,&rdquo; RFC&nbsp;2119, 1997.</td></tr>  <td class="author-text">Bradner, S., &ldquo;<a href="ftp://ftp.isi.edu/in-notes/rfc2119.txt">Key words for use in RFCs to Indicate Requirement Levels</a>,&rdquo; RFC&nbsp;2119, 1997.</td></tr>
11087  <tr><td class="author-text" valign="top"><a name="RFC2234">[RFC2234]</a></td>  <tr><td class="author-text" valign="top"><a name="RFC2234">[RFC2234]</a></td>
# Line 7397  Schoenebeck</td></tr> Line 11112  Schoenebeck</td></tr>
11112  <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>  <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
11113  <h3>Full Copyright Statement</h3>  <h3>Full Copyright Statement</h3>
11114  <p class='copyright'>  <p class='copyright'>
11115  Copyright &copy; The Internet Society (2006).</p>  Copyright &copy; The IETF Trust (2007).</p>
11116  <p class='copyright'>  <p class='copyright'>
11117  This document is subject to the rights,  This document is subject to the rights,
11118  licenses and restrictions contained in BCP&nbsp;78,  licenses and restrictions contained in BCP&nbsp;78,
# Line 7406  the authors retain all their rights.</p> Line 11121  the authors retain all their rights.</p>
11121  <p class='copyright'>  <p class='copyright'>
11122  This document and the information contained herein are provided  This document and the information contained herein are provided
11123  on an &ldquo;AS IS&rdquo; basis and THE CONTRIBUTOR,  on an &ldquo;AS IS&rdquo; basis and THE CONTRIBUTOR,
11124  THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY),  THE ORGANIZATION HE/SHE REPRESENTS
11125  THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM  OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST
11126  ALL WARRANTIES,  AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES,
11127  EXPRESS OR IMPLIED,  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT
11128  INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE  THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY
11129  INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED  IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR
11130  WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.</p>  PURPOSE.</p>
11131  <h3>Intellectual Property</h3>  <h3>Intellectual Property</h3>
11132  <p class='copyright'>  <p class='copyright'>
11133  The IETF takes no position regarding the validity or scope of any  The IETF takes no position regarding the validity or scope of any
# Line 7444  Please address the information to the IE Line 11159  Please address the information to the IE
11159  Funding for the RFC Editor function is provided by  Funding for the RFC Editor function is provided by
11160  the IETF Administrative Support Activity (IASA).</p>  the IETF Administrative Support Activity (IASA).</p>
11161  </body></html>  </body></html>
11162    

Legend:
Removed from v.974  
changed lines
  Added in v.1363

  ViewVC Help
Powered by ViewVC