/[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 1006 by schoenebeck, Fri Dec 29 20:27:15 2006 UTC revision 2023 by schoenebeck, Sun Nov 1 12:59:16 2009 UTC
# Line 3  Line 3 
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">
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.34 (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: July 2, 2007</td><td class="header">December 29, 2006</td></tr>  <tr><td class="header">Expires: May 5, 2010</td><td class="header">November 1, 2009</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<br />LSCP 1.5</h1>
151    
152    <h3>Abstract</h3>
153    
154    <p>The LinuxSampler Control Protocol (LSCP) is an
155                application-level protocol primarily intended for local and
156                remote controlling the LinuxSampler backend application, which is a
157                sophisticated server-like console application essentially playing
158                back audio samples and manipulating the samples in real time to
159                certain extent.
160    </p>
161  <h3>Status of this Memo</h3>  <h3>Status of this Memo</h3>
162  <p>  <p>
163  By submitting this Internet-Draft,  By submitting this Internet-Draft,
# Line 173  The list of current Internet-Drafts can Line 182  The list of current Internet-Drafts can
182  The list of Internet-Draft Shadow Directories can be accessed at  The list of Internet-Draft Shadow Directories can be accessed at
183  <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>
184  <p>  <p>
185  This Internet-Draft will expire on July 2, 2007.</p>  This Internet-Draft will expire on May 5, 2010.</p>
186    <a name="toc"></a><br /><hr />
 <h3>Copyright Notice</h3>  
 <p>  
 Copyright &copy; The Internet Society (2006).</p>  
   
 <h3>Abstract</h3>  
   
 <p>The LinuxSampler Control Protocol (LSCP) is an  
             application-level protocol primarily intended for local and  
             remote controlling the LinuxSampler backend application, which is a  
             sophisticated server-like console application essentially playing  
             back audio samples and manipulating the samples in real time to  
             certain extent.  
 </p><a name="toc"></a><br /><hr />  
187  <h3>Table of Contents</h3>  <h3>Table of Contents</h3>
188  <p class="toc">  <p class="toc">
189  <a href="#anchor1">1.</a>&nbsp;  <a href="#anchor1">1.</a>&nbsp;
# Line 328  Getting amount of effect sends on a samp Line 324  Getting amount of effect sends on a samp
324  Listing all effect sends on a sampler channel<br />  Listing all effect sends on a sampler channel<br />
325  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET FX_SEND INFO">6.4.29.</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET FX_SEND INFO">6.4.29.</a>&nbsp;
326  Getting effect send information<br />  Getting effect send information<br />
327  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET FX_SEND AUDIO_OUTPUT_CHANNEL">6.4.30.</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET FX_SEND NAME">6.4.30.</a>&nbsp;
328    Changing effect send's name<br />
329    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET FX_SEND AUDIO_OUTPUT_CHANNEL">6.4.31.</a>&nbsp;
330  Altering effect send's audio routing<br />  Altering effect send's audio routing<br />
331  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#RESET CHANNEL">6.4.31.</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET FX_SEND MIDI_CONTROLLER">6.4.32.</a>&nbsp;
332    Altering effect send's MIDI controller<br />
333    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET FX_SEND LEVEL">6.4.33.</a>&nbsp;
334    Altering effect send's send level<br />
335    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SEND CHANNEL MIDI_DATA">6.4.34.</a>&nbsp;
336    Sending MIDI messages to sampler channel<br />
337    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#RESET CHANNEL">6.4.35.</a>&nbsp;
338  Resetting a sampler channel<br />  Resetting a sampler channel<br />
339  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor12">6.5.</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor12">6.5.</a>&nbsp;
340  Controlling connection<br />  Controlling connection<br />
# Line 348  Global commands<br /> Line 352  Global commands<br />
352  Current number of active voices<br />  Current number of active voices<br />
353  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET TOTAL_VOICE_COUNT_MAX">6.6.2.</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET TOTAL_VOICE_COUNT_MAX">6.6.2.</a>&nbsp;
354  Maximum amount of active voices<br />  Maximum amount of active voices<br />
355  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#RESET">6.6.3.</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET TOTAL_STREAM_COUNT">6.6.3.</a>&nbsp;
356    Current number of active disk streams<br />
357    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#RESET">6.6.4.</a>&nbsp;
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.5.</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;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET VOLUME">6.6.6.</a>&nbsp;
362  Getting global volume attenuation<br />  Getting global volume attenuation<br />
363  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET VOLUME">6.6.6.</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET VOLUME">6.6.7.</a>&nbsp;
364  Setting global volume attenuation<br />  Setting global volume attenuation<br />
365    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET VOICES">6.6.8.</a>&nbsp;
366    Getting global voice limit<br />
367    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET VOICES">6.6.9.</a>&nbsp;
368    Setting global voice limit<br />
369    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET STREAMS">6.6.10.</a>&nbsp;
370    Getting global disk stream limit<br />
371    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET STREAMS">6.6.11.</a>&nbsp;
372    Setting global disk stream limit<br />
373  &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;
374  MIDI Instrument Mapping<br />  MIDI Instrument Mapping<br />
375  &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;
376  Create a new MIDI instrument map<br />  Create a new MIDI instrument map<br />
377  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#REMOVE MIDI_INSTRUMENT_MAP">6.7.2.</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#REMOVE MIDI_INSTRUMENT_MAP">6.7.2.</a>&nbsp;
378  Delete one particular or all MIDI instrument maps<br />  Delete one particular or all MIDI instrument maps<br />
# Line 382  Remove an entry from the MIDI instrument Line 396  Remove an entry from the MIDI instrument
396  Get current settings of MIDI instrument map entry<br />  Get current settings of MIDI instrument map entry<br />
397  &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;
398  Clear MIDI instrument map<br />  Clear MIDI instrument map<br />
399    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#Managing Instruments Database">6.8.</a>&nbsp;
400    Managing Instruments Database<br />
401    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ADD DB_INSTRUMENT_DIRECTORY">6.8.1.</a>&nbsp;
402    Creating a new instrument directory<br />
403    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#REMOVE DB_INSTRUMENT_DIRECTORY">6.8.2.</a>&nbsp;
404    Deleting an instrument directory<br />
405    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET DB_INSTRUMENT_DIRECTORIES">6.8.3.</a>&nbsp;
406    Getting amount of instrument directories<br />
407    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#LIST DB_INSTRUMENT_DIRECTORIES">6.8.4.</a>&nbsp;
408    Listing all directories in specific directory<br />
409    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET DB_INSTRUMENT_DIRECTORY INFO">6.8.5.</a>&nbsp;
410    Getting instrument directory information<br />
411    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET DB_INSTRUMENT_DIRECTORY NAME">6.8.6.</a>&nbsp;
412    Renaming an instrument directory<br />
413    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#MOVE DB_INSTRUMENT_DIRECTORY">6.8.7.</a>&nbsp;
414    Moving an instrument directory<br />
415    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#COPY DB_INSTRUMENT_DIRECTORY">6.8.8.</a>&nbsp;
416    Copying instrument directories<br />
417    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET DB_INSTRUMENT_DIRECTORY DESCRIPTION">6.8.9.</a>&nbsp;
418    Changing the description of directory<br />
419    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#FIND DB_INSTRUMENT_DIRECTORIES">6.8.10.</a>&nbsp;
420    Finding directories<br />
421    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ADD DB_INSTRUMENTS">6.8.11.</a>&nbsp;
422    Adding instruments to the instruments database<br />
423    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#REMOVE DB_INSTRUMENT">6.8.12.</a>&nbsp;
424    Removing an instrument<br />
425    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET DB_INSTRUMENTS">6.8.13.</a>&nbsp;
426    Getting amount of instruments<br />
427    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#LIST DB_INSTRUMENTS">6.8.14.</a>&nbsp;
428    Listing all instruments in specific directory<br />
429    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET DB_INSTRUMENT INFO">6.8.15.</a>&nbsp;
430    Getting instrument information<br />
431    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET DB_INSTRUMENT NAME">6.8.16.</a>&nbsp;
432    Renaming an instrument<br />
433    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#MOVE DB_INSTRUMENT">6.8.17.</a>&nbsp;
434    Moving an instrument<br />
435    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#COPY DB_INSTRUMENT">6.8.18.</a>&nbsp;
436    Copying instruments<br />
437    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET DB_INSTRUMENT DESCRIPTION">6.8.19.</a>&nbsp;
438    Changing the description of instrument<br />
439    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#FIND DB_INSTRUMENTS">6.8.20.</a>&nbsp;
440    Finding instruments<br />
441    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET DB_INSTRUMENTS_JOB INFO">6.8.21.</a>&nbsp;
442    Getting job status information<br />
443    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#FORMAT INSTRUMENTS_DB">6.8.22.</a>&nbsp;
444    Formatting the instruments database<br />
445    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#FIND LOST DB_INSTRUMENT_FILES">6.8.23.</a>&nbsp;
446    Checking for lost instrument files<br />
447    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET DB_INSTRUMENT FILE_PATH">6.8.24.</a>&nbsp;
448    Replacing an instrument file<br />
449    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#editing_instruments">6.9.</a>&nbsp;
450    Editing Instruments<br />
451    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#EDIT INSTRUMENT">6.9.1.</a>&nbsp;
452    Opening an appropriate instrument editor application<br />
453    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#file_management">6.10.</a>&nbsp;
454    Managing Files<br />
455    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET FILE INSTRUMENTS">6.10.1.</a>&nbsp;
456    Retrieving amount of instruments of a file<br />
457    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#LIST FILE INSTRUMENTS">6.10.2.</a>&nbsp;
458    Retrieving all instruments of a file<br />
459    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET FILE INSTRUMENT INFO">6.10.3.</a>&nbsp;
460    Retrieving informations about one instrument in a file<br />
461  <a href="#command_syntax">7.</a>&nbsp;  <a href="#command_syntax">7.</a>&nbsp;
462  Command Syntax<br />  Command Syntax<br />
463    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#character_set">7.1.</a>&nbsp;
464    Character Set and Escape Sequences<br />
465  <a href="#events">8.</a>&nbsp;  <a href="#events">8.</a>&nbsp;
466  Events<br />  Events<br />
467  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE AUDIO_OUTPUT_DEVICE_COUNT">8.1.</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE AUDIO_OUTPUT_DEVICE_COUNT">8.1.</a>&nbsp;
# Line 396  Number of MIDI input devices changed<br Line 474  Number of MIDI input devices changed<br
474  MIDI input device's settings changed<br />  MIDI input device's settings changed<br />
475  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE CHANNEL_COUNT">8.5.</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE CHANNEL_COUNT">8.5.</a>&nbsp;
476  Number of sampler channels changed<br />  Number of sampler channels changed<br />
477  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE VOICE_COUNT">8.6.</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE CHANNEL_MIDI">8.6.</a>&nbsp;
478    MIDI data on a sampler channel arrived<br />
479    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE DEVICE_MIDI">8.7.</a>&nbsp;
480    MIDI data on a MIDI input device arrived<br />
481    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE VOICE_COUNT">8.8.</a>&nbsp;
482  Number of active voices changed<br />  Number of active voices changed<br />
483  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE STREAM_COUNT">8.7.</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE STREAM_COUNT">8.9.</a>&nbsp;
484  Number of active disk streams changed<br />  Number of active disk streams changed<br />
485  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE BUFFER_FILL">8.8.</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE BUFFER_FILL">8.10.</a>&nbsp;
486  Disk stream buffer fill state changed<br />  Disk stream buffer fill state changed<br />
487  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE CHANNEL_INFO">8.9.</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE CHANNEL_INFO">8.11.</a>&nbsp;
488  Channel information changed<br />  Channel information changed<br />
489  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE TOTAL_VOICE_COUNT">8.10.</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE FX_SEND_COUNT">8.12.</a>&nbsp;
490    Number of effect sends changed<br />
491    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE FX_SEND_INFO">8.13.</a>&nbsp;
492    Effect send information changed<br />
493    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE TOTAL_VOICE_COUNT">8.14.</a>&nbsp;
494  Total number of active voices changed<br />  Total number of active voices changed<br />
495  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE MIDI_INSTRUMENT_MAP_COUNT">8.11.</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE TOTAL_STREAM_COUNT">8.15.</a>&nbsp;
496    Total number of active disk streams changed<br />
497    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE MIDI_INSTRUMENT_MAP_COUNT">8.16.</a>&nbsp;
498  Number of MIDI instrument maps changed<br />  Number of MIDI instrument maps changed<br />
499  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE MIDI_INSTRUMENT_MAP_INFO">8.12.</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE MIDI_INSTRUMENT_MAP_INFO">8.17.</a>&nbsp;
500  MIDI instrument map information changed<br />  MIDI instrument map information changed<br />
501  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE MIDI_INSTRUMENT_COUNT">8.13.</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE MIDI_INSTRUMENT_COUNT">8.18.</a>&nbsp;
502  Number of MIDI instruments changed<br />  Number of MIDI instruments changed<br />
503  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE MIDI_INSTRUMENT_INFO">8.14.</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE MIDI_INSTRUMENT_INFO">8.19.</a>&nbsp;
504  MIDI instrument information changed<br />  MIDI instrument information changed<br />
505  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE MISCELLANEOUS">8.15.</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE GLOBAL_INFO">8.20.</a>&nbsp;
506    Global settings changed<br />
507    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE DB_INSTRUMENT_DIRECTORY_COUNT">8.21.</a>&nbsp;
508    Number of database instrument directories changed<br />
509    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE DB_INSTRUMENT_DIRECTORY_INFO">8.22.</a>&nbsp;
510    Database instrument directory information changed<br />
511    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE DB_INSTRUMENT_COUNT">8.23.</a>&nbsp;
512    Number of database instruments changed<br />
513    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE DB_INSTRUMENT_INFO">8.24.</a>&nbsp;
514    Database instrument information changed<br />
515    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE DB_INSTRUMENTS_JOB_INFO">8.25.</a>&nbsp;
516    Database job status information changed<br />
517    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE MISCELLANEOUS">8.26.</a>&nbsp;
518  Miscellaneous and debugging events<br />  Miscellaneous and debugging events<br />
519  <a href="#anchor14">9.</a>&nbsp;  <a href="#anchor14">9.</a>&nbsp;
520  Security Considerations<br />  Security Considerations<br />
# Line 446  Requirements notation</h3> Line 546  Requirements notation</h3>
546              (front-end) and server (LinuxSampler) respectively. Lines in              (front-end) and server (LinuxSampler) respectively. Lines in
547              examples must be interpreted as every line being CRLF              examples must be interpreted as every line being CRLF
548              terminated (carriage return character followed by line feed              terminated (carriage return character followed by line feed
549              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>),
550              example:              thus the following example:
551  </p>  </p>
552  <p>  <p>
553                  </p>                  </p>
# Line 3233  Changing settings of MIDI input ports</h Line 3333  Changing settings of MIDI input ports</h
3333                      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>
3334                      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
3335                      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
3336                      parameter.                      parameter (encapsulated into apostrophes) or NONE (not encapsulated into apostrophes)
3337                        for specifying no value for parameters allowing a list of values.
3338  </p>  </p>
3339  <p>Possible Answers:  <p>Possible Answers:
3340  </p>  </p>
# Line 3274  Changing settings of MIDI input ports</h Line 3375  Changing settings of MIDI input ports</h
3375  <p>  <p>
3376                          </p>                          </p>
3377  <blockquote class="text">  <blockquote class="text">
3378    <p>C: "SET MIDI_INPUT_PORT_PARAMETER 0 0 ALSA_SEQ_BINDINGS='20:0'"
3379    </p>
3380    <p>S: "OK"
3381    </p>
3382    </blockquote><p>
3383                        
3384    </p>
3385  <p>  <p>
3386                            </p>
3387    <blockquote class="text">
3388    <p>C: "SET MIDI_INPUT_PORT_PARAMETER 0 0 ALSA_SEQ_BINDINGS=NONE"
3389    </p>
3390    <p>S: "OK"
3391  </p>  </p>
3392  </blockquote><p>  </blockquote><p>
3393                                            
# Line 3309  Loading an instrument</h3> Line 3422  Loading an instrument</h3>
3422                      number of the sampler channel the instrument should be assigned to.                      number of the sampler channel the instrument should be assigned to.
3423                      Each sampler channel can only have one instrument.                      Each sampler channel can only have one instrument.
3424  </p>  </p>
3425    <p>Notice: since LSCP 1.2 the &lt;filename&gt; argument supports
3426                        escape characters for special characters (see chapter
3427                        "<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>"
3428                        for details) and accordingly backslash characters in the filename
3429                        MUST now be escaped as well!
3430    </p>
3431  <p>The difference between regular and NON_MODAL versions of the command  <p>The difference between regular and NON_MODAL versions of the command
3432                      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
3433                      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 3356  Loading an instrument</h3> Line 3475  Loading an instrument</h3>
3475  </blockquote><p>  </blockquote><p>
3476                                            
3477  </p>  </p>
3478  <p>Example:  <p>Example (Unix):
3479  </p>  </p>
3480  <p>  <p>
3481                          </p>                          </p>
3482  <blockquote class="text">  <blockquote class="text">
3483    <p>C: LOAD INSTRUMENT '/home/joe/gigs/cello.gig' 0 0
3484    </p>
3485    <p>S: OK
3486    </p>
3487    </blockquote><p>
3488                        
3489    </p>
3490    <p>Example (Windows):
3491    </p>
3492  <p>  <p>
3493                            </p>
3494    <blockquote class="text">
3495    <p>C: LOAD INSTRUMENT 'D:/MySounds/cello.gig' 0 0
3496    </p>
3497    <p>S: OK
3498  </p>  </p>
3499  </blockquote><p>  </blockquote><p>
3500                                            
# Line 3776  Getting information about an engine</h3> Line 3909  Getting information about an engine</h3>
3909                                          </p>                                          </p>
3910  <blockquote class="text">  <blockquote class="text">
3911  <p>arbitrary description text about the engine  <p>arbitrary description text about the engine
3912                                                (note that the character string may contain
3913                                                <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>)
3914  </p>  </p>
3915  </blockquote>  </blockquote>
3916                                                                            
# Line 3861  Getting sampler channel information</h3> Line 3996  Getting sampler channel information</h3>
3996  <blockquote class="text">  <blockquote class="text">
3997  <p>numerical ID of the audio output device which is  <p>numerical ID of the audio output device which is
3998                                              currently connected to this sampler channel to output                                              currently connected to this sampler channel to output
3999                                              the audio signal, "NONE" if there's no device                                              the audio signal, "-1" if there's no device
4000                                              connected to this sampler channel                                              connected to this sampler channel
4001  </p>  </p>
4002  </blockquote>  </blockquote>
# Line 3895  Getting sampler channel information</h3> Line 4030  Getting sampler channel information</h3>
4030  <blockquote class="text">  <blockquote class="text">
4031  <p>the file name of the loaded instrument, "NONE" if  <p>the file name of the loaded instrument, "NONE" if
4032                                              there's no instrument yet loaded for this sampler                                              there's no instrument yet loaded for this sampler
4033                                              channel                                              channel (note: since LSCP 1.2 this path may contain
4034                                                <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>)
4035  </p>  </p>
4036  </blockquote>  </blockquote>
4037                                                                            
# Line 3903  Getting sampler channel information</h3> Line 4039  Getting sampler channel information</h3>
4039  <p>INSTRUMENT_NR -  <p>INSTRUMENT_NR -
4040                                          </p>                                          </p>
4041  <blockquote class="text">  <blockquote class="text">
4042  <p>the instrument index number of the loaded instrument  <p>the instrument index number of the loaded instrument,
4043                                                "-1" if there's no instrument loaded for this sampler
4044                                                channel
4045  </p>  </p>
4046  </blockquote>  </blockquote>
4047                                                                            
# Line 3912  Getting sampler channel information</h3> Line 4050  Getting sampler channel information</h3>
4050                                          </p>                                          </p>
4051  <blockquote class="text">  <blockquote class="text">
4052  <p>the instrument name of the loaded instrument  <p>the instrument name of the loaded instrument
4053                                                (note: since LSCP 1.2 this character string may contain
4054                                                <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>)
4055  </p>  </p>
4056  </blockquote>  </blockquote>
4057                                                                            
# Line 3919  Getting sampler channel information</h3> Line 4059  Getting sampler channel information</h3>
4059  <p>INSTRUMENT_STATUS -  <p>INSTRUMENT_STATUS -
4060                                          </p>                                          </p>
4061  <blockquote class="text">  <blockquote class="text">
4062  <p>integer values 0 to 100 indicating loading progress percentage for the instrument. Negative  <p>Integer values 0 to 100 indicating loading progress
4063                                              value indicates a loading exception. Value of 100 indicates that the instrument is fully                                              percentage for the instrument. Negative
4064                                                value indicates a loading exception (also returns "-1" in case no
4065                                                instrument was yet to be loaded on the sampler channel).
4066                                                Value of 100 indicates that the instrument is fully
4067                                              loaded.                                              loaded.
4068  </p>  </p>
4069  </blockquote>  </blockquote>
# Line 3931  Getting sampler channel information</h3> Line 4074  Getting sampler channel information</h3>
4074  <blockquote class="text">  <blockquote class="text">
4075  <p>numerical ID of the MIDI input device which is  <p>numerical ID of the MIDI input device which is
4076                                              currently connected to this sampler channel to deliver                                              currently connected to this sampler channel to deliver
4077                                              MIDI input commands, "NONE" if there's no device                                              MIDI input commands, "-1" if there's no device
4078                                              connected to this sampler channel                                              connected to this sampler channel
4079  </p>  </p>
4080  </blockquote>  </blockquote>
# Line 3940  Getting sampler channel information</h3> Line 4083  Getting sampler channel information</h3>
4083  <p>MIDI_INPUT_PORT -  <p>MIDI_INPUT_PORT -
4084                                          </p>                                          </p>
4085  <blockquote class="text">  <blockquote class="text">
4086  <p>port number of the MIDI input device  <p>port number of the MIDI input device (in case a
4087                                                MIDI device was already assigned to the sampler
4088                                                channel)
4089  </p>  </p>
4090  </blockquote>  </blockquote>
4091                                                                            
# Line 3958  Getting sampler channel information</h3> Line 4103  Getting sampler channel information</h3>
4103                                          </p>                                          </p>
4104  <blockquote class="text">  <blockquote class="text">
4105  <p>optionally dotted number for the channel volume factor  <p>optionally dotted number for the channel volume factor
4106                                              (where a value < 1.0 means attenuation and a value >                                              (where a value &lt; 1.0 means attenuation and a value >
4107                                              1.0 means amplification)                                              1.0 means amplification)
4108  </p>  </p>
4109  </blockquote>  </blockquote>
# Line 4987  Adding an effect send to a sampler chann Line 5132  Adding an effect send to a sampler chann
5132                      sampler channel on which the effect send should be created on, &lt;midi-ctrl&gt;                      sampler channel on which the effect send should be created on, &lt;midi-ctrl&gt;
5133                      is a number between 0..127 defining the MIDI controller which can alter the                      is a number between 0..127 defining the MIDI controller which can alter the
5134                      effect send level and &lt;name&gt; is an optional argument defining a name                      effect send level and &lt;name&gt; is an optional argument defining a name
5135                      for the effect send entity. The name does not have to be unique.                      for the effect send entity. The name does not have to be unique, but MUST be
5136                        encapsulated into apostrophes and supports escape sequences as described in chapter
5137                        "<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>".
5138  </p>  </p>
5139  <p>By default, that is as initial routing, the effect send's audio channels  <p>By default, that is as initial routing, the effect send's audio channels
5140                      are automatically routed to the last audio channels of the sampler channel's                      are automatically routed to the last audio channels of the sampler channel's
# Line 5256  Getting effect send information</h3> Line 5403  Getting effect send information</h3>
5403                                          </p>                                          </p>
5404  <blockquote class="text">  <blockquote class="text">
5405  <p>name of the effect send entity  <p>name of the effect send entity
5406                                                (note that this character string may contain
5407                                                 <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>)
5408    </p>
5409    </blockquote>
5410                                        
5411    
5412    <p>MIDI_CONTROLLER -
5413                                            </p>
5414    <blockquote class="text">
5415    <p>a value between 0 and 127 reflecting the MIDI controller
5416                                                which is able to modify the effect send's send level
5417    </p>
5418    </blockquote>
5419                                        
5420    
5421    <p>LEVEL -
5422                                            </p>
5423    <blockquote class="text">
5424    <p>optionally dotted number reflecting the effect send's
5425                                                current send level (where a value &lt; 1.0 means attenuation
5426                                                and a value > 1.0 means amplification)
5427  </p>  </p>
5428  </blockquote>  </blockquote>
5429                                                                            
# Line 5293  Getting effect send information</h3> Line 5461  Getting effect send information</h3>
5461  </p>  </p>
5462  <p>S: "NAME: Reverb Send"  <p>S: "NAME: Reverb Send"
5463  </p>  </p>
5464    <p>&nbsp;&nbsp;&nbsp;"MIDI_CONTROLLER: 91"
5465    </p>
5466    <p>&nbsp;&nbsp;&nbsp;"LEVEL: 0.3"
5467    </p>
5468  <p>&nbsp;&nbsp;&nbsp;"AUDIO_OUTPUT_ROUTING: 2,3"  <p>&nbsp;&nbsp;&nbsp;"AUDIO_OUTPUT_ROUTING: 2,3"
5469  </p>  </p>
5470  <p>&nbsp;&nbsp;&nbsp;"."  <p>&nbsp;&nbsp;&nbsp;"."
# Line 5300  Getting effect send information</h3> Line 5472  Getting effect send information</h3>
5472  </blockquote><p>  </blockquote><p>
5473                                            
5474  </p>  </p>
5475  <a name="SET FX_SEND AUDIO_OUTPUT_CHANNEL"></a><br /><hr />  <a name="SET FX_SEND NAME"></a><br /><hr />
5476  <table 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>
5477  <a name="rfc.section.6.4.30"></a><h3>6.4.30.&nbsp;  <a name="rfc.section.6.4.30"></a><h3>6.4.30.&nbsp;
5478    Changing effect send's name</h3>
5479    
5480    <p>The front-end can alter the current name of an effect
5481                        send entity by sending the following command:
5482    </p>
5483    <p>
5484                            </p>
5485    <blockquote class="text">
5486    <p>SET FX_SEND NAME &lt;sampler-chan&gt; &lt;fx-send-id&gt; &lt;name&gt;
5487    </p>
5488    </blockquote><p>
5489                        
5490    </p>
5491    <p>Where &lt;sampler-chan&gt; is the sampler channel number
5492                        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>
5493                        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,
5494                        &lt;fx-send-id&gt; reflects the numerical ID of the effect send entity
5495                        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>
5496                        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
5497                        &lt;name&gt; is the new name of the effect send entity, which
5498                        does not have to be unique (name MUST be encapsulated into apostrophes
5499                        and supports escape sequences as described in chapter
5500                        "<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>").
5501                        
5502    </p>
5503    <p>Possible Answers:
5504    </p>
5505    <p>
5506                            </p>
5507    <blockquote class="text">
5508    <p>"OK" -
5509                                    </p>
5510    <blockquote class="text">
5511    <p>on success
5512    </p>
5513    </blockquote>
5514                                
5515    
5516    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
5517                                    </p>
5518    <blockquote class="text">
5519    <p>in case it failed, providing an appropriate error code and error message
5520    </p>
5521    </blockquote>
5522                                
5523    
5524    </blockquote><p>
5525                        
5526    </p>
5527    <p>Example:
5528    </p>
5529    <p>
5530                            </p>
5531    <blockquote class="text">
5532    <p>C: "SET FX_SEND NAME 0 0 'Fx Send 1'"
5533    </p>
5534    <p>S: "OK"
5535    </p>
5536    </blockquote><p>
5537                        
5538    </p>
5539    <a name="SET FX_SEND AUDIO_OUTPUT_CHANNEL"></a><br /><hr />
5540    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
5541    <a name="rfc.section.6.4.31"></a><h3>6.4.31.&nbsp;
5542  Altering effect send's audio routing</h3>  Altering effect send's audio routing</h3>
5543    
5544  <p>The front-end can alter the destination of an effect send's audio channel on a specific  <p>The front-end can alter the destination of an effect send's audio channel on a specific
# Line 5383  Altering effect send's audio routing</h3 Line 5619  Altering effect send's audio routing</h3
5619  </blockquote><p>  </blockquote><p>
5620                                            
5621  </p>  </p>
5622    <a name="SET FX_SEND MIDI_CONTROLLER"></a><br /><hr />
5623    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
5624    <a name="rfc.section.6.4.32"></a><h3>6.4.32.&nbsp;
5625    Altering effect send's MIDI controller</h3>
5626    
5627    <p>The front-end can alter the MIDI controller of an effect
5628                        send entity by sending the following command:
5629    </p>
5630    <p>
5631                            </p>
5632    <blockquote class="text">
5633    <p>SET FX_SEND MIDI_CONTROLLER &lt;sampler-chan&gt; &lt;fx-send-id&gt; &lt;midi-ctrl&gt;
5634    </p>
5635    </blockquote><p>
5636                        
5637    </p>
5638    <p>Where &lt;sampler-chan&gt; is the sampler channel number
5639                        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>
5640                        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,
5641                        &lt;fx-send-id&gt; reflects the numerical ID of the effect send entity
5642                        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>
5643                        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
5644                        &lt;midi-ctrl&gt; reflects the MIDI controller which shall be
5645                        able to modify the effect send's send level.
5646    </p>
5647    <p>Possible Answers:
5648    </p>
5649    <p>
5650                            </p>
5651    <blockquote class="text">
5652    <p>"OK" -
5653                                    </p>
5654    <blockquote class="text">
5655    <p>on success
5656    </p>
5657    </blockquote>
5658                                
5659    
5660    <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
5661                                    </p>
5662    <blockquote class="text">
5663    <p>if MIDI controller was set, but there are noteworthy
5664                                        issue(s) related, providing an appropriate warning code and
5665                                        warning message
5666    </p>
5667    </blockquote>
5668                                
5669    
5670    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
5671                                    </p>
5672    <blockquote class="text">
5673    <p>in case it failed, providing an appropriate error code and error message
5674    </p>
5675    </blockquote>
5676                                
5677    
5678    </blockquote><p>
5679                        
5680    </p>
5681    <p>Example:
5682    </p>
5683    <p>
5684                            </p>
5685    <blockquote class="text">
5686    <p>C: "SET FX_SEND MIDI_CONTROLLER 0 0 91"
5687    </p>
5688    <p>S: "OK"
5689    </p>
5690    </blockquote><p>
5691                        
5692    </p>
5693    <a name="SET FX_SEND LEVEL"></a><br /><hr />
5694    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
5695    <a name="rfc.section.6.4.33"></a><h3>6.4.33.&nbsp;
5696    Altering effect send's send level</h3>
5697    
5698    <p>The front-end can alter the current send level of an effect
5699                        send entity by sending the following command:
5700    </p>
5701    <p>
5702                            </p>
5703    <blockquote class="text">
5704    <p>SET FX_SEND LEVEL &lt;sampler-chan&gt; &lt;fx-send-id&gt; &lt;volume&gt;
5705    </p>
5706    </blockquote><p>
5707                        
5708    </p>
5709    <p>Where &lt;sampler-chan&gt; is the sampler channel number
5710                        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>
5711                        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,
5712                        &lt;fx-send-id&gt; reflects the numerical ID of the effect send entity
5713                        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>
5714                        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
5715                        &lt;volume&gt; is an optionally dotted positive number (a value
5716                        smaller than 1.0 means attenuation, whereas a value greater than
5717                        1.0 means amplification) reflecting the new send level.
5718    </p>
5719    <p>Possible Answers:
5720    </p>
5721    <p>
5722                            </p>
5723    <blockquote class="text">
5724    <p>"OK" -
5725                                    </p>
5726    <blockquote class="text">
5727    <p>on success
5728    </p>
5729    </blockquote>
5730                                
5731    
5732    <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
5733                                    </p>
5734    <blockquote class="text">
5735    <p>if new send level was set, but there are noteworthy
5736                                        issue(s) related, providing an appropriate warning code and
5737                                        warning message
5738    </p>
5739    </blockquote>
5740                                
5741    
5742    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
5743                                    </p>
5744    <blockquote class="text">
5745    <p>in case it failed, providing an appropriate error code and error message
5746    </p>
5747    </blockquote>
5748                                
5749    
5750    </blockquote><p>
5751                        
5752    </p>
5753    <p>Example:
5754    </p>
5755    <p>
5756                            </p>
5757    <blockquote class="text">
5758    <p>C: "SET FX_SEND LEVEL 0 0 0.15"
5759    </p>
5760    <p>S: "OK"
5761    </p>
5762    </blockquote><p>
5763                        
5764    </p>
5765    <a name="SEND CHANNEL MIDI_DATA"></a><br /><hr />
5766    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
5767    <a name="rfc.section.6.4.34"></a><h3>6.4.34.&nbsp;
5768    Sending MIDI messages to sampler channel</h3>
5769    
5770    <p>The front-end can send MIDI events to a specific sampler channel
5771                        by sending the following command:
5772    </p>
5773    <p>
5774                            </p>
5775    <blockquote class="text">
5776    <p>SEND CHANNEL MIDI_DATA &lt;midi-msg&gt; &lt;sampler-chan&gt; &lt;arg1&gt; &lt;arg2&gt;
5777    </p>
5778    </blockquote><p>
5779                        
5780    </p>
5781    <p>Where &lt;sampler-chan&gt; is the sampler channel number
5782                        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>
5783                        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,
5784                        &lt;arg1&gt; and &lt;arg2&gt; arguments depend on the &lt;midi-msg&gt; argument, which
5785                        specifies the MIDI message type. Currently, the following MIDI messages are supported:
5786    </p>
5787    <p>
5788                            </p>
5789    <blockquote class="text">
5790    <p>"NOTE_ON" -
5791                                    </p>
5792    <blockquote class="text">
5793    <p>For turning on MIDI notes, where &lt;arg1&gt;
5794                                        specifies the key number and &lt;arg2&gt; the velocity
5795                                        as described in the MIDI specification.
5796    </p>
5797    </blockquote>
5798                                
5799    
5800    <p>"NOTE_OFF" -
5801                                    </p>
5802    <blockquote class="text">
5803    <p>For turning a currently playing MIDI note off, where &lt;arg1&gt;
5804                                        specifies the key number and &lt;arg2&gt; the velocity
5805                                        as described in the MIDI specification.
5806    </p>
5807    </blockquote>
5808                                
5809    
5810    <p>"CC" -
5811                                    </p>
5812    <blockquote class="text">
5813    <p>For changing a MIDI controller, where &lt;arg1&gt;
5814                                        specifies the controller number and &lt;arg2&gt; the
5815                                        new value of the controller as described in the Control
5816                                        Change section of the MIDI specification.
5817    </p>
5818    </blockquote>
5819                                
5820    
5821    </blockquote><p>
5822                        
5823    </p>
5824    <p>CAUTION: This command is provided for implementations of virtual MIDI keyboards
5825                        and no realtime guarantee whatsoever will be made!
5826    </p>
5827    <p>Possible Answers:
5828    </p>
5829    <p>
5830                            </p>
5831    <blockquote class="text">
5832    <p>"OK" -
5833                                    </p>
5834    <blockquote class="text">
5835    <p>on success
5836    </p>
5837    </blockquote>
5838                                
5839    
5840    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
5841                                    </p>
5842    <blockquote class="text">
5843    <p>in case it failed, providing an appropriate error code and error message
5844    </p>
5845    </blockquote>
5846                                
5847    
5848    </blockquote><p>
5849                        
5850    </p>
5851    <p>Example:
5852    </p>
5853    <p>
5854                            </p>
5855    <blockquote class="text">
5856    <p>C: "SEND CHANNEL MIDI_DATA NOTE_ON 0 56 112"
5857    </p>
5858    <p>S: "OK"
5859    </p>
5860    </blockquote><p>
5861                        
5862    </p>
5863  <a name="RESET CHANNEL"></a><br /><hr />  <a name="RESET CHANNEL"></a><br /><hr />
5864  <table 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>
5865  <a name="rfc.section.6.4.31"></a><h3>6.4.31.&nbsp;  <a name="rfc.section.6.4.35"></a><h3>6.4.35.&nbsp;
5866  Resetting a sampler channel</h3>  Resetting a sampler channel</h3>
5867    
5868  <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 5720  Maximum amount of active voices</h3> Line 6197  Maximum amount of active voices</h3>
6197  </blockquote><p>  </blockquote><p>
6198                                            
6199  </p>  </p>
6200  <a name="RESET"></a><br /><hr />  <a name="GET TOTAL_STREAM_COUNT"></a><br /><hr />
6201  <table 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>
6202  <a name="rfc.section.6.6.3"></a><h3>6.6.3.&nbsp;  <a name="rfc.section.6.6.3"></a><h3>6.6.3.&nbsp;
6203    Current number of active disk streams</h3>
6204    
6205    <p>The front-end can ask for the current number of active disk streams on
6206                        the sampler by sending the following command:
6207    </p>
6208    <p>
6209                            </p>
6210    <blockquote class="text">
6211    <p>GET TOTAL_STREAM_COUNT
6212    </p>
6213    </blockquote><p>
6214                        
6215    </p>
6216    <p>Possible Answers:
6217    </p>
6218    <p>
6219                            </p>
6220    <blockquote class="text">
6221    <p>LinuxSampler will answer by returning the number of all active
6222                                disk streams on the sampler.
6223    </p>
6224    </blockquote><p>
6225                        
6226    </p>
6227    <a name="RESET"></a><br /><hr />
6228    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
6229    <a name="rfc.section.6.6.4"></a><h3>6.6.4.&nbsp;
6230  Reset sampler</h3>  Reset sampler</h3>
6231    
6232  <p>The front-end can reset the whole sampler by sending the following command:  <p>The front-end can reset the whole sampler by sending the following command:
# Line 5763  Reset sampler</h3> Line 6267  Reset sampler</h3>
6267  </p>  </p>
6268  <a name="GET SERVER INFO"></a><br /><hr />  <a name="GET SERVER INFO"></a><br /><hr />
6269  <table 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>
6270  <a name="rfc.section.6.6.4"></a><h3>6.6.4.&nbsp;  <a name="rfc.section.6.6.5"></a><h3>6.6.5.&nbsp;
6271  General sampler informations</h3>  General sampler informations</h3>
6272    
6273  <p>The client can ask for general informations about the LinuxSampler  <p>The client can ask for general informations about the LinuxSampler
# Line 5796  General sampler informations</h3> Line 6300  General sampler informations</h3>
6300                                          </p>                                          </p>
6301  <blockquote class="text">  <blockquote class="text">
6302  <p>arbitrary textual description about the sampler  <p>arbitrary textual description about the sampler
6303                                                (note that the character string may contain
6304                                                <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>)
6305  </p>  </p>
6306  </blockquote>  </blockquote>
6307                                                                            
# Line 5817  General sampler informations</h3> Line 6323  General sampler informations</h3>
6323  </blockquote>  </blockquote>
6324                                                                            
6325    
6326    <p>INSTRUMENTS_DB_SUPPORT -
6327                                            </p>
6328    <blockquote class="text">
6329    <p>either yes or no, specifies whether the
6330                                                sampler is build with instruments database support.
6331    </p>
6332    </blockquote>
6333                                        
6334    
6335  </blockquote>  </blockquote>
6336                                                            
6337    
# Line 5828  General sampler informations</h3> Line 6343  General sampler informations</h3>
6343  </p>  </p>
6344  <a name="GET VOLUME"></a><br /><hr />  <a name="GET VOLUME"></a><br /><hr />
6345  <table 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>
6346  <a name="rfc.section.6.6.5"></a><h3>6.6.5.&nbsp;  <a name="rfc.section.6.6.6"></a><h3>6.6.6.&nbsp;
6347  Getting global volume attenuation</h3>  Getting global volume attenuation</h3>
6348    
6349  <p>The client can ask for the current global sampler-wide volume  <p>The client can ask for the current global sampler-wide volume
# Line 5861  Getting global volume attenuation</h3> Line 6376  Getting global volume attenuation</h3>
6376  </p>  </p>
6377  <a name="SET VOLUME"></a><br /><hr />  <a name="SET VOLUME"></a><br /><hr />
6378  <table 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>
6379  <a name="rfc.section.6.6.6"></a><h3>6.6.6.&nbsp;  <a name="rfc.section.6.6.7"></a><h3>6.6.7.&nbsp;
6380  Setting global volume attenuation</h3>  Setting global volume attenuation</h3>
6381    
6382  <p>The client can alter the current global sampler-wide volume  <p>The client can alter the current global sampler-wide volume
# Line 5914  Setting global volume attenuation</h3> Line 6429  Setting global volume attenuation</h3>
6429  </blockquote><p>  </blockquote><p>
6430                                            
6431  </p>  </p>
6432    <a name="GET VOICES"></a><br /><hr />
6433    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
6434    <a name="rfc.section.6.6.8"></a><h3>6.6.8.&nbsp;
6435    Getting global voice limit</h3>
6436    
6437    <p>The client can ask for the current global sampler-wide limit
6438                           for maximum voices by sending the following command:
6439    </p>
6440    <p>
6441                            </p>
6442    <blockquote class="text">
6443    <p>GET VOICES
6444    </p>
6445    </blockquote><p>
6446                        
6447    </p>
6448    <p>Possible Answers:
6449    </p>
6450    <p>
6451                            </p>
6452    <blockquote class="text">
6453    <p>LinuxSampler will answer by returning the number for
6454                                   the current limit of maximum voices.
6455    </p>
6456    </blockquote><p>
6457                        
6458    </p>
6459    <p>The voice limit setting defines how many voices should maximum
6460                           be processed by the sampler at the same time. If the user
6461                           triggers new notes which would exceed that voice limit, the
6462                           sampler engine will react by stealing old voices for those
6463                           newly triggered notes. Note that the amount of voices triggered
6464                           by a new note can be larger than one and is dependent to the
6465                           respective instrument and probably further criterias.
6466    </p>
6467    <a name="SET VOICES"></a><br /><hr />
6468    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
6469    <a name="rfc.section.6.6.9"></a><h3>6.6.9.&nbsp;
6470    Setting global voice limit</h3>
6471    
6472    <p>The client can alter the current global sampler-wide limit
6473                        for maximum voices by sending the following command:
6474    </p>
6475    <p>
6476                            </p>
6477    <blockquote class="text">
6478    <p>SET VOICES &lt;max-voices&gt;
6479    </p>
6480    </blockquote><p>
6481                        
6482    </p>
6483    <p>Where &lt;max-voices&gt; should be replaced by the integer
6484                       value, reflecting the new global amount limit of maximum voices.
6485                       This value has to be larger than 0.
6486    </p>
6487    <p>Possible Answers:
6488    </p>
6489    <p>
6490                            </p>
6491    <blockquote class="text">
6492    <p>"OK" -
6493                                    </p>
6494    <blockquote class="text">
6495    <p>on success
6496    </p>
6497    </blockquote>
6498                                
6499    
6500    <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
6501                                    </p>
6502    <blockquote class="text">
6503    <p>if the voice limit was set, but there are noteworthy
6504                                        issue(s) related, providing an appropriate warning code and
6505                                        warning message
6506    </p>
6507    </blockquote>
6508                                
6509    
6510    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
6511                                    </p>
6512    <blockquote class="text">
6513    <p>in case it failed, providing an appropriate error code and error message
6514    </p>
6515    </blockquote>
6516                                
6517    
6518    </blockquote><p>
6519                        
6520    </p>
6521    <p>Note: the given value will be passed to all sampler engine instances.
6522                           The total amount of maximum voices on the running system might thus
6523                           be as big as the given value multiplied by the current amount of engine
6524                           instances.
6525    </p>
6526    <p>Caution: when adjusting the voice limit, you SHOULD also
6527                            adjust the disk stream limit respectively and vice versa.
6528    </p>
6529    <a name="GET STREAMS"></a><br /><hr />
6530    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
6531    <a name="rfc.section.6.6.10"></a><h3>6.6.10.&nbsp;
6532    Getting global disk stream limit</h3>
6533    
6534    <p>The client can ask for the current global sampler-wide limit
6535                           for maximum disk streams by sending the following command:
6536    </p>
6537    <p>
6538                            </p>
6539    <blockquote class="text">
6540    <p>GET STREAMS
6541    </p>
6542    </blockquote><p>
6543                        
6544    </p>
6545    <p>Possible Answers:
6546    </p>
6547    <p>
6548                            </p>
6549    <blockquote class="text">
6550    <p>LinuxSampler will answer by returning the number for
6551                                   the current limit of maximum disk streams.
6552    </p>
6553    </blockquote><p>
6554                        
6555    </p>
6556    <p>The disk stream limit setting defines how many disk streams should
6557                           maximum be processed by a sampler engine at the same time. The
6558                           higher this value, the more memory (RAM) will be occupied, since
6559                           every disk streams allocates a certain buffer size for being able
6560                           to perform its streaming operations.
6561    </p>
6562    <a name="SET STREAMS"></a><br /><hr />
6563    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
6564    <a name="rfc.section.6.6.11"></a><h3>6.6.11.&nbsp;
6565    Setting global disk stream limit</h3>
6566    
6567    <p>The client can alter the current global sampler-wide limit
6568                        for maximum disk streams by sending the following command:
6569    </p>
6570    <p>
6571                            </p>
6572    <blockquote class="text">
6573    <p>SET STREAMS &lt;max-streams&gt;
6574    </p>
6575    </blockquote><p>
6576                        
6577    </p>
6578    <p>Where &lt;max-streams&gt; should be replaced by the integer
6579                       value, reflecting the new global amount limit of maximum disk streams.
6580                       This value has to be positive.
6581    </p>
6582    <p>Possible Answers:
6583    </p>
6584    <p>
6585                            </p>
6586    <blockquote class="text">
6587    <p>"OK" -
6588                                    </p>
6589    <blockquote class="text">
6590    <p>on success
6591    </p>
6592    </blockquote>
6593                                
6594    
6595    <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
6596                                    </p>
6597    <blockquote class="text">
6598    <p>if the disk stream limit was set, but there are noteworthy
6599                                        issue(s) related, providing an appropriate warning code and
6600                                        warning message
6601    </p>
6602    </blockquote>
6603                                
6604    
6605    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
6606                                    </p>
6607    <blockquote class="text">
6608    <p>in case it failed, providing an appropriate error code and error message
6609    </p>
6610    </blockquote>
6611                                
6612    
6613    </blockquote><p>
6614                        
6615    </p>
6616    <p>Note: the given value will be passed to all sampler engine instances.
6617                           The total amount of maximum disk streams on the running system might
6618                           thus be as big as the given value multiplied by the current amount of
6619                           engine instances.
6620    </p>
6621    <p>Caution: when adjusting the disk stream limit, you SHOULD also
6622                            adjust the voice limit respectively and vice versa.
6623    </p>
6624  <a name="MIDI Instrument Mapping"></a><br /><hr />  <a name="MIDI Instrument Mapping"></a><br /><hr />
6625  <table 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>
6626  <a name="rfc.section.6.7"></a><h3>6.7.&nbsp;  <a name="rfc.section.6.7"></a><h3>6.7.&nbsp;
# Line 5948  MIDI Instrument Mapping</h3> Line 6655  MIDI Instrument Mapping</h3>
6655                  cause the sampler to switch to the respective instrument as                  cause the sampler to switch to the respective instrument as
6656                  reflected by the current MIDI instrument map.                  reflected by the current MIDI instrument map.
6657  </p>  </p>
6658  <a name="ADD MIDI_INSTRUMENT MAP"></a><br /><hr />  <a name="ADD MIDI_INSTRUMENT_MAP"></a><br /><hr />
6659  <table 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>
6660  <a name="rfc.section.6.7.1"></a><h3>6.7.1.&nbsp;  <a name="rfc.section.6.7.1"></a><h3>6.7.1.&nbsp;
6661  Create a new MIDI instrument map</h3>  Create a new MIDI instrument map</h3>
# Line 5966  Create a new MIDI instrument map</h3> Line 6673  Create a new MIDI instrument map</h3>
6673  </p>  </p>
6674  <p>Where &lt;name&gt; is an optional argument allowing to  <p>Where &lt;name&gt; is an optional argument allowing to
6675                      assign a custom name to the new map. MIDI instrument Map                      assign a custom name to the new map. MIDI instrument Map
6676                      names do not have to be unique.                      names do not have to be unique, but MUST be encapsulated
6677                        into apostrophes and support escape sequences as described
6678                        in chapter "<a class='info' href='#character_set'>Character Set and Escape Sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>".
6679                        
6680  </p>  </p>
6681  <p>Possible Answers:  <p>Possible Answers:
6682  </p>  </p>
# Line 6224  Getting MIDI instrument map information< Line 6934  Getting MIDI instrument map information<
6934  <blockquote class="text">  <blockquote class="text">
6935  <p>custom name of the given map,  <p>custom name of the given map,
6936                                              which does not have to be unique                                              which does not have to be unique
6937                                                (note that this character string may contain
6938                                                 <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>)
6939    </p>
6940    </blockquote>
6941                                        
6942    
6943    <p>DEFAULT -
6944                                            </p>
6945    <blockquote class="text">
6946    <p>either true or false,
6947                                                defines whether this map is the default map
6948  </p>  </p>
6949  </blockquote>  </blockquote>
6950                                                                            
# Line 6245  Getting MIDI instrument map information< Line 6966  Getting MIDI instrument map information<
6966  </p>  </p>
6967  <p>S: "NAME: Standard Map"  <p>S: "NAME: Standard Map"
6968  </p>  </p>
6969    <p>&nbsp;&nbsp;&nbsp;"DEFAULT: true"
6970    </p>
6971  <p>&nbsp;&nbsp;&nbsp;"."  <p>&nbsp;&nbsp;&nbsp;"."
6972  </p>  </p>
6973  </blockquote><p>  </blockquote><p>
# Line 6268  Renaming a MIDI instrument map</h3> Line 6991  Renaming a MIDI instrument map</h3>
6991  </p>  </p>
6992  <p>Where &lt;map&gt; is the numerical ID of the map and  <p>Where &lt;map&gt; is the numerical ID of the map and
6993                      &lt;name&gt; the new custom name of the map, which does not                      &lt;name&gt; the new custom name of the map, which does not
6994                      have to be unique.                      have to be unique (name MUST be encapsulated into apostrophes
6995                        and supports escape sequences as described in chapter
6996                        "<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>").
6997                        
6998  </p>  </p>
6999  <p>Possible Answers:  <p>Possible Answers:
7000  </p>  </p>
# Line 6318  Create or replace a MIDI instrument map Line 7044  Create or replace a MIDI instrument map
7044  <p>  <p>
7045                          </p>                          </p>
7046  <blockquote class="text">  <blockquote class="text">
7047  <p>MAP MIDI_INSTRUMENT &lt;map&gt;  <p>MAP MIDI_INSTRUMENT [NON_MODAL] &lt;map&gt;
7048                              &lt;midi_bank&gt; &lt;midi_prog&gt; &lt;engine_name&gt;                              &lt;midi_bank&gt; &lt;midi_prog&gt; &lt;engine_name&gt;
7049                              &lt;filename&gt; &lt;instrument_index&gt; &lt;volume_value&gt;                              &lt;filename&gt; &lt;instrument_index&gt; &lt;volume_value&gt;
7050                              [&lt;instr_load_mode&gt;] [&lt;name&gt;]                              [&lt;instr_load_mode&gt;] [&lt;name&gt;]
# Line 6334  Create or replace a MIDI instrument map Line 7060  Create or replace a MIDI instrument map
7060                      index, &lt;engine_name&gt; a sampler engine name as returned by                      index, &lt;engine_name&gt; a sampler engine name as returned by
7061                      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>
7062                      command (not encapsulated into apostrophes), &lt;filename&gt; the name                      command (not encapsulated into apostrophes), &lt;filename&gt; the name
7063                      of the instrument's file to be deployed (encapsulated into apostrophes),                      of the instrument's file to be deployed (encapsulated into apostrophes,
7064                        supporting escape sequences as described in chapter
7065                        "<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>"),
7066                      &lt;instrument_index&gt; the index (integer value) of the instrument                      &lt;instrument_index&gt; the index (integer value) of the instrument
7067                      within the given file, &lt;volume_value&gt; reflects the master                      within the given file, &lt;volume_value&gt; reflects the master
7068                      volume of the instrument as optionally dotted number (where a                      volume of the instrument as optionally dotted number (where a
7069                      value < 1.0 means attenuation and a value > 1.0 means                      value &lt; 1.0 means attenuation and a value > 1.0 means
7070                      amplification). This parameter easily allows to adjust the                      amplification). This parameter easily allows to adjust the
7071                      volume of all intruments within a custom instrument map                      volume of all intruments within a custom instrument map
7072                      without having to adjust their instrument files. The                      without having to adjust their instrument files. The
# Line 6382  Create or replace a MIDI instrument map Line 7110  Create or replace a MIDI instrument map
7110                                  </p>                                  </p>
7111  <blockquote class="text">  <blockquote class="text">
7112  <p>The instrument will immediately be loaded  <p>The instrument will immediately be loaded
7113                                      into memory in the background when this mapping                                      into memory when this mapping
7114                                      command is sent and the instrument is kept all                                      command is sent and the instrument is kept all
7115                                      the time. Instruments with this mode are                                      the time. Instruments with this mode are
7116                                      only freed when the sampler is reset or all                                      only freed when the sampler is reset or all
# Line 6431  Create or replace a MIDI instrument map Line 7159  Create or replace a MIDI instrument map
7159                      load modes of entries, the frontend should retrieve the actual                      load modes of entries, the frontend should retrieve the actual
7160                      mode by i.e. sending                      mode by i.e. sending
7161                      <a class='info' href='#GET MIDI_INSTRUMENT INFO'>"GET MIDI_INSTRUMENT INFO"<span> (</span><span class='info'>Get current settings of MIDI instrument map entry</span><span>)</span></a>                      <a class='info' href='#GET MIDI_INSTRUMENT INFO'>"GET MIDI_INSTRUMENT INFO"<span> (</span><span class='info'>Get current settings of MIDI instrument map entry</span><span>)</span></a>
7162                      command(s). Finally the OPTIONAL &lt;name&gt; argument allows to                      command(s). Finally the OPTIONAL &lt;name&gt; argument allows to set a custom name
7163                      set a custom name (encapsulated into apostrophes) for the mapping                      (encapsulated into apostrophes, supporting escape sequences as described in chapter
7164                      entry, useful for frontends for displaying an appropriate name for                      "<a class='info' href='#character_set'>Character Set and Escape Sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>") for the
7165                        mapping entry, useful for frontends for displaying an appropriate name for
7166                      mapped instruments (using                      mapped instruments (using
7167                      <a class='info' href='#GET MIDI_INSTRUMENT INFO'>"GET MIDI_INSTRUMENT INFO"<span> (</span><span class='info'>Get current settings of MIDI instrument map entry</span><span>)</span></a>).                      <a class='info' href='#GET MIDI_INSTRUMENT INFO'>"GET MIDI_INSTRUMENT INFO"<span> (</span><span class='info'>Get current settings of MIDI instrument map entry</span><span>)</span></a>).
7168                                            
7169  </p>  </p>
7170  <p>  <p>
7171                      The "MAP MIDI_INSTRUMENT" command                      By default, "MAP MIDI_INSTRUMENT" commands block until the mapping is
7172                      will immediately return, thus it will not block when an                      completely established in the sampler. The OPTIONAL "NON_MODAL" argument
7173                      instrument is to be loaded due to a "PERSISTENT" type                      however causes the respective "MAP MIDI_INSTRUMENT" command to return
7174                      entry as instruments are loaded in the background. As a                      immediately, that is to let the sampler establish the mapping in the
7175                      consequence this command may not necessarily return an error                      background. So this argument might be especially useful for mappings with
7176                      i.e. when the given instrument file does not exist or may                      a "PERSISTENT" type, because these have to load the respective instruments
7177                      turn out to be corrupt.                      immediately and might thus block for a very long time. It is recommended
7178                        however to use the OPTIONAL "NON_MODAL" argument only if really necessary,
7179                        because it has the following drawbacks: as "NON_MODAL" instructions return
7180                        immediately, they may not necessarily return an error i.e. when the given
7181                        instrument file turns out to be corrupt, beside that subsequent commands
7182                        in a LSCP instruction sequence might fail, because mandatory mappings are
7183                        not yet completed.
7184                                            
7185  </p>  </p>
7186  <p>Possible Answers:  <p>Possible Answers:
# Line 6512  Create or replace a MIDI instrument map Line 7247  Create or replace a MIDI instrument map
7247  <p>  <p>
7248                          </p>                          </p>
7249  <blockquote class="text">  <blockquote class="text">
7250  <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'"
7251  </p>  </p>
7252  <p>S: "OK"  <p>S: "OK"
7253  </p>  </p>
# Line 6749  Get current settings of MIDI instrument Line 7484  Get current settings of MIDI instrument
7484                                      changed with the                                      changed with the
7485                                      <a class='info' href='#MAP MIDI_INSTRUMENT'>"MAP MIDI_INSTRUMENT"<span> (</span><span class='info'>Create or replace a MIDI instrument map entry</span><span>)</span></a>                                      <a class='info' href='#MAP MIDI_INSTRUMENT'>"MAP MIDI_INSTRUMENT"<span> (</span><span class='info'>Create or replace a MIDI instrument map entry</span><span>)</span></a>
7486                                      command and does not have to be unique.                                      command and does not have to be unique.
7487                                        (note that this character string may contain
7488                                        <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>)
7489  </p>  </p>
7490  </blockquote>  </blockquote>
7491                                                            
# Line 6765  Get current settings of MIDI instrument Line 7502  Get current settings of MIDI instrument
7502  <p>"INSTRUMENT_FILE" -  <p>"INSTRUMENT_FILE" -
7503                                  </p>                                  </p>
7504  <blockquote class="text">  <blockquote class="text">
7505  <p>File name of the instrument.  <p>File name of the instrument
7506                                        (note that this path may contain
7507                                        <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>).
7508  </p>  </p>
7509  </blockquote>  </blockquote>
7510                                                            
# Line 6783  Get current settings of MIDI instrument Line 7522  Get current settings of MIDI instrument
7522  <blockquote class="text">  <blockquote class="text">
7523  <p>Name of the loaded instrument as reflected by its file.  <p>Name of the loaded instrument as reflected by its file.
7524                                      In contrast to the "NAME" field, the "INSTRUMENT_NAME" field                                      In contrast to the "NAME" field, the "INSTRUMENT_NAME" field
7525                                      cannot be changed.                                      cannot be changed (note that this character string may contain
7526                                        <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>).
7527  </p>  </p>
7528  </blockquote>  </blockquote>
7529                                                            
# Line 6801  Get current settings of MIDI instrument Line 7541  Get current settings of MIDI instrument
7541                                  </p>                                  </p>
7542  <blockquote class="text">  <blockquote class="text">
7543  <p>master volume of the instrument as optionally  <p>master volume of the instrument as optionally
7544                                      dotted number (where a value < 1.0 means attenuation                                      dotted number (where a value &lt; 1.0 means attenuation
7545                                      and a value > 1.0 means amplification)                                      and a value > 1.0 means amplification)
7546  </p>  </p>
7547  </blockquote>  </blockquote>
# Line 6910  Clear MIDI instrument map</h3> Line 7650  Clear MIDI instrument map</h3>
7650  </blockquote><p>  </blockquote><p>
7651                                            
7652  </p>  </p>
7653    <a name="Managing Instruments Database"></a><br /><hr />
7654    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
7655    <a name="rfc.section.6.8"></a><h3>6.8.&nbsp;
7656    Managing Instruments Database</h3>
7657    
7658    <p>The following commands describe how to use and manage
7659                    the instruments database.
7660    </p>
7661    <p>Notice:
7662    </p>
7663    <p>
7664                            </p>
7665    <blockquote class="text">
7666    <p>All command arguments representing a path or
7667                                instrument/directory name support escape sequences as described in chapter
7668                                "<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>".
7669                                
7670    </p>
7671    <p>All occurrences of a forward slash in instrument and directory
7672                                   names are escaped with its hex (\x2f) or octal (\057) escape sequence.
7673                                
7674    </p>
7675    </blockquote><p>
7676                        
7677    </p>
7678    <a name="ADD DB_INSTRUMENT_DIRECTORY"></a><br /><hr />
7679    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
7680    <a name="rfc.section.6.8.1"></a><h3>6.8.1.&nbsp;
7681    Creating a new instrument directory</h3>
7682    
7683    <p>The front-end can add a new instrument directory to the
7684                        instruments database by sending the following command:
7685    </p>
7686    <p>
7687                            </p>
7688    <blockquote class="text">
7689    <p>ADD DB_INSTRUMENT_DIRECTORY &lt;dir&gt;
7690    </p>
7691    </blockquote><p>
7692                        
7693    </p>
7694    <p>Where &lt;dir&gt; is the absolute path name of the directory
7695                        to be created (encapsulated into apostrophes).
7696    </p>
7697    <p>Possible Answers:
7698    </p>
7699    <p>
7700                            </p>
7701    <blockquote class="text">
7702    <p>"OK" -
7703                                    </p>
7704    <blockquote class="text">
7705    <p>on success
7706    </p>
7707    </blockquote>
7708                                
7709    
7710    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
7711                                    </p>
7712    <blockquote class="text">
7713    <p>when the directory could not be created, which
7714                                        can happen if the directory already exists or the
7715                                        name contains not allowed symbols
7716    </p>
7717    </blockquote>
7718                                
7719    
7720    </blockquote><p>
7721                        
7722    </p>
7723    <p>Examples:
7724    </p>
7725    <p>
7726                            </p>
7727    <blockquote class="text">
7728    <p>C: "ADD DB_INSTRUMENT_DIRECTORY '/Piano Collection'"
7729    </p>
7730    <p>S: "OK"
7731    </p>
7732    </blockquote><p>
7733                        
7734    </p>
7735    <a name="REMOVE DB_INSTRUMENT_DIRECTORY"></a><br /><hr />
7736    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
7737    <a name="rfc.section.6.8.2"></a><h3>6.8.2.&nbsp;
7738    Deleting an instrument directory</h3>
7739    
7740    <p>The front-end can delete a particular instrument directory
7741                        from the instruments database by sending the following command:
7742    </p>
7743    <p>
7744                            </p>
7745    <blockquote class="text">
7746    <p>REMOVE DB_INSTRUMENT_DIRECTORY [FORCE] &lt;dir&gt;
7747    </p>
7748    </blockquote><p>
7749                        
7750    </p>
7751    <p>Where &lt;dir&gt; is the absolute path name of the directory
7752                        to delete. The optional FORCE argument can be used to
7753                        force the deletion of a non-empty directory and all its content.
7754    </p>
7755    <p>Possible Answers:
7756    </p>
7757    <p>
7758                            </p>
7759    <blockquote class="text">
7760    <p>"OK" -
7761                                    </p>
7762    <blockquote class="text">
7763    <p>if the directory is deleted successfully
7764    </p>
7765    </blockquote>
7766                                
7767    
7768    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
7769                                    </p>
7770    <blockquote class="text">
7771    <p>if the given directory does not exist, or
7772                                        if trying to delete a non-empty directory,
7773                                        without using the FORCE argument.
7774    </p>
7775    </blockquote>
7776                                
7777    
7778    </blockquote><p>
7779                        
7780    </p>
7781    <p>Examples:
7782    </p>
7783    <p>
7784                            </p>
7785    <blockquote class="text">
7786    <p>C: "REMOVE DB_INSTRUMENT_DIRECTORY FORCE '/Piano Collection'"
7787    </p>
7788    <p>S: "OK"
7789    </p>
7790    </blockquote><p>
7791                        
7792    </p>
7793    <a name="GET DB_INSTRUMENT_DIRECTORIES"></a><br /><hr />
7794    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
7795    <a name="rfc.section.6.8.3"></a><h3>6.8.3.&nbsp;
7796    Getting amount of instrument directories</h3>
7797    
7798    <p>The front-end can retrieve the current amount of
7799                        directories in a specific directory by sending the following command:
7800    </p>
7801    <p>
7802                            </p>
7803    <blockquote class="text">
7804    <p>GET DB_INSTRUMENT_DIRECTORIES [RECURSIVE] &lt;dir&gt;
7805    </p>
7806    </blockquote><p>
7807                        
7808    </p>
7809    <p>Where &lt;dir&gt; should be replaced by the absolute path
7810                        name of the directory. If RECURSIVE is specified, the number of
7811                        all directories, including those located in subdirectories of the
7812                        specified directory, will be returned.
7813    </p>
7814    <p>Possible Answers:
7815    </p>
7816    <p>
7817                            </p>
7818    <blockquote class="text">
7819    <p>The current number of instrument directories
7820                                in the specified directory.
7821    </p>
7822    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
7823                                    </p>
7824    <blockquote class="text">
7825    <p>if the given directory does not exist.
7826    </p>
7827    </blockquote>
7828                                
7829    
7830    </blockquote><p>
7831                        
7832    </p>
7833    <p>Example:
7834    </p>
7835    <p>
7836                            </p>
7837    <blockquote class="text">
7838    <p>C: "GET DB_INSTRUMENT_DIRECTORIES '/'"
7839    </p>
7840    <p>S: "2"
7841    </p>
7842    </blockquote><p>
7843                        
7844    </p>
7845    <a name="LIST DB_INSTRUMENT_DIRECTORIES"></a><br /><hr />
7846    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
7847    <a name="rfc.section.6.8.4"></a><h3>6.8.4.&nbsp;
7848    Listing all directories in specific directory</h3>
7849    
7850    <p>The front-end can retrieve the current list of directories
7851                        in specific directory by sending the following command:
7852    </p>
7853    <p>
7854                            </p>
7855    <blockquote class="text">
7856    <p>LIST DB_INSTRUMENT_DIRECTORIES [RECURSIVE] &lt;dir&gt;
7857    </p>
7858    </blockquote><p>
7859                        
7860    </p>
7861    <p>Where &lt;dir&gt; should be replaced by the absolute path
7862                        name of the directory. If RECURSIVE is specified, the absolute path names
7863                        of all directories, including those located in subdirectories of the
7864                        specified directory, will be returned.
7865    </p>
7866    <p>Possible Answers:
7867    </p>
7868    <p>
7869                            </p>
7870    <blockquote class="text">
7871    <p>A comma separated list of all instrument directories
7872                                (encapsulated into apostrophes) in the specified directory.
7873    </p>
7874    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
7875                                    </p>
7876    <blockquote class="text">
7877    <p>if the given directory does not exist.
7878    </p>
7879    </blockquote>
7880                                
7881    
7882    </blockquote><p>
7883                        
7884    </p>
7885    <p>Example:
7886    </p>
7887    <p>
7888                            </p>
7889    <blockquote class="text">
7890    <p>C: "LIST DB_INSTRUMENT_DIRECTORIES '/'"
7891    </p>
7892    <p>S: "'Piano Collection','Percussion Collection'"
7893    </p>
7894    </blockquote><p>
7895                        
7896    </p>
7897    <p>
7898                            </p>
7899    <blockquote class="text">
7900    <p>C: "LIST DB_INSTRUMENT_DIRECTORIES RECURSIVE '/'"
7901    </p>
7902    <p>S: "'/Piano Collection','/Piano Collection/Acoustic','/Piano Collection/Acoustic/New','/Percussion Collection'"
7903    </p>
7904    </blockquote><p>
7905                        
7906    </p>
7907    <a name="GET DB_INSTRUMENT_DIRECTORY INFO"></a><br /><hr />
7908    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
7909    <a name="rfc.section.6.8.5"></a><h3>6.8.5.&nbsp;
7910    Getting instrument directory information</h3>
7911    
7912    <p>The front-end can ask for the current settings of an
7913                        instrument directory by sending the following command:
7914    </p>
7915    <p>
7916                            </p>
7917    <blockquote class="text">
7918    <p>GET DB_INSTRUMENT_DIRECTORY INFO &lt;dir&gt;
7919    </p>
7920    </blockquote><p>
7921                        
7922    </p>
7923    <p>Where &lt;dir&gt; should be replaced by the absolute path
7924                        name of the directory the front-end is interested in.
7925    </p>
7926    <p>Possible Answers:
7927    </p>
7928    <p>
7929                            </p>
7930    <blockquote class="text">
7931    <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
7932                                Each answer line begins with the settings category name
7933                                followed by a colon and then a space character &lt;SP&gt; and finally
7934                                the info character string to that setting category. At the
7935                                moment the following categories are defined:
7936    </p>
7937    <p>
7938                                    </p>
7939    <blockquote class="text">
7940    <p>DESCRIPTION -
7941                                            </p>
7942    <blockquote class="text">
7943    <p>A brief description of the directory content.
7944                                                Note that the character string may contain
7945                                                <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>.
7946    </p>
7947    </blockquote>
7948                                        
7949    
7950    <p>CREATED -
7951                                            </p>
7952    <blockquote class="text">
7953    <p>The creation date and time of the directory,
7954                                                represented in "YYYY-MM-DD HH:MM:SS" format
7955    </p>
7956    </blockquote>
7957                                        
7958    
7959    <p>MODIFIED -
7960                                            </p>
7961    <blockquote class="text">
7962    <p>The date and time of the last modification of the
7963                                                directory, represented in "YYYY-MM-DD HH:MM:SS" format
7964    </p>
7965    </blockquote>
7966                                        
7967    
7968    </blockquote>
7969                                
7970    
7971    </blockquote><p>
7972                        
7973    </p>
7974    <p>The mentioned fields above don't have to be in particular order.
7975    </p>
7976    <p>Example:
7977    </p>
7978    <p>
7979                            </p>
7980    <blockquote class="text">
7981    <p>C: "GET DB_INSTRUMENT_DIRECTORY INFO '/Piano Collection'"
7982    </p>
7983    <p>S: "DESCRIPTION: Piano collection of instruments in GigaSampler format."
7984    </p>
7985    <p>&nbsp;&nbsp;&nbsp;"CREATED: 2007-02-05 10:23:12"
7986    </p>
7987    <p>&nbsp;&nbsp;&nbsp;"MODIFIED: 2007-04-07 12:50:21"
7988    </p>
7989    <p>&nbsp;&nbsp;&nbsp;"."
7990    </p>
7991    </blockquote><p>
7992                        
7993    </p>
7994    <a name="SET DB_INSTRUMENT_DIRECTORY NAME"></a><br /><hr />
7995    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
7996    <a name="rfc.section.6.8.6"></a><h3>6.8.6.&nbsp;
7997    Renaming an instrument directory</h3>
7998    
7999    <p>The front-end can alter the name of a specific
8000                        instrument directory by sending the following command:
8001    </p>
8002    <p>
8003                            </p>
8004    <blockquote class="text">
8005    <p>SET DB_INSTRUMENT_DIRECTORY NAME &lt;dir&gt; &lt;name&gt;
8006    </p>
8007    </blockquote><p>
8008                        
8009    </p>
8010    <p>Where &lt;dir&gt; is the absolute path name of the directory and
8011                        &lt;name&gt; is the new name for that directory.
8012    </p>
8013    <p>Possible Answers:
8014    </p>
8015    <p>
8016                            </p>
8017    <blockquote class="text">
8018    <p>"OK" -
8019                                    </p>
8020    <blockquote class="text">
8021    <p>on success
8022    </p>
8023    </blockquote>
8024                                
8025    
8026    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
8027                                    </p>
8028    <blockquote class="text">
8029    <p>in case the given directory does not exists,
8030                                        or if a directory with name equal to the new
8031                                        name already exists.
8032    </p>
8033    </blockquote>
8034                                
8035    
8036    </blockquote><p>
8037                        
8038    </p>
8039    <p>Example:
8040    </p>
8041    <p>
8042                            </p>
8043    <blockquote class="text">
8044    <p>C: "SET DB_INSTRUMENT_DIRECTORY NAME '/Piano Collection/Acustic' 'Acoustic'"
8045    </p>
8046    <p>S: "OK"
8047    </p>
8048    </blockquote><p>
8049                        
8050    </p>
8051    <a name="MOVE DB_INSTRUMENT_DIRECTORY"></a><br /><hr />
8052    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
8053    <a name="rfc.section.6.8.7"></a><h3>6.8.7.&nbsp;
8054    Moving an instrument directory</h3>
8055    
8056    <p>The front-end can move a specific
8057                        instrument directory by sending the following command:
8058    </p>
8059    <p>
8060                            </p>
8061    <blockquote class="text">
8062    <p>MOVE DB_INSTRUMENT_DIRECTORY &lt;dir&gt; &lt;dst&gt;
8063    </p>
8064    </blockquote><p>
8065                        
8066    </p>
8067    <p>Where &lt;dir&gt; is the absolute path name of the directory
8068                        to move and &lt;dst&gt; is the location where the directory will
8069                        be moved to.
8070    </p>
8071    <p>Possible Answers:
8072    </p>
8073    <p>
8074                            </p>
8075    <blockquote class="text">
8076    <p>"OK" -
8077                                    </p>
8078    <blockquote class="text">
8079    <p>on success
8080    </p>
8081    </blockquote>
8082                                
8083    
8084    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
8085                                    </p>
8086    <blockquote class="text">
8087    <p>in case a given directory does not exists,
8088                                        or if a directory with name equal to the name
8089                                        of the specified directory already exists in
8090                                        the destination directory. Error is also thrown
8091                                        when trying to move a directory to a subdirectory
8092                                        of itself.
8093    </p>
8094    </blockquote>
8095                                
8096    
8097    </blockquote><p>
8098                        
8099    </p>
8100    <p>Example:
8101    </p>
8102    <p>
8103                            </p>
8104    <blockquote class="text">
8105    <p>C: "MOVE DB_INSTRUMENT_DIRECTORY '/Acoustic' '/Piano Collection/Acoustic'"
8106    </p>
8107    <p>S: "OK"
8108    </p>
8109    </blockquote><p>
8110                        
8111    </p>
8112    <a name="COPY DB_INSTRUMENT_DIRECTORY"></a><br /><hr />
8113    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
8114    <a name="rfc.section.6.8.8"></a><h3>6.8.8.&nbsp;
8115    Copying instrument directories</h3>
8116    
8117    <p>The front-end can copy a specific
8118                        instrument directory by sending the following command:
8119    </p>
8120    <p>
8121                            </p>
8122    <blockquote class="text">
8123    <p>COPY DB_INSTRUMENT_DIRECTORY &lt;dir&gt; &lt;dst&gt;
8124    </p>
8125    </blockquote><p>
8126                        
8127    </p>
8128    <p>Where &lt;dir&gt; is the absolute path name of the directory
8129                        to copy and &lt;dst&gt; is the location where the directory will
8130                        be copied to.
8131    </p>
8132    <p>Possible Answers:
8133    </p>
8134    <p>
8135                            </p>
8136    <blockquote class="text">
8137    <p>"OK" -
8138                                    </p>
8139    <blockquote class="text">
8140    <p>on success
8141    </p>
8142    </blockquote>
8143                                
8144    
8145    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
8146                                    </p>
8147    <blockquote class="text">
8148    <p>in case a given directory does not exists,
8149                                        or if a directory with name equal to the name
8150                                        of the specified directory already exists in
8151                                        the destination directory. Error is also thrown
8152                                        when trying to copy a directory to a subdirectory
8153                                        of itself.
8154    </p>
8155    </blockquote>
8156                                
8157    
8158    </blockquote><p>
8159                        
8160    </p>
8161    <p>Example:
8162    </p>
8163    <p>
8164                            </p>
8165    <blockquote class="text">
8166    <p>C: "COPY DB_INSTRUMENT_DIRECTORY '/Piano Collection/Acoustic' '/Acoustic/Pianos'"
8167    </p>
8168    <p>S: "OK"
8169    </p>
8170    </blockquote><p>
8171                        
8172    </p>
8173    <a name="SET DB_INSTRUMENT_DIRECTORY DESCRIPTION"></a><br /><hr />
8174    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
8175    <a name="rfc.section.6.8.9"></a><h3>6.8.9.&nbsp;
8176    Changing the description of directory</h3>
8177    
8178    <p>The front-end can alter the description of a specific
8179                        instrument directory by sending the following command:
8180    </p>
8181    <p>
8182                            </p>
8183    <blockquote class="text">
8184    <p>SET DB_INSTRUMENT_DIRECTORY DESCRIPTION &lt;dir&gt; &lt;desc&gt;
8185    </p>
8186    </blockquote><p>
8187                        
8188    </p>
8189    <p>Where &lt;dir&gt; is the absolute path name of the directory and
8190                        &lt;desc&gt; is the new description for the directory
8191                        (encapsulated into apostrophes, supporting escape sequences as described in chapter
8192                        "<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>").
8193    </p>
8194    <p>Possible Answers:
8195    </p>
8196    <p>
8197                            </p>
8198    <blockquote class="text">
8199    <p>"OK" -
8200                                    </p>
8201    <blockquote class="text">
8202    <p>on success
8203    </p>
8204    </blockquote>
8205                                
8206    
8207    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
8208                                    </p>
8209    <blockquote class="text">
8210    <p>in case the given directory does not exists.
8211    </p>
8212    </blockquote>
8213                                
8214    
8215    </blockquote><p>
8216                        
8217    </p>
8218    <p>Example:
8219    </p>
8220    <p>
8221                            </p>
8222    <blockquote class="text">
8223    <p>C: "SET DB_INSTRUMENT_DIRECTORY DESCRIPTION '/Piano Collection' 'A collection of piano instruments in various format.'"
8224    </p>
8225    <p>S: "OK"
8226    </p>
8227    </blockquote><p>
8228                        
8229    </p>
8230    <a name="FIND DB_INSTRUMENT_DIRECTORIES"></a><br /><hr />
8231    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
8232    <a name="rfc.section.6.8.10"></a><h3>6.8.10.&nbsp;
8233    Finding directories</h3>
8234    
8235    <p>The front-end can search for directories
8236                        in specific directory by sending the following command:
8237    </p>
8238    <p>
8239                            </p>
8240    <blockquote class="text">
8241    <p>FIND DB_INSTRUMENT_DIRECTORIES [NON_RECURSIVE] &lt;dir&gt; &lt;criteria-list&gt;
8242    </p>
8243    </blockquote><p>
8244                        
8245    </p>
8246    <p>Where &lt;dir&gt; should be replaced by the absolute path
8247                        name of the directory to search in. If NON_RECURSIVE is specified, the
8248                        directories located in subdirectories of the specified directory will not
8249                        be searched. &lt;criteria-list&gt; is a list of search criterias
8250                        in form of "key1=val1 key2=val2 ...". The following criterias are
8251                        allowed:
8252    </p>
8253    <p>
8254                          
8255    <p>NAME='&lt;search-string&gt;'
8256                              </p>
8257    <blockquote class="text">
8258    <p>Restricts the search to directories, which names
8259                                  satisfy the supplied search string (encapsulated into apostrophes,
8260                                  supporting escape sequences as described in chapter
8261                                  "<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>").
8262    </p>
8263    </blockquote><p>
8264                          
8265    </p>
8266    
8267                          
8268    <p>CREATED='[&lt;date-after&gt;]..[&lt;date-before&gt;]'
8269                              </p>
8270    <blockquote class="text">
8271    <p>Restricts the search to directories, which creation
8272                                  date satisfies the specified period, where &lt;date-after&gt;
8273                                  and &lt;date-before&gt; are in "YYYY-MM-DD HH:MM:SS" format.
8274                                  If &lt;date-after&gt; is omitted the search is restricted to
8275                                  directories created before &lt;date-before&gt;. If
8276                                  &lt;date-before&gt; is omitted, the search is restricted
8277                                  to directories created after &lt;date-after&gt;.
8278    </p>
8279    </blockquote><p>
8280                          
8281    </p>
8282    
8283                          
8284    <p>MODIFIED='[&lt;date-after&gt;]..[&lt;date-before&gt;]'
8285                              </p>
8286    <blockquote class="text">
8287    <p>Restricts the search to directories, which
8288                                  date of last modification satisfies the specified period, where
8289                                  &lt;date-after&gt; and &lt;date-before&gt; are in "YYYY-MM-DD HH:MM:SS"
8290                                  format. If &lt;date-after&gt; is omitted the search is restricted to
8291                                  directories, which are last modified before &lt;date-before&gt;. If
8292                                  &lt;date-before&gt; is omitted, the search is restricted to directories,
8293                                  which are last modified after &lt;date-after&gt;.
8294    </p>
8295    </blockquote><p>
8296                          
8297    </p>
8298    
8299                          
8300    <p>DESCRIPTION='&lt;search-string&gt;'
8301                              </p>
8302    <blockquote class="text">
8303    <p>Restricts the search to directories with description
8304                                  that satisfies the supplied search string
8305                                  (encapsulated into apostrophes, supporting escape
8306                                  sequences as described in chapter
8307                                  "<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>").
8308    </p>
8309    </blockquote><p>
8310                          
8311    </p>
8312                        
8313    
8314    <p>Where &lt;search-string&gt; is either a regular expression, or a
8315                        word list separated with spaces for OR search and with '+' for AND search.
8316    </p>
8317    <p>Possible Answers:
8318    </p>
8319    <p>
8320                            </p>
8321    <blockquote class="text">
8322    <p>A comma separated list with the absolute path names (encapsulated into
8323                                apostrophes) of all directories in the specified directory that satisfy
8324                                the supplied search criterias.
8325    </p>
8326    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
8327                                    </p>
8328    <blockquote class="text">
8329    <p>if the given directory does not exist.
8330    </p>
8331    </blockquote>
8332                                
8333    
8334    </blockquote><p>
8335                        
8336    </p>
8337    <p>Example:
8338    </p>
8339    <p>
8340                            </p>
8341    <blockquote class="text">
8342    <p>C: "FIND DB_INSTRUMENT_DIRECTORIES '/' NAME='Piano'"
8343    </p>
8344    <p>S: "'/Piano Collection'"
8345    </p>
8346    </blockquote><p>
8347                        
8348    </p>
8349    <p>
8350                            </p>
8351    <blockquote class="text">
8352    <p>C: "FIND DB_INSTRUMENT_DIRECTORIES '/' CREATED='..2007-04-01 09:30:13'"
8353    </p>
8354    <p>S: "'/Piano Collection','/Percussions'"
8355    </p>
8356    </blockquote><p>
8357                        
8358    </p>
8359    <a name="ADD DB_INSTRUMENTS"></a><br /><hr />
8360    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
8361    <a name="rfc.section.6.8.11"></a><h3>6.8.11.&nbsp;
8362    Adding instruments to the instruments database</h3>
8363    
8364    <p>The front-end can add one or more instruments
8365                        to the instruments database by sending the following command:
8366    </p>
8367    <p>
8368                            </p>
8369    <blockquote class="text">
8370    <p>ADD DB_INSTRUMENTS [NON_MODAL] [&lt;mode&gt;[ FILE_AS_DIR]] &lt;db_dir&gt; &lt;file_path&gt; [&lt;instr_index&gt;]
8371    </p>
8372    </blockquote><p>
8373                        
8374    </p>
8375    <p>Where &lt;db_dir&gt; is the absolute path name of a directory
8376                        (encapsulated into apostrophes) in the instruments database in which
8377                        only the new instruments (that are not already in the database) will
8378                        be added, &lt;file_path&gt; is the absolute path name of a file or
8379                        directory in the file system (encapsulated into apostrophes). In case
8380                        an instrument file is supplied, only the instruments in the specified
8381                        file will be added to the instruments database. If the optional
8382                        &lt;instr_index&gt; (the index of the instrument within the given file)
8383                        is supplied too, then only the specified instrument will be added.
8384                        In case a directory is supplied, the instruments in that directory
8385                        will be added. The OPTIONAL &lt;mode&gt; argument is only applied
8386                        when a directory is provided as &lt;file_path&gt; and specifies how the
8387                        scanning will be done and has exactly the following possibilities:
8388    </p>
8389    <p>
8390                            </p>
8391    <blockquote class="text">
8392    <p>"RECURSIVE" -
8393                                    </p>
8394    <blockquote class="text">
8395    <p>All instruments will be processed, including those
8396                                        in the subdirectories, and the respective subdirectory
8397                                        tree structure will be recreated in the instruments
8398                                        database
8399    </p>
8400    </blockquote>
8401                                
8402    
8403    <p>"NON_RECURSIVE" -
8404                                    </p>
8405    <blockquote class="text">
8406    <p>Only the instruments in the specified directory
8407                                        will be added, the instruments in the subdirectories
8408                                        will not be processed.
8409    </p>
8410    </blockquote>
8411                                
8412    
8413    <p>"FLAT" -
8414                                    </p>
8415    <blockquote class="text">
8416    <p>All instruments will be processed, including those
8417                                        in the subdirectories, but the respective subdirectory
8418                                        structure will not be recreated in the instruments
8419                                        database. All instruments will be added directly in
8420                                        the specified database directory.
8421    </p>
8422    </blockquote>
8423                                
8424    
8425    </blockquote><p>
8426                        
8427    </p>
8428    <p> If FILE_AS_DIR argument is supplied, all instruments in an instrument
8429                     file will be added to a separate directory in the instruments database, which
8430                     name will be the name of the instrument file with the file extension stripped off.
8431                    
8432    </p>
8433    <p>The difference between regular and NON_MODAL versions of the command
8434                        is that the regular command returns when the scanning is finished
8435                        while NON_MODAL version returns immediately and a background process is launched.
8436                        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>
8437                        command can be used to monitor the scanning progress.
8438    </p>
8439    <p>Possible Answers:
8440    </p>
8441    <p>
8442                            </p>
8443    <blockquote class="text">
8444    <p>"OK" -
8445                                    </p>
8446    <blockquote class="text">
8447    <p>on success when NON_MODAL is not supplied
8448    </p>
8449    </blockquote>
8450                                
8451    
8452    <p>"OK[&lt;job-id&gt;]" -
8453                                    </p>
8454    <blockquote class="text">
8455    <p>on success when NON_MODAL is supplied, where &lt;job-id&gt;
8456                                        is a numerical ID used to obtain status information about the job progress.
8457                                        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>
8458                                        
8459    </p>
8460    </blockquote>
8461                                
8462    
8463    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
8464                                    </p>
8465    <blockquote class="text">
8466    <p>if an invalid path is specified.
8467    </p>
8468    </blockquote>
8469                                
8470    
8471    </blockquote><p>
8472                        
8473    </p>
8474    <p>Examples:
8475    </p>
8476    <p>
8477                            </p>
8478    <blockquote class="text">
8479    <p>C: "ADD DB_INSTRUMENTS '/Piano Collection' '/home/me/gigs/PMI Bosendorfer 290.gig' 0"
8480    </p>
8481    <p>S: "OK"
8482    </p>
8483    </blockquote><p>
8484                        
8485    </p>
8486    <a name="REMOVE DB_INSTRUMENT"></a><br /><hr />
8487    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
8488    <a name="rfc.section.6.8.12"></a><h3>6.8.12.&nbsp;
8489    Removing an instrument</h3>
8490    
8491    <p>The front-end can remove a particular instrument
8492                        from the instruments database by sending the following command:
8493    </p>
8494    <p>
8495                            </p>
8496    <blockquote class="text">
8497    <p>REMOVE DB_INSTRUMENT &lt;instr_path&gt;
8498    </p>
8499    </blockquote><p>
8500                        
8501    </p>
8502    <p>Where &lt;instr_path&gt; is the absolute path name
8503                        (in the instruments database) of the instrument to remove.
8504    </p>
8505    <p>Possible Answers:
8506    </p>
8507    <p>
8508                            </p>
8509    <blockquote class="text">
8510    <p>"OK" -
8511                                    </p>
8512    <blockquote class="text">
8513    <p>if the instrument is removed successfully
8514    </p>
8515    </blockquote>
8516                                
8517    
8518    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
8519                                    </p>
8520    <blockquote class="text">
8521    <p>if the given path does not exist or
8522                                        is a directory.
8523    </p>
8524    </blockquote>
8525                                
8526    
8527    </blockquote><p>
8528                        
8529    </p>
8530    <p>Examples:
8531    </p>
8532    <p>
8533                            </p>
8534    <blockquote class="text">
8535    <p>C: "REMOVE DB_INSTRUMENT '/Piano Collection/Bosendorfer 290'"
8536    </p>
8537    <p>S: "OK"
8538    </p>
8539    </blockquote><p>
8540                        
8541    </p>
8542    <a name="GET DB_INSTRUMENTS"></a><br /><hr />
8543    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
8544    <a name="rfc.section.6.8.13"></a><h3>6.8.13.&nbsp;
8545    Getting amount of instruments</h3>
8546    
8547    <p>The front-end can retrieve the current amount of
8548                        instruments in a specific directory by sending the following command:
8549    </p>
8550    <p>
8551                            </p>
8552    <blockquote class="text">
8553    <p>GET DB_INSTRUMENTS [RECURSIVE] &lt;dir&gt;
8554    </p>
8555    </blockquote><p>
8556                        
8557    </p>
8558    <p>Where &lt;dir&gt; should be replaced by the absolute path name
8559                        of the directory. If RECURSIVE is specified, the number of all
8560                        instruments, including those located in subdirectories of the
8561                        specified directory, will be returned.
8562    </p>
8563    <p>Possible Answers:
8564    </p>
8565    <p>
8566                            </p>
8567    <blockquote class="text">
8568    <p>The current number of instruments
8569                                in the specified directory.
8570    </p>
8571    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
8572                                    </p>
8573    <blockquote class="text">
8574    <p>if the given directory does not exist.
8575    </p>
8576    </blockquote>
8577                                
8578    
8579    </blockquote><p>
8580                        
8581    </p>
8582    <p>Example:
8583    </p>
8584    <p>
8585                            </p>
8586    <blockquote class="text">
8587    <p>C: "GET DB_INSTRUMENTS '/Piano Collection'"
8588    </p>
8589    <p>S: "2"
8590    </p>
8591    </blockquote><p>
8592                        
8593    </p>
8594    <a name="LIST DB_INSTRUMENTS"></a><br /><hr />
8595    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
8596    <a name="rfc.section.6.8.14"></a><h3>6.8.14.&nbsp;
8597    Listing all instruments in specific directory</h3>
8598    
8599    <p>The front-end can retrieve the current list of instruments
8600                        in specific directory by sending the following command:
8601    </p>
8602    <p>
8603                            </p>
8604    <blockquote class="text">
8605    <p>LIST DB_INSTRUMENTS [RECURSIVE] &lt;dir&gt;
8606    </p>
8607    </blockquote><p>
8608                        
8609    </p>
8610    <p>Where &lt;dir&gt; should be replaced by the absolute path
8611                        name of the directory. If RECURSIVE is specified, the absolute path
8612                        names of all instruments, including those located in subdirectories
8613                        of the specified directory, will be returned.
8614    </p>
8615    <p>Possible Answers:
8616    </p>
8617    <p>
8618                            </p>
8619    <blockquote class="text">
8620    <p>A comma separated list of all instruments
8621                                (encapsulated into apostrophes) in the specified directory.
8622    </p>
8623    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
8624                                    </p>
8625    <blockquote class="text">
8626    <p>if the given directory does not exist.
8627    </p>
8628    </blockquote>
8629                                
8630    
8631    </blockquote><p>
8632                        
8633    </p>
8634    <p>Example:
8635    </p>
8636    <p>
8637                            </p>
8638    <blockquote class="text">
8639    <p>C: "LIST DB_INSTRUMENTS '/Piano Collection'"
8640    </p>
8641    <p>S: "'Bosendorfer 290','Steinway D'"
8642    </p>
8643    </blockquote><p>
8644                        
8645    </p>
8646    <p>
8647                            </p>
8648    <blockquote class="text">
8649    <p>C: "LIST DB_INSTRUMENTS RECURSIVE '/Piano Collection'"
8650    </p>
8651    <p>S: "'/Piano Collection/Bosendorfer 290','/Piano Collection/Steinway D','/Piano Collection/Lite/Free Piano'"
8652    </p>
8653    </blockquote><p>
8654                        
8655    </p>
8656    <a name="GET DB_INSTRUMENT INFO"></a><br /><hr />
8657    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
8658    <a name="rfc.section.6.8.15"></a><h3>6.8.15.&nbsp;
8659    Getting instrument information</h3>
8660    
8661    <p>The front-end can ask for the current settings of an
8662                        instrument by sending the following command:
8663    </p>
8664    <p>
8665                            </p>
8666    <blockquote class="text">
8667    <p>GET DB_INSTRUMENT INFO &lt;instr_path&gt;
8668    </p>
8669    </blockquote><p>
8670                        
8671    </p>
8672    <p>Where &lt;instr_path&gt; should be replaced by the absolute path
8673                        name of the instrument the front-end is interested in.
8674    </p>
8675    <p>Possible Answers:
8676    </p>
8677    <p>
8678                            </p>
8679    <blockquote class="text">
8680    <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
8681                                Each answer line begins with the settings category name
8682                                followed by a colon and then a space character &lt;SP&gt; and finally
8683                                the info character string to that setting category. At the
8684                                moment the following categories are defined:
8685    </p>
8686    <p>
8687                                    </p>
8688    <blockquote class="text">
8689    <p>INSTRUMENT_FILE -
8690                                            </p>
8691    <blockquote class="text">
8692    <p>File name of the instrument.
8693                                                Note that the character string may contain
8694                                                <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>.
8695    </p>
8696    </blockquote>
8697                                        
8698    
8699    <p>INSTRUMENT_NR -
8700                                            </p>
8701    <blockquote class="text">
8702    <p>Index of the instrument within the file.
8703    </p>
8704    </blockquote>
8705                                        
8706    
8707    <p>FORMAT_FAMILY -
8708                                            </p>
8709    <blockquote class="text">
8710    <p>The format family of the instrument.
8711    </p>
8712    </blockquote>
8713                                        
8714    
8715    <p>FORMAT_VERSION -
8716                                            </p>
8717    <blockquote class="text">
8718    <p>The format version of the instrument.
8719    </p>
8720    </blockquote>
8721                                        
8722    
8723    <p>SIZE -
8724                                            </p>
8725    <blockquote class="text">
8726    <p>The size of the instrument in bytes.
8727    </p>
8728    </blockquote>
8729                                        
8730    
8731    <p>CREATED -
8732                                            </p>
8733    <blockquote class="text">
8734    <p>The date and time when the instrument is added
8735                                                in the instruments database, represented in
8736                                               "YYYY-MM-DD HH:MM:SS" format
8737    </p>
8738    </blockquote>
8739                                        
8740    
8741    <p>MODIFIED -
8742                                            </p>
8743    <blockquote class="text">
8744    <p>The date and time of the last modification of the
8745                                                instrument's database settings, represented in
8746                                                "YYYY-MM-DD HH:MM:SS" format
8747    </p>
8748    </blockquote>
8749                                        
8750    
8751    <p>DESCRIPTION -
8752                                            </p>
8753    <blockquote class="text">
8754    <p>A brief description of the instrument.
8755                                                Note that the character string may contain
8756                                                <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>.
8757    </p>
8758    </blockquote>
8759                                        
8760    
8761    <p>IS_DRUM -
8762                                            </p>
8763    <blockquote class="text">
8764    <p>either true or false, determines whether the
8765                                                instrument is a drumkit or a chromatic instrument
8766    </p>
8767    </blockquote>
8768                                        
8769    
8770    <p>PRODUCT -
8771                                            </p>
8772    <blockquote class="text">
8773    <p>The product title of the instrument.
8774                                                Note that the character string may contain
8775                                                <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>.
8776    </p>
8777    </blockquote>
8778                                        
8779    
8780    <p>ARTISTS -
8781                                            </p>
8782    <blockquote class="text">
8783    <p>Lists the artist names.
8784                                                Note that the character string may contain
8785                                                <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>.
8786    </p>
8787    </blockquote>
8788                                        
8789    
8790    <p>KEYWORDS -
8791                                            </p>
8792    <blockquote class="text">
8793    <p>Provides a list of keywords that refer to the instrument.
8794                                                Keywords are separated with semicolon and blank.
8795                                                Note that the character string may contain
8796                                                <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>.
8797    </p>
8798    </blockquote>
8799                                        
8800    
8801    </blockquote>
8802                                
8803    
8804    </blockquote><p>
8805                        
8806    </p>
8807    <p>The mentioned fields above don't have to be in particular order.
8808    </p>
8809    <p>Example:
8810    </p>
8811    <p>
8812                            </p>
8813    <blockquote class="text">
8814    <p>C: "GET DB_INSTRUMENT INFO '/Piano Collection/Bosendorfer 290'"
8815    </p>
8816    <p>S: "INSTRUMENT_FILE: /home/me/gigs/Bosendorfer 290.gig"
8817    </p>
8818    <p>&nbsp;&nbsp;&nbsp;"INSTRUMENT_NR: 0"
8819    </p>
8820    <p>&nbsp;&nbsp;&nbsp;"FORMAT_FAMILY: GIG"
8821    </p>
8822    <p>&nbsp;&nbsp;&nbsp;"FORMAT_VERSION: 2"
8823    </p>
8824    <p>&nbsp;&nbsp;&nbsp;"SIZE: 2050871870"
8825    </p>
8826    <p>&nbsp;&nbsp;&nbsp;"CREATED: 2007-02-05 10:23:12"
8827    </p>
8828    <p>&nbsp;&nbsp;&nbsp;"MODIFIED: 2007-04-07 12:50:21"
8829    </p>
8830    <p>&nbsp;&nbsp;&nbsp;"DESCRIPTION: "
8831    </p>
8832    <p>&nbsp;&nbsp;&nbsp;"IS_DRUM: false"
8833    </p>
8834    <p>&nbsp;&nbsp;&nbsp;"PRODUCT: GRANDIOSO Bosendorfer 290"
8835    </p>
8836    <p>&nbsp;&nbsp;&nbsp;"ARTISTS: Post Musical Instruments"
8837    </p>
8838    <p>&nbsp;&nbsp;&nbsp;"KEYWORDS: Bosendorfer"
8839    </p>
8840    <p>&nbsp;&nbsp;&nbsp;"."
8841    </p>
8842    </blockquote><p>
8843                        
8844    </p>
8845    <a name="SET DB_INSTRUMENT NAME"></a><br /><hr />
8846    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
8847    <a name="rfc.section.6.8.16"></a><h3>6.8.16.&nbsp;
8848    Renaming an instrument</h3>
8849    
8850    <p>The front-end can alter the name of a specific
8851                        instrument by sending the following command:
8852    </p>
8853    <p>
8854                            </p>
8855    <blockquote class="text">
8856    <p>SET DB_INSTRUMENT NAME &lt;instr&gt; &lt;name&gt;
8857    </p>
8858    </blockquote><p>
8859                        
8860    </p>
8861    <p>Where &lt;instr&gt; is the absolute path name of the instrument and
8862                        &lt;name&gt; is the new name for that instrument.
8863    </p>
8864    <p>Possible Answers:
8865    </p>
8866    <p>
8867                            </p>
8868    <blockquote class="text">
8869    <p>"OK" -
8870                                    </p>
8871    <blockquote class="text">
8872    <p>on success
8873    </p>
8874    </blockquote>
8875                                
8876    
8877    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
8878                                    </p>
8879    <blockquote class="text">
8880    <p>in case the given instrument does not exists,
8881                                        or if an instrument with name equal to the new
8882                                        name already exists.
8883    </p>
8884    </blockquote>
8885                                
8886    
8887    </blockquote><p>
8888                        
8889    </p>
8890    <p>Example:
8891    </p>
8892    <p>
8893                            </p>
8894    <blockquote class="text">
8895    <p>C: "SET DB_INSTRUMENT NAME '/Piano Collection/Bosendorfer' 'Bosendorfer 290'"
8896    </p>
8897    <p>S: "OK"
8898    </p>
8899    </blockquote><p>
8900                        
8901    </p>
8902    <a name="MOVE DB_INSTRUMENT"></a><br /><hr />
8903    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
8904    <a name="rfc.section.6.8.17"></a><h3>6.8.17.&nbsp;
8905    Moving an instrument</h3>
8906    
8907    <p>The front-end can move a specific instrument to another directory by
8908                        sending the following command:
8909    </p>
8910    <p>
8911                            </p>
8912    <blockquote class="text">
8913    <p>MOVE DB_INSTRUMENT &lt;instr&gt; &lt;dst&gt;
8914    </p>
8915    </blockquote><p>
8916                        
8917    </p>
8918    <p>Where &lt;instr&gt; is the absolute path name of the instrument
8919                        to move and &lt;dst&gt; is the directory where the instrument will
8920                        be moved to.
8921    </p>
8922    <p>Possible Answers:
8923    </p>
8924    <p>
8925                            </p>
8926    <blockquote class="text">
8927    <p>"OK" -
8928                                    </p>
8929    <blockquote class="text">
8930    <p>on success
8931    </p>
8932    </blockquote>
8933                                
8934    
8935    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
8936                                    </p>
8937    <blockquote class="text">
8938    <p>in case the given instrument does not exists,
8939                                        or if an instrument with name equal to the name of the
8940                                        specified instrument already exists in the destination
8941                                        directory.
8942    </p>
8943    </blockquote>
8944                                
8945    
8946    </blockquote><p>
8947                        
8948    </p>
8949    <p>Example:
8950    </p>
8951    <p>
8952                            </p>
8953    <blockquote class="text">
8954    <p>C: "MOVE DB_INSTRUMENT '/Piano Collection/Bosendorfer 290' '/Piano Collection/Acoustic'"
8955    </p>
8956    <p>S: "OK"
8957    </p>
8958    </blockquote><p>
8959                        
8960    </p>
8961    <a name="COPY DB_INSTRUMENT"></a><br /><hr />
8962    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
8963    <a name="rfc.section.6.8.18"></a><h3>6.8.18.&nbsp;
8964    Copying instruments</h3>
8965    
8966    <p>The front-end can copy a specific instrument to another directory by
8967                        sending the following command:
8968    </p>
8969    <p>
8970                            </p>
8971    <blockquote class="text">
8972    <p>COPY DB_INSTRUMENT &lt;instr&gt; &lt;dst&gt;
8973    </p>
8974    </blockquote><p>
8975                        
8976    </p>
8977    <p>Where &lt;instr&gt; is the absolute path name of the instrument
8978                        to copy and &lt;dst&gt; is the directory where the instrument will
8979                        be copied to.
8980    </p>
8981    <p>Possible Answers:
8982    </p>
8983    <p>
8984                            </p>
8985    <blockquote class="text">
8986    <p>"OK" -
8987                                    </p>
8988    <blockquote class="text">
8989    <p>on success
8990    </p>
8991    </blockquote>
8992                                
8993    
8994    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
8995                                    </p>
8996    <blockquote class="text">
8997    <p>in case the given instrument does not exists,
8998                                        or if an instrument with name equal to the name of the
8999                                        specified instrument already exists in the destination
9000                                        directory.
9001    </p>
9002    </blockquote>
9003                                
9004    
9005    </blockquote><p>
9006                        
9007    </p>
9008    <p>Example:
9009    </p>
9010    <p>
9011                            </p>
9012    <blockquote class="text">
9013    <p>C: "COPY DB_INSTRUMENT '/Piano Collection/Bosendorfer 290' '/Acoustic/Pianos/'"
9014    </p>
9015    <p>S: "OK"
9016    </p>
9017    </blockquote><p>
9018                        
9019    </p>
9020    <a name="SET DB_INSTRUMENT DESCRIPTION"></a><br /><hr />
9021    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
9022    <a name="rfc.section.6.8.19"></a><h3>6.8.19.&nbsp;
9023    Changing the description of instrument</h3>
9024    
9025    <p>The front-end can alter the description of a specific
9026                        instrument by sending the following command:
9027    </p>
9028    <p>
9029                            </p>
9030    <blockquote class="text">
9031    <p>SET DB_INSTRUMENT DESCRIPTION &lt;instr&gt; &lt;desc&gt;
9032    </p>
9033    </blockquote><p>
9034                        
9035    </p>
9036    <p>Where &lt;instr&gt; is the absolute path name of the instrument and
9037                        &lt;desc&gt; is the new description for the instrument
9038                        (encapsulated into apostrophes, supporting escape sequences as described in chapter
9039                        "<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>").
9040    </p>
9041    <p>Possible Answers:
9042    </p>
9043    <p>
9044                            </p>
9045    <blockquote class="text">
9046    <p>"OK" -
9047                                    </p>
9048    <blockquote class="text">
9049    <p>on success
9050    </p>
9051    </blockquote>
9052                                
9053    
9054    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
9055                                    </p>
9056    <blockquote class="text">
9057    <p>in case the given instrument does not exists.
9058    </p>
9059    </blockquote>
9060                                
9061    
9062    </blockquote><p>
9063                        
9064    </p>
9065    <p>Example:
9066    </p>
9067    <p>
9068                            </p>
9069    <blockquote class="text">
9070    <p>C: "SET DB_INSTRUMENT DESCRIPTION '/Piano Collection/Acoustic/Bosendorfer 290' 'No comment :)'"
9071    </p>
9072    <p>S: "OK"
9073    </p>
9074    </blockquote><p>
9075                        
9076    </p>
9077    <a name="FIND DB_INSTRUMENTS"></a><br /><hr />
9078    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
9079    <a name="rfc.section.6.8.20"></a><h3>6.8.20.&nbsp;
9080    Finding instruments</h3>
9081    
9082    <p>The front-end can search for instruments
9083                        in specific directory by sending the following command:
9084    </p>
9085    <p>
9086                            </p>
9087    <blockquote class="text">
9088    <p>FIND DB_INSTRUMENTS [NON_RECURSIVE] &lt;dir&gt; &lt;criteria-list&gt;
9089    </p>
9090    </blockquote><p>
9091                        
9092    </p>
9093    <p>Where &lt;dir&gt; should be replaced by the absolute path
9094                        name of the directory to search in. If NON_RECURSIVE is specified, the
9095                        directories located in subdirectories of the specified directory will not
9096                        be searched. &lt;criteria-list&gt; is a list of search criterias
9097                        in form of "key1=val1 key2=val2 ...". The following criterias are
9098                        allowed:
9099    </p>
9100    <p>
9101                          
9102    <p>NAME='&lt;search-string&gt;'
9103                              </p>
9104    <blockquote class="text">
9105    <p>Restricts the search to instruments, which names
9106                                  satisfy the supplied search string (encapsulated into apostrophes,
9107                                  supporting escape sequences as described in chapter
9108                                  "<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>").
9109    </p>
9110    </blockquote><p>
9111                          
9112    </p>
9113    
9114                          
9115    <p>SIZE=[&lt;min&gt;]..[&lt;max&gt;]
9116                              </p>
9117    <blockquote class="text">
9118    <p>Restricts the search to instruments, which
9119                                  size is in the specified range. If &lt;min&gt; is omitted,
9120                                  the search results are restricted to instruments with size less then
9121                                  or equal to &lt;max&gt;. If &lt;max&gt; is omitted, the
9122                                  search is restricted to instruments with size greater then
9123                                  or equal to &lt;min&gt;.
9124    </p>
9125    </blockquote><p>
9126                          
9127    </p>
9128    
9129                          
9130    <p>CREATED='[&lt;date-after&gt;]..[&lt;date-before&gt;]'
9131                              </p>
9132    <blockquote class="text">
9133    <p>Restricts the search to instruments, which creation
9134                                  date satisfies the specified period, where &lt;date-after&gt;
9135                                  and &lt;date-before&gt; are in "YYYY-MM-DD HH:MM:SS" format.
9136                                  If &lt;date-after&gt; is omitted the search is restricted to
9137                                  instruments created before &lt;date-before&gt;. If
9138                                  &lt;date-before&gt; is omitted, the search is restricted
9139                                  to instruments created after &lt;date-after&gt;.
9140    </p>
9141    </blockquote><p>
9142                          
9143    </p>
9144    
9145                          
9146    <p>MODIFIED='[&lt;date-after&gt;]..[&lt;date-before&gt;]'
9147                              </p>
9148    <blockquote class="text">
9149    <p>Restricts the search to instruments, which
9150                                  date of last modification satisfies the specified period, where
9151                                  &lt;date-after&gt; and &lt;date-before&gt; are in "YYYY-MM-DD HH:MM:SS"
9152                                  format. If &lt;date-after&gt; is omitted the search is restricted to
9153                                  instruments, which are last modified before &lt;date-before&gt;. If
9154                                  &lt;date-before&gt; is omitted, the search is restricted to instruments,
9155                                  which are last modified after &lt;date-after&gt;.
9156    </p>
9157    </blockquote><p>
9158                          
9159    </p>
9160    
9161                          
9162    <p>DESCRIPTION='&lt;search-string&gt;'
9163                              </p>
9164    <blockquote class="text">
9165    <p>Restricts the search to instruments with description
9166                                  that satisfies the supplied search string (encapsulated into apostrophes,
9167                                  supporting escape sequences as described in chapter
9168                                  "<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>").
9169    </p>
9170    </blockquote><p>
9171                          
9172    </p>
9173    
9174                          
9175    <p>PRODUCT='&lt;search-string&gt;'
9176                              </p>
9177    <blockquote class="text">
9178    <p>Restricts the search to instruments with product info
9179                                  that satisfies the supplied search string (encapsulated into apostrophes,
9180                                  supporting escape sequences as described in chapter
9181                                  "<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>").
9182    </p>
9183    </blockquote><p>
9184                          
9185    </p>
9186    
9187                          
9188    <p>ARTISTS='&lt;search-string&gt;'
9189                              </p>
9190    <blockquote class="text">
9191    <p>Restricts the search to instruments with artists info
9192                                  that satisfies the supplied search string (encapsulated into apostrophes,
9193                                  supporting escape sequences as described in chapter
9194                                  "<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>").
9195    </p>
9196    </blockquote><p>
9197                          
9198    </p>
9199    
9200                          
9201    <p>KEYWORDS='&lt;search-string&gt;'
9202                              </p>
9203    <blockquote class="text">
9204    <p>Restricts the search to instruments with keyword list
9205                                  that satisfies the supplied search string (encapsulated into apostrophes,
9206                                  supporting escape sequences as described in chapter
9207                                  "<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>").
9208    </p>
9209    </blockquote><p>
9210                          
9211    </p>
9212    
9213                          
9214    <p>IS_DRUM=true | false
9215                              </p>
9216    <blockquote class="text">
9217    <p>Either true or false. Restricts the search to
9218                                  drum kits or chromatic instruments.
9219    </p>
9220    </blockquote><p>
9221                          
9222    </p>
9223    
9224                          
9225    <p>FORMAT_FAMILIES='&lt;format-list&gt;'
9226                              </p>
9227    <blockquote class="text">
9228    <p>Restricts the search to instruments of the supplied format families,
9229                                  where &lt;format-list&gt; is a comma separated list of format families.
9230    </p>
9231    </blockquote><p>
9232                          
9233    </p>
9234                        
9235    
9236    <p>Where &lt;search-string&gt; is either a regular expression, or a
9237                        word list separated with spaces for OR search and with '+' for AND search.
9238    </p>
9239    <p>Possible Answers:
9240    </p>
9241    <p>
9242                            </p>
9243    <blockquote class="text">
9244    <p>A comma separated list with the absolute path names (encapsulated into
9245                                apostrophes) of all instruments in the specified directory that satisfy
9246                                the supplied search criterias.
9247    </p>
9248    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
9249                                    </p>
9250    <blockquote class="text">
9251    <p>if the given directory does not exist.
9252    </p>
9253    </blockquote>
9254                                
9255    
9256    </blockquote><p>
9257                        
9258    </p>
9259    <p>Example:
9260    </p>
9261    <p>
9262                            </p>
9263    <blockquote class="text">
9264    <p>C: "FIND DB_INSTRUMENTS '/Piano Collection' NAME='bosendorfer+290'"
9265    </p>
9266    <p>S: "'/Piano Collection/Bosendorfer 290'"
9267    </p>
9268    </blockquote><p>
9269                        
9270    </p>
9271    <p>
9272                            </p>
9273    <blockquote class="text">
9274    <p>C: "FIND DB_INSTRUMENTS '/Piano Collection' CREATED='2007-04-01 09:30:13..'"
9275    </p>
9276    <p>S: "'/Piano Collection/Bosendorfer 290','/Piano Collection/Steinway D'"
9277    </p>
9278    </blockquote><p>
9279                        
9280    </p>
9281    <a name="GET DB_INSTRUMENTS_JOB INFO"></a><br /><hr />
9282    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
9283    <a name="rfc.section.6.8.21"></a><h3>6.8.21.&nbsp;
9284    Getting job status information</h3>
9285    
9286    <p>The front-end can ask for the current status of a
9287                        particular database instruments job by sending the following command:
9288    </p>
9289    <p>
9290                            </p>
9291    <blockquote class="text">
9292    <p>GET DB_INSTRUMENTS_JOB INFO &lt;job-id&gt;
9293    </p>
9294    </blockquote><p>
9295                        
9296    </p>
9297    <p>Where &lt;job-id&gt; should be replaced by the numerical ID
9298                        of the job the front-end is interested in.
9299    </p>
9300    <p>Possible Answers:
9301    </p>
9302    <p>
9303                            </p>
9304    <blockquote class="text">
9305    <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
9306                                Each answer line begins with the settings category name
9307                                followed by a colon and then a space character &lt;SP&gt; and finally
9308                                the info character string to that setting category. At the
9309                                moment the following categories are defined:
9310    </p>
9311    <p>
9312                                    </p>
9313    <blockquote class="text">
9314    <p>FILES_TOTAL -
9315                                            </p>
9316    <blockquote class="text">
9317    <p>The total number of files scheduled for scanning
9318    </p>
9319    </blockquote>
9320                                        
9321    
9322    <p>FILES_SCANNED -
9323                                            </p>
9324    <blockquote class="text">
9325    <p>The current number of scanned files
9326    </p>
9327    </blockquote>
9328                                        
9329    
9330    <p>SCANNING -
9331                                            </p>
9332    <blockquote class="text">
9333    <p>The absolute path name of the file which is currently
9334                                                being scanned
9335    </p>
9336    </blockquote>
9337                                        
9338    
9339    <p>STATUS -
9340                                            </p>
9341    <blockquote class="text">
9342    <p>An integer value between 0 and 100 indicating the
9343                                                scanning progress percentage of the file which is
9344                                                currently being scanned
9345    </p>
9346    </blockquote>
9347                                        
9348    
9349    </blockquote>
9350                                
9351    
9352    </blockquote><p>
9353                        
9354    </p>
9355    <p>The mentioned fields above don't have to be in particular order.
9356    </p>
9357    <p>Example:
9358    </p>
9359    <p>
9360                            </p>
9361    <blockquote class="text">
9362    <p>C: "GET DB_INSTRUMENTS_JOB INFO 2"
9363    </p>
9364    <p>S: "FILES_TOTAL: 12"
9365    </p>
9366    <p>&nbsp;&nbsp;&nbsp;"FILES_SCANNED: 7"
9367    </p>
9368    <p>&nbsp;&nbsp;&nbsp;"SCANNING: /home/me/gigs/Bosendorfer 290.gig"
9369    </p>
9370    <p>&nbsp;&nbsp;&nbsp;"STATUS: 42"
9371    </p>
9372    <p>&nbsp;&nbsp;&nbsp;"."
9373    </p>
9374    </blockquote><p>
9375                        
9376    </p>
9377    <a name="FORMAT INSTRUMENTS_DB"></a><br /><hr />
9378    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
9379    <a name="rfc.section.6.8.22"></a><h3>6.8.22.&nbsp;
9380    Formatting the instruments database</h3>
9381    
9382    <p>The front-end can remove all instruments and directories and re-create
9383                        the instruments database structure (e.g., in case of a database corruption)
9384                        by sending the following command:
9385    </p>
9386    <p>
9387                            </p>
9388    <blockquote class="text">
9389    <p>FORMAT INSTRUMENTS_DB
9390    </p>
9391    </blockquote><p>
9392                        
9393    </p>
9394    <p>Possible Answers:
9395    </p>
9396    <p>
9397                            </p>
9398    <blockquote class="text">
9399    <p>"OK" -
9400                                    </p>
9401    <blockquote class="text">
9402    <p>on success
9403    </p>
9404    </blockquote>
9405                                
9406    
9407    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
9408                                    </p>
9409    <blockquote class="text">
9410    <p>If the formatting of the instruments database
9411                                        failed.
9412    </p>
9413    </blockquote>
9414                                
9415    
9416    </blockquote><p>
9417                        
9418    </p>
9419    <a name="FIND LOST DB_INSTRUMENT_FILES"></a><br /><hr />
9420    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
9421    <a name="rfc.section.6.8.23"></a><h3>6.8.23.&nbsp;
9422    Checking for lost instrument files</h3>
9423    
9424    <p>The front-end can retrieve the list of all instrument files in the instruments database
9425                        that don't exist in the filesystem by sending the following command:
9426    </p>
9427    <p>
9428                            </p>
9429    <blockquote class="text">
9430    <p>FIND LOST DB_INSTRUMENT_FILES
9431    </p>
9432    </blockquote><p>
9433                        
9434    </p>
9435    <p>Possible Answers:
9436    </p>
9437    <p>
9438                            </p>
9439    <blockquote class="text">
9440    <p>A comma separated list with the absolute path names
9441                                (encapsulated into apostrophes) of all lost instrument files.
9442    </p>
9443    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
9444                                    </p>
9445    <blockquote class="text">
9446    <p>in case it failed, providing an appropriate error code and error message.
9447    </p>
9448    </blockquote>
9449                                
9450    
9451    </blockquote><p>
9452                        
9453    </p>
9454    <p>Example:
9455    </p>
9456    <p>
9457                            </p>
9458    <blockquote class="text">
9459    <p>C: "FIND LOST DB_INSTRUMENT_FILES"
9460    </p>
9461    <p>S: "'/gigs/Bosendorfer 290.gig','/gigs/Steinway D.gig','/gigs/Free Piano.gig'"
9462    </p>
9463    </blockquote><p>
9464                        
9465    </p>
9466    <a name="SET DB_INSTRUMENT FILE_PATH"></a><br /><hr />
9467    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
9468    <a name="rfc.section.6.8.24"></a><h3>6.8.24.&nbsp;
9469    Replacing an instrument file</h3>
9470    
9471    <p>The front-end can substitute all occurrences of an instrument file
9472                        in the instruments database with a new one by sending the following command:
9473    </p>
9474    <p>
9475                            </p>
9476    <blockquote class="text">
9477    <p>SET DB_INSTRUMENT FILE_PATH &lt;old_path&gt; &lt;new_path&gt;
9478    </p>
9479    </blockquote><p>
9480                        
9481    </p>
9482    <p>Where &lt;old_path&gt; is the absolute path name of the instrument file
9483                        to substitute with &lt;new_path&gt;.
9484    </p>
9485    <p>Possible Answers:
9486    </p>
9487    <p>
9488                            </p>
9489    <blockquote class="text">
9490    <p>"OK" -
9491                                    </p>
9492    <blockquote class="text">
9493    <p>on success
9494    </p>
9495    </blockquote>
9496                                
9497    
9498    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
9499                                    </p>
9500    <blockquote class="text">
9501    <p>in case it failed, providing an appropriate error code and error message.
9502    </p>
9503    </blockquote>
9504                                
9505    
9506    </blockquote><p>
9507                        
9508    </p>
9509    <p>Example:
9510    </p>
9511    <p>
9512                            </p>
9513    <blockquote class="text">
9514    <p>C: "SET DB_INSTRUMENT FILE_PATH '/gigs/Bosendorfer 290.gig' '/gigs/pianos/Bosendorfer 290.gig'"
9515    </p>
9516    <p>S: "OK"
9517    </p>
9518    </blockquote><p>
9519                        
9520    </p>
9521    <a name="editing_instruments"></a><br /><hr />
9522    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
9523    <a name="rfc.section.6.9"></a><h3>6.9.&nbsp;
9524    Editing Instruments</h3>
9525    
9526    <p>The sampler allows to edit instruments while playing with the
9527                    sampler by spawning an external (3rd party) instrument editor
9528                    application for a given instrument. The 3rd party instrument
9529                    editor applications have to place a respective plugin DLL file
9530                    into the sampler's plugins directory. The sampler will
9531                    automatically try to load all plugin DLLs in that directory on
9532                    startup and only on startup!
9533    </p>
9534    <p>At the moment there is only one command for this feature set,
9535                    but this will most probably change in future.
9536    </p>
9537    <a name="EDIT INSTRUMENT"></a><br /><hr />
9538    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
9539    <a name="rfc.section.6.9.1"></a><h3>6.9.1.&nbsp;
9540    Opening an appropriate instrument editor application</h3>
9541    
9542    <p>The front-end can request to open an appropriate instrument
9543                        editor application by sending the following command:
9544    </p>
9545    <p>
9546                            </p>
9547    <blockquote class="text">
9548    <p>EDIT CHANNEL INSTRUMENT &lt;sampler-channel&gt;
9549    </p>
9550    </blockquote><p>
9551                        
9552    </p>
9553    <p>Where &lt;sampler-channel&gt; should be replaced by the
9554                        number of the sampler channel as given by the
9555                        <a class='info' href='#ADD CHANNEL'>"ADD CHANNEL"<span> (</span><span class='info'>Adding a new sampler channel</span><span>)</span></a>
9556                        or <a class='info' href='#LIST CHANNELS'>"LIST CHANNELS"<span> (</span><span class='info'>Getting all created sampler channel list</span><span>)</span></a>
9557                        command.
9558    </p>
9559    <p>The sampler will try to ask all registered instrument
9560                        editors (or to be more specific: their sampler plugins)
9561                        whether they are capable to handle the instrument on the
9562                        given sampler channel. The sampler will simply use the first
9563                        instrument editor application which replied with a positive
9564                        answer and spawn that instrument editor application within
9565                        the sampler's process and provide that application access
9566                        to the instrument's data structures, so both applications
9567                        can share and access the same instruments data at the same
9568                        time, thus allowing to immediately hear changes with the
9569                        sampler made by the instrument editor.
9570    </p>
9571    <p>Note: consequently instrument editors are always spawned
9572                        locally on the same machine where the sampler is running
9573                        on!
9574    </p>
9575    <p>Possible Answers:
9576    </p>
9577    <p>
9578                            </p>
9579    <blockquote class="text">
9580    <p>"OK" -
9581                                    </p>
9582    <blockquote class="text">
9583    <p>when an appropriate instrument editor was
9584                                        launched
9585    </p>
9586    </blockquote>
9587                                
9588    
9589    <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
9590                                    </p>
9591    <blockquote class="text">
9592    <p>when an appropriate instrument editor was
9593                                        launched, but there are noteworthy issues
9594    </p>
9595    </blockquote>
9596                                
9597    
9598    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
9599                                    </p>
9600    <blockquote class="text">
9601    <p>when an appropriate instrument editor
9602                                        could not be launched
9603    </p>
9604    </blockquote>
9605                                
9606    
9607    </blockquote><p>
9608                        
9609    </p>
9610    <p>Examples:
9611    </p>
9612    <p>
9613                            </p>
9614    <blockquote class="text">
9615    <p>C: "EDIT CHANNEL INSTRUMENT 0"
9616    </p>
9617    <p>S: "OK"
9618    </p>
9619    </blockquote><p>
9620                        
9621    </p>
9622    <a name="file_management"></a><br /><hr />
9623    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
9624    <a name="rfc.section.6.10"></a><h3>6.10.&nbsp;
9625    Managing Files</h3>
9626    
9627    <p>You can query detailed informations about files located
9628                    at the same system where the sampler instance is running on.
9629                    Using this command set allows to retrieve file informations
9630                    even remotely from another machine.
9631    </p>
9632    <a name="GET FILE INSTRUMENTS"></a><br /><hr />
9633    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
9634    <a name="rfc.section.6.10.1"></a><h3>6.10.1.&nbsp;
9635    Retrieving amount of instruments of a file</h3>
9636    
9637    <p>The front-end can retrieve the amount of instruments
9638                        within a given instrument file by sending the
9639                        following command:
9640    </p>
9641    <p>
9642                            </p>
9643    <blockquote class="text">
9644    <p>GET FILE INSTRUMENTS &lt;filename&gt;
9645    </p>
9646    </blockquote><p>
9647                        
9648    </p>
9649    <p>Where &lt;filename&gt; is the name of the instrument
9650                        file (encapsulated into apostrophes, supporting escape
9651                        sequences as described in chapter
9652                        "<a class='info' href='#character_set'>Character Set and Escape
9653                            Sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>").
9654    </p>
9655    <p>The sampler will try to ask all sampler engines,
9656                        whether they support the given file and ask the first
9657                        engine with a positive answer for the amount of
9658                        instruments.
9659    </p>
9660    <p>Possible Answers:
9661    </p>
9662    <p>
9663                            </p>
9664    <blockquote class="text">
9665    <p>On success, the sampler will answer by
9666                                   returning the amount of instruments.
9667                                
9668    </p>
9669    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
9670                                    </p>
9671    <blockquote class="text">
9672    <p>if the file could not be handled
9673    </p>
9674    </blockquote>
9675                                
9676    
9677    </blockquote><p>
9678                        
9679    </p>
9680    <p>Examples:
9681    </p>
9682    <p>
9683                            </p>
9684    <blockquote class="text">
9685    <p>C: "GET FILE INSTRUMENTS 'D:/Sounds/Foo.gig'"
9686    </p>
9687    <p>S: "10"
9688    </p>
9689    </blockquote><p>
9690                        
9691    </p>
9692    <a name="LIST FILE INSTRUMENTS"></a><br /><hr />
9693    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
9694    <a name="rfc.section.6.10.2"></a><h3>6.10.2.&nbsp;
9695    Retrieving all instruments of a file</h3>
9696    
9697    <p>The front-end can retrieve a list of all instruments
9698                        within a given instrument file by sending the
9699                        following command:
9700    </p>
9701    <p>
9702                            </p>
9703    <blockquote class="text">
9704    <p>LIST FILE INSTRUMENTS &lt;filename&gt;
9705    </p>
9706    </blockquote><p>
9707                        
9708    </p>
9709    <p>Where &lt;filename&gt; is the name of the instrument
9710                        file (encapsulated into apostrophes, supporting escape
9711                        sequences as described in chapter
9712                        "<a class='info' href='#character_set'>Character Set and Escape
9713                            Sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>").
9714    </p>
9715    <p>The sampler will try to ask all sampler engines,
9716                        whether they support the given file and ask the first
9717                        engine with a positive answer for a list of IDs for the
9718                        instruments in the given file.
9719    </p>
9720    <p>Possible Answers:
9721    </p>
9722    <p>
9723                            </p>
9724    <blockquote class="text">
9725    <p>On success, the sampler will answer by
9726                                   returning a comma separated list of
9727                                   instrument IDs.
9728                                
9729    </p>
9730    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
9731                                    </p>
9732    <blockquote class="text">
9733    <p>if the file could not be handled
9734    </p>
9735    </blockquote>
9736                                
9737    
9738    </blockquote><p>
9739                        
9740    </p>
9741    <p>Examples:
9742    </p>
9743    <p>
9744                            </p>
9745    <blockquote class="text">
9746    <p>C: "LIST FILE INSTRUMENTS 'D:/Sounds/Foo.gig'"
9747    </p>
9748    <p>S: "0,1,2,3,4,5,6,7,8,9"
9749    </p>
9750    </blockquote><p>
9751                        
9752    </p>
9753    <a name="GET FILE INSTRUMENT INFO"></a><br /><hr />
9754    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
9755    <a name="rfc.section.6.10.3"></a><h3>6.10.3.&nbsp;
9756    Retrieving informations about one instrument in a file</h3>
9757    
9758    <p>The front-end can retrieve detailed informations
9759                        about a specific instrument within a given instrument
9760                        file by sending the following command:
9761    </p>
9762    <p>
9763                            </p>
9764    <blockquote class="text">
9765    <p>GET FILE INSTRUMENT INFO &lt;filename&gt;
9766                                &lt;instr-id&gt;
9767    </p>
9768    </blockquote><p>
9769                        
9770    </p>
9771    <p>Where &lt;filename&gt; is the name of the instrument
9772                        file (encapsulated into apostrophes, supporting escape
9773                        sequences as described in chapter
9774                        "<a class='info' href='#character_set'>Character Set and Escape
9775                            Sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>") and &lt;instr-id&gt; is the numeric
9776                        instrument ID as returned by the
9777                        <a class='info' href='#LIST FILE INSTRUMENTS'>"LIST FILE INSTRUMENTS"<span> (</span><span class='info'>Retrieving all instruments of a file</span><span>)</span></a> command.
9778    </p>
9779    <p>The sampler will try to ask all sampler engines,
9780                        whether they support the given file and ask the first
9781                        engine with a positive answer for informations about the
9782                        specific instrument in the given file.
9783    </p>
9784    <p>Possible Answers:
9785    </p>
9786    <p>
9787                            </p>
9788    <blockquote class="text">
9789    <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
9790                                Each answer line begins with the settings category name
9791                                followed by a colon and then a space character &lt;SP&gt; and finally
9792                                the info character string to that setting category. At the
9793                                moment the following categories are defined:
9794    </p>
9795    <p>
9796                                    </p>
9797    <blockquote class="text">
9798    <p>NAME -
9799                                            </p>
9800    <blockquote class="text">
9801    <p>name of the instrument as
9802                                                stored in the instrument file
9803    </p>
9804    </blockquote>
9805                                        
9806    
9807    <p>FORMAT_FAMILY -
9808                                            </p>
9809    <blockquote class="text">
9810    <p>name of the sampler format
9811                                                of the given instrument
9812    </p>
9813    </blockquote>
9814                                        
9815    
9816    <p>FORMAT_VERSION -
9817                                            </p>
9818    <blockquote class="text">
9819    <p>version of the sampler format
9820                                                the instrumen is stored as
9821    </p>
9822    </blockquote>
9823                                        
9824    
9825    <p>PRODUCT -
9826                                            </p>
9827    <blockquote class="text">
9828    <p>official product name of the
9829                                                instrument as stored in the file
9830                                                
9831    </p>
9832    </blockquote>
9833                                        
9834    
9835    <p>ARTISTS -
9836                                            </p>
9837    <blockquote class="text">
9838    <p>artists / sample library
9839                                                vendor of the instrument
9840    </p>
9841    </blockquote>
9842                                        
9843    
9844    <p>KEY_BINDINGS -
9845                                            </p>
9846    <blockquote class="text">
9847    <p>comma separated list of integer values representing
9848                                                   the instrument's key mapping in the range between 0 .. 127,
9849                                                   reflecting the analog meaning of the MIDI specification.
9850    </p>
9851    </blockquote>
9852                                        
9853    
9854    <p>KEYSWITCH_BINDINGS -
9855                                            </p>
9856    <blockquote class="text">
9857    <p>comma separated list of integer values representing
9858                                                   the instrument's keyswitch mapping in the range between 0 .. 127,
9859                                                   reflecting the analog meaning of the MIDI specification.
9860    </p>
9861    </blockquote>
9862                                        
9863    
9864    </blockquote>
9865                                
9866    
9867    </blockquote><p>
9868                        
9869    </p>
9870    <p>The mentioned fields above don't have to be in particular order.
9871    </p>
9872    <p>Example:
9873    </p>
9874    <p>
9875                            </p>
9876    <blockquote class="text">
9877    <p>C: "GET FILE INSTRUMENT INFO 'D:/Sounds/Foo.gig' 0"
9878    </p>
9879    <p>S: "NAME: Lunatic Loops"
9880    </p>
9881    <p>&nbsp;&nbsp;&nbsp;"FORMAT_FAMILY: GIG"
9882    </p>
9883    <p>&nbsp;&nbsp;&nbsp;"FORMAT_VERSION: 3"
9884    </p>
9885    <p>&nbsp;&nbsp;&nbsp;"PRODUCT: The Backbone Bongo Beats"
9886    </p>
9887    <p>&nbsp;&nbsp;&nbsp;"ARTISTS: Jimmy the Fish"
9888    </p>
9889    <p>&nbsp;&nbsp;&nbsp;"."
9890    </p>
9891    </blockquote><p>
9892                        
9893    </p>
9894  <a name="command_syntax"></a><br /><hr />  <a name="command_syntax"></a><br /><hr />
9895  <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>  <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
9896  <a name="rfc.section.7"></a><h3>7.&nbsp;  <a name="rfc.section.7"></a><h3>7.&nbsp;
# Line 7010  Command Syntax</h3> Line 9991  Command Syntax</h3>
9991  <p>/ UNSUBSCRIBE SP unsubscribe_event  <p>/ UNSUBSCRIBE SP unsubscribe_event
9992                                    
9993  </p>  </p>
 <p>/ SELECT SP text  
                   
 </p>  
9994  <p>/ RESET SP reset_instruction  <p>/ RESET SP reset_instruction
9995                                    
9996  </p>  </p>
9997  <p>/ CLEAR SP clear_instruction  <p>/ CLEAR SP clear_instruction
9998                                    
9999  </p>  </p>
10000    <p>/ FIND SP find_instruction
10001                    
10002    </p>
10003    <p>/ MOVE SP move_instruction
10004                    
10005    </p>
10006    <p>/ COPY SP copy_instruction
10007                    
10008    </p>
10009    <p>/ EDIT SP edit_instruction
10010                    
10011    </p>
10012    <p>/ FORMAT SP format_instruction
10013                    
10014    </p>
10015    <p>/ SEND SP send_instruction
10016                    
10017    </p>
10018  <p>/ RESET  <p>/ RESET
10019                                    
10020  </p>  </p>
# Line 7034  Command Syntax</h3> Line 10030  Command Syntax</h3>
10030  <p>CHANNEL  <p>CHANNEL
10031                                    
10032  </p>  </p>
10033    <p>/ DB_INSTRUMENT_DIRECTORY SP db_path
10034                    
10035    </p>
10036    <p>/ DB_INSTRUMENTS SP NON_MODAL SP scan_mode SP db_path SP filename
10037                    
10038    </p>
10039    <p>/ DB_INSTRUMENTS SP NON_MODAL SP scan_mode SP FILE_AS_DIR SP db_path SP filename
10040                    
10041    </p>
10042    <p>/ DB_INSTRUMENTS SP scan_mode SP db_path SP filename
10043                    
10044    </p>
10045    <p>/ DB_INSTRUMENTS SP scan_mode SP FILE_AS_DIR SP db_path SP filename
10046                    
10047    </p>
10048    <p>/ DB_INSTRUMENTS SP NON_MODAL SP db_path SP filename
10049                    
10050    </p>
10051    <p>/ DB_INSTRUMENTS SP NON_MODAL SP db_path SP filename SP instrument_index
10052                    
10053    </p>
10054    <p>/ DB_INSTRUMENTS SP db_path SP filename
10055                    
10056    </p>
10057    <p>/ DB_INSTRUMENTS SP db_path SP filename SP instrument_index
10058                    
10059    </p>
10060  <p>/ MIDI_INSTRUMENT_MAP  <p>/ MIDI_INSTRUMENT_MAP
10061                                    
10062  </p>  </p>
# Line 7061  Command Syntax</h3> Line 10084  Command Syntax</h3>
10084  <p>/ CHANNEL_COUNT  <p>/ CHANNEL_COUNT
10085                                    
10086  </p>  </p>
10087    <p>/ CHANNEL_MIDI
10088                    
10089    </p>
10090    <p>/ DEVICE_MIDI
10091                    
10092    </p>
10093  <p>/ VOICE_COUNT  <p>/ VOICE_COUNT
10094                                    
10095  </p>  </p>
# Line 7073  Command Syntax</h3> Line 10102  Command Syntax</h3>
10102  <p>/ CHANNEL_INFO  <p>/ CHANNEL_INFO
10103                                    
10104  </p>  </p>
10105    <p>/ FX_SEND_COUNT
10106                    
10107    </p>
10108    <p>/ FX_SEND_INFO
10109                    
10110    </p>
10111  <p>/ MIDI_INSTRUMENT_MAP_COUNT  <p>/ MIDI_INSTRUMENT_MAP_COUNT
10112                                    
10113  </p>  </p>
# Line 7085  Command Syntax</h3> Line 10120  Command Syntax</h3>
10120  <p>/ MIDI_INSTRUMENT_INFO  <p>/ MIDI_INSTRUMENT_INFO
10121                                    
10122  </p>  </p>
10123    <p>/ DB_INSTRUMENT_DIRECTORY_COUNT
10124                    
10125    </p>
10126    <p>/ DB_INSTRUMENT_DIRECTORY_INFO
10127                    
10128    </p>
10129    <p>/ DB_INSTRUMENT_COUNT
10130                    
10131    </p>
10132    <p>/ DB_INSTRUMENT_INFO
10133                    
10134    </p>
10135    <p>/ DB_INSTRUMENTS_JOB_INFO
10136                    
10137    </p>
10138  <p>/ MISCELLANEOUS  <p>/ MISCELLANEOUS
10139                                    
10140  </p>  </p>
10141    <p>/ TOTAL_STREAM_COUNT
10142                    
10143    </p>
10144  <p>/ TOTAL_VOICE_COUNT  <p>/ TOTAL_VOICE_COUNT
10145                                    
10146  </p>  </p>
10147    <p>/ GLOBAL_INFO
10148                    
10149    </p>
10150  </blockquote><p>  </blockquote><p>
10151    
10152  </p>  </p>
# Line 7112  Command Syntax</h3> Line 10168  Command Syntax</h3>
10168  <p>/ CHANNEL_COUNT  <p>/ CHANNEL_COUNT
10169                                    
10170  </p>  </p>
10171    <p>/ CHANNEL_MIDI
10172                    
10173    </p>
10174    <p>/ DEVICE_MIDI
10175                    
10176    </p>
10177  <p>/ VOICE_COUNT  <p>/ VOICE_COUNT
10178                                    
10179  </p>  </p>
# Line 7124  Command Syntax</h3> Line 10186  Command Syntax</h3>
10186  <p>/ CHANNEL_INFO  <p>/ CHANNEL_INFO
10187                                    
10188  </p>  </p>
10189    <p>/ FX_SEND_COUNT
10190                    
10191    </p>
10192    <p>/ FX_SEND_INFO
10193                    
10194    </p>
10195  <p>/ MIDI_INSTRUMENT_MAP_COUNT  <p>/ MIDI_INSTRUMENT_MAP_COUNT
10196                                    
10197  </p>  </p>
# Line 7136  Command Syntax</h3> Line 10204  Command Syntax</h3>
10204  <p>/ MIDI_INSTRUMENT_INFO  <p>/ MIDI_INSTRUMENT_INFO
10205                                    
10206  </p>  </p>
10207    <p>/ DB_INSTRUMENT_DIRECTORY_COUNT
10208                    
10209    </p>
10210    <p>/ DB_INSTRUMENT_DIRECTORY_INFO
10211                    
10212    </p>
10213    <p>/ DB_INSTRUMENT_COUNT
10214                    
10215    </p>
10216    <p>/ DB_INSTRUMENT_INFO
10217                    
10218    </p>
10219    <p>/ DB_INSTRUMENTS_JOB_INFO
10220                    
10221    </p>
10222  <p>/ MISCELLANEOUS  <p>/ MISCELLANEOUS
10223                                    
10224  </p>  </p>
10225    <p>/ TOTAL_STREAM_COUNT
10226                    
10227    </p>
10228  <p>/ TOTAL_VOICE_COUNT  <p>/ TOTAL_VOICE_COUNT
10229                                    
10230  </p>  </p>
10231    <p>/ GLOBAL_INFO
10232                    
10233    </p>
10234  </blockquote><p>  </blockquote><p>
10235    
10236  </p>  </p>
10237  <p>map_instruction =  <p>map_instruction =
10238          </p>          </p>
10239  <blockquote class="text">  <blockquote class="text">
10240  <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
10241                                    
10242  </p>  </p>
10243  <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
10244                                    
10245  </p>  </p>
10246  <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
10247                                    
10248  </p>  </p>
10249  <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
10250                                    
10251  </p>  </p>
10252  </blockquote><p>  </blockquote><p>
# Line 7184  Command Syntax</h3> Line 10273  Command Syntax</h3>
10273  <p>/ MIDI_INSTRUMENT_MAP SP ALL  <p>/ MIDI_INSTRUMENT_MAP SP ALL
10274                                    
10275  </p>  </p>
10276    <p>/ DB_INSTRUMENT_DIRECTORY SP FORCE SP db_path
10277                    
10278    </p>
10279    <p>/ DB_INSTRUMENT_DIRECTORY SP db_path
10280                    
10281    </p>
10282    <p>/ DB_INSTRUMENT SP db_path
10283                    
10284    </p>
10285  </blockquote><p>  </blockquote><p>
10286    
10287  </p>  </p>
# Line 7262  Command Syntax</h3> Line 10360  Command Syntax</h3>
10360  <p>/ SERVER SP INFO  <p>/ SERVER SP INFO
10361                                    
10362  </p>  </p>
10363    <p>/ TOTAL_STREAM_COUNT
10364                    
10365    </p>
10366  <p>/ TOTAL_VOICE_COUNT  <p>/ TOTAL_VOICE_COUNT
10367                                    
10368  </p>  </p>
# Line 7289  Command Syntax</h3> Line 10390  Command Syntax</h3>
10390  <p>/ FX_SEND SP INFO SP sampler_channel SP fx_send_id  <p>/ FX_SEND SP INFO SP sampler_channel SP fx_send_id
10391                                    
10392  </p>  </p>
10393    <p>/ DB_INSTRUMENT_DIRECTORIES SP RECURSIVE SP db_path
10394                    
10395    </p>
10396    <p>/ DB_INSTRUMENT_DIRECTORIES SP db_path
10397                    
10398    </p>
10399    <p>/ DB_INSTRUMENT_DIRECTORY SP INFO SP db_path
10400                    
10401    </p>
10402    <p>/ DB_INSTRUMENTS SP RECURSIVE SP db_path
10403                    
10404    </p>
10405    <p>/ DB_INSTRUMENTS SP db_path
10406                    
10407    </p>
10408    <p>/ DB_INSTRUMENT SP INFO SP db_path
10409                    
10410    </p>
10411    <p>/ DB_INSTRUMENTS_JOB SP INFO SP number
10412                    
10413    </p>
10414  <p>/ VOLUME  <p>/ VOLUME
10415                                    
10416  </p>  </p>
10417    <p>/ VOICES
10418                    
10419    </p>
10420    <p>/ STREAMS
10421                    
10422    </p>
10423    <p>/ FILE SP INSTRUMENTS SP filename
10424                    
10425    </p>
10426    <p>/ FILE SP INSTRUMENT SP INFO SP filename SP instrument_index
10427                    
10428    </p>
10429  </blockquote><p>  </blockquote><p>
10430    
10431  </p>  </p>
# Line 7307  Command Syntax</h3> Line 10441  Command Syntax</h3>
10441  <p>/ MIDI_INPUT_DEVICE_PARAMETER SP number SP string '=' param_val_list  <p>/ MIDI_INPUT_DEVICE_PARAMETER SP number SP string '=' param_val_list
10442                                    
10443  </p>  </p>
10444    <p>/ MIDI_INPUT_PORT_PARAMETER SP number SP number SP string '=' NONE
10445                    
10446    </p>
10447  <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
10448                                    
10449  </p>  </p>
# Line 7316  Command Syntax</h3> Line 10453  Command Syntax</h3>
10453  <p>/ MIDI_INSTRUMENT_MAP SP NAME SP midi_map SP map_name  <p>/ MIDI_INSTRUMENT_MAP SP NAME SP midi_map SP map_name
10454                                    
10455  </p>  </p>
10456    <p>/ FX_SEND SP NAME SP sampler_channel SP fx_send_id SP fx_send_name
10457                    
10458    </p>
10459  <p>/ FX_SEND SP AUDIO_OUTPUT_CHANNEL SP sampler_channel SP fx_send_id SP audio_channel_index SP audio_channel_index  <p>/ FX_SEND SP AUDIO_OUTPUT_CHANNEL SP sampler_channel SP fx_send_id SP audio_channel_index SP audio_channel_index
10460                                    
10461  </p>  </p>
10462    <p>/ FX_SEND SP MIDI_CONTROLLER SP sampler_channel SP fx_send_id SP midi_ctrl
10463                    
10464    </p>
10465    <p>/ FX_SEND SP LEVEL SP sampler_channel SP fx_send_id SP volume_value
10466                    
10467    </p>
10468    <p>/ DB_INSTRUMENT_DIRECTORY SP NAME SP db_path SP stringval_escaped
10469                    
10470    </p>
10471    <p>/ DB_INSTRUMENT_DIRECTORY SP DESCRIPTION SP db_path SP stringval_escaped
10472                    
10473    </p>
10474    <p>/ DB_INSTRUMENT SP NAME SP db_path SP stringval_escaped
10475                    
10476    </p>
10477    <p>/ DB_INSTRUMENT SP DESCRIPTION SP db_path SP stringval_escaped
10478                    
10479    </p>
10480    <p>/ DB_INSTRUMENT SP FILE_PATH SP filename SP filename
10481                    
10482    </p>
10483  <p>/ ECHO SP boolean  <p>/ ECHO SP boolean
10484                                    
10485  </p>  </p>
10486  <p>/ VOLUME SP volume_value  <p>/ VOLUME SP volume_value
10487                                    
10488  </p>  </p>
10489    <p>/ VOICES SP number
10490                    
10491    </p>
10492    <p>/ STREAMS SP number
10493                    
10494    </p>
10495  </blockquote><p>  </blockquote><p>
10496    
10497  </p>  </p>
# Line 7373  Command Syntax</h3> Line 10540  Command Syntax</h3>
10540  </blockquote><p>  </blockquote><p>
10541    
10542  </p>  </p>
10543    <p>find_instruction =
10544            </p>
10545    <blockquote class="text">
10546    <p>DB_INSTRUMENTS SP NON_RECURSIVE SP db_path SP query_val_list
10547                    
10548    </p>
10549    <p>/ DB_INSTRUMENTS SP db_path SP query_val_list
10550                    
10551    </p>
10552    <p>/ DB_INSTRUMENT_DIRECTORIES SP NON_RECURSIVE SP db_path SP query_val_list
10553                    
10554    </p>
10555    <p>/ DB_INSTRUMENT_DIRECTORIES SP db_path SP query_val_list
10556                    
10557    </p>
10558    <p>/ LOST SP DB_INSTRUMENT_FILES
10559                    
10560    </p>
10561    </blockquote><p>
10562    
10563    </p>
10564    <p>move_instruction =
10565            </p>
10566    <blockquote class="text">
10567    <p>DB_INSTRUMENT_DIRECTORY SP db_path SP db_path
10568                    
10569    </p>
10570    <p>/ DB_INSTRUMENT SP db_path SP db_path
10571                    
10572    </p>
10573    </blockquote><p>
10574    
10575    </p>
10576    <p>copy_instruction =
10577            </p>
10578    <blockquote class="text">
10579    <p>DB_INSTRUMENT_DIRECTORY SP db_path SP db_path
10580                    
10581    </p>
10582    <p>/ DB_INSTRUMENT SP db_path SP db_path
10583                    
10584    </p>
10585    </blockquote><p>
10586    
10587    </p>
10588  <p>destroy_instruction =  <p>destroy_instruction =
10589          </p>          </p>
10590  <blockquote class="text">  <blockquote class="text">
# Line 7448  Command Syntax</h3> Line 10660  Command Syntax</h3>
10660  </blockquote><p>  </blockquote><p>
10661    
10662  </p>  </p>
10663    <p>edit_instruction =
10664            </p>
10665    <blockquote class="text">
10666    <p>CHANNEL SP INSTRUMENT SP sampler_channel
10667                    
10668    </p>
10669    </blockquote><p>
10670    
10671    </p>
10672    <p>format_instruction =
10673            </p>
10674    <blockquote class="text">
10675    <p>INSTRUMENTS_DB
10676                    
10677    </p>
10678    </blockquote><p>
10679    
10680    </p>
10681    <p>modal_arg =
10682            </p>
10683    <blockquote class="text">
10684    <p>/* epsilon (empty argument) */
10685                    
10686    </p>
10687    <p>/ NON_MODAL SP
10688                    
10689    </p>
10690    </blockquote><p>
10691    
10692    </p>
10693  <p>key_val_list =  <p>key_val_list =
10694          </p>          </p>
10695  <blockquote class="text">  <blockquote class="text">
# Line 7505  Command Syntax</h3> Line 10747  Command Syntax</h3>
10747  <p>/ FX_SENDS SP sampler_channel  <p>/ FX_SENDS SP sampler_channel
10748                                    
10749  </p>  </p>
10750    <p>/ DB_INSTRUMENT_DIRECTORIES SP RECURSIVE SP db_path
10751                    
10752    </p>
10753    <p>/ DB_INSTRUMENT_DIRECTORIES SP db_path
10754                    
10755    </p>
10756    <p>/ DB_INSTRUMENTS SP RECURSIVE SP db_path
10757                    
10758    </p>
10759    <p>/ DB_INSTRUMENTS SP db_path
10760                    
10761    </p>
10762    <p>/ FILE SP INSTRUMENTS SP filename
10763                    
10764    </p>
10765    </blockquote><p>
10766    
10767    </p>
10768    <p>send_instruction =
10769            </p>
10770    <blockquote class="text">
10771    <p>CHANNEL SP MIDI_DATA SP string SP sampler_channel SP number SP number
10772                    
10773    </p>
10774  </blockquote><p>  </blockquote><p>
10775    
10776  </p>  </p>
# Line 7688  Command Syntax</h3> Line 10954  Command Syntax</h3>
10954  <p>filename =  <p>filename =
10955          </p>          </p>
10956  <blockquote class="text">  <blockquote class="text">
10957  <p>stringval  <p>path
10958                    
10959    </p>
10960    </blockquote><p>
10961    
10962    </p>
10963    <p>db_path =
10964            </p>
10965    <blockquote class="text">
10966    <p>path
10967                                    
10968  </p>  </p>
10969  </blockquote><p>  </blockquote><p>
# Line 7697  Command Syntax</h3> Line 10972  Command Syntax</h3>
10972  <p>map_name =  <p>map_name =
10973          </p>          </p>
10974  <blockquote class="text">  <blockquote class="text">
10975  <p>stringval  <p>stringval_escaped
10976                                    
10977  </p>  </p>
10978  </blockquote><p>  </blockquote><p>
# Line 7706  Command Syntax</h3> Line 10981  Command Syntax</h3>
10981  <p>entry_name =  <p>entry_name =
10982          </p>          </p>
10983  <blockquote class="text">  <blockquote class="text">
10984  <p>stringval  <p>stringval_escaped
10985                                    
10986  </p>  </p>
10987  </blockquote><p>  </blockquote><p>
# Line 7715  Command Syntax</h3> Line 10990  Command Syntax</h3>
10990  <p>fx_send_name =  <p>fx_send_name =
10991          </p>          </p>
10992  <blockquote class="text">  <blockquote class="text">
10993  <p>stringval  <p>stringval_escaped
10994                                    
10995  </p>  </p>
10996  </blockquote><p>  </blockquote><p>
# Line 7751  Command Syntax</h3> Line 11026  Command Syntax</h3>
11026  </blockquote><p>  </blockquote><p>
11027    
11028  </p>  </p>
11029    <p>query_val_list =
11030            </p>
11031    <blockquote class="text">
11032    <p>string '=' query_val
11033                    
11034    </p>
11035    <p>/ query_val_list SP string '=' query_val
11036                    
11037    </p>
11038    </blockquote><p>
11039    
11040    </p>
11041    <p>query_val =
11042            </p>
11043    <blockquote class="text">
11044    <p>text_escaped
11045                    
11046    </p>
11047    <p>/ stringval_escaped
11048                    
11049    </p>
11050    </blockquote><p>
11051    
11052    </p>
11053    <p>scan_mode =
11054            </p>
11055    <blockquote class="text">
11056    <p>RECURSIVE
11057                    
11058    </p>
11059    <p>/ NON_RECURSIVE
11060                    
11061    </p>
11062    <p>/ FLAT
11063                    
11064    </p>
11065    </blockquote><p>
11066    
11067    </p>
11068    <a name="character_set"></a><br /><hr />
11069    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
11070    <a name="rfc.section.7.1"></a><h3>7.1.&nbsp;
11071    Character Set and Escape Sequences</h3>
11072    
11073    <p>Older versions of this protocol up to and including v1.1 only
11074                    supported the standard ASCII character set (ASCII code 0 - 127)
11075                    <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
11076                    however support the Extended ASCII character set (ASCII code
11077                    0 - 255). The same group of younger protocols also support
11078                    escape sequences, but only for certain, explicitly declared
11079                    parts of the protocol. The supported escape sequences are
11080                    defined as follows:
11081    </p><table class="full" align="center" border="0" cellpadding="2" cellspacing="2">
11082    <col align="left"><col align="left">
11083    <tr><th align="left">ASCII Character Sequence</th><th align="left">Translated into (Name)</th></tr>
11084    <tr>
11085    <td align="left">\n</td>
11086    <td align="left">new line</td>
11087    </tr>
11088    <tr>
11089    <td align="left">\r</td>
11090    <td align="left">carriage return</td>
11091    </tr>
11092    <tr>
11093    <td align="left">\f</td>
11094    <td align="left">form feed</td>
11095    </tr>
11096    <tr>
11097    <td align="left">\t</td>
11098    <td align="left">horizontal tab</td>
11099    </tr>
11100    <tr>
11101    <td align="left">\v</td>
11102    <td align="left">vertical tab</td>
11103    </tr>
11104    <tr>
11105    <td align="left">\'</td>
11106    <td align="left">apostrophe</td>
11107    </tr>
11108    <tr>
11109    <td align="left">\"</td>
11110    <td align="left">quotation mark</td>
11111    </tr>
11112    <tr>
11113    <td align="left">\\</td>
11114    <td align="left">backslash</td>
11115    </tr>
11116    <tr>
11117    <td align="left">\OOO</td>
11118    <td align="left">three digit octal ASCII code of the character</td>
11119    </tr>
11120    <tr>
11121    <td align="left">\xHH</td>
11122    <td align="left">two digit hex ASCII code of the character</td>
11123    </tr>
11124    </table>
11125    <br clear="all" />
11126    
11127    <p>Notice: due to the transition of certain parts of the
11128                    protocol which now support escape sequences, a slight backward
11129                    incompatibility to protocols version v1.1 and younger has been
11130                    introduced. The only difference is that in parts of the protocol
11131                    where escape characters are now supported, a backslash characters
11132                    MUST be escaped as well (that is as double backslash), whereas
11133                    in the old versions a single backslash was sufficient.
11134    </p>
11135    <p>The following LSCP commands support escape sequences as part
11136                    of their filename / path based arguments and / or may contain
11137                    a filename / path with escape sequences in their response:
11138                    </p>
11139    <blockquote class="text">
11140    <p><a class='info' href='#LOAD INSTRUMENT'>"LOAD INSTRUMENT"<span> (</span><span class='info'>Loading an instrument</span><span>)</span></a>
11141    </p>
11142    <p><a class='info' href='#GET CHANNEL INFO'>"GET CHANNEL INFO"<span> (</span><span class='info'>Getting sampler channel information</span><span>)</span></a>
11143    </p>
11144    <p><a class='info' href='#MAP MIDI_INSTRUMENT'>"MAP MIDI_INSTRUMENT"<span> (</span><span class='info'>Create or replace a MIDI instrument map entry</span><span>)</span></a>
11145    </p>
11146    <p><a class='info' href='#GET MIDI_INSTRUMENT INFO'>"GET MIDI_INSTRUMENT INFO"<span> (</span><span class='info'>Get current settings of MIDI instrument map entry</span><span>)</span></a>
11147    </p>
11148    <p><a class='info' href='#ADD DB_INSTRUMENT_DIRECTORY'>"ADD DB_INSTRUMENT_DIRECTORY"<span> (</span><span class='info'>Creating a new instrument directory</span><span>)</span></a>
11149    </p>
11150    <p><a class='info' href='#ADD DB_INSTRUMENTS'>"ADD DB_INSTRUMENTS"<span> (</span><span class='info'>Adding instruments to the instruments database</span><span>)</span></a>
11151    </p>
11152    <p><a class='info' href='#REMOVE DB_INSTRUMENT_DIRECTORY'>"REMOVE DB_INSTRUMENT_DIRECTORY"<span> (</span><span class='info'>Deleting an instrument directory</span><span>)</span></a>
11153    </p>
11154    <p><a class='info' href='#REMOVE DB_INSTRUMENT'>"REMOVE DB_INSTRUMENT"<span> (</span><span class='info'>Removing an instrument</span><span>)</span></a>
11155    </p>
11156    <p><a class='info' href='#GET DB_INSTRUMENT_DIRECTORIES'>"GET DB_INSTRUMENT_DIRECTORIES"<span> (</span><span class='info'>Getting amount of instrument directories</span><span>)</span></a>
11157    </p>
11158    <p><a class='info' href='#LIST DB_INSTRUMENT_DIRECTORIES'>"LIST DB_INSTRUMENT_DIRECTORIES"<span> (</span><span class='info'>Listing all directories in specific directory</span><span>)</span></a>
11159    </p>
11160    <p><a class='info' href='#GET DB_INSTRUMENT_DIRECTORY INFO'>"GET DB_INSTRUMENT_DIRECTORY INFO"<span> (</span><span class='info'>Getting instrument directory information</span><span>)</span></a>
11161    </p>
11162    <p><a class='info' href='#GET DB_INSTRUMENTS'>"GET DB_INSTRUMENTS"<span> (</span><span class='info'>Getting amount of instruments</span><span>)</span></a>
11163    </p>
11164    <p><a class='info' href='#LIST DB_INSTRUMENTS'>"LIST DB_INSTRUMENTS"<span> (</span><span class='info'>Listing all instruments in specific directory</span><span>)</span></a>
11165    </p>
11166    <p><a class='info' href='#GET DB_INSTRUMENT INFO'>"GET DB_INSTRUMENT INFO"<span> (</span><span class='info'>Getting instrument information</span><span>)</span></a>
11167    </p>
11168    <p><a class='info' href='#SET DB_INSTRUMENT_DIRECTORY NAME'>"SET DB_INSTRUMENT_DIRECTORY NAME"<span> (</span><span class='info'>Renaming an instrument directory</span><span>)</span></a>
11169    </p>
11170    <p><a class='info' href='#SET DB_INSTRUMENT_DIRECTORY DESCRIPTION'>"SET DB_INSTRUMENT_DIRECTORY DESCRIPTION"<span> (</span><span class='info'>Changing the description of directory</span><span>)</span></a>
11171    </p>
11172    <p><a class='info' href='#SET DB_INSTRUMENT NAME'>"SET DB_INSTRUMENT NAME"<span> (</span><span class='info'>Renaming an instrument</span><span>)</span></a>
11173    </p>
11174    <p><a class='info' href='#SET DB_INSTRUMENT DESCRIPTION'>"SET DB_INSTRUMENT DESCRIPTION"<span> (</span><span class='info'>Changing the description of instrument</span><span>)</span></a>
11175    </p>
11176    <p><a class='info' href='#FIND DB_INSTRUMENTS'>"FIND DB_INSTRUMENTS"<span> (</span><span class='info'>Finding instruments</span><span>)</span></a>
11177    </p>
11178    <p><a class='info' href='#FIND DB_INSTRUMENT_DIRECTORIES'>"FIND DB_INSTRUMENT_DIRECTORIES"<span> (</span><span class='info'>Finding directories</span><span>)</span></a>
11179    </p>
11180    <p><a class='info' href='#MOVE DB_INSTRUMENT'>"MOVE DB_INSTRUMENT"<span> (</span><span class='info'>Moving an instrument</span><span>)</span></a>
11181    </p>
11182    <p><a class='info' href='#MOVE DB_INSTRUMENT_DIRECTORY'>"MOVE DB_INSTRUMENT_DIRECTORY"<span> (</span><span class='info'>Moving an instrument directory</span><span>)</span></a>
11183    </p>
11184    <p><a class='info' href='#COPY DB_INSTRUMENT'>"COPY DB_INSTRUMENT"<span> (</span><span class='info'>Copying instruments</span><span>)</span></a>
11185    </p>
11186    <p><a class='info' href='#COPY DB_INSTRUMENT_DIRECTORY'>"COPY DB_INSTRUMENT_DIRECTORY"<span> (</span><span class='info'>Copying instrument directories</span><span>)</span></a>
11187    </p>
11188    <p><a class='info' href='#FIND LOST DB_INSTRUMENT_FILES'>"FIND LOST DB_INSTRUMENT_FILES"<span> (</span><span class='info'>Checking for lost instrument files</span><span>)</span></a>
11189    </p>
11190    <p><a class='info' href='#SET DB_INSTRUMENT FILE_PATH'>"SET DB_INSTRUMENT FILE_PATH"<span> (</span><span class='info'>Replacing an instrument file</span><span>)</span></a>
11191    </p>
11192    <p><a class='info' href='#GET FILE INSTRUMENTS'>"GET FILE INSTRUMENTS"<span> (</span><span class='info'>Retrieving amount of instruments of a file</span><span>)</span></a>
11193    </p>
11194    <p><a class='info' href='#LIST FILE INSTRUMENTS'>"LIST FILE INSTRUMENTS"<span> (</span><span class='info'>Retrieving all instruments of a file</span><span>)</span></a>
11195    </p>
11196    <p><a class='info' href='#GET FILE INSTRUMENT INFO'>"GET FILE INSTRUMENT INFO"<span> (</span><span class='info'>Retrieving informations about one instrument in a file</span><span>)</span></a>
11197    </p>
11198    </blockquote><p>
11199                    Note that the forward slash character ('/') has a special meaning in
11200                    filename / path based arguments: it acts as separator of the nodes in
11201                    the path, thus if a directory- or filename includes a forward slash
11202                    (not intended as path node separator), you MUST escape that slash
11203                    either with the respective hex escape sequence ("\x2f") or with the
11204                    respective octal escape sequence ("\057").
11205                    
11206    </p>
11207    <p>
11208                    Note for Windows: file path arguments in LSCP are expected
11209                    to use forward slashes as directory node separator similar
11210                    to Unix based operating systems. In contrast to Unix however
11211                    a Windows typical drive character is expected to be
11212                    prefixed to the path. That is an original Windows file path
11213                    like "D:\Sounds\My.gig" would become in LSCP:
11214                    "D:/Sounds/My.gig".
11215                    
11216    </p>
11217    <p>
11218                    The following LSCP commands even support escape sequences as
11219                    part of at least one of their text-based arguments (i.e. entity name,
11220                    description) and / or may contain escape sequences in at least one of
11221                    their text-based fields in their response:
11222                    </p>
11223    <blockquote class="text">
11224    <p><a class='info' href='#GET SERVER INFO'>"GET SERVER INFO"<span> (</span><span class='info'>General sampler informations</span><span>)</span></a>
11225    </p>
11226    <p><a class='info' href='#GET ENGINE INFO'>"GET ENGINE INFO"<span> (</span><span class='info'>Getting information about an engine</span><span>)</span></a>
11227    </p>
11228    <p><a class='info' href='#GET CHANNEL INFO'>"GET CHANNEL INFO"<span> (</span><span class='info'>Getting sampler channel information</span><span>)</span></a>
11229    </p>
11230    <p><a class='info' href='#CREATE FX_SEND'>"CREATE FX_SEND"<span> (</span><span class='info'>Adding an effect send to a sampler channel</span><span>)</span></a>
11231    </p>
11232    <p><a class='info' href='#GET FX_SEND INFO'>"GET FX_SEND INFO"<span> (</span><span class='info'>Getting effect send information</span><span>)</span></a>
11233    </p>
11234    <p><a class='info' href='#SET FX_SEND NAME'>"SET FX_SEND NAME"<span> (</span><span class='info'>Changing effect send's name</span><span>)</span></a>
11235    </p>
11236    <p><a class='info' href='#GET MIDI_INSTRUMENT INFO'>"GET MIDI_INSTRUMENT INFO"<span> (</span><span class='info'>Get current settings of MIDI instrument map entry</span><span>)</span></a>
11237    </p>
11238    <p><a class='info' href='#GET MIDI_INSTRUMENT_MAP INFO'>"GET MIDI_INSTRUMENT_MAP INFO"<span> (</span><span class='info'>Getting MIDI instrument map information</span><span>)</span></a>
11239    </p>
11240    <p><a class='info' href='#ADD MIDI_INSTRUMENT_MAP'>"ADD MIDI_INSTRUMENT_MAP"<span> (</span><span class='info'>Create a new MIDI instrument map</span><span>)</span></a>
11241    </p>
11242    <p><a class='info' href='#MAP MIDI_INSTRUMENT'>"MAP MIDI_INSTRUMENT"<span> (</span><span class='info'>Create or replace a MIDI instrument map entry</span><span>)</span></a>
11243    </p>
11244    <p><a class='info' href='#SET MIDI_INSTRUMENT_MAP NAME'>"SET MIDI_INSTRUMENT_MAP NAME"<span> (</span><span class='info'>Renaming a MIDI instrument map</span><span>)</span></a>
11245    </p>
11246    <p><a class='info' href='#GET DB_INSTRUMENT_DIRECTORY INFO'>"GET DB_INSTRUMENT_DIRECTORY INFO"<span> (</span><span class='info'>Getting instrument directory information</span><span>)</span></a>
11247    </p>
11248    <p><a class='info' href='#SET DB_INSTRUMENT_DIRECTORY NAME'>"SET DB_INSTRUMENT_DIRECTORY NAME"<span> (</span><span class='info'>Renaming an instrument directory</span><span>)</span></a>
11249    </p>
11250    <p><a class='info' href='#SET DB_INSTRUMENT_DIRECTORY DESCRIPTION'>"SET DB_INSTRUMENT_DIRECTORY DESCRIPTION"<span> (</span><span class='info'>Changing the description of directory</span><span>)</span></a>
11251    </p>
11252    <p><a class='info' href='#FIND DB_INSTRUMENT_DIRECTORIES'>"FIND DB_INSTRUMENT_DIRECTORIES"<span> (</span><span class='info'>Finding directories</span><span>)</span></a>
11253    </p>
11254    <p><a class='info' href='#GET DB_INSTRUMENT INFO'>"GET DB_INSTRUMENT INFO"<span> (</span><span class='info'>Getting instrument information</span><span>)</span></a>
11255    </p>
11256    <p><a class='info' href='#SET DB_INSTRUMENT NAME'>"SET DB_INSTRUMENT NAME"<span> (</span><span class='info'>Renaming an instrument</span><span>)</span></a>
11257    </p>
11258    <p><a class='info' href='#SET DB_INSTRUMENT DESCRIPTION'>"SET DB_INSTRUMENT DESCRIPTION"<span> (</span><span class='info'>Changing the description of instrument</span><span>)</span></a>
11259    </p>
11260    <p><a class='info' href='#FIND DB_INSTRUMENTS'>"FIND DB_INSTRUMENTS"<span> (</span><span class='info'>Finding instruments</span><span>)</span></a>
11261    </p>
11262    </blockquote><p>
11263                    Please note that these lists are manually maintained. If you
11264                    find a command that also supports escape sequences we forgot to
11265                    mention here, please report it!
11266                    
11267    </p>
11268  <a name="events"></a><br /><hr />  <a name="events"></a><br /><hr />
11269  <table 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>
11270  <a name="rfc.section.8"></a><h3>8.&nbsp;  <a name="rfc.section.8"></a><h3>8.&nbsp;
# Line 7911  Number of sampler channels changed</h3> Line 11425  Number of sampler channels changed</h3>
11425  <p>where &lt;channels&gt; will be replaced by the new number  <p>where &lt;channels&gt; will be replaced by the new number
11426                  of sampler channels.                  of sampler channels.
11427  </p>  </p>
11428  <a name="SUBSCRIBE VOICE_COUNT"></a><br /><hr />  <a name="SUBSCRIBE CHANNEL_MIDI"></a><br /><hr />
11429  <table 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>
11430  <a name="rfc.section.8.6"></a><h3>8.6.&nbsp;  <a name="rfc.section.8.6"></a><h3>8.6.&nbsp;
11431    MIDI data on a sampler channel arrived</h3>
11432    
11433    <p>Client may want to be notified when MIDI data arrive on sampler channels on
11434                    back-end side, by issuing the following command:
11435    </p>
11436    <p>
11437                        </p>
11438    <blockquote class="text">
11439    <p>SUBSCRIBE CHANNEL_MIDI
11440    </p>
11441    </blockquote><p>
11442                    
11443    </p>
11444    <p>Server will start sending one of the the following notification messages:
11445    </p>
11446    <p>
11447                        </p>
11448    <blockquote class="text">
11449    <p>"NOTIFY:CHANNEL_MIDI:&lt;channel-id&gt; NOTE_ON  &lt;note&gt; &lt;velocity&gt;"
11450    </p>
11451    <p>"NOTIFY:CHANNEL_MIDI:&lt;channel-id&gt; NOTE_OFF &lt;note&gt; &lt;velocity&gt;"
11452    </p>
11453    </blockquote><p>
11454                    
11455    </p>
11456    <p>where &lt;channel-id&gt; will be replaced by the ID of the sampler channel where the MIDI
11457                    data arrived. &lt;note&gt; and &lt;velocity&gt; are integer values in the range between
11458                    0 .. 127, reflecting the analog meaning of the MIDI specification.
11459                    
11460    </p>
11461    <p>CAUTION: no guarantee whatsoever will be made that MIDI events are actually all
11462                    delivered by this mechanism! With other words: events could be lost at any time!
11463                    This restriction was made to keep the RT-safeness of the backend's MIDI and audio
11464                    thread unaffected by this feature.
11465    </p>
11466    <a name="SUBSCRIBE DEVICE_MIDI"></a><br /><hr />
11467    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
11468    <a name="rfc.section.8.7"></a><h3>8.7.&nbsp;
11469    MIDI data on a MIDI input device arrived</h3>
11470    
11471    <p>Client may want to be notified when MIDI data arrive on MIDI input devices by issuing the following command:
11472    </p>
11473    <p>
11474                                </p>
11475    <blockquote class="text">
11476    <p>SUBSCRIBE DEVICE_MIDI
11477    </p>
11478    </blockquote><p>
11479                        
11480    </p>
11481    <p>Server will start sending one of the the following notification messages:
11482    </p>
11483    <p>
11484                                </p>
11485    <blockquote class="text">
11486    <p>"NOTIFY:DEVICE_MIDI:&lt;device-id&gt; &lt;port-id&gt; NOTE_ON &lt;note&gt; &lt;velocity&gt;"
11487    </p>
11488    <p>"NOTIFY:DEVICE_MIDI:&lt;device-id&gt; &lt;port-id&gt; NOTE_OFF &lt;note&gt; &lt;velocity&gt;"
11489    </p>
11490    </blockquote><p>
11491                        
11492    </p>
11493    <p>where &lt;device-id&gt; &lt;port-id&gt; will be replaced
11494                           by the IDs of the respective MIDI input device and the device's MIDI port where the MIDI
11495                           data arrived. &lt;note&gt; and &lt;velocity&gt; are integer values in the range between
11496                           0 .. 127, reflecting the analog meaning of the MIDI specification.
11497                        
11498    </p>
11499    <p>CAUTION: no guarantee whatsoever will be made that MIDI events are actually all
11500                           delivered by this mechanism! With other words: events could be lost at any time!
11501                           This restriction was made to keep the RT-safeness of the backend's MIDI and audio
11502                           thread unaffected by this feature.
11503    </p>
11504    <a name="SUBSCRIBE VOICE_COUNT"></a><br /><hr />
11505    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
11506    <a name="rfc.section.8.8"></a><h3>8.8.&nbsp;
11507  Number of active voices changed</h3>  Number of active voices changed</h3>
11508    
11509  <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 7932  Number of active voices changed</h3> Line 11522  Number of active voices changed</h3>
11522  <p>  <p>
11523                      </p>                      </p>
11524  <blockquote class="text">  <blockquote class="text">
11525  <p>"NOTIFY:VOICE_COUNT:&lt;sampler-channel&gt; &lt;voices&gt;  <p>"NOTIFY:VOICE_COUNT:&lt;sampler-channel&gt; &lt;voices&gt;"
11526  </p>  </p>
11527  </blockquote><p>  </blockquote><p>
11528                                    
# Line 7943  Number of active voices changed</h3> Line 11533  Number of active voices changed</h3>
11533  </p>  </p>
11534  <a name="SUBSCRIBE STREAM_COUNT"></a><br /><hr />  <a name="SUBSCRIBE STREAM_COUNT"></a><br /><hr />
11535  <table 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>
11536  <a name="rfc.section.8.7"></a><h3>8.7.&nbsp;  <a name="rfc.section.8.9"></a><h3>8.9.&nbsp;
11537  Number of active disk streams changed</h3>  Number of active disk streams changed</h3>
11538    
11539  <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 7973  Number of active disk streams changed</h Line 11563  Number of active disk streams changed</h
11563  </p>  </p>
11564  <a name="SUBSCRIBE BUFFER_FILL"></a><br /><hr />  <a name="SUBSCRIBE BUFFER_FILL"></a><br /><hr />
11565  <table 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>
11566  <a name="rfc.section.8.8"></a><h3>8.8.&nbsp;  <a name="rfc.section.8.10"></a><h3>8.10.&nbsp;
11567  Disk stream buffer fill state changed</h3>  Disk stream buffer fill state changed</h3>
11568    
11569  <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 8004  Disk stream buffer fill state changed</h Line 11594  Disk stream buffer fill state changed</h
11594  </p>  </p>
11595  <a name="SUBSCRIBE CHANNEL_INFO"></a><br /><hr />  <a name="SUBSCRIBE CHANNEL_INFO"></a><br /><hr />
11596  <table 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>
11597  <a name="rfc.section.8.9"></a><h3>8.9.&nbsp;  <a name="rfc.section.8.11"></a><h3>8.11.&nbsp;
11598  Channel information changed</h3>  Channel information changed</h3>
11599    
11600  <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 8035  Channel information changed</h3> Line 11625  Channel information changed</h3>
11625                  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
11626                  message is sufficient here.                  message is sufficient here.
11627  </p>  </p>
11628    <a name="SUBSCRIBE FX_SEND_COUNT"></a><br /><hr />
11629    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
11630    <a name="rfc.section.8.12"></a><h3>8.12.&nbsp;
11631    Number of effect sends changed</h3>
11632    
11633    <p>Client may want to be notified when the number of effect sends on
11634                    a particular sampler channel is changed by issuing the following command:
11635    </p>
11636    <p>
11637                        </p>
11638    <blockquote class="text">
11639    <p>SUBSCRIBE FX_SEND_COUNT
11640    </p>
11641    </blockquote><p>
11642                    
11643    </p>
11644    <p>Server will start sending the following notification messages:
11645    </p>
11646    <p>
11647                        </p>
11648    <blockquote class="text">
11649    <p>"NOTIFY:FX_SEND_COUNT:&lt;channel-id&gt; &lt;fx-sends&gt;"
11650    </p>
11651    </blockquote><p>
11652                    
11653    </p>
11654    <p>where &lt;channel-id&gt; will be replaced by the numerical ID of the sampler
11655                    channel, on which the effect sends number is changed and &lt;fx-sends&gt; will
11656                    be replaced by the new number of effect sends on that channel.
11657    </p>
11658    <a name="SUBSCRIBE FX_SEND_INFO"></a><br /><hr />
11659    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
11660    <a name="rfc.section.8.13"></a><h3>8.13.&nbsp;
11661    Effect send information changed</h3>
11662    
11663    <p>Client may want to be notified when changes were made to effect sends on a
11664                    a particular sampler channel by issuing the following command:
11665    </p>
11666    <p>
11667                        </p>
11668    <blockquote class="text">
11669    <p>SUBSCRIBE FX_SEND_INFO
11670    </p>
11671    </blockquote><p>
11672                    
11673    </p>
11674    <p>Server will start sending the following notification messages:
11675    </p>
11676    <p>
11677                        </p>
11678    <blockquote class="text">
11679    <p>"NOTIFY:FX_SEND_INFO:&lt;channel-id&gt; &lt;fx-send-id&gt;"
11680    </p>
11681    </blockquote><p>
11682                    
11683    </p>
11684    <p>where &lt;channel-id&gt; will be replaced by the numerical ID of the sampler
11685                    channel, on which an effect send entity is changed and &lt;fx-send-id&gt; will
11686                    be replaced by the numerical ID of the changed effect send.
11687    </p>
11688  <a name="SUBSCRIBE TOTAL_VOICE_COUNT"></a><br /><hr />  <a name="SUBSCRIBE TOTAL_VOICE_COUNT"></a><br /><hr />
11689  <table 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>
11690  <a name="rfc.section.8.10"></a><h3>8.10.&nbsp;  <a name="rfc.section.8.14"></a><h3>8.14.&nbsp;
11691  Total number of active voices changed</h3>  Total number of active voices changed</h3>
11692    
11693  <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 8056  Total number of active voices changed</h Line 11706  Total number of active voices changed</h
11706  <p>  <p>
11707                      </p>                      </p>
11708  <blockquote class="text">  <blockquote class="text">
11709  <p>"NOTIFY:TOTAL_VOICE_COUNT:&lt;voices&gt;  <p>"NOTIFY:TOTAL_VOICE_COUNT:&lt;voices&gt;"
11710  </p>  </p>
11711  </blockquote><p>  </blockquote><p>
11712                                    
# Line 8064  Total number of active voices changed</h Line 11714  Total number of active voices changed</h
11714  <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
11715                  all currently active voices.                  all currently active voices.
11716  </p>  </p>
11717    <a name="SUBSCRIBE TOTAL_STREAM_COUNT"></a><br /><hr />
11718    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
11719    <a name="rfc.section.8.15"></a><h3>8.15.&nbsp;
11720    Total number of active disk streams changed</h3>
11721    
11722    <p>Client may want to be notified when the total number of disk streams on the
11723                    back-end changes by issuing the following command:
11724    </p>
11725    <p>
11726                        </p>
11727    <blockquote class="text">
11728    <p>SUBSCRIBE TOTAL_STREAM_COUNT
11729    </p>
11730    </blockquote><p>
11731                    
11732    </p>
11733    <p>Server will start sending the following notification messages:
11734    </p>
11735    <p>
11736                        </p>
11737    <blockquote class="text">
11738    <p>"NOTIFY:TOTAL_STREAM_COUNT:&lt;streams&gt;"
11739    </p>
11740    </blockquote><p>
11741                    
11742    </p>
11743    <p>where &lt;streams&gt; will be replaced by the new number of
11744                    all currently active disk streams.
11745    </p>
11746  <a name="SUBSCRIBE MIDI_INSTRUMENT_MAP_COUNT"></a><br /><hr />  <a name="SUBSCRIBE MIDI_INSTRUMENT_MAP_COUNT"></a><br /><hr />
11747  <table 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>
11748  <a name="rfc.section.8.11"></a><h3>8.11.&nbsp;  <a name="rfc.section.8.16"></a><h3>8.16.&nbsp;
11749  Number of MIDI instrument maps changed</h3>  Number of MIDI instrument maps changed</h3>
11750    
11751  <p>Client may want to be notified when the number of MIDI instrument maps on the  <p>Client may want to be notified when the number of MIDI instrument maps on the
# Line 8095  Number of MIDI instrument maps changed</ Line 11774  Number of MIDI instrument maps changed</
11774  </p>  </p>
11775  <a name="SUBSCRIBE MIDI_INSTRUMENT_MAP_INFO"></a><br /><hr />  <a name="SUBSCRIBE MIDI_INSTRUMENT_MAP_INFO"></a><br /><hr />
11776  <table 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>
11777  <a name="rfc.section.8.12"></a><h3>8.12.&nbsp;  <a name="rfc.section.8.17"></a><h3>8.17.&nbsp;
11778  MIDI instrument map information changed</h3>  MIDI instrument map information changed</h3>
11779    
11780  <p>Client may want to be notified when changes were made to MIDI instrument maps on the  <p>Client may want to be notified when changes were made to MIDI instrument maps on the
# Line 8128  MIDI instrument map information changed< Line 11807  MIDI instrument map information changed<
11807  </p>  </p>
11808  <a name="SUBSCRIBE MIDI_INSTRUMENT_COUNT"></a><br /><hr />  <a name="SUBSCRIBE MIDI_INSTRUMENT_COUNT"></a><br /><hr />
11809  <table 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>
11810  <a name="rfc.section.8.13"></a><h3>8.13.&nbsp;  <a name="rfc.section.8.18"></a><h3>8.18.&nbsp;
11811  Number of MIDI instruments changed</h3>  Number of MIDI instruments changed</h3>
11812    
11813  <p>Client may want to be notified when the number of MIDI instrument maps on the  <p>Client may want to be notified when the number of MIDI instrument maps on the
# Line 8158  Number of MIDI instruments changed</h3> Line 11837  Number of MIDI instruments changed</h3>
11837  </p>  </p>
11838  <a name="SUBSCRIBE MIDI_INSTRUMENT_INFO"></a><br /><hr />  <a name="SUBSCRIBE MIDI_INSTRUMENT_INFO"></a><br /><hr />
11839  <table 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>
11840  <a name="rfc.section.8.14"></a><h3>8.14.&nbsp;  <a name="rfc.section.8.19"></a><h3>8.19.&nbsp;
11841  MIDI instrument information changed</h3>  MIDI instrument information changed</h3>
11842    
11843  <p>Client may want to be notified when changes were made to MIDI instruments on the  <p>Client may want to be notified when changes were made to MIDI instruments on the
# Line 8190  MIDI instrument information changed</h3> Line 11869  MIDI instrument information changed</h3>
11869                  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
11870                  message is sufficient here.                  message is sufficient here.
11871  </p>  </p>
11872    <a name="SUBSCRIBE GLOBAL_INFO"></a><br /><hr />
11873    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
11874    <a name="rfc.section.8.20"></a><h3>8.20.&nbsp;
11875    Global settings changed</h3>
11876    
11877    <p>Client may want to be notified when changes to the global settings
11878                    of the sampler were made by issuing the following command:
11879    </p>
11880    <p>
11881                        </p>
11882    <blockquote class="text">
11883    <p>SUBSCRIBE GLOBAL_INFO
11884    </p>
11885    </blockquote><p>
11886                    
11887    </p>
11888    <p>Server will start sending the following types of notification messages:
11889    </p>
11890    <p>
11891                        </p>
11892    <blockquote class="text">
11893    <p>"NOTIFY:GLOBAL_INFO:VOLUME &lt;volume&gt;" - Notifies that the
11894                            golbal volume of the sampler is changed, where &lt;volume&gt; will be
11895                            replaced by the optional dotted floating point value, reflecting the
11896                            new global volume parameter.
11897    </p>
11898    </blockquote><p>
11899                        </p>
11900    <blockquote class="text">
11901    <p>"NOTIFY:GLOBAL_INFO:VOICES &lt;max-voices&gt;" - Notifies that the
11902                            golbal limit of the sampler for maximum voices is changed, where
11903                            &lt;max-voices&gt; will be an integer value, reflecting the
11904                            new global voice limit parameter.
11905    </p>
11906    </blockquote><p>
11907                        </p>
11908    <blockquote class="text">
11909    <p>"NOTIFY:GLOBAL_INFO:STREAMS &lt;max-streams&gt;" - Notifies that the
11910                            golbal limit of the sampler for maximum disk streams is changed, where
11911                            &lt;max-streams&gt; will be an integer value, reflecting the
11912                            new global disk streams limit parameter.
11913    </p>
11914    </blockquote><p>
11915                    
11916    </p>
11917    <a name="SUBSCRIBE DB_INSTRUMENT_DIRECTORY_COUNT"></a><br /><hr />
11918    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
11919    <a name="rfc.section.8.21"></a><h3>8.21.&nbsp;
11920    Number of database instrument directories changed</h3>
11921    
11922    <p>Client may want to be notified when the number of instrument
11923                    directories in a particular directory in the instruments database
11924                    is changed by issuing the following command:
11925    </p>
11926    <p>
11927                        </p>
11928    <blockquote class="text">
11929    <p>SUBSCRIBE DB_INSTRUMENT_DIRECTORY_COUNT
11930    </p>
11931    </blockquote><p>
11932                    
11933    </p>
11934    <p>Server will start sending the following notification messages:
11935    </p>
11936    <p>
11937                        </p>
11938    <blockquote class="text">
11939    <p>"NOTIFY:DB_INSTRUMENT_DIRECTORY_COUNT:&lt;dir-path&gt;"
11940    </p>
11941    </blockquote><p>
11942                    
11943    </p>
11944    <p>where &lt;dir-path&gt; will be replaced by the absolute path
11945                    name of the directory in the instruments database,
11946                    in which the number of directories is changed.
11947    </p>
11948    <p>Note that when a non-empty directory is removed, this event
11949                    is not sent for the subdirectories in that directory.
11950    </p>
11951    <a name="SUBSCRIBE DB_INSTRUMENT_DIRECTORY_INFO"></a><br /><hr />
11952    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
11953    <a name="rfc.section.8.22"></a><h3>8.22.&nbsp;
11954    Database instrument directory information changed</h3>
11955    
11956    <p>Client may want to be notified when changes were made to directories
11957                    in the instruments database by issuing the following command:
11958    </p>
11959    <p>
11960                        </p>
11961    <blockquote class="text">
11962    <p>SUBSCRIBE DB_INSTRUMENT_DIRECTORY_INFO
11963    </p>
11964    </blockquote><p>
11965                    
11966    </p>
11967    <p>Server will start sending the following notification messages:
11968    </p>
11969    <p>
11970                        </p>
11971    <blockquote class="text">
11972    <p>"NOTIFY:DB_INSTRUMENT_DIRECTORY_INFO:&lt;dir-path&gt;"
11973    </p>
11974    </blockquote><p>
11975                    
11976    </p>
11977    <p>where &lt;dir-path&gt; will be replaced by the absolute path name
11978                    of the directory, for which information changes occurred. The front-end will have to send
11979                    the respective command to actually get the updated directory info. Because these messages
11980                    will be triggered by LSCP commands issued by other clients rather than real
11981                    time events happening on the server, it is believed that an empty notification
11982                    message is sufficient here.
11983    </p>
11984    <p>
11985                        </p>
11986    <blockquote class="text">
11987    <p>"NOTIFY:DB_INSTRUMENT_DIRECTORY_INFO:NAME &lt;old-dir-path&gt; &lt;new-name&gt;"
11988    </p>
11989    </blockquote><p>
11990                    
11991    </p>
11992    <p>where &lt;old-dir-path&gt; is the old absolute path name of the directory
11993                    (encapsulated into apostrophes), which name is changes and &lt;new-name&gt; is
11994                    the new name of the directory, encapsulated into apostrophes.
11995    </p>
11996    <a name="SUBSCRIBE DB_INSTRUMENT_COUNT"></a><br /><hr />
11997    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
11998    <a name="rfc.section.8.23"></a><h3>8.23.&nbsp;
11999    Number of database instruments changed</h3>
12000    
12001    <p>Client may want to be notified when the number of instruments
12002                    in a particular directory in the instruments database
12003                    is changed by issuing the following command:
12004    </p>
12005    <p>
12006                        </p>
12007    <blockquote class="text">
12008    <p>SUBSCRIBE DB_INSTRUMENT_COUNT
12009    </p>
12010    </blockquote><p>
12011                    
12012    </p>
12013    <p>Server will start sending the following notification messages:
12014    </p>
12015    <p>
12016                        </p>
12017    <blockquote class="text">
12018    <p>"NOTIFY:DB_INSTRUMENT_COUNT:&lt;dir-path&gt;"
12019    </p>
12020    </blockquote><p>
12021                    
12022    </p>
12023    <p>where &lt;dir-path&gt; will be replaced by the absolute path
12024                    name of the directory in the instruments database,
12025                    in which the number of instruments is changed.
12026    </p>
12027    <p>Note that when a non-empty directory is removed, this event
12028                    is not sent for the instruments in that directory.
12029    </p>
12030    <a name="SUBSCRIBE DB_INSTRUMENT_INFO"></a><br /><hr />
12031    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
12032    <a name="rfc.section.8.24"></a><h3>8.24.&nbsp;
12033    Database instrument information changed</h3>
12034    
12035    <p>Client may want to be notified when changes were made to instruments
12036                    in the instruments database by issuing the following command:
12037    </p>
12038    <p>
12039                        </p>
12040    <blockquote class="text">
12041    <p>SUBSCRIBE DB_INSTRUMENT_INFO
12042    </p>
12043    </blockquote><p>
12044                    
12045    </p>
12046    <p>Server will start sending the following notification messages:
12047    </p>
12048    <p>
12049                        </p>
12050    <blockquote class="text">
12051    <p>"NOTIFY:DB_INSTRUMENT_INFO:&lt;instr-path&gt;"
12052    </p>
12053    </blockquote><p>
12054                    
12055    </p>
12056    <p>where &lt;instr-path&gt; will be replaced by the absolute path name
12057                    of the instrument, which settings are changed. The front-end will have to send
12058                    the respective command to actually get the updated directory info. Because these messages
12059                    will be triggered by LSCP commands issued by other clients rather than real
12060                    time events happening on the server, it is believed that an empty notification
12061                    message is sufficient here.
12062    </p>
12063    <p>
12064                        </p>
12065    <blockquote class="text">
12066    <p>"NOTIFY:DB_INSTRUMENT_INFO:NAME &lt;old-instr-path&gt; &lt;new-name&gt;"
12067    </p>
12068    </blockquote><p>
12069                    
12070    </p>
12071    <p>where &lt;old-instr-path&gt; is the old absolute path name of the instrument
12072                    (encapsulated into apostrophes), which name is changes and &lt;new-name&gt; is
12073                    the new name of the instrument, encapsulated into apostrophes.
12074    </p>
12075    <a name="SUBSCRIBE DB_INSTRUMENTS_JOB_INFO"></a><br /><hr />
12076    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
12077    <a name="rfc.section.8.25"></a><h3>8.25.&nbsp;
12078    Database job status information changed</h3>
12079    
12080    <p>Client may want to be notified when the status of particular database
12081                    instruments job is changed by issuing the following command:
12082    </p>
12083    <p>
12084                        </p>
12085    <blockquote class="text">
12086    <p>SUBSCRIBE DB_INSTRUMENTS_JOB_INFO
12087    </p>
12088    </blockquote><p>
12089                    
12090    </p>
12091    <p>Server will start sending the following notification messages:
12092    </p>
12093    <p>
12094                        </p>
12095    <blockquote class="text">
12096    <p>"NOTIFY:DB_INSTRUMENTS_JOB_INFO:&lt;job-id&gt;"
12097    </p>
12098    </blockquote><p>
12099                    
12100    </p>
12101    <p>where &lt;job-id&gt; will be replaced by the numerical ID of the job,
12102                    which status is changed. The front-end will have to send the respective
12103                    command to actually get the status info. Because these messages
12104                    will be triggered by LSCP commands issued by other clients rather than real
12105                    time events happening on the server, it is believed that an empty notification
12106                    message is sufficient here.
12107    </p>
12108  <a name="SUBSCRIBE MISCELLANEOUS"></a><br /><hr />  <a name="SUBSCRIBE MISCELLANEOUS"></a><br /><hr />
12109  <table 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>
12110  <a name="rfc.section.8.15"></a><h3>8.15.&nbsp;  <a name="rfc.section.8.26"></a><h3>8.26.&nbsp;
12111  Miscellaneous and debugging events</h3>  Miscellaneous and debugging events</h3>
12112    
12113  <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 8257  Acknowledgments</h3> Line 12172  Acknowledgments</h3>
12172  <table 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>
12173  <h3>11.&nbsp;References</h3>  <h3>11.&nbsp;References</h3>
12174  <table width="99%" border="0">  <table width="99%" border="0">
12175    <tr><td class="author-text" valign="top"><a name="RFC20">[RFC20]</a></td>
12176    <td class="author-text">UCLA, &ldquo;<a href="http://tools.ietf.org/html/rfc20">ASCII format for Network Interchange</a>,&rdquo; RFC&nbsp;20, 1969.</td></tr>
12177  <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>
12178  <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="http://tools.ietf.org/html/rfc2119">Key words for use in RFCs to Indicate Requirement Levels</a>,&rdquo; RFC&nbsp;2119, 1997.</td></tr>
12179  <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>
12180  <td class="author-text">Crocker, D. and P. Overell, &ldquo;<a href="ftp://ftp.isi.edu/in-notes/rfc2234.txt">Augmented BNF for Syntax Specifications</a>,&rdquo; RFC&nbsp;2234, 1997.</td></tr>  <td class="author-text">Crocker, D. and P. Overell, &ldquo;<a href="http://tools.ietf.org/html/rfc2234">Augmented BNF for Syntax Specifications</a>,&rdquo; RFC&nbsp;2234, 1997.</td></tr>
12181  <tr><td class="author-text" valign="top"><a name="RFC793">[RFC793]</a></td>  <tr><td class="author-text" valign="top"><a name="RFC793">[RFC793]</a></td>
12182  <td class="author-text">Defense Advanced Research Projects Agency, &ldquo;<a href="ftp://ftp.isi.edu/in-notes/rfc793.txt">TRANSMISSION CONTROL PROTOCOL</a>,&rdquo; RFC&nbsp;793, 1981.</td></tr>  <td class="author-text">Defense Advanced Research Projects Agency, &ldquo;<a href="http://tools.ietf.org/html/rfc793">TRANSMISSION CONTROL PROTOCOL</a>,&rdquo; RFC&nbsp;793, 1981.</td></tr>
12183  </table>  </table>
12184    
12185  <a name="rfc.authors"></a><br /><hr />  <a name="rfc.authors"></a><br /><hr />
# Line 8287  Schoenebeck</td></tr> Line 12204  Schoenebeck</td></tr>
12204  <table 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>
12205  <h3>Full Copyright Statement</h3>  <h3>Full Copyright Statement</h3>
12206  <p class='copyright'>  <p class='copyright'>
12207  Copyright &copy; The Internet Society (2006).</p>  Copyright &copy; The IETF Trust (2009).</p>
12208  <p class='copyright'>  <p class='copyright'>
12209  This document is subject to the rights,  This document is subject to the rights,
12210  licenses and restrictions contained in BCP&nbsp;78,  licenses and restrictions contained in BCP&nbsp;78,
# Line 8296  the authors retain all their rights.</p> Line 12213  the authors retain all their rights.</p>
12213  <p class='copyright'>  <p class='copyright'>
12214  This document and the information contained herein are provided  This document and the information contained herein are provided
12215  on an &ldquo;AS IS&rdquo; basis and THE CONTRIBUTOR,  on an &ldquo;AS IS&rdquo; basis and THE CONTRIBUTOR,
12216  THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY),  THE ORGANIZATION HE/SHE REPRESENTS
12217  THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM  OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST
12218  ALL WARRANTIES,  AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES,
12219  EXPRESS OR IMPLIED,  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT
12220  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
12221  INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED  IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR
12222  WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.</p>  PURPOSE.</p>
12223  <h3>Intellectual Property</h3>  <h3>Intellectual Property</h3>
12224  <p class='copyright'>  <p class='copyright'>
12225  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 8329  or other Line 12246  or other
12246  proprietary rights that may cover technology that may be required  proprietary rights that may cover technology that may be required
12247  to implement this standard.  to implement this standard.
12248  Please address the information to the IETF at <a href='mailto:ietf-ipr@ietf.org'>ietf-ipr@ietf.org</a>.</p>  Please address the information to the IETF at <a href='mailto:ietf-ipr@ietf.org'>ietf-ipr@ietf.org</a>.</p>
 <h3>Acknowledgment</h3>  
 <p class='copyright'>  
 Funding for the RFC Editor function is provided by  
 the IETF Administrative Support Activity (IASA).</p>  
12249  </body></html>  </body></html>
12250    

Legend:
Removed from v.1006  
changed lines
  Added in v.2023

  ViewVC Help
Powered by ViewVC