/[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 1137 by iliev, Thu Mar 29 10:06:37 2007 UTC revision 1731 by iliev, Fri May 2 13:03:00 2008 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.32 (http://xml.resource.org/)">  <meta name="generator" content="xml2rfc v1.33 (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;
# 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: September 30, 2007</td><td class="header">March 29, 2007</td></tr>  <tr><td class="header">Expires: October 3, 2008</td><td class="header">April 2008</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.4</h1>
151    
152  <h3>Status of this Memo</h3>  <h3>Status of this Memo</h3>
153  <p>  <p>
# Line 173  The list of current Internet-Drafts can Line 173  The list of current Internet-Drafts can
173  The list of Internet-Draft Shadow Directories can be accessed at  The list of Internet-Draft Shadow Directories can be accessed at
174  <a href='http://www.ietf.org/shadow.html'>http://www.ietf.org/shadow.html</a>.</p>  <a href='http://www.ietf.org/shadow.html'>http://www.ietf.org/shadow.html</a>.</p>
175  <p>  <p>
176  This Internet-Draft will expire on September 30, 2007.</p>  This Internet-Draft will expire on October 3, 2008.</p>
   
 <h3>Copyright Notice</h3>  
 <p>  
 Copyright &copy; The IETF Trust (2007).</p>  
177    
178  <h3>Abstract</h3>  <h3>Abstract</h3>
179    
# Line 354  Global commands<br /> Line 350  Global commands<br />
350  Current number of active voices<br />  Current number of active voices<br />
351  &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;
352  Maximum amount of active voices<br />  Maximum amount of active voices<br />
353  &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;
354    Current number of active disk streams<br />
355    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#RESET">6.6.4.</a>&nbsp;
356  Reset sampler<br />  Reset sampler<br />
357  &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;
358  General sampler informations<br />  General sampler informations<br />
359  &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;
360  Getting global volume attenuation<br />  Getting global volume attenuation<br />
361  &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;
362  Setting global volume attenuation<br />  Setting global volume attenuation<br />
363  &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;
364  MIDI Instrument Mapping<br />  MIDI Instrument Mapping<br />
365  &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;
366  Create a new MIDI instrument map<br />  Create a new MIDI instrument map<br />
367  &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;
368  Delete one particular or all MIDI instrument maps<br />  Delete one particular or all MIDI instrument maps<br />
# Line 388  Remove an entry from the MIDI instrument Line 386  Remove an entry from the MIDI instrument
386  Get current settings of MIDI instrument map entry<br />  Get current settings of MIDI instrument map entry<br />
387  &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;
388  Clear MIDI instrument map<br />  Clear MIDI instrument map<br />
389    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#Managing Instruments Database">6.8.</a>&nbsp;
390    Managing Instruments Database<br />
391    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ADD DB_INSTRUMENT_DIRECTORY">6.8.1.</a>&nbsp;
392    Creating a new instrument directory<br />
393    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#REMOVE DB_INSTRUMENT_DIRECTORY">6.8.2.</a>&nbsp;
394    Deleting an instrument directory<br />
395    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET DB_INSTRUMENT_DIRECTORIES">6.8.3.</a>&nbsp;
396    Getting amount of instrument directories<br />
397    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#LIST DB_INSTRUMENT_DIRECTORIES">6.8.4.</a>&nbsp;
398    Listing all directories in specific directory<br />
399    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET DB_INSTRUMENT_DIRECTORY INFO">6.8.5.</a>&nbsp;
400    Getting instrument directory information<br />
401    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET DB_INSTRUMENT_DIRECTORY NAME">6.8.6.</a>&nbsp;
402    Renaming an instrument directory<br />
403    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#MOVE DB_INSTRUMENT_DIRECTORY">6.8.7.</a>&nbsp;
404    Moving an instrument directory<br />
405    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#COPY DB_INSTRUMENT_DIRECTORY">6.8.8.</a>&nbsp;
406    Copying instrument directories<br />
407    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET DB_INSTRUMENT_DIRECTORY DESCRIPTION">6.8.9.</a>&nbsp;
408    Changing the description of directory<br />
409    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#FIND DB_INSTRUMENT_DIRECTORIES">6.8.10.</a>&nbsp;
410    Finding directories<br />
411    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ADD DB_INSTRUMENTS">6.8.11.</a>&nbsp;
412    Adding instruments to the instruments database<br />
413    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#REMOVE DB_INSTRUMENT">6.8.12.</a>&nbsp;
414    Removing an instrument<br />
415    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET DB_INSTRUMENTS">6.8.13.</a>&nbsp;
416    Getting amount of instruments<br />
417    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#LIST DB_INSTRUMENTS">6.8.14.</a>&nbsp;
418    Listing all instruments in specific directory<br />
419    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET DB_INSTRUMENT INFO">6.8.15.</a>&nbsp;
420    Getting instrument information<br />
421    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET DB_INSTRUMENT NAME">6.8.16.</a>&nbsp;
422    Renaming an instrument<br />
423    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#MOVE DB_INSTRUMENT">6.8.17.</a>&nbsp;
424    Moving an instrument<br />
425    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#COPY DB_INSTRUMENT">6.8.18.</a>&nbsp;
426    Copying instruments<br />
427    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET DB_INSTRUMENT DESCRIPTION">6.8.19.</a>&nbsp;
428    Changing the description of instrument<br />
429    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#FIND DB_INSTRUMENTS">6.8.20.</a>&nbsp;
430    Finding instruments<br />
431    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET DB_INSTRUMENTS_JOB INFO">6.8.21.</a>&nbsp;
432    Getting job status information<br />
433    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#FORMAT INSTRUMENTS_DB">6.8.22.</a>&nbsp;
434    Formatting the instruments database<br />
435    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#FIND LOST DB_INSTRUMENT_FILES">6.8.23.</a>&nbsp;
436    Checking for lost instrument files<br />
437    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET DB_INSTRUMENT FILE_PATH">6.8.24.</a>&nbsp;
438    Replacing an instrument file<br />
439    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#editing_instruments">6.9.</a>&nbsp;
440    Editing Instruments<br />
441    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#EDIT INSTRUMENT">6.9.1.</a>&nbsp;
442    Opening an appropriate instrument editor application<br />
443    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#file_management">6.10.</a>&nbsp;
444    Managing Files<br />
445    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET FILE INSTRUMENTS">6.10.1.</a>&nbsp;
446    Retrieving amount of instruments of a file<br />
447    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#LIST FILE INSTRUMENTS">6.10.2.</a>&nbsp;
448    Retrieving all instruments of a file<br />
449    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET FILE INSTRUMENT INFO">6.10.3.</a>&nbsp;
450    Retrieving informations about one instrument in a file<br />
451  <a href="#command_syntax">7.</a>&nbsp;  <a href="#command_syntax">7.</a>&nbsp;
452  Command Syntax<br />  Command Syntax<br />
453    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#character_set">7.1.</a>&nbsp;
454    Character Set and Escape Sequences<br />
455  <a href="#events">8.</a>&nbsp;  <a href="#events">8.</a>&nbsp;
456  Events<br />  Events<br />
457  &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 402  Number of MIDI input devices changed<br Line 464  Number of MIDI input devices changed<br
464  MIDI input device's settings changed<br />  MIDI input device's settings changed<br />
465  &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;
466  Number of sampler channels changed<br />  Number of sampler channels changed<br />
467  &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;
468    MIDI data on a sampler channel arrived<br />
469    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE DEVICE_MIDI">8.7.</a>&nbsp;
470    MIDI data on a MIDI input device arrived<br />
471    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE VOICE_COUNT">8.8.</a>&nbsp;
472  Number of active voices changed<br />  Number of active voices changed<br />
473  &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;
474  Number of active disk streams changed<br />  Number of active disk streams changed<br />
475  &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;
476  Disk stream buffer fill state changed<br />  Disk stream buffer fill state changed<br />
477  &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;
478  Channel information changed<br />  Channel information changed<br />
479  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE FX_SEND_COUNT">8.10.</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE FX_SEND_COUNT">8.12.</a>&nbsp;
480  Number of effect sends changed<br />  Number of effect sends changed<br />
481  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE FX_SEND_INFO">8.11.</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE FX_SEND_INFO">8.13.</a>&nbsp;
482  Effect send information changed<br />  Effect send information changed<br />
483  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE TOTAL_VOICE_COUNT">8.12.</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE TOTAL_VOICE_COUNT">8.14.</a>&nbsp;
484  Total number of active voices changed<br />  Total number of active voices changed<br />
485  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE MIDI_INSTRUMENT_MAP_COUNT">8.13.</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE TOTAL_STREAM_COUNT">8.15.</a>&nbsp;
486    Total number of active disk streams changed<br />
487    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE MIDI_INSTRUMENT_MAP_COUNT">8.16.</a>&nbsp;
488  Number of MIDI instrument maps changed<br />  Number of MIDI instrument maps changed<br />
489  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE MIDI_INSTRUMENT_MAP_INFO">8.14.</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE MIDI_INSTRUMENT_MAP_INFO">8.17.</a>&nbsp;
490  MIDI instrument map information changed<br />  MIDI instrument map information changed<br />
491  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE MIDI_INSTRUMENT_COUNT">8.15.</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE MIDI_INSTRUMENT_COUNT">8.18.</a>&nbsp;
492  Number of MIDI instruments changed<br />  Number of MIDI instruments changed<br />
493  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE MIDI_INSTRUMENT_INFO">8.16.</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE MIDI_INSTRUMENT_INFO">8.19.</a>&nbsp;
494  MIDI instrument information changed<br />  MIDI instrument information changed<br />
495  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE GLOBAL_INFO">8.17.</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE GLOBAL_INFO">8.20.</a>&nbsp;
496  Global settings changed<br />  Global settings changed<br />
497  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE MISCELLANEOUS">8.18.</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE DB_INSTRUMENT_DIRECTORY_COUNT">8.21.</a>&nbsp;
498    Number of database instrument directories changed<br />
499    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE DB_INSTRUMENT_DIRECTORY_INFO">8.22.</a>&nbsp;
500    Database instrument directory information changed<br />
501    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE DB_INSTRUMENT_COUNT">8.23.</a>&nbsp;
502    Number of database instruments changed<br />
503    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE DB_INSTRUMENT_INFO">8.24.</a>&nbsp;
504    Database instrument information changed<br />
505    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE DB_INSTRUMENTS_JOB_INFO">8.25.</a>&nbsp;
506    Database job status information changed<br />
507    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE MISCELLANEOUS">8.26.</a>&nbsp;
508  Miscellaneous and debugging events<br />  Miscellaneous and debugging events<br />
509  <a href="#anchor14">9.</a>&nbsp;  <a href="#anchor14">9.</a>&nbsp;
510  Security Considerations<br />  Security Considerations<br />
# Line 458  Requirements notation</h3> Line 536  Requirements notation</h3>
536              (front-end) and server (LinuxSampler) respectively. Lines in              (front-end) and server (LinuxSampler) respectively. Lines in
537              examples must be interpreted as every line being CRLF              examples must be interpreted as every line being CRLF
538              terminated (carriage return character followed by line feed              terminated (carriage return character followed by line feed
539              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>),
540              example:              thus the following example:
541  </p>  </p>
542  <p>  <p>
543                  </p>                  </p>
# Line 3245  Changing settings of MIDI input ports</h Line 3323  Changing settings of MIDI input ports</h
3323                      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>
3324                      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
3325                      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
3326                      parameter.                      parameter (encapsulated into apostrophes) or NONE (not encapsulated into apostrophes)
3327                        for specifying no value for parameters allowing a list of values.
3328  </p>  </p>
3329  <p>Possible Answers:  <p>Possible Answers:
3330  </p>  </p>
# Line 3286  Changing settings of MIDI input ports</h Line 3365  Changing settings of MIDI input ports</h
3365  <p>  <p>
3366                          </p>                          </p>
3367  <blockquote class="text">  <blockquote class="text">
3368    <p>C: "SET MIDI_INPUT_PORT_PARAMETER 0 0 ALSA_SEQ_BINDINGS='20:0'"
3369    </p>
3370    <p>S: "OK"
3371    </p>
3372    </blockquote><p>
3373                        
3374    </p>
3375  <p>  <p>
3376                            </p>
3377    <blockquote class="text">
3378    <p>C: "SET MIDI_INPUT_PORT_PARAMETER 0 0 ALSA_SEQ_BINDINGS=NONE"
3379    </p>
3380    <p>S: "OK"
3381  </p>  </p>
3382  </blockquote><p>  </blockquote><p>
3383                                            
# Line 3321  Loading an instrument</h3> Line 3412  Loading an instrument</h3>
3412                      number of the sampler channel the instrument should be assigned to.                      number of the sampler channel the instrument should be assigned to.
3413                      Each sampler channel can only have one instrument.                      Each sampler channel can only have one instrument.
3414  </p>  </p>
3415    <p>Notice: since LSCP 1.2 the &lt;filename&gt; argument supports
3416                        escape characters for special characters (see chapter
3417                        "<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>"
3418                        for details) and accordingly backslash characters in the filename
3419                        MUST now be escaped as well!
3420    </p>
3421  <p>The difference between regular and NON_MODAL versions of the command  <p>The difference between regular and NON_MODAL versions of the command
3422                      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
3423                      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 3368  Loading an instrument</h3> Line 3465  Loading an instrument</h3>
3465  </blockquote><p>  </blockquote><p>
3466                                            
3467  </p>  </p>
3468  <p>Example:  <p>Example (Unix):
3469  </p>  </p>
3470  <p>  <p>
3471                          </p>                          </p>
3472  <blockquote class="text">  <blockquote class="text">
3473    <p>C: LOAD INSTRUMENT '/home/joe/gigs/cello.gig' 0 0
3474    </p>
3475    <p>S: OK
3476    </p>
3477    </blockquote><p>
3478                        
3479    </p>
3480    <p>Example (Windows):
3481    </p>
3482  <p>  <p>
3483                            </p>
3484    <blockquote class="text">
3485    <p>C: LOAD INSTRUMENT 'D:/MySounds/cello.gig' 0 0
3486    </p>
3487    <p>S: OK
3488  </p>  </p>
3489  </blockquote><p>  </blockquote><p>
3490                                            
# Line 3788  Getting information about an engine</h3> Line 3899  Getting information about an engine</h3>
3899                                          </p>                                          </p>
3900  <blockquote class="text">  <blockquote class="text">
3901  <p>arbitrary description text about the engine  <p>arbitrary description text about the engine
3902                                                (note that the character string may contain
3903                                                <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>)
3904  </p>  </p>
3905  </blockquote>  </blockquote>
3906                                                                            
# Line 3907  Getting sampler channel information</h3> Line 4020  Getting sampler channel information</h3>
4020  <blockquote class="text">  <blockquote class="text">
4021  <p>the file name of the loaded instrument, "NONE" if  <p>the file name of the loaded instrument, "NONE" if
4022                                              there's no instrument yet loaded for this sampler                                              there's no instrument yet loaded for this sampler
4023                                              channel                                              channel (note: since LSCP 1.2 this path may contain
4024                                                <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>)
4025  </p>  </p>
4026  </blockquote>  </blockquote>
4027                                                                            
# Line 3924  Getting sampler channel information</h3> Line 4038  Getting sampler channel information</h3>
4038                                          </p>                                          </p>
4039  <blockquote class="text">  <blockquote class="text">
4040  <p>the instrument name of the loaded instrument  <p>the instrument name of the loaded instrument
4041                                                (note: since LSCP 1.2 this character string may contain
4042                                                <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>)
4043  </p>  </p>
4044  </blockquote>  </blockquote>
4045                                                                            
# Line 4999  Adding an effect send to a sampler chann Line 5115  Adding an effect send to a sampler chann
5115                      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;
5116                      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
5117                      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
5118                      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
5119                        encapsulated into apostrophes and supports escape sequences as described in chapter
5120                        "<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>".
5121  </p>  </p>
5122  <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
5123                      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 5268  Getting effect send information</h3> Line 5386  Getting effect send information</h3>
5386                                          </p>                                          </p>
5387  <blockquote class="text">  <blockquote class="text">
5388  <p>name of the effect send entity  <p>name of the effect send entity
5389                                                (note that this character string may contain
5390                                                 <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>)
5391  </p>  </p>
5392  </blockquote>  </blockquote>
5393                                                                            
# Line 5358  Changing effect send's name</h3> Line 5478  Changing effect send's name</h3>
5478                      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>                      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>
5479                      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                      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
5480                      &lt;name&gt; is the new name of the effect send entity, which                      &lt;name&gt; is the new name of the effect send entity, which
5481                      does not have to be unique.                      does not have to be unique (name MUST be encapsulated into apostrophes
5482                        and supports escape sequences as described in chapter
5483                        "<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>").
5484                        
5485  </p>  </p>
5486  <p>Possible Answers:  <p>Possible Answers:
5487  </p>  </p>
# Line 5959  Maximum amount of active voices</h3> Line 6082  Maximum amount of active voices</h3>
6082  </blockquote><p>  </blockquote><p>
6083                                            
6084  </p>  </p>
6085  <a name="RESET"></a><br /><hr />  <a name="GET TOTAL_STREAM_COUNT"></a><br /><hr />
6086  <table 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>
6087  <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;
6088    Current number of active disk streams</h3>
6089    
6090    <p>The front-end can ask for the current number of active disk streams on
6091                        the sampler by sending the following command:
6092    </p>
6093    <p>
6094                            </p>
6095    <blockquote class="text">
6096    <p>GET TOTAL_STREAM_COUNT
6097    </p>
6098    </blockquote><p>
6099                        
6100    </p>
6101    <p>Possible Answers:
6102    </p>
6103    <p>
6104                            </p>
6105    <blockquote class="text">
6106    <p>LinuxSampler will answer by returning the number of all active
6107                                disk streams on the sampler.
6108    </p>
6109    </blockquote><p>
6110                        
6111    </p>
6112    <a name="RESET"></a><br /><hr />
6113    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
6114    <a name="rfc.section.6.6.4"></a><h3>6.6.4.&nbsp;
6115  Reset sampler</h3>  Reset sampler</h3>
6116    
6117  <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 6002  Reset sampler</h3> Line 6152  Reset sampler</h3>
6152  </p>  </p>
6153  <a name="GET SERVER INFO"></a><br /><hr />  <a name="GET SERVER INFO"></a><br /><hr />
6154  <table 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>
6155  <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;
6156  General sampler informations</h3>  General sampler informations</h3>
6157    
6158  <p>The client can ask for general informations about the LinuxSampler  <p>The client can ask for general informations about the LinuxSampler
# Line 6035  General sampler informations</h3> Line 6185  General sampler informations</h3>
6185                                          </p>                                          </p>
6186  <blockquote class="text">  <blockquote class="text">
6187  <p>arbitrary textual description about the sampler  <p>arbitrary textual description about the sampler
6188                                                (note that the character string may contain
6189                                                <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>)
6190  </p>  </p>
6191  </blockquote>  </blockquote>
6192                                                                            
# Line 6056  General sampler informations</h3> Line 6208  General sampler informations</h3>
6208  </blockquote>  </blockquote>
6209                                                                            
6210    
6211    <p>INSTRUMENTS_DB_SUPPORT -
6212                                            </p>
6213    <blockquote class="text">
6214    <p>either yes or no, specifies whether the
6215                                                sampler is build with instruments database support.
6216    </p>
6217    </blockquote>
6218                                        
6219    
6220  </blockquote>  </blockquote>
6221                                                            
6222    
# Line 6067  General sampler informations</h3> Line 6228  General sampler informations</h3>
6228  </p>  </p>
6229  <a name="GET VOLUME"></a><br /><hr />  <a name="GET VOLUME"></a><br /><hr />
6230  <table 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>
6231  <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;
6232  Getting global volume attenuation</h3>  Getting global volume attenuation</h3>
6233    
6234  <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 6100  Getting global volume attenuation</h3> Line 6261  Getting global volume attenuation</h3>
6261  </p>  </p>
6262  <a name="SET VOLUME"></a><br /><hr />  <a name="SET VOLUME"></a><br /><hr />
6263  <table 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>
6264  <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;
6265  Setting global volume attenuation</h3>  Setting global volume attenuation</h3>
6266    
6267  <p>The client can alter the current global sampler-wide volume  <p>The client can alter the current global sampler-wide volume
# Line 6187  MIDI Instrument Mapping</h3> Line 6348  MIDI Instrument Mapping</h3>
6348                  cause the sampler to switch to the respective instrument as                  cause the sampler to switch to the respective instrument as
6349                  reflected by the current MIDI instrument map.                  reflected by the current MIDI instrument map.
6350  </p>  </p>
6351  <a name="ADD MIDI_INSTRUMENT MAP"></a><br /><hr />  <a name="ADD MIDI_INSTRUMENT_MAP"></a><br /><hr />
6352  <table 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>
6353  <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;
6354  Create a new MIDI instrument map</h3>  Create a new MIDI instrument map</h3>
# Line 6205  Create a new MIDI instrument map</h3> Line 6366  Create a new MIDI instrument map</h3>
6366  </p>  </p>
6367  <p>Where &lt;name&gt; is an optional argument allowing to  <p>Where &lt;name&gt; is an optional argument allowing to
6368                      assign a custom name to the new map. MIDI instrument Map                      assign a custom name to the new map. MIDI instrument Map
6369                      names do not have to be unique.                      names do not have to be unique, but MUST be encapsulated
6370                        into apostrophes and support escape sequences as described
6371                        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>".
6372                        
6373  </p>  </p>
6374  <p>Possible Answers:  <p>Possible Answers:
6375  </p>  </p>
# Line 6463  Getting MIDI instrument map information< Line 6627  Getting MIDI instrument map information<
6627  <blockquote class="text">  <blockquote class="text">
6628  <p>custom name of the given map,  <p>custom name of the given map,
6629                                              which does not have to be unique                                              which does not have to be unique
6630                                                (note that this character string may contain
6631                                                 <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>)
6632  </p>  </p>
6633  </blockquote>  </blockquote>
6634                                                                            
# Line 6518  Renaming a MIDI instrument map</h3> Line 6684  Renaming a MIDI instrument map</h3>
6684  </p>  </p>
6685  <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
6686                      &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
6687                      have to be unique.                      have to be unique (name MUST be encapsulated into apostrophes
6688                        and supports escape sequences as described in chapter
6689                        "<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>").
6690                        
6691  </p>  </p>
6692  <p>Possible Answers:  <p>Possible Answers:
6693  </p>  </p>
# Line 6584  Create or replace a MIDI instrument map Line 6753  Create or replace a MIDI instrument map
6753                      index, &lt;engine_name&gt; a sampler engine name as returned by                      index, &lt;engine_name&gt; a sampler engine name as returned by
6754                      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>
6755                      command (not encapsulated into apostrophes), &lt;filename&gt; the name                      command (not encapsulated into apostrophes), &lt;filename&gt; the name
6756                      of the instrument's file to be deployed (encapsulated into apostrophes),                      of the instrument's file to be deployed (encapsulated into apostrophes,
6757                        supporting escape sequences as described in chapter
6758                        "<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>"),
6759                      &lt;instrument_index&gt; the index (integer value) of the instrument                      &lt;instrument_index&gt; the index (integer value) of the instrument
6760                      within the given file, &lt;volume_value&gt; reflects the master                      within the given file, &lt;volume_value&gt; reflects the master
6761                      volume of the instrument as optionally dotted number (where a                      volume of the instrument as optionally dotted number (where a
# Line 6681  Create or replace a MIDI instrument map Line 6852  Create or replace a MIDI instrument map
6852                      load modes of entries, the frontend should retrieve the actual                      load modes of entries, the frontend should retrieve the actual
6853                      mode by i.e. sending                      mode by i.e. sending
6854                      <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>
6855                      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
6856                      set a custom name (encapsulated into apostrophes) for the mapping                      (encapsulated into apostrophes, supporting escape sequences as described in chapter
6857                      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
6858                        mapping entry, useful for frontends for displaying an appropriate name for
6859                      mapped instruments (using                      mapped instruments (using
6860                      <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>).
6861                                            
# Line 7005  Get current settings of MIDI instrument Line 7177  Get current settings of MIDI instrument
7177                                      changed with the                                      changed with the
7178                                      <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>
7179                                      command and does not have to be unique.                                      command and does not have to be unique.
7180                                        (note that this character string may contain
7181                                        <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>)
7182  </p>  </p>
7183  </blockquote>  </blockquote>
7184                                                            
# Line 7021  Get current settings of MIDI instrument Line 7195  Get current settings of MIDI instrument
7195  <p>"INSTRUMENT_FILE" -  <p>"INSTRUMENT_FILE" -
7196                                  </p>                                  </p>
7197  <blockquote class="text">  <blockquote class="text">
7198  <p>File name of the instrument.  <p>File name of the instrument
7199                                        (note that this path may contain
7200                                        <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>).
7201  </p>  </p>
7202  </blockquote>  </blockquote>
7203                                                            
# Line 7039  Get current settings of MIDI instrument Line 7215  Get current settings of MIDI instrument
7215  <blockquote class="text">  <blockquote class="text">
7216  <p>Name of the loaded instrument as reflected by its file.  <p>Name of the loaded instrument as reflected by its file.
7217                                      In contrast to the "NAME" field, the "INSTRUMENT_NAME" field                                      In contrast to the "NAME" field, the "INSTRUMENT_NAME" field
7218                                      cannot be changed.                                      cannot be changed (note that this character string may contain
7219                                        <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>).
7220  </p>  </p>
7221  </blockquote>  </blockquote>
7222                                                            
# Line 7166  Clear MIDI instrument map</h3> Line 7343  Clear MIDI instrument map</h3>
7343  </blockquote><p>  </blockquote><p>
7344                                            
7345  </p>  </p>
7346    <a name="Managing Instruments Database"></a><br /><hr />
7347    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
7348    <a name="rfc.section.6.8"></a><h3>6.8.&nbsp;
7349    Managing Instruments Database</h3>
7350    
7351    <p>The following commands describe how to use and manage
7352                    the instruments database.
7353    </p>
7354    <p>Notice:
7355    </p>
7356    <p>
7357                            </p>
7358    <blockquote class="text">
7359    <p>All command arguments representing a path or
7360                                instrument/directory name support escape sequences as described in chapter
7361                                "<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>".
7362                                
7363    </p>
7364    <p>All occurrences of a forward slash in instrument and directory
7365                                   names are escaped with its hex (\x2f) or octal (\057) escape sequence.
7366                                
7367    </p>
7368    </blockquote><p>
7369                        
7370    </p>
7371    <a name="ADD DB_INSTRUMENT_DIRECTORY"></a><br /><hr />
7372    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
7373    <a name="rfc.section.6.8.1"></a><h3>6.8.1.&nbsp;
7374    Creating a new instrument directory</h3>
7375    
7376    <p>The front-end can add a new instrument directory to the
7377                        instruments database by sending the following command:
7378    </p>
7379    <p>
7380                            </p>
7381    <blockquote class="text">
7382    <p>ADD DB_INSTRUMENT_DIRECTORY &lt;dir&gt;
7383    </p>
7384    </blockquote><p>
7385                        
7386    </p>
7387    <p>Where &lt;dir&gt; is the absolute path name of the directory
7388                        to be created (encapsulated into apostrophes).
7389    </p>
7390    <p>Possible Answers:
7391    </p>
7392    <p>
7393                            </p>
7394    <blockquote class="text">
7395    <p>"OK" -
7396                                    </p>
7397    <blockquote class="text">
7398    <p>on success
7399    </p>
7400    </blockquote>
7401                                
7402    
7403    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
7404                                    </p>
7405    <blockquote class="text">
7406    <p>when the directory could not be created, which
7407                                        can happen if the directory already exists or the
7408                                        name contains not allowed symbols
7409    </p>
7410    </blockquote>
7411                                
7412    
7413    </blockquote><p>
7414                        
7415    </p>
7416    <p>Examples:
7417    </p>
7418    <p>
7419                            </p>
7420    <blockquote class="text">
7421    <p>C: "ADD DB_INSTRUMENT_DIRECTORY '/Piano Collection'"
7422    </p>
7423    <p>S: "OK"
7424    </p>
7425    </blockquote><p>
7426                        
7427    </p>
7428    <a name="REMOVE DB_INSTRUMENT_DIRECTORY"></a><br /><hr />
7429    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
7430    <a name="rfc.section.6.8.2"></a><h3>6.8.2.&nbsp;
7431    Deleting an instrument directory</h3>
7432    
7433    <p>The front-end can delete a particular instrument directory
7434                        from the instruments database by sending the following command:
7435    </p>
7436    <p>
7437                            </p>
7438    <blockquote class="text">
7439    <p>REMOVE DB_INSTRUMENT_DIRECTORY [FORCE] &lt;dir&gt;
7440    </p>
7441    </blockquote><p>
7442                        
7443    </p>
7444    <p>Where &lt;dir&gt; is the absolute path name of the directory
7445                        to delete. The optional FORCE argument can be used to
7446                        force the deletion of a non-empty directory and all its content.
7447    </p>
7448    <p>Possible Answers:
7449    </p>
7450    <p>
7451                            </p>
7452    <blockquote class="text">
7453    <p>"OK" -
7454                                    </p>
7455    <blockquote class="text">
7456    <p>if the directory is deleted successfully
7457    </p>
7458    </blockquote>
7459                                
7460    
7461    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
7462                                    </p>
7463    <blockquote class="text">
7464    <p>if the given directory does not exist, or
7465                                        if trying to delete a non-empty directory,
7466                                        without using the FORCE argument.
7467    </p>
7468    </blockquote>
7469                                
7470    
7471    </blockquote><p>
7472                        
7473    </p>
7474    <p>Examples:
7475    </p>
7476    <p>
7477                            </p>
7478    <blockquote class="text">
7479    <p>C: "REMOVE DB_INSTRUMENT_DIRECTORY FORCE '/Piano Collection'"
7480    </p>
7481    <p>S: "OK"
7482    </p>
7483    </blockquote><p>
7484                        
7485    </p>
7486    <a name="GET DB_INSTRUMENT_DIRECTORIES"></a><br /><hr />
7487    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
7488    <a name="rfc.section.6.8.3"></a><h3>6.8.3.&nbsp;
7489    Getting amount of instrument directories</h3>
7490    
7491    <p>The front-end can retrieve the current amount of
7492                        directories in a specific directory by sending the following command:
7493    </p>
7494    <p>
7495                            </p>
7496    <blockquote class="text">
7497    <p>GET DB_INSTRUMENT_DIRECTORIES [RECURSIVE] &lt;dir&gt;
7498    </p>
7499    </blockquote><p>
7500                        
7501    </p>
7502    <p>Where &lt;dir&gt; should be replaced by the absolute path
7503                        name of the directory. If RECURSIVE is specified, the number of
7504                        all directories, including those located in subdirectories of the
7505                        specified directory, will be returned.
7506    </p>
7507    <p>Possible Answers:
7508    </p>
7509    <p>
7510                            </p>
7511    <blockquote class="text">
7512    <p>The current number of instrument directories
7513                                in the specified directory.
7514    </p>
7515    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
7516                                    </p>
7517    <blockquote class="text">
7518    <p>if the given directory does not exist.
7519    </p>
7520    </blockquote>
7521                                
7522    
7523    </blockquote><p>
7524                        
7525    </p>
7526    <p>Example:
7527    </p>
7528    <p>
7529                            </p>
7530    <blockquote class="text">
7531    <p>C: "GET DB_INSTRUMENT_DIRECTORIES '/'"
7532    </p>
7533    <p>S: "2"
7534    </p>
7535    </blockquote><p>
7536                        
7537    </p>
7538    <a name="LIST DB_INSTRUMENT_DIRECTORIES"></a><br /><hr />
7539    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
7540    <a name="rfc.section.6.8.4"></a><h3>6.8.4.&nbsp;
7541    Listing all directories in specific directory</h3>
7542    
7543    <p>The front-end can retrieve the current list of directories
7544                        in specific directory by sending the following command:
7545    </p>
7546    <p>
7547                            </p>
7548    <blockquote class="text">
7549    <p>LIST DB_INSTRUMENT_DIRECTORIES [RECURSIVE] &lt;dir&gt;
7550    </p>
7551    </blockquote><p>
7552                        
7553    </p>
7554    <p>Where &lt;dir&gt; should be replaced by the absolute path
7555                        name of the directory. If RECURSIVE is specified, the absolute path names
7556                        of all directories, including those located in subdirectories of the
7557                        specified directory, will be returned.
7558    </p>
7559    <p>Possible Answers:
7560    </p>
7561    <p>
7562                            </p>
7563    <blockquote class="text">
7564    <p>A comma separated list of all instrument directories
7565                                (encapsulated into apostrophes) in the specified directory.
7566    </p>
7567    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
7568                                    </p>
7569    <blockquote class="text">
7570    <p>if the given directory does not exist.
7571    </p>
7572    </blockquote>
7573                                
7574    
7575    </blockquote><p>
7576                        
7577    </p>
7578    <p>Example:
7579    </p>
7580    <p>
7581                            </p>
7582    <blockquote class="text">
7583    <p>C: "LIST DB_INSTRUMENT_DIRECTORIES '/'"
7584    </p>
7585    <p>S: "'Piano Collection','Percussion Collection'"
7586    </p>
7587    </blockquote><p>
7588                        
7589    </p>
7590    <p>
7591                            </p>
7592    <blockquote class="text">
7593    <p>C: "LIST DB_INSTRUMENT_DIRECTORIES RECURSIVE '/'"
7594    </p>
7595    <p>S: "'/Piano Collection','/Piano Collection/Acoustic','/Piano Collection/Acoustic/New','/Percussion Collection'"
7596    </p>
7597    </blockquote><p>
7598                        
7599    </p>
7600    <a name="GET DB_INSTRUMENT_DIRECTORY INFO"></a><br /><hr />
7601    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
7602    <a name="rfc.section.6.8.5"></a><h3>6.8.5.&nbsp;
7603    Getting instrument directory information</h3>
7604    
7605    <p>The front-end can ask for the current settings of an
7606                        instrument directory by sending the following command:
7607    </p>
7608    <p>
7609                            </p>
7610    <blockquote class="text">
7611    <p>GET DB_INSTRUMENT_DIRECTORY INFO &lt;dir&gt;
7612    </p>
7613    </blockquote><p>
7614                        
7615    </p>
7616    <p>Where &lt;dir&gt; should be replaced by the absolute path
7617                        name of the directory the front-end is interested in.
7618    </p>
7619    <p>Possible Answers:
7620    </p>
7621    <p>
7622                            </p>
7623    <blockquote class="text">
7624    <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
7625                                Each answer line begins with the settings category name
7626                                followed by a colon and then a space character &lt;SP&gt; and finally
7627                                the info character string to that setting category. At the
7628                                moment the following categories are defined:
7629    </p>
7630    <p>
7631                                    </p>
7632    <blockquote class="text">
7633    <p>DESCRIPTION -
7634                                            </p>
7635    <blockquote class="text">
7636    <p>A brief description of the directory content.
7637                                                Note that the character string may contain
7638                                                <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>.
7639    </p>
7640    </blockquote>
7641                                        
7642    
7643    <p>CREATED -
7644                                            </p>
7645    <blockquote class="text">
7646    <p>The creation date and time of the directory,
7647                                                represented in "YYYY-MM-DD HH:MM:SS" format
7648    </p>
7649    </blockquote>
7650                                        
7651    
7652    <p>MODIFIED -
7653                                            </p>
7654    <blockquote class="text">
7655    <p>The date and time of the last modification of the
7656                                                directory, represented in "YYYY-MM-DD HH:MM:SS" format
7657    </p>
7658    </blockquote>
7659                                        
7660    
7661    </blockquote>
7662                                
7663    
7664    </blockquote><p>
7665                        
7666    </p>
7667    <p>The mentioned fields above don't have to be in particular order.
7668    </p>
7669    <p>Example:
7670    </p>
7671    <p>
7672                            </p>
7673    <blockquote class="text">
7674    <p>C: "GET DB_INSTRUMENT_DIRECTORY INFO '/Piano Collection'"
7675    </p>
7676    <p>S: "DESCRIPTION: Piano collection of instruments in GigaSampler format."
7677    </p>
7678    <p>&nbsp;&nbsp;&nbsp;"CREATED: 2007-02-05 10:23:12"
7679    </p>
7680    <p>&nbsp;&nbsp;&nbsp;"MODIFIED: 2007-04-07 12:50:21"
7681    </p>
7682    <p>&nbsp;&nbsp;&nbsp;"."
7683    </p>
7684    </blockquote><p>
7685                        
7686    </p>
7687    <a name="SET DB_INSTRUMENT_DIRECTORY NAME"></a><br /><hr />
7688    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
7689    <a name="rfc.section.6.8.6"></a><h3>6.8.6.&nbsp;
7690    Renaming an instrument directory</h3>
7691    
7692    <p>The front-end can alter the name of a specific
7693                        instrument directory by sending the following command:
7694    </p>
7695    <p>
7696                            </p>
7697    <blockquote class="text">
7698    <p>SET DB_INSTRUMENT_DIRECTORY NAME &lt;dir&gt; &lt;name&gt;
7699    </p>
7700    </blockquote><p>
7701                        
7702    </p>
7703    <p>Where &lt;dir&gt; is the absolute path name of the directory and
7704                        &lt;name&gt; is the new name for that directory.
7705    </p>
7706    <p>Possible Answers:
7707    </p>
7708    <p>
7709                            </p>
7710    <blockquote class="text">
7711    <p>"OK" -
7712                                    </p>
7713    <blockquote class="text">
7714    <p>on success
7715    </p>
7716    </blockquote>
7717                                
7718    
7719    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
7720                                    </p>
7721    <blockquote class="text">
7722    <p>in case the given directory does not exists,
7723                                        or if a directory with name equal to the new
7724                                        name already exists.
7725    </p>
7726    </blockquote>
7727                                
7728    
7729    </blockquote><p>
7730                        
7731    </p>
7732    <p>Example:
7733    </p>
7734    <p>
7735                            </p>
7736    <blockquote class="text">
7737    <p>C: "SET DB_INSTRUMENT_DIRECTORY NAME '/Piano Collection/Acustic' 'Acoustic'"
7738    </p>
7739    <p>S: "OK"
7740    </p>
7741    </blockquote><p>
7742                        
7743    </p>
7744    <a name="MOVE DB_INSTRUMENT_DIRECTORY"></a><br /><hr />
7745    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
7746    <a name="rfc.section.6.8.7"></a><h3>6.8.7.&nbsp;
7747    Moving an instrument directory</h3>
7748    
7749    <p>The front-end can move a specific
7750                        instrument directory by sending the following command:
7751    </p>
7752    <p>
7753                            </p>
7754    <blockquote class="text">
7755    <p>MOVE DB_INSTRUMENT_DIRECTORY &lt;dir&gt; &lt;dst&gt;
7756    </p>
7757    </blockquote><p>
7758                        
7759    </p>
7760    <p>Where &lt;dir&gt; is the absolute path name of the directory
7761                        to move and &lt;dst&gt; is the location where the directory will
7762                        be moved to.
7763    </p>
7764    <p>Possible Answers:
7765    </p>
7766    <p>
7767                            </p>
7768    <blockquote class="text">
7769    <p>"OK" -
7770                                    </p>
7771    <blockquote class="text">
7772    <p>on success
7773    </p>
7774    </blockquote>
7775                                
7776    
7777    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
7778                                    </p>
7779    <blockquote class="text">
7780    <p>in case a given directory does not exists,
7781                                        or if a directory with name equal to the name
7782                                        of the specified directory already exists in
7783                                        the destination directory. Error is also thrown
7784                                        when trying to move a directory to a subdirectory
7785                                        of itself.
7786    </p>
7787    </blockquote>
7788                                
7789    
7790    </blockquote><p>
7791                        
7792    </p>
7793    <p>Example:
7794    </p>
7795    <p>
7796                            </p>
7797    <blockquote class="text">
7798    <p>C: "MOVE DB_INSTRUMENT_DIRECTORY '/Acoustic' '/Piano Collection/Acoustic'"
7799    </p>
7800    <p>S: "OK"
7801    </p>
7802    </blockquote><p>
7803                        
7804    </p>
7805    <a name="COPY DB_INSTRUMENT_DIRECTORY"></a><br /><hr />
7806    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
7807    <a name="rfc.section.6.8.8"></a><h3>6.8.8.&nbsp;
7808    Copying instrument directories</h3>
7809    
7810    <p>The front-end can copy a specific
7811                        instrument directory by sending the following command:
7812    </p>
7813    <p>
7814                            </p>
7815    <blockquote class="text">
7816    <p>COPY DB_INSTRUMENT_DIRECTORY &lt;dir&gt; &lt;dst&gt;
7817    </p>
7818    </blockquote><p>
7819                        
7820    </p>
7821    <p>Where &lt;dir&gt; is the absolute path name of the directory
7822                        to copy and &lt;dst&gt; is the location where the directory will
7823                        be copied to.
7824    </p>
7825    <p>Possible Answers:
7826    </p>
7827    <p>
7828                            </p>
7829    <blockquote class="text">
7830    <p>"OK" -
7831                                    </p>
7832    <blockquote class="text">
7833    <p>on success
7834    </p>
7835    </blockquote>
7836                                
7837    
7838    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
7839                                    </p>
7840    <blockquote class="text">
7841    <p>in case a given directory does not exists,
7842                                        or if a directory with name equal to the name
7843                                        of the specified directory already exists in
7844                                        the destination directory. Error is also thrown
7845                                        when trying to copy a directory to a subdirectory
7846                                        of itself.
7847    </p>
7848    </blockquote>
7849                                
7850    
7851    </blockquote><p>
7852                        
7853    </p>
7854    <p>Example:
7855    </p>
7856    <p>
7857                            </p>
7858    <blockquote class="text">
7859    <p>C: "COPY DB_INSTRUMENT_DIRECTORY '/Piano Collection/Acoustic' '/Acoustic/Pianos'"
7860    </p>
7861    <p>S: "OK"
7862    </p>
7863    </blockquote><p>
7864                        
7865    </p>
7866    <a name="SET DB_INSTRUMENT_DIRECTORY DESCRIPTION"></a><br /><hr />
7867    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
7868    <a name="rfc.section.6.8.9"></a><h3>6.8.9.&nbsp;
7869    Changing the description of directory</h3>
7870    
7871    <p>The front-end can alter the description of a specific
7872                        instrument directory by sending the following command:
7873    </p>
7874    <p>
7875                            </p>
7876    <blockquote class="text">
7877    <p>SET DB_INSTRUMENT_DIRECTORY DESCRIPTION &lt;dir&gt; &lt;desc&gt;
7878    </p>
7879    </blockquote><p>
7880                        
7881    </p>
7882    <p>Where &lt;dir&gt; is the absolute path name of the directory and
7883                        &lt;desc&gt; is the new description for the directory
7884                        (encapsulated into apostrophes, supporting escape sequences as described in chapter
7885                        "<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>").
7886    </p>
7887    <p>Possible Answers:
7888    </p>
7889    <p>
7890                            </p>
7891    <blockquote class="text">
7892    <p>"OK" -
7893                                    </p>
7894    <blockquote class="text">
7895    <p>on success
7896    </p>
7897    </blockquote>
7898                                
7899    
7900    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
7901                                    </p>
7902    <blockquote class="text">
7903    <p>in case the given directory does not exists.
7904    </p>
7905    </blockquote>
7906                                
7907    
7908    </blockquote><p>
7909                        
7910    </p>
7911    <p>Example:
7912    </p>
7913    <p>
7914                            </p>
7915    <blockquote class="text">
7916    <p>C: "SET DB_INSTRUMENT_DIRECTORY DESCRIPTION '/Piano Collection' 'A collection of piano instruments in various format.'"
7917    </p>
7918    <p>S: "OK"
7919    </p>
7920    </blockquote><p>
7921                        
7922    </p>
7923    <a name="FIND DB_INSTRUMENT_DIRECTORIES"></a><br /><hr />
7924    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
7925    <a name="rfc.section.6.8.10"></a><h3>6.8.10.&nbsp;
7926    Finding directories</h3>
7927    
7928    <p>The front-end can search for directories
7929                        in specific directory by sending the following command:
7930    </p>
7931    <p>
7932                            </p>
7933    <blockquote class="text">
7934    <p>FIND DB_INSTRUMENT_DIRECTORIES [NON_RECURSIVE] &lt;dir&gt; &lt;criteria-list&gt;
7935    </p>
7936    </blockquote><p>
7937                        
7938    </p>
7939    <p>Where &lt;dir&gt; should be replaced by the absolute path
7940                        name of the directory to search in. If NON_RECURSIVE is specified, the
7941                        directories located in subdirectories of the specified directory will not
7942                        be searched. &lt;criteria-list&gt; is a list of search criterias
7943                        in form of "key1=val1 key2=val2 ...". The following criterias are
7944                        allowed:
7945    </p>
7946    <p>
7947                          
7948    <p>NAME='&lt;search-string&gt;'
7949                              </p>
7950    <blockquote class="text">
7951    <p>Restricts the search to directories, which names
7952                                  satisfy the supplied search string (encapsulated into apostrophes,
7953                                  supporting escape sequences as described in chapter
7954                                  "<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>").
7955    </p>
7956    </blockquote><p>
7957                          
7958    </p>
7959    
7960                          
7961    <p>CREATED='[&lt;date-after&gt;]..[&lt;date-before&gt;]'
7962                              </p>
7963    <blockquote class="text">
7964    <p>Restricts the search to directories, which creation
7965                                  date satisfies the specified period, where &lt;date-after&gt;
7966                                  and &lt;date-before&gt; are in "YYYY-MM-DD HH:MM:SS" format.
7967                                  If &lt;date-after&gt; is omitted the search is restricted to
7968                                  directories created before &lt;date-before&gt;. If
7969                                  &lt;date-before&gt; is omitted, the search is restricted
7970                                  to directories created after &lt;date-after&gt;.
7971    </p>
7972    </blockquote><p>
7973                          
7974    </p>
7975    
7976                          
7977    <p>MODIFIED='[&lt;date-after&gt;]..[&lt;date-before&gt;]'
7978                              </p>
7979    <blockquote class="text">
7980    <p>Restricts the search to directories, which
7981                                  date of last modification satisfies the specified period, where
7982                                  &lt;date-after&gt; and &lt;date-before&gt; are in "YYYY-MM-DD HH:MM:SS"
7983                                  format. If &lt;date-after&gt; is omitted the search is restricted to
7984                                  directories, which are last modified before &lt;date-before&gt;. If
7985                                  &lt;date-before&gt; is omitted, the search is restricted to directories,
7986                                  which are last modified after &lt;date-after&gt;.
7987    </p>
7988    </blockquote><p>
7989                          
7990    </p>
7991    
7992                          
7993    <p>DESCRIPTION='&lt;search-string&gt;'
7994                              </p>
7995    <blockquote class="text">
7996    <p>Restricts the search to directories with description
7997                                  that satisfies the supplied search string
7998                                  (encapsulated into apostrophes, supporting escape
7999                                  sequences as described in chapter
8000                                  "<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>").
8001    </p>
8002    </blockquote><p>
8003                          
8004    </p>
8005                        
8006    
8007    <p>Where &lt;search-string&gt; is either a regular expression, or a
8008                        word list separated with spaces for OR search and with '+' for AND search.
8009    </p>
8010    <p>Possible Answers:
8011    </p>
8012    <p>
8013                            </p>
8014    <blockquote class="text">
8015    <p>A comma separated list with the absolute path names (encapsulated into
8016                                apostrophes) of all directories in the specified directory that satisfy
8017                                the supplied search criterias.
8018    </p>
8019    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
8020                                    </p>
8021    <blockquote class="text">
8022    <p>if the given directory does not exist.
8023    </p>
8024    </blockquote>
8025                                
8026    
8027    </blockquote><p>
8028                        
8029    </p>
8030    <p>Example:
8031    </p>
8032    <p>
8033                            </p>
8034    <blockquote class="text">
8035    <p>C: "FIND DB_INSTRUMENT_DIRECTORIES '/' NAME='Piano'"
8036    </p>
8037    <p>S: "'/Piano Collection'"
8038    </p>
8039    </blockquote><p>
8040                        
8041    </p>
8042    <p>
8043                            </p>
8044    <blockquote class="text">
8045    <p>C: "FIND DB_INSTRUMENT_DIRECTORIES '/' CREATED='..2007-04-01 09:30:13'"
8046    </p>
8047    <p>S: "'/Piano Collection','/Percussions'"
8048    </p>
8049    </blockquote><p>
8050                        
8051    </p>
8052    <a name="ADD DB_INSTRUMENTS"></a><br /><hr />
8053    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
8054    <a name="rfc.section.6.8.11"></a><h3>6.8.11.&nbsp;
8055    Adding instruments to the instruments database</h3>
8056    
8057    <p>The front-end can add one or more instruments
8058                        to the instruments database by sending the following command:
8059    </p>
8060    <p>
8061                            </p>
8062    <blockquote class="text">
8063    <p>ADD DB_INSTRUMENTS [NON_MODAL] [&lt;mode&gt;] &lt;db_dir&gt; &lt;file_path&gt; [&lt;instr_index&gt;]
8064    </p>
8065    </blockquote><p>
8066                        
8067    </p>
8068    <p>Where &lt;db_dir&gt; is the absolute path name of a directory
8069                        (encapsulated into apostrophes) in the instruments database in which
8070                        only the new instruments (that are not already in the database) will
8071                        be added, &lt;file_path&gt; is the absolute path name of a file or
8072                        directory in the file system (encapsulated into apostrophes). In case
8073                        an instrument file is supplied, only the instruments in the specified
8074                        file will be added to the instruments database. If the optional
8075                        &lt;instr_index&gt; (the index of the instrument within the given file)
8076                        is supplied too, then only the specified instrument will be added.
8077                        In case a directory is supplied, the instruments in that directory
8078                        will be added. The OPTIONAL &lt;mode&gt; argument is only applied
8079                        when a directory is provided as &lt;file_path&gt; and specifies how the
8080                        scanning will be done and has exactly the following possibilities:
8081    </p>
8082    <p>
8083                            </p>
8084    <blockquote class="text">
8085    <p>"RECURSIVE" -
8086                                    </p>
8087    <blockquote class="text">
8088    <p>All instruments will be processed, including those
8089                                        in the subdirectories, and the respective subdirectory
8090                                        tree structure will be recreated in the instruments
8091                                        database
8092    </p>
8093    </blockquote>
8094                                
8095    
8096    <p>"NON_RECURSIVE" -
8097                                    </p>
8098    <blockquote class="text">
8099    <p>Only the instruments in the specified directory
8100                                        will be added, the instruments in the subdirectories
8101                                        will not be processed.
8102    </p>
8103    </blockquote>
8104                                
8105    
8106    <p>"FLAT" -
8107                                    </p>
8108    <blockquote class="text">
8109    <p>All instruments will be processed, including those
8110                                        in the subdirectories, but the respective subdirectory
8111                                        structure will not be recreated in the instruments
8112                                        database. All instruments will be added directly in
8113                                        the specified database directory.
8114    </p>
8115    </blockquote>
8116                                
8117    
8118    </blockquote><p>
8119                        
8120    </p>
8121    <p>The difference between regular and NON_MODAL versions of the command
8122                        is that the regular command returns when the scanning is finished
8123                        while NON_MODAL version returns immediately and a background process is launched.
8124                        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>
8125                        command can be used to monitor the scanning progress.
8126    </p>
8127    <p>Possible Answers:
8128    </p>
8129    <p>
8130                            </p>
8131    <blockquote class="text">
8132    <p>"OK" -
8133                                    </p>
8134    <blockquote class="text">
8135    <p>on success when NON_MODAL is not supplied
8136    </p>
8137    </blockquote>
8138                                
8139    
8140    <p>"OK[&lt;job-id&gt;]" -
8141                                    </p>
8142    <blockquote class="text">
8143    <p>on success when NON_MODAL is supplied, where &lt;job-id&gt;
8144                                        is a numerical ID used to obtain status information about the job progress.
8145                                        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>
8146                                        
8147    </p>
8148    </blockquote>
8149                                
8150    
8151    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
8152                                    </p>
8153    <blockquote class="text">
8154    <p>if an invalid path is specified.
8155    </p>
8156    </blockquote>
8157                                
8158    
8159    </blockquote><p>
8160                        
8161    </p>
8162    <p>Examples:
8163    </p>
8164    <p>
8165                            </p>
8166    <blockquote class="text">
8167    <p>C: "ADD DB_INSTRUMENTS '/Piano Collection' '/home/me/gigs/PMI Bosendorfer 290.gig' 0"
8168    </p>
8169    <p>S: "OK"
8170    </p>
8171    </blockquote><p>
8172                        
8173    </p>
8174    <a name="REMOVE DB_INSTRUMENT"></a><br /><hr />
8175    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
8176    <a name="rfc.section.6.8.12"></a><h3>6.8.12.&nbsp;
8177    Removing an instrument</h3>
8178    
8179    <p>The front-end can remove a particular instrument
8180                        from the instruments database by sending the following command:
8181    </p>
8182    <p>
8183                            </p>
8184    <blockquote class="text">
8185    <p>REMOVE DB_INSTRUMENT &lt;instr_path&gt;
8186    </p>
8187    </blockquote><p>
8188                        
8189    </p>
8190    <p>Where &lt;instr_path&gt; is the absolute path name
8191                        (in the instruments database) of the instrument to remove.
8192    </p>
8193    <p>Possible Answers:
8194    </p>
8195    <p>
8196                            </p>
8197    <blockquote class="text">
8198    <p>"OK" -
8199                                    </p>
8200    <blockquote class="text">
8201    <p>if the instrument is removed successfully
8202    </p>
8203    </blockquote>
8204                                
8205    
8206    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
8207                                    </p>
8208    <blockquote class="text">
8209    <p>if the given path does not exist or
8210                                        is a directory.
8211    </p>
8212    </blockquote>
8213                                
8214    
8215    </blockquote><p>
8216                        
8217    </p>
8218    <p>Examples:
8219    </p>
8220    <p>
8221                            </p>
8222    <blockquote class="text">
8223    <p>C: "REMOVE DB_INSTRUMENT '/Piano Collection/Bosendorfer 290'"
8224    </p>
8225    <p>S: "OK"
8226    </p>
8227    </blockquote><p>
8228                        
8229    </p>
8230    <a name="GET DB_INSTRUMENTS"></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.13"></a><h3>6.8.13.&nbsp;
8233    Getting amount of instruments</h3>
8234    
8235    <p>The front-end can retrieve the current amount of
8236                        instruments in a specific directory by sending the following command:
8237    </p>
8238    <p>
8239                            </p>
8240    <blockquote class="text">
8241    <p>GET DB_INSTRUMENTS [RECURSIVE] &lt;dir&gt;
8242    </p>
8243    </blockquote><p>
8244                        
8245    </p>
8246    <p>Where &lt;dir&gt; should be replaced by the absolute path name
8247                        of the directory. If RECURSIVE is specified, the number of all
8248                        instruments, including those located in subdirectories of the
8249                        specified directory, will be returned.
8250    </p>
8251    <p>Possible Answers:
8252    </p>
8253    <p>
8254                            </p>
8255    <blockquote class="text">
8256    <p>The current number of instruments
8257                                in the specified directory.
8258    </p>
8259    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
8260                                    </p>
8261    <blockquote class="text">
8262    <p>if the given directory does not exist.
8263    </p>
8264    </blockquote>
8265                                
8266    
8267    </blockquote><p>
8268                        
8269    </p>
8270    <p>Example:
8271    </p>
8272    <p>
8273                            </p>
8274    <blockquote class="text">
8275    <p>C: "GET DB_INSTRUMENTS '/Piano Collection'"
8276    </p>
8277    <p>S: "2"
8278    </p>
8279    </blockquote><p>
8280                        
8281    </p>
8282    <a name="LIST DB_INSTRUMENTS"></a><br /><hr />
8283    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
8284    <a name="rfc.section.6.8.14"></a><h3>6.8.14.&nbsp;
8285    Listing all instruments in specific directory</h3>
8286    
8287    <p>The front-end can retrieve the current list of instruments
8288                        in specific directory by sending the following command:
8289    </p>
8290    <p>
8291                            </p>
8292    <blockquote class="text">
8293    <p>LIST DB_INSTRUMENTS [RECURSIVE] &lt;dir&gt;
8294    </p>
8295    </blockquote><p>
8296                        
8297    </p>
8298    <p>Where &lt;dir&gt; should be replaced by the absolute path
8299                        name of the directory. If RECURSIVE is specified, the absolute path
8300                        names of all instruments, including those located in subdirectories
8301                        of the specified directory, will be returned.
8302    </p>
8303    <p>Possible Answers:
8304    </p>
8305    <p>
8306                            </p>
8307    <blockquote class="text">
8308    <p>A comma separated list of all instruments
8309                                (encapsulated into apostrophes) in the specified directory.
8310    </p>
8311    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
8312                                    </p>
8313    <blockquote class="text">
8314    <p>if the given directory does not exist.
8315    </p>
8316    </blockquote>
8317                                
8318    
8319    </blockquote><p>
8320                        
8321    </p>
8322    <p>Example:
8323    </p>
8324    <p>
8325                            </p>
8326    <blockquote class="text">
8327    <p>C: "LIST DB_INSTRUMENTS '/Piano Collection'"
8328    </p>
8329    <p>S: "'Bosendorfer 290','Steinway D'"
8330    </p>
8331    </blockquote><p>
8332                        
8333    </p>
8334    <p>
8335                            </p>
8336    <blockquote class="text">
8337    <p>C: "LIST DB_INSTRUMENTS RECURSIVE '/Piano Collection'"
8338    </p>
8339    <p>S: "'/Piano Collection/Bosendorfer 290','/Piano Collection/Steinway D','/Piano Collection/Lite/Free Piano'"
8340    </p>
8341    </blockquote><p>
8342                        
8343    </p>
8344    <a name="GET DB_INSTRUMENT INFO"></a><br /><hr />
8345    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
8346    <a name="rfc.section.6.8.15"></a><h3>6.8.15.&nbsp;
8347    Getting instrument information</h3>
8348    
8349    <p>The front-end can ask for the current settings of an
8350                        instrument by sending the following command:
8351    </p>
8352    <p>
8353                            </p>
8354    <blockquote class="text">
8355    <p>GET DB_INSTRUMENT INFO &lt;instr_path&gt;
8356    </p>
8357    </blockquote><p>
8358                        
8359    </p>
8360    <p>Where &lt;instr_path&gt; should be replaced by the absolute path
8361                        name of the instrument the front-end is interested in.
8362    </p>
8363    <p>Possible Answers:
8364    </p>
8365    <p>
8366                            </p>
8367    <blockquote class="text">
8368    <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
8369                                Each answer line begins with the settings category name
8370                                followed by a colon and then a space character &lt;SP&gt; and finally
8371                                the info character string to that setting category. At the
8372                                moment the following categories are defined:
8373    </p>
8374    <p>
8375                                    </p>
8376    <blockquote class="text">
8377    <p>INSTRUMENT_FILE -
8378                                            </p>
8379    <blockquote class="text">
8380    <p>File name of the instrument.
8381                                                Note that the character string may contain
8382                                                <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>.
8383    </p>
8384    </blockquote>
8385                                        
8386    
8387    <p>INSTRUMENT_NR -
8388                                            </p>
8389    <blockquote class="text">
8390    <p>Index of the instrument within the file.
8391    </p>
8392    </blockquote>
8393                                        
8394    
8395    <p>FORMAT_FAMILY -
8396                                            </p>
8397    <blockquote class="text">
8398    <p>The format family of the instrument.
8399    </p>
8400    </blockquote>
8401                                        
8402    
8403    <p>FORMAT_VERSION -
8404                                            </p>
8405    <blockquote class="text">
8406    <p>The format version of the instrument.
8407    </p>
8408    </blockquote>
8409                                        
8410    
8411    <p>SIZE -
8412                                            </p>
8413    <blockquote class="text">
8414    <p>The size of the instrument in bytes.
8415    </p>
8416    </blockquote>
8417                                        
8418    
8419    <p>CREATED -
8420                                            </p>
8421    <blockquote class="text">
8422    <p>The date and time when the instrument is added
8423                                                in the instruments database, represented in
8424                                               "YYYY-MM-DD HH:MM:SS" format
8425    </p>
8426    </blockquote>
8427                                        
8428    
8429    <p>MODIFIED -
8430                                            </p>
8431    <blockquote class="text">
8432    <p>The date and time of the last modification of the
8433                                                instrument's database settings, represented in
8434                                                "YYYY-MM-DD HH:MM:SS" format
8435    </p>
8436    </blockquote>
8437                                        
8438    
8439    <p>DESCRIPTION -
8440                                            </p>
8441    <blockquote class="text">
8442    <p>A brief description of the instrument.
8443                                                Note that the character string may contain
8444                                                <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>.
8445    </p>
8446    </blockquote>
8447                                        
8448    
8449    <p>IS_DRUM -
8450                                            </p>
8451    <blockquote class="text">
8452    <p>either true or false, determines whether the
8453                                                instrument is a drumkit or a chromatic instrument
8454    </p>
8455    </blockquote>
8456                                        
8457    
8458    <p>PRODUCT -
8459                                            </p>
8460    <blockquote class="text">
8461    <p>The product title of the instrument.
8462                                                Note that the character string may contain
8463                                                <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>.
8464    </p>
8465    </blockquote>
8466                                        
8467    
8468    <p>ARTISTS -
8469                                            </p>
8470    <blockquote class="text">
8471    <p>Lists the artist names.
8472                                                Note that the character string may contain
8473                                                <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>.
8474    </p>
8475    </blockquote>
8476                                        
8477    
8478    <p>KEYWORDS -
8479                                            </p>
8480    <blockquote class="text">
8481    <p>Provides a list of keywords that refer to the instrument.
8482                                                Keywords are separated with semicolon and blank.
8483                                                Note that the character string may contain
8484                                                <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>.
8485    </p>
8486    </blockquote>
8487                                        
8488    
8489    </blockquote>
8490                                
8491    
8492    </blockquote><p>
8493                        
8494    </p>
8495    <p>The mentioned fields above don't have to be in particular order.
8496    </p>
8497    <p>Example:
8498    </p>
8499    <p>
8500                            </p>
8501    <blockquote class="text">
8502    <p>C: "GET DB_INSTRUMENT INFO '/Piano Collection/Bosendorfer 290'"
8503    </p>
8504    <p>S: "INSTRUMENT_FILE: /home/me/gigs/Bosendorfer 290.gig"
8505    </p>
8506    <p>&nbsp;&nbsp;&nbsp;"INSTRUMENT_NR: 0"
8507    </p>
8508    <p>&nbsp;&nbsp;&nbsp;"FORMAT_FAMILY: GIG"
8509    </p>
8510    <p>&nbsp;&nbsp;&nbsp;"FORMAT_VERSION: 2"
8511    </p>
8512    <p>&nbsp;&nbsp;&nbsp;"SIZE: 2050871870"
8513    </p>
8514    <p>&nbsp;&nbsp;&nbsp;"CREATED: 2007-02-05 10:23:12"
8515    </p>
8516    <p>&nbsp;&nbsp;&nbsp;"MODIFIED: 2007-04-07 12:50:21"
8517    </p>
8518    <p>&nbsp;&nbsp;&nbsp;"DESCRIPTION: "
8519    </p>
8520    <p>&nbsp;&nbsp;&nbsp;"IS_DRUM: false"
8521    </p>
8522    <p>&nbsp;&nbsp;&nbsp;"PRODUCT: GRANDIOSO Bosendorfer 290"
8523    </p>
8524    <p>&nbsp;&nbsp;&nbsp;"ARTISTS: Post Musical Instruments"
8525    </p>
8526    <p>&nbsp;&nbsp;&nbsp;"KEYWORDS: Bosendorfer"
8527    </p>
8528    <p>&nbsp;&nbsp;&nbsp;"."
8529    </p>
8530    </blockquote><p>
8531                        
8532    </p>
8533    <a name="SET DB_INSTRUMENT NAME"></a><br /><hr />
8534    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
8535    <a name="rfc.section.6.8.16"></a><h3>6.8.16.&nbsp;
8536    Renaming an instrument</h3>
8537    
8538    <p>The front-end can alter the name of a specific
8539                        instrument by sending the following command:
8540    </p>
8541    <p>
8542                            </p>
8543    <blockquote class="text">
8544    <p>SET DB_INSTRUMENT NAME &lt;instr&gt; &lt;name&gt;
8545    </p>
8546    </blockquote><p>
8547                        
8548    </p>
8549    <p>Where &lt;instr&gt; is the absolute path name of the instrument and
8550                        &lt;name&gt; is the new name for that instrument.
8551    </p>
8552    <p>Possible Answers:
8553    </p>
8554    <p>
8555                            </p>
8556    <blockquote class="text">
8557    <p>"OK" -
8558                                    </p>
8559    <blockquote class="text">
8560    <p>on success
8561    </p>
8562    </blockquote>
8563                                
8564    
8565    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
8566                                    </p>
8567    <blockquote class="text">
8568    <p>in case the given instrument does not exists,
8569                                        or if an instrument with name equal to the new
8570                                        name already exists.
8571    </p>
8572    </blockquote>
8573                                
8574    
8575    </blockquote><p>
8576                        
8577    </p>
8578    <p>Example:
8579    </p>
8580    <p>
8581                            </p>
8582    <blockquote class="text">
8583    <p>C: "SET DB_INSTRUMENT NAME '/Piano Collection/Bosendorfer' 'Bosendorfer 290'"
8584    </p>
8585    <p>S: "OK"
8586    </p>
8587    </blockquote><p>
8588                        
8589    </p>
8590    <a name="MOVE DB_INSTRUMENT"></a><br /><hr />
8591    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
8592    <a name="rfc.section.6.8.17"></a><h3>6.8.17.&nbsp;
8593    Moving an instrument</h3>
8594    
8595    <p>The front-end can move a specific instrument to another directory by
8596                        sending the following command:
8597    </p>
8598    <p>
8599                            </p>
8600    <blockquote class="text">
8601    <p>MOVE DB_INSTRUMENT &lt;instr&gt; &lt;dst&gt;
8602    </p>
8603    </blockquote><p>
8604                        
8605    </p>
8606    <p>Where &lt;instr&gt; is the absolute path name of the instrument
8607                        to move and &lt;dst&gt; is the directory where the instrument will
8608                        be moved to.
8609    </p>
8610    <p>Possible Answers:
8611    </p>
8612    <p>
8613                            </p>
8614    <blockquote class="text">
8615    <p>"OK" -
8616                                    </p>
8617    <blockquote class="text">
8618    <p>on success
8619    </p>
8620    </blockquote>
8621                                
8622    
8623    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
8624                                    </p>
8625    <blockquote class="text">
8626    <p>in case the given instrument does not exists,
8627                                        or if an instrument with name equal to the name of the
8628                                        specified instrument already exists in the destination
8629                                        directory.
8630    </p>
8631    </blockquote>
8632                                
8633    
8634    </blockquote><p>
8635                        
8636    </p>
8637    <p>Example:
8638    </p>
8639    <p>
8640                            </p>
8641    <blockquote class="text">
8642    <p>C: "MOVE DB_INSTRUMENT '/Piano Collection/Bosendorfer 290' '/Piano Collection/Acoustic'"
8643    </p>
8644    <p>S: "OK"
8645    </p>
8646    </blockquote><p>
8647                        
8648    </p>
8649    <a name="COPY DB_INSTRUMENT"></a><br /><hr />
8650    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
8651    <a name="rfc.section.6.8.18"></a><h3>6.8.18.&nbsp;
8652    Copying instruments</h3>
8653    
8654    <p>The front-end can copy a specific instrument to another directory by
8655                        sending the following command:
8656    </p>
8657    <p>
8658                            </p>
8659    <blockquote class="text">
8660    <p>COPY DB_INSTRUMENT &lt;instr&gt; &lt;dst&gt;
8661    </p>
8662    </blockquote><p>
8663                        
8664    </p>
8665    <p>Where &lt;instr&gt; is the absolute path name of the instrument
8666                        to copy and &lt;dst&gt; is the directory where the instrument will
8667                        be copied to.
8668    </p>
8669    <p>Possible Answers:
8670    </p>
8671    <p>
8672                            </p>
8673    <blockquote class="text">
8674    <p>"OK" -
8675                                    </p>
8676    <blockquote class="text">
8677    <p>on success
8678    </p>
8679    </blockquote>
8680                                
8681    
8682    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
8683                                    </p>
8684    <blockquote class="text">
8685    <p>in case the given instrument does not exists,
8686                                        or if an instrument with name equal to the name of the
8687                                        specified instrument already exists in the destination
8688                                        directory.
8689    </p>
8690    </blockquote>
8691                                
8692    
8693    </blockquote><p>
8694                        
8695    </p>
8696    <p>Example:
8697    </p>
8698    <p>
8699                            </p>
8700    <blockquote class="text">
8701    <p>C: "COPY DB_INSTRUMENT '/Piano Collection/Bosendorfer 290' '/Acoustic/Pianos/'"
8702    </p>
8703    <p>S: "OK"
8704    </p>
8705    </blockquote><p>
8706                        
8707    </p>
8708    <a name="SET DB_INSTRUMENT DESCRIPTION"></a><br /><hr />
8709    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
8710    <a name="rfc.section.6.8.19"></a><h3>6.8.19.&nbsp;
8711    Changing the description of instrument</h3>
8712    
8713    <p>The front-end can alter the description of a specific
8714                        instrument by sending the following command:
8715    </p>
8716    <p>
8717                            </p>
8718    <blockquote class="text">
8719    <p>SET DB_INSTRUMENT DESCRIPTION &lt;instr&gt; &lt;desc&gt;
8720    </p>
8721    </blockquote><p>
8722                        
8723    </p>
8724    <p>Where &lt;instr&gt; is the absolute path name of the instrument and
8725                        &lt;desc&gt; is the new description for the instrument
8726                        (encapsulated into apostrophes, supporting escape sequences as described in chapter
8727                        "<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>").
8728    </p>
8729    <p>Possible Answers:
8730    </p>
8731    <p>
8732                            </p>
8733    <blockquote class="text">
8734    <p>"OK" -
8735                                    </p>
8736    <blockquote class="text">
8737    <p>on success
8738    </p>
8739    </blockquote>
8740                                
8741    
8742    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
8743                                    </p>
8744    <blockquote class="text">
8745    <p>in case the given instrument does not exists.
8746    </p>
8747    </blockquote>
8748                                
8749    
8750    </blockquote><p>
8751                        
8752    </p>
8753    <p>Example:
8754    </p>
8755    <p>
8756                            </p>
8757    <blockquote class="text">
8758    <p>C: "SET DB_INSTRUMENT DESCRIPTION '/Piano Collection/Acoustic/Bosendorfer 290' 'No comment :)'"
8759    </p>
8760    <p>S: "OK"
8761    </p>
8762    </blockquote><p>
8763                        
8764    </p>
8765    <a name="FIND DB_INSTRUMENTS"></a><br /><hr />
8766    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
8767    <a name="rfc.section.6.8.20"></a><h3>6.8.20.&nbsp;
8768    Finding instruments</h3>
8769    
8770    <p>The front-end can search for instruments
8771                        in specific directory by sending the following command:
8772    </p>
8773    <p>
8774                            </p>
8775    <blockquote class="text">
8776    <p>FIND DB_INSTRUMENTS [NON_RECURSIVE] &lt;dir&gt; &lt;criteria-list&gt;
8777    </p>
8778    </blockquote><p>
8779                        
8780    </p>
8781    <p>Where &lt;dir&gt; should be replaced by the absolute path
8782                        name of the directory to search in. If NON_RECURSIVE is specified, the
8783                        directories located in subdirectories of the specified directory will not
8784                        be searched. &lt;criteria-list&gt; is a list of search criterias
8785                        in form of "key1=val1 key2=val2 ...". The following criterias are
8786                        allowed:
8787    </p>
8788    <p>
8789                          
8790    <p>NAME='&lt;search-string&gt;'
8791                              </p>
8792    <blockquote class="text">
8793    <p>Restricts the search to instruments, which names
8794                                  satisfy the supplied search string (encapsulated into apostrophes,
8795                                  supporting escape sequences as described in chapter
8796                                  "<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>").
8797    </p>
8798    </blockquote><p>
8799                          
8800    </p>
8801    
8802                          
8803    <p>SIZE=[&lt;min&gt;]..[&lt;max&gt;]
8804                              </p>
8805    <blockquote class="text">
8806    <p>Restricts the search to instruments, which
8807                                  size is in the specified range. If &lt;min&gt; is omitted,
8808                                  the search results are restricted to instruments with size less then
8809                                  or equal to &lt;max&gt;. If &lt;max&gt; is omitted, the
8810                                  search is restricted to instruments with size greater then
8811                                  or equal to &lt;min&gt;.
8812    </p>
8813    </blockquote><p>
8814                          
8815    </p>
8816    
8817                          
8818    <p>CREATED='[&lt;date-after&gt;]..[&lt;date-before&gt;]'
8819                              </p>
8820    <blockquote class="text">
8821    <p>Restricts the search to instruments, which creation
8822                                  date satisfies the specified period, where &lt;date-after&gt;
8823                                  and &lt;date-before&gt; are in "YYYY-MM-DD HH:MM:SS" format.
8824                                  If &lt;date-after&gt; is omitted the search is restricted to
8825                                  instruments created before &lt;date-before&gt;. If
8826                                  &lt;date-before&gt; is omitted, the search is restricted
8827                                  to instruments created after &lt;date-after&gt;.
8828    </p>
8829    </blockquote><p>
8830                          
8831    </p>
8832    
8833                          
8834    <p>MODIFIED='[&lt;date-after&gt;]..[&lt;date-before&gt;]'
8835                              </p>
8836    <blockquote class="text">
8837    <p>Restricts the search to instruments, which
8838                                  date of last modification satisfies the specified period, where
8839                                  &lt;date-after&gt; and &lt;date-before&gt; are in "YYYY-MM-DD HH:MM:SS"
8840                                  format. If &lt;date-after&gt; is omitted the search is restricted to
8841                                  instruments, which are last modified before &lt;date-before&gt;. If
8842                                  &lt;date-before&gt; is omitted, the search is restricted to instruments,
8843                                  which are last modified after &lt;date-after&gt;.
8844    </p>
8845    </blockquote><p>
8846                          
8847    </p>
8848    
8849                          
8850    <p>DESCRIPTION='&lt;search-string&gt;'
8851                              </p>
8852    <blockquote class="text">
8853    <p>Restricts the search to instruments with description
8854                                  that satisfies the supplied search string (encapsulated into apostrophes,
8855                                  supporting escape sequences as described in chapter
8856                                  "<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>").
8857    </p>
8858    </blockquote><p>
8859                          
8860    </p>
8861    
8862                          
8863    <p>PRODUCT='&lt;search-string&gt;'
8864                              </p>
8865    <blockquote class="text">
8866    <p>Restricts the search to instruments with product info
8867                                  that satisfies the supplied search string (encapsulated into apostrophes,
8868                                  supporting escape sequences as described in chapter
8869                                  "<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>").
8870    </p>
8871    </blockquote><p>
8872                          
8873    </p>
8874    
8875                          
8876    <p>ARTISTS='&lt;search-string&gt;'
8877                              </p>
8878    <blockquote class="text">
8879    <p>Restricts the search to instruments with artists info
8880                                  that satisfies the supplied search string (encapsulated into apostrophes,
8881                                  supporting escape sequences as described in chapter
8882                                  "<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>").
8883    </p>
8884    </blockquote><p>
8885                          
8886    </p>
8887    
8888                          
8889    <p>KEYWORDS='&lt;search-string&gt;'
8890                              </p>
8891    <blockquote class="text">
8892    <p>Restricts the search to instruments with keyword list
8893                                  that satisfies the supplied search string (encapsulated into apostrophes,
8894                                  supporting escape sequences as described in chapter
8895                                  "<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>").
8896    </p>
8897    </blockquote><p>
8898                          
8899    </p>
8900    
8901                          
8902    <p>IS_DRUM=true | false
8903                              </p>
8904    <blockquote class="text">
8905    <p>Either true or false. Restricts the search to
8906                                  drum kits or chromatic instruments.
8907    </p>
8908    </blockquote><p>
8909                          
8910    </p>
8911    
8912                          
8913    <p>FORMAT_FAMILIES='&lt;format-list&gt;'
8914                              </p>
8915    <blockquote class="text">
8916    <p>Restricts the search to instruments of the supplied format families,
8917                                  where &lt;format-list&gt; is a comma separated list of format families.
8918    </p>
8919    </blockquote><p>
8920                          
8921    </p>
8922                        
8923    
8924    <p>Where &lt;search-string&gt; is either a regular expression, or a
8925                        word list separated with spaces for OR search and with '+' for AND search.
8926    </p>
8927    <p>Possible Answers:
8928    </p>
8929    <p>
8930                            </p>
8931    <blockquote class="text">
8932    <p>A comma separated list with the absolute path names (encapsulated into
8933                                apostrophes) of all instruments in the specified directory that satisfy
8934                                the supplied search criterias.
8935    </p>
8936    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
8937                                    </p>
8938    <blockquote class="text">
8939    <p>if the given directory does not exist.
8940    </p>
8941    </blockquote>
8942                                
8943    
8944    </blockquote><p>
8945                        
8946    </p>
8947    <p>Example:
8948    </p>
8949    <p>
8950                            </p>
8951    <blockquote class="text">
8952    <p>C: "FIND DB_INSTRUMENTS '/Piano Collection' NAME='bosendorfer+290'"
8953    </p>
8954    <p>S: "'/Piano Collection/Bosendorfer 290'"
8955    </p>
8956    </blockquote><p>
8957                        
8958    </p>
8959    <p>
8960                            </p>
8961    <blockquote class="text">
8962    <p>C: "FIND DB_INSTRUMENTS '/Piano Collection' CREATED='2007-04-01 09:30:13..'"
8963    </p>
8964    <p>S: "'/Piano Collection/Bosendorfer 290','/Piano Collection/Steinway D'"
8965    </p>
8966    </blockquote><p>
8967                        
8968    </p>
8969    <a name="GET DB_INSTRUMENTS_JOB INFO"></a><br /><hr />
8970    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
8971    <a name="rfc.section.6.8.21"></a><h3>6.8.21.&nbsp;
8972    Getting job status information</h3>
8973    
8974    <p>The front-end can ask for the current status of a
8975                        particular database instruments job by sending the following command:
8976    </p>
8977    <p>
8978                            </p>
8979    <blockquote class="text">
8980    <p>GET DB_INSTRUMENTS_JOB INFO &lt;job-id&gt;
8981    </p>
8982    </blockquote><p>
8983                        
8984    </p>
8985    <p>Where &lt;job-id&gt; should be replaced by the numerical ID
8986                        of the job the front-end is interested in.
8987    </p>
8988    <p>Possible Answers:
8989    </p>
8990    <p>
8991                            </p>
8992    <blockquote class="text">
8993    <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
8994                                Each answer line begins with the settings category name
8995                                followed by a colon and then a space character &lt;SP&gt; and finally
8996                                the info character string to that setting category. At the
8997                                moment the following categories are defined:
8998    </p>
8999    <p>
9000                                    </p>
9001    <blockquote class="text">
9002    <p>FILES_TOTAL -
9003                                            </p>
9004    <blockquote class="text">
9005    <p>The total number of files scheduled for scanning
9006    </p>
9007    </blockquote>
9008                                        
9009    
9010    <p>FILES_SCANNED -
9011                                            </p>
9012    <blockquote class="text">
9013    <p>The current number of scanned files
9014    </p>
9015    </blockquote>
9016                                        
9017    
9018    <p>SCANNING -
9019                                            </p>
9020    <blockquote class="text">
9021    <p>The absolute path name of the file which is currently
9022                                                being scanned
9023    </p>
9024    </blockquote>
9025                                        
9026    
9027    <p>STATUS -
9028                                            </p>
9029    <blockquote class="text">
9030    <p>An integer value between 0 and 100 indicating the
9031                                                scanning progress percentage of the file which is
9032                                                currently being scanned
9033    </p>
9034    </blockquote>
9035                                        
9036    
9037    </blockquote>
9038                                
9039    
9040    </blockquote><p>
9041                        
9042    </p>
9043    <p>The mentioned fields above don't have to be in particular order.
9044    </p>
9045    <p>Example:
9046    </p>
9047    <p>
9048                            </p>
9049    <blockquote class="text">
9050    <p>C: "GET DB_INSTRUMENTS_JOB INFO 2"
9051    </p>
9052    <p>S: "FILES_TOTAL: 12"
9053    </p>
9054    <p>&nbsp;&nbsp;&nbsp;"FILES_SCANNED: 7"
9055    </p>
9056    <p>&nbsp;&nbsp;&nbsp;"SCANNING: /home/me/gigs/Bosendorfer 290.gig"
9057    </p>
9058    <p>&nbsp;&nbsp;&nbsp;"STATUS: 42"
9059    </p>
9060    <p>&nbsp;&nbsp;&nbsp;"."
9061    </p>
9062    </blockquote><p>
9063                        
9064    </p>
9065    <a name="FORMAT INSTRUMENTS_DB"></a><br /><hr />
9066    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
9067    <a name="rfc.section.6.8.22"></a><h3>6.8.22.&nbsp;
9068    Formatting the instruments database</h3>
9069    
9070    <p>The front-end can remove all instruments and directories and re-create
9071                        the instruments database structure (e.g., in case of a database corruption)
9072                        by sending the following command:
9073    </p>
9074    <p>
9075                            </p>
9076    <blockquote class="text">
9077    <p>FORMAT INSTRUMENTS_DB
9078    </p>
9079    </blockquote><p>
9080                        
9081    </p>
9082    <p>Possible Answers:
9083    </p>
9084    <p>
9085                            </p>
9086    <blockquote class="text">
9087    <p>"OK" -
9088                                    </p>
9089    <blockquote class="text">
9090    <p>on success
9091    </p>
9092    </blockquote>
9093                                
9094    
9095    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
9096                                    </p>
9097    <blockquote class="text">
9098    <p>If the formatting of the instruments database
9099                                        failed.
9100    </p>
9101    </blockquote>
9102                                
9103    
9104    </blockquote><p>
9105                        
9106    </p>
9107    <a name="FIND LOST DB_INSTRUMENT_FILES"></a><br /><hr />
9108    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
9109    <a name="rfc.section.6.8.23"></a><h3>6.8.23.&nbsp;
9110    Checking for lost instrument files</h3>
9111    
9112    <p>The front-end can retrieve the list of all instrument files in the instruments database
9113                        that don't exist in the filesystem by sending the following command:
9114    </p>
9115    <p>
9116                            </p>
9117    <blockquote class="text">
9118    <p>FIND LOST DB_INSTRUMENT_FILES
9119    </p>
9120    </blockquote><p>
9121                        
9122    </p>
9123    <p>Possible Answers:
9124    </p>
9125    <p>
9126                            </p>
9127    <blockquote class="text">
9128    <p>A comma separated list with the absolute path names
9129                                (encapsulated into apostrophes) of all lost instrument files.
9130    </p>
9131    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
9132                                    </p>
9133    <blockquote class="text">
9134    <p>in case it failed, providing an appropriate error code and error message.
9135    </p>
9136    </blockquote>
9137                                
9138    
9139    </blockquote><p>
9140                        
9141    </p>
9142    <p>Example:
9143    </p>
9144    <p>
9145                            </p>
9146    <blockquote class="text">
9147    <p>C: "FIND LOST DB_INSTRUMENT_FILES"
9148    </p>
9149    <p>S: "'/gigs/Bosendorfer 290.gig','/gigs/Steinway D.gig','/gigs/Free Piano.gig'"
9150    </p>
9151    </blockquote><p>
9152                        
9153    </p>
9154    <a name="SET DB_INSTRUMENT FILE_PATH"></a><br /><hr />
9155    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
9156    <a name="rfc.section.6.8.24"></a><h3>6.8.24.&nbsp;
9157    Replacing an instrument file</h3>
9158    
9159    <p>The front-end can substitute all occurrences of an instrument file
9160                        in the instruments database with a new one by sending the following command:
9161    </p>
9162    <p>
9163                            </p>
9164    <blockquote class="text">
9165    <p>SET DB_INSTRUMENT FILE_PATH &lt;old_path&gt; &lt;new_path&gt;
9166    </p>
9167    </blockquote><p>
9168                        
9169    </p>
9170    <p>Where &lt;old_path&gt; is the absolute path name of the instrument file
9171                        to substitute with &lt;new_path&gt;.
9172    </p>
9173    <p>Possible Answers:
9174    </p>
9175    <p>
9176                            </p>
9177    <blockquote class="text">
9178    <p>"OK" -
9179                                    </p>
9180    <blockquote class="text">
9181    <p>on success
9182    </p>
9183    </blockquote>
9184                                
9185    
9186    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
9187                                    </p>
9188    <blockquote class="text">
9189    <p>in case it failed, providing an appropriate error code and error message.
9190    </p>
9191    </blockquote>
9192                                
9193    
9194    </blockquote><p>
9195                        
9196    </p>
9197    <p>Example:
9198    </p>
9199    <p>
9200                            </p>
9201    <blockquote class="text">
9202    <p>C: "SET DB_INSTRUMENT FILE_PATH '/gigs/Bosendorfer 290.gig' '/gigs/pianos/Bosendorfer 290.gig'"
9203    </p>
9204    <p>S: "OK"
9205    </p>
9206    </blockquote><p>
9207                        
9208    </p>
9209    <a name="editing_instruments"></a><br /><hr />
9210    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
9211    <a name="rfc.section.6.9"></a><h3>6.9.&nbsp;
9212    Editing Instruments</h3>
9213    
9214    <p>The sampler allows to edit instruments while playing with the
9215                    sampler by spawning an external (3rd party) instrument editor
9216                    application for a given instrument. The 3rd party instrument
9217                    editor applications have to place a respective plugin DLL file
9218                    into the sampler's plugins directory. The sampler will
9219                    automatically try to load all plugin DLLs in that directory on
9220                    startup and only on startup!
9221    </p>
9222    <p>At the moment there is only one command for this feature set,
9223                    but this will most probably change in future.
9224    </p>
9225    <a name="EDIT INSTRUMENT"></a><br /><hr />
9226    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
9227    <a name="rfc.section.6.9.1"></a><h3>6.9.1.&nbsp;
9228    Opening an appropriate instrument editor application</h3>
9229    
9230    <p>The front-end can request to open an appropriate instrument
9231                        editor application by sending the following command:
9232    </p>
9233    <p>
9234                            </p>
9235    <blockquote class="text">
9236    <p>EDIT CHANNEL INSTRUMENT &lt;sampler-channel&gt;
9237    </p>
9238    </blockquote><p>
9239                        
9240    </p>
9241    <p>Where &lt;sampler-channel&gt; should be replaced by the
9242                        number of the sampler channel as given by the
9243                        <a class='info' href='#ADD CHANNEL'>"ADD CHANNEL"<span> (</span><span class='info'>Adding a new sampler channel</span><span>)</span></a>
9244                        or <a class='info' href='#LIST CHANNELS'>"LIST CHANNELS"<span> (</span><span class='info'>Getting all created sampler channel list</span><span>)</span></a>
9245                        command.
9246    </p>
9247    <p>The sampler will try to ask all registered instrument
9248                        editors (or to be more specific: their sampler plugins)
9249                        whether they are capable to handle the instrument on the
9250                        given sampler channel. The sampler will simply use the first
9251                        instrument editor application which replied with a positive
9252                        answer and spawn that instrument editor application within
9253                        the sampler's process and provide that application access
9254                        to the instrument's data structures, so both applications
9255                        can share and access the same instruments data at the same
9256                        time, thus allowing to immediately hear changes with the
9257                        sampler made by the instrument editor.
9258    </p>
9259    <p>Note: consequently instrument editors are always spawned
9260                        locally on the same machine where the sampler is running
9261                        on!
9262    </p>
9263    <p>Possible Answers:
9264    </p>
9265    <p>
9266                            </p>
9267    <blockquote class="text">
9268    <p>"OK" -
9269                                    </p>
9270    <blockquote class="text">
9271    <p>when an appropriate instrument editor was
9272                                        launched
9273    </p>
9274    </blockquote>
9275                                
9276    
9277    <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
9278                                    </p>
9279    <blockquote class="text">
9280    <p>when an appropriate instrument editor was
9281                                        launched, but there are noteworthy issues
9282    </p>
9283    </blockquote>
9284                                
9285    
9286    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
9287                                    </p>
9288    <blockquote class="text">
9289    <p>when an appropriate instrument editor
9290                                        could not be launched
9291    </p>
9292    </blockquote>
9293                                
9294    
9295    </blockquote><p>
9296                        
9297    </p>
9298    <p>Examples:
9299    </p>
9300    <p>
9301                            </p>
9302    <blockquote class="text">
9303    <p>C: "EDIT CHANNEL INSTRUMENT 0"
9304    </p>
9305    <p>S: "OK"
9306    </p>
9307    </blockquote><p>
9308                        
9309    </p>
9310    <a name="file_management"></a><br /><hr />
9311    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
9312    <a name="rfc.section.6.10"></a><h3>6.10.&nbsp;
9313    Managing Files</h3>
9314    
9315    <p>You can query detailed informations about files located
9316                    at the same system where the sampler instance is running on.
9317                    Using this command set allows to retrieve file informations
9318                    even remotely from another machine.
9319    </p>
9320    <a name="GET FILE INSTRUMENTS"></a><br /><hr />
9321    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
9322    <a name="rfc.section.6.10.1"></a><h3>6.10.1.&nbsp;
9323    Retrieving amount of instruments of a file</h3>
9324    
9325    <p>The front-end can retrieve the amount of instruments
9326                        within a given instrument file by sending the
9327                        following command:
9328    </p>
9329    <p>
9330                            </p>
9331    <blockquote class="text">
9332    <p>GET FILE INSTRUMENTS &lt;filename&gt;
9333    </p>
9334    </blockquote><p>
9335                        
9336    </p>
9337    <p>Where &lt;filename&gt; is the name of the instrument
9338                        file (encapsulated into apostrophes, supporting escape
9339                        sequences as described in chapter
9340                        "<a class='info' href='#character_set'>Character Set and Escape
9341                            Sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>").
9342    </p>
9343    <p>The sampler will try to ask all sampler engines,
9344                        whether they support the given file and ask the first
9345                        engine with a positive answer for the amount of
9346                        instruments.
9347    </p>
9348    <p>Possible Answers:
9349    </p>
9350    <p>
9351                            </p>
9352    <blockquote class="text">
9353    <p>On success, the sampler will answer by
9354                                   returning the amount of instruments.
9355                                
9356    </p>
9357    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
9358                                    </p>
9359    <blockquote class="text">
9360    <p>if the file could not be handled
9361    </p>
9362    </blockquote>
9363                                
9364    
9365    </blockquote><p>
9366                        
9367    </p>
9368    <p>Examples:
9369    </p>
9370    <p>
9371                            </p>
9372    <blockquote class="text">
9373    <p>C: "GET FILE INSTRUMENTS 'D:/Sounds/Foo.gig'"
9374    </p>
9375    <p>S: "10"
9376    </p>
9377    </blockquote><p>
9378                        
9379    </p>
9380    <a name="LIST FILE INSTRUMENTS"></a><br /><hr />
9381    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
9382    <a name="rfc.section.6.10.2"></a><h3>6.10.2.&nbsp;
9383    Retrieving all instruments of a file</h3>
9384    
9385    <p>The front-end can retrieve a list of all instruments
9386                        within a given instrument file by sending the
9387                        following command:
9388    </p>
9389    <p>
9390                            </p>
9391    <blockquote class="text">
9392    <p>LIST FILE INSTRUMENTS &lt;filename&gt;
9393    </p>
9394    </blockquote><p>
9395                        
9396    </p>
9397    <p>Where &lt;filename&gt; is the name of the instrument
9398                        file (encapsulated into apostrophes, supporting escape
9399                        sequences as described in chapter
9400                        "<a class='info' href='#character_set'>Character Set and Escape
9401                            Sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>").
9402    </p>
9403    <p>The sampler will try to ask all sampler engines,
9404                        whether they support the given file and ask the first
9405                        engine with a positive answer for a list of IDs for the
9406                        instruments in the given file.
9407    </p>
9408    <p>Possible Answers:
9409    </p>
9410    <p>
9411                            </p>
9412    <blockquote class="text">
9413    <p>On success, the sampler will answer by
9414                                   returning a comma separated list of
9415                                   instrument IDs.
9416                                
9417    </p>
9418    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
9419                                    </p>
9420    <blockquote class="text">
9421    <p>if the file could not be handled
9422    </p>
9423    </blockquote>
9424                                
9425    
9426    </blockquote><p>
9427                        
9428    </p>
9429    <p>Examples:
9430    </p>
9431    <p>
9432                            </p>
9433    <blockquote class="text">
9434    <p>C: "LIST FILE INSTRUMENTS 'D:/Sounds/Foo.gig'"
9435    </p>
9436    <p>S: "0,1,2,3,4,5,6,7,8,9"
9437    </p>
9438    </blockquote><p>
9439                        
9440    </p>
9441    <a name="GET FILE INSTRUMENT INFO"></a><br /><hr />
9442    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
9443    <a name="rfc.section.6.10.3"></a><h3>6.10.3.&nbsp;
9444    Retrieving informations about one instrument in a file</h3>
9445    
9446    <p>The front-end can retrieve detailed informations
9447                        about a specific instrument within a given instrument
9448                        file by sending the following command:
9449    </p>
9450    <p>
9451                            </p>
9452    <blockquote class="text">
9453    <p>GET FILE INSTRUMENT INFO &lt;filename&gt;
9454                                &lt;instr-id&gt;
9455    </p>
9456    </blockquote><p>
9457                        
9458    </p>
9459    <p>Where &lt;filename&gt; is the name of the instrument
9460                        file (encapsulated into apostrophes, supporting escape
9461                        sequences as described in chapter
9462                        "<a class='info' href='#character_set'>Character Set and Escape
9463                            Sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>") and &lt;instr-id&gt; is the numeric
9464                        instrument ID as returned by the
9465                        <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.
9466    </p>
9467    <p>The sampler will try to ask all sampler engines,
9468                        whether they support the given file and ask the first
9469                        engine with a positive answer for informations about the
9470                        specific instrument in the given file.
9471    </p>
9472    <p>Possible Answers:
9473    </p>
9474    <p>
9475                            </p>
9476    <blockquote class="text">
9477    <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
9478                                Each answer line begins with the settings category name
9479                                followed by a colon and then a space character &lt;SP&gt; and finally
9480                                the info character string to that setting category. At the
9481                                moment the following categories are defined:
9482    </p>
9483    <p>
9484                                    </p>
9485    <blockquote class="text">
9486    <p>NAME -
9487                                            </p>
9488    <blockquote class="text">
9489    <p>name of the instrument as
9490                                                stored in the instrument file
9491    </p>
9492    </blockquote>
9493                                        
9494    
9495    <p>FORMAT_FAMILY -
9496                                            </p>
9497    <blockquote class="text">
9498    <p>name of the sampler format
9499                                                of the given instrument
9500    </p>
9501    </blockquote>
9502                                        
9503    
9504    <p>FORMAT_VERSION -
9505                                            </p>
9506    <blockquote class="text">
9507    <p>version of the sampler format
9508                                                the instrumen is stored as
9509    </p>
9510    </blockquote>
9511                                        
9512    
9513    <p>PRODUCT -
9514                                            </p>
9515    <blockquote class="text">
9516    <p>official product name of the
9517                                                instrument as stored in the file
9518                                                
9519    </p>
9520    </blockquote>
9521                                        
9522    
9523    <p>ARTISTS -
9524                                            </p>
9525    <blockquote class="text">
9526    <p>artists / sample library
9527                                                vendor of the instrument
9528    </p>
9529    </blockquote>
9530                                        
9531    
9532    </blockquote>
9533                                
9534    
9535    </blockquote><p>
9536                        
9537    </p>
9538    <p>The mentioned fields above don't have to be in particular order.
9539    </p>
9540    <p>Example:
9541    </p>
9542    <p>
9543                            </p>
9544    <blockquote class="text">
9545    <p>C: "GET FILE INSTRUMENT INFO 'D:/Sounds/Foo.gig' 0"
9546    </p>
9547    <p>S: "NAME: Lunatic Loops"
9548    </p>
9549    <p>&nbsp;&nbsp;&nbsp;"FORMAT_FAMILY: GIG"
9550    </p>
9551    <p>&nbsp;&nbsp;&nbsp;"FORMAT_VERSION: 3"
9552    </p>
9553    <p>&nbsp;&nbsp;&nbsp;"PRODUCT: The Backbone Bongo Beats"
9554    </p>
9555    <p>&nbsp;&nbsp;&nbsp;"ARTISTS: Jimmy the Fish"
9556    </p>
9557    <p>&nbsp;&nbsp;&nbsp;"."
9558    </p>
9559    </blockquote><p>
9560                        
9561    </p>
9562  <a name="command_syntax"></a><br /><hr />  <a name="command_syntax"></a><br /><hr />
9563  <table 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>
9564  <a name="rfc.section.7"></a><h3>7.&nbsp;  <a name="rfc.section.7"></a><h3>7.&nbsp;
# Line 7266  Command Syntax</h3> Line 9659  Command Syntax</h3>
9659  <p>/ UNSUBSCRIBE SP unsubscribe_event  <p>/ UNSUBSCRIBE SP unsubscribe_event
9660                                    
9661  </p>  </p>
 <p>/ SELECT SP text  
                   
 </p>  
9662  <p>/ RESET SP reset_instruction  <p>/ RESET SP reset_instruction
9663                                    
9664  </p>  </p>
9665  <p>/ CLEAR SP clear_instruction  <p>/ CLEAR SP clear_instruction
9666                                    
9667  </p>  </p>
9668    <p>/ FIND SP find_instruction
9669                    
9670    </p>
9671    <p>/ MOVE SP move_instruction
9672                    
9673    </p>
9674    <p>/ COPY SP copy_instruction
9675                    
9676    </p>
9677    <p>/ EDIT SP edit_instruction
9678                    
9679    </p>
9680    <p>/ FORMAT SP format_instruction
9681                    
9682    </p>
9683  <p>/ RESET  <p>/ RESET
9684                                    
9685  </p>  </p>
# Line 7290  Command Syntax</h3> Line 9695  Command Syntax</h3>
9695  <p>CHANNEL  <p>CHANNEL
9696                                    
9697  </p>  </p>
9698    <p>/ DB_INSTRUMENT_DIRECTORY SP db_path
9699                    
9700    </p>
9701    <p>/ DB_INSTRUMENTS SP NON_MODAL SP scan_mode SP db_path SP filename
9702                    
9703    </p>
9704    <p>/ DB_INSTRUMENTS SP scan_mode SP db_path SP filename
9705                    
9706    </p>
9707    <p>/ DB_INSTRUMENTS SP NON_MODAL SP db_path SP filename
9708                    
9709    </p>
9710    <p>/ DB_INSTRUMENTS SP NON_MODAL SP db_path SP filename SP instrument_index
9711                    
9712    </p>
9713    <p>/ DB_INSTRUMENTS SP db_path SP filename
9714                    
9715    </p>
9716    <p>/ DB_INSTRUMENTS SP db_path SP filename SP instrument_index
9717                    
9718    </p>
9719  <p>/ MIDI_INSTRUMENT_MAP  <p>/ MIDI_INSTRUMENT_MAP
9720                                    
9721  </p>  </p>
# Line 7317  Command Syntax</h3> Line 9743  Command Syntax</h3>
9743  <p>/ CHANNEL_COUNT  <p>/ CHANNEL_COUNT
9744                                    
9745  </p>  </p>
9746    <p>/ CHANNEL_MIDI
9747                    
9748    </p>
9749    <p>/ DEVICE_MIDI
9750                    
9751    </p>
9752  <p>/ VOICE_COUNT  <p>/ VOICE_COUNT
9753                                    
9754  </p>  </p>
# Line 7347  Command Syntax</h3> Line 9779  Command Syntax</h3>
9779  <p>/ MIDI_INSTRUMENT_INFO  <p>/ MIDI_INSTRUMENT_INFO
9780                                    
9781  </p>  </p>
9782    <p>/ DB_INSTRUMENT_DIRECTORY_COUNT
9783                    
9784    </p>
9785    <p>/ DB_INSTRUMENT_DIRECTORY_INFO
9786                    
9787    </p>
9788    <p>/ DB_INSTRUMENT_COUNT
9789                    
9790    </p>
9791    <p>/ DB_INSTRUMENT_INFO
9792                    
9793    </p>
9794    <p>/ DB_INSTRUMENTS_JOB_INFO
9795                    
9796    </p>
9797  <p>/ MISCELLANEOUS  <p>/ MISCELLANEOUS
9798                                    
9799  </p>  </p>
9800    <p>/ TOTAL_STREAM_COUNT
9801                    
9802    </p>
9803  <p>/ TOTAL_VOICE_COUNT  <p>/ TOTAL_VOICE_COUNT
9804                                    
9805  </p>  </p>
# Line 7377  Command Syntax</h3> Line 9827  Command Syntax</h3>
9827  <p>/ CHANNEL_COUNT  <p>/ CHANNEL_COUNT
9828                                    
9829  </p>  </p>
9830    <p>/ CHANNEL_MIDI
9831                    
9832    </p>
9833    <p>/ DEVICE_MIDI
9834                    
9835    </p>
9836  <p>/ VOICE_COUNT  <p>/ VOICE_COUNT
9837                                    
9838  </p>  </p>
# Line 7407  Command Syntax</h3> Line 9863  Command Syntax</h3>
9863  <p>/ MIDI_INSTRUMENT_INFO  <p>/ MIDI_INSTRUMENT_INFO
9864                                    
9865  </p>  </p>
9866    <p>/ DB_INSTRUMENT_DIRECTORY_COUNT
9867                    
9868    </p>
9869    <p>/ DB_INSTRUMENT_DIRECTORY_INFO
9870                    
9871    </p>
9872    <p>/ DB_INSTRUMENT_COUNT
9873                    
9874    </p>
9875    <p>/ DB_INSTRUMENT_INFO
9876                    
9877    </p>
9878    <p>/ DB_INSTRUMENTS_JOB_INFO
9879                    
9880    </p>
9881  <p>/ MISCELLANEOUS  <p>/ MISCELLANEOUS
9882                                    
9883  </p>  </p>
9884    <p>/ TOTAL_STREAM_COUNT
9885                    
9886    </p>
9887  <p>/ TOTAL_VOICE_COUNT  <p>/ TOTAL_VOICE_COUNT
9888                                    
9889  </p>  </p>
# Line 7458  Command Syntax</h3> Line 9932  Command Syntax</h3>
9932  <p>/ MIDI_INSTRUMENT_MAP SP ALL  <p>/ MIDI_INSTRUMENT_MAP SP ALL
9933                                    
9934  </p>  </p>
9935    <p>/ DB_INSTRUMENT_DIRECTORY SP FORCE SP db_path
9936                    
9937    </p>
9938    <p>/ DB_INSTRUMENT_DIRECTORY SP db_path
9939                    
9940    </p>
9941    <p>/ DB_INSTRUMENT SP db_path
9942                    
9943    </p>
9944  </blockquote><p>  </blockquote><p>
9945    
9946  </p>  </p>
# Line 7536  Command Syntax</h3> Line 10019  Command Syntax</h3>
10019  <p>/ SERVER SP INFO  <p>/ SERVER SP INFO
10020                                    
10021  </p>  </p>
10022    <p>/ TOTAL_STREAM_COUNT
10023                    
10024    </p>
10025  <p>/ TOTAL_VOICE_COUNT  <p>/ TOTAL_VOICE_COUNT
10026                                    
10027  </p>  </p>
# Line 7563  Command Syntax</h3> Line 10049  Command Syntax</h3>
10049  <p>/ FX_SEND SP INFO SP sampler_channel SP fx_send_id  <p>/ FX_SEND SP INFO SP sampler_channel SP fx_send_id
10050                                    
10051  </p>  </p>
10052    <p>/ DB_INSTRUMENT_DIRECTORIES SP RECURSIVE SP db_path
10053                    
10054    </p>
10055    <p>/ DB_INSTRUMENT_DIRECTORIES SP db_path
10056                    
10057    </p>
10058    <p>/ DB_INSTRUMENT_DIRECTORY SP INFO SP db_path
10059                    
10060    </p>
10061    <p>/ DB_INSTRUMENTS SP RECURSIVE SP db_path
10062                    
10063    </p>
10064    <p>/ DB_INSTRUMENTS SP db_path
10065                    
10066    </p>
10067    <p>/ DB_INSTRUMENT SP INFO SP db_path
10068                    
10069    </p>
10070    <p>/ DB_INSTRUMENTS_JOB SP INFO SP number
10071                    
10072    </p>
10073  <p>/ VOLUME  <p>/ VOLUME
10074                                    
10075  </p>  </p>
10076    <p>/ FILE SP INSTRUMENTS SP filename
10077                    
10078    </p>
10079    <p>/ FILE SP INSTRUMENT SP INFO SP filename SP instrument_index
10080                    
10081    </p>
10082  </blockquote><p>  </blockquote><p>
10083    
10084  </p>  </p>
# Line 7581  Command Syntax</h3> Line 10094  Command Syntax</h3>
10094  <p>/ MIDI_INPUT_DEVICE_PARAMETER SP number SP string '=' param_val_list  <p>/ MIDI_INPUT_DEVICE_PARAMETER SP number SP string '=' param_val_list
10095                                    
10096  </p>  </p>
10097    <p>/ MIDI_INPUT_PORT_PARAMETER SP number SP number SP string '=' NONE
10098                    
10099    </p>
10100  <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
10101                                    
10102  </p>  </p>
# Line 7602  Command Syntax</h3> Line 10118  Command Syntax</h3>
10118  <p>/ FX_SEND SP LEVEL SP sampler_channel SP fx_send_id SP volume_value  <p>/ FX_SEND SP LEVEL SP sampler_channel SP fx_send_id SP volume_value
10119                                    
10120  </p>  </p>
10121    <p>/ DB_INSTRUMENT_DIRECTORY SP NAME SP db_path SP stringval_escaped
10122                    
10123    </p>
10124    <p>/ DB_INSTRUMENT_DIRECTORY SP DESCRIPTION SP db_path SP stringval_escaped
10125                    
10126    </p>
10127    <p>/ DB_INSTRUMENT SP NAME SP db_path SP stringval_escaped
10128                    
10129    </p>
10130    <p>/ DB_INSTRUMENT SP DESCRIPTION SP db_path SP stringval_escaped
10131                    
10132    </p>
10133    <p>/ DB_INSTRUMENT SP FILE_PATH SP filename SP filename
10134                    
10135    </p>
10136  <p>/ ECHO SP boolean  <p>/ ECHO SP boolean
10137                                    
10138  </p>  </p>
# Line 7656  Command Syntax</h3> Line 10187  Command Syntax</h3>
10187  </blockquote><p>  </blockquote><p>
10188    
10189  </p>  </p>
10190    <p>find_instruction =
10191            </p>
10192    <blockquote class="text">
10193    <p>DB_INSTRUMENTS SP NON_RECURSIVE SP db_path SP query_val_list
10194                    
10195    </p>
10196    <p>/ DB_INSTRUMENTS SP db_path SP query_val_list
10197                    
10198    </p>
10199    <p>/ DB_INSTRUMENT_DIRECTORIES SP NON_RECURSIVE SP db_path SP query_val_list
10200                    
10201    </p>
10202    <p>/ DB_INSTRUMENT_DIRECTORIES SP db_path SP query_val_list
10203                    
10204    </p>
10205    <p>/ LOST SP DB_INSTRUMENT_FILES
10206                    
10207    </p>
10208    </blockquote><p>
10209    
10210    </p>
10211    <p>move_instruction =
10212            </p>
10213    <blockquote class="text">
10214    <p>DB_INSTRUMENT_DIRECTORY SP db_path SP db_path
10215                    
10216    </p>
10217    <p>/ DB_INSTRUMENT SP db_path SP db_path
10218                    
10219    </p>
10220    </blockquote><p>
10221    
10222    </p>
10223    <p>copy_instruction =
10224            </p>
10225    <blockquote class="text">
10226    <p>DB_INSTRUMENT_DIRECTORY SP db_path SP db_path
10227                    
10228    </p>
10229    <p>/ DB_INSTRUMENT SP db_path SP db_path
10230                    
10231    </p>
10232    </blockquote><p>
10233    
10234    </p>
10235  <p>destroy_instruction =  <p>destroy_instruction =
10236          </p>          </p>
10237  <blockquote class="text">  <blockquote class="text">
# Line 7731  Command Syntax</h3> Line 10307  Command Syntax</h3>
10307  </blockquote><p>  </blockquote><p>
10308    
10309  </p>  </p>
10310    <p>edit_instruction =
10311            </p>
10312    <blockquote class="text">
10313    <p>CHANNEL SP INSTRUMENT SP sampler_channel
10314                    
10315    </p>
10316    </blockquote><p>
10317    
10318    </p>
10319    <p>format_instruction =
10320            </p>
10321    <blockquote class="text">
10322    <p>INSTRUMENTS_DB
10323                    
10324    </p>
10325    </blockquote><p>
10326    
10327    </p>
10328  <p>modal_arg =  <p>modal_arg =
10329          </p>          </p>
10330  <blockquote class="text">  <blockquote class="text">
# Line 7800  Command Syntax</h3> Line 10394  Command Syntax</h3>
10394  <p>/ FX_SENDS SP sampler_channel  <p>/ FX_SENDS SP sampler_channel
10395                                    
10396  </p>  </p>
10397    <p>/ DB_INSTRUMENT_DIRECTORIES SP RECURSIVE SP db_path
10398                    
10399    </p>
10400    <p>/ DB_INSTRUMENT_DIRECTORIES SP db_path
10401                    
10402    </p>
10403    <p>/ DB_INSTRUMENTS SP RECURSIVE SP db_path
10404                    
10405    </p>
10406    <p>/ DB_INSTRUMENTS SP db_path
10407                    
10408    </p>
10409    <p>/ FILE SP INSTRUMENTS SP filename
10410                    
10411    </p>
10412  </blockquote><p>  </blockquote><p>
10413    
10414  </p>  </p>
# Line 7983  Command Syntax</h3> Line 10592  Command Syntax</h3>
10592  <p>filename =  <p>filename =
10593          </p>          </p>
10594  <blockquote class="text">  <blockquote class="text">
10595  <p>stringval  <p>path
10596                    
10597    </p>
10598    </blockquote><p>
10599    
10600    </p>
10601    <p>db_path =
10602            </p>
10603    <blockquote class="text">
10604    <p>path
10605                                    
10606  </p>  </p>
10607  </blockquote><p>  </blockquote><p>
# Line 7992  Command Syntax</h3> Line 10610  Command Syntax</h3>
10610  <p>map_name =  <p>map_name =
10611          </p>          </p>
10612  <blockquote class="text">  <blockquote class="text">
10613  <p>stringval  <p>stringval_escaped
10614                                    
10615  </p>  </p>
10616  </blockquote><p>  </blockquote><p>
# Line 8001  Command Syntax</h3> Line 10619  Command Syntax</h3>
10619  <p>entry_name =  <p>entry_name =
10620          </p>          </p>
10621  <blockquote class="text">  <blockquote class="text">
10622  <p>stringval  <p>stringval_escaped
10623                                    
10624  </p>  </p>
10625  </blockquote><p>  </blockquote><p>
# Line 8010  Command Syntax</h3> Line 10628  Command Syntax</h3>
10628  <p>fx_send_name =  <p>fx_send_name =
10629          </p>          </p>
10630  <blockquote class="text">  <blockquote class="text">
10631  <p>stringval  <p>stringval_escaped
10632                                    
10633  </p>  </p>
10634  </blockquote><p>  </blockquote><p>
# Line 8046  Command Syntax</h3> Line 10664  Command Syntax</h3>
10664  </blockquote><p>  </blockquote><p>
10665    
10666  </p>  </p>
10667    <p>query_val_list =
10668            </p>
10669    <blockquote class="text">
10670    <p>string '=' query_val
10671                    
10672    </p>
10673    <p>/ query_val_list SP string '=' query_val
10674                    
10675    </p>
10676    </blockquote><p>
10677    
10678    </p>
10679    <p>query_val =
10680            </p>
10681    <blockquote class="text">
10682    <p>text_escaped
10683                    
10684    </p>
10685    <p>/ stringval_escaped
10686                    
10687    </p>
10688    </blockquote><p>
10689    
10690    </p>
10691    <p>scan_mode =
10692            </p>
10693    <blockquote class="text">
10694    <p>RECURSIVE
10695                    
10696    </p>
10697    <p>/ NON_RECURSIVE
10698                    
10699    </p>
10700    <p>/ FLAT
10701                    
10702    </p>
10703    </blockquote><p>
10704    
10705    </p>
10706    <a name="character_set"></a><br /><hr />
10707    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
10708    <a name="rfc.section.7.1"></a><h3>7.1.&nbsp;
10709    Character Set and Escape Sequences</h3>
10710    
10711    <p>Older versions of this protocol up to and including v1.1 only
10712                    supported the standard ASCII character set (ASCII code 0 - 127)
10713                    <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
10714                    however support the Extended ASCII character set (ASCII code
10715                    0 - 255). The same group of younger protocols also support
10716                    escape sequences, but only for certain, explicitly declared
10717                    parts of the protocol. The supported escape sequences are
10718                    defined as follows:
10719    </p><table class="full" align="center" border="0" cellpadding="2" cellspacing="2">
10720    <col align="left"><col align="left">
10721    <tr><th align="left">ASCII Character Sequence</th><th align="left">Translated into (Name)</th></tr>
10722    <tr>
10723    <td align="left">\n</td>
10724    <td align="left">new line</td>
10725    </tr>
10726    <tr>
10727    <td align="left">\r</td>
10728    <td align="left">carriage return</td>
10729    </tr>
10730    <tr>
10731    <td align="left">\f</td>
10732    <td align="left">form feed</td>
10733    </tr>
10734    <tr>
10735    <td align="left">\t</td>
10736    <td align="left">horizontal tab</td>
10737    </tr>
10738    <tr>
10739    <td align="left">\v</td>
10740    <td align="left">vertical tab</td>
10741    </tr>
10742    <tr>
10743    <td align="left">\'</td>
10744    <td align="left">apostrophe</td>
10745    </tr>
10746    <tr>
10747    <td align="left">\"</td>
10748    <td align="left">quotation mark</td>
10749    </tr>
10750    <tr>
10751    <td align="left">\\</td>
10752    <td align="left">backslash</td>
10753    </tr>
10754    <tr>
10755    <td align="left">\OOO</td>
10756    <td align="left">three digit octal ASCII code of the character</td>
10757    </tr>
10758    <tr>
10759    <td align="left">\xHH</td>
10760    <td align="left">two digit hex ASCII code of the character</td>
10761    </tr>
10762    </table>
10763    <br clear="all" />
10764    
10765    <p>Notice: due to the transition of certain parts of the
10766                    protocol which now support escape sequences, a slight backward
10767                    incompatibility to protocols version v1.1 and younger has been
10768                    introduced. The only difference is that in parts of the protocol
10769                    where escape characters are now supported, a backslash characters
10770                    MUST be escaped as well (that is as double backslash), whereas
10771                    in the old versions a single backslash was sufficient.
10772    </p>
10773    <p>The following LSCP commands support escape sequences as part
10774                    of their filename / path based arguments and / or may contain
10775                    a filename / path with escape sequences in their response:
10776                    </p>
10777    <blockquote class="text">
10778    <p><a class='info' href='#LOAD INSTRUMENT'>"LOAD INSTRUMENT"<span> (</span><span class='info'>Loading an instrument</span><span>)</span></a>
10779    </p>
10780    <p><a class='info' href='#GET CHANNEL INFO'>"GET CHANNEL INFO"<span> (</span><span class='info'>Getting sampler channel information</span><span>)</span></a>
10781    </p>
10782    <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>
10783    </p>
10784    <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>
10785    </p>
10786    <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>
10787    </p>
10788    <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>
10789    </p>
10790    <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>
10791    </p>
10792    <p><a class='info' href='#REMOVE DB_INSTRUMENT'>"REMOVE DB_INSTRUMENT"<span> (</span><span class='info'>Removing an instrument</span><span>)</span></a>
10793    </p>
10794    <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>
10795    </p>
10796    <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>
10797    </p>
10798    <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>
10799    </p>
10800    <p><a class='info' href='#GET DB_INSTRUMENTS'>"GET DB_INSTRUMENTS"<span> (</span><span class='info'>Getting amount of instruments</span><span>)</span></a>
10801    </p>
10802    <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>
10803    </p>
10804    <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>
10805    </p>
10806    <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>
10807    </p>
10808    <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>
10809    </p>
10810    <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>
10811    </p>
10812    <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>
10813    </p>
10814    <p><a class='info' href='#FIND DB_INSTRUMENTS'>"FIND DB_INSTRUMENTS"<span> (</span><span class='info'>Finding instruments</span><span>)</span></a>
10815    </p>
10816    <p><a class='info' href='#FIND DB_INSTRUMENT_DIRECTORIES'>"FIND DB_INSTRUMENT_DIRECTORIES"<span> (</span><span class='info'>Finding directories</span><span>)</span></a>
10817    </p>
10818    <p><a class='info' href='#MOVE DB_INSTRUMENT'>"MOVE DB_INSTRUMENT"<span> (</span><span class='info'>Moving an instrument</span><span>)</span></a>
10819    </p>
10820    <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>
10821    </p>
10822    <p><a class='info' href='#COPY DB_INSTRUMENT'>"COPY DB_INSTRUMENT"<span> (</span><span class='info'>Copying instruments</span><span>)</span></a>
10823    </p>
10824    <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>
10825    </p>
10826    <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>
10827    </p>
10828    <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>
10829    </p>
10830    <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>
10831    </p>
10832    <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>
10833    </p>
10834    <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>
10835    </p>
10836    </blockquote><p>
10837                    Note that the forward slash character ('/') has a special meaning in
10838                    filename / path based arguments: it acts as separator of the nodes in
10839                    the path, thus if a directory- or filename includes a forward slash
10840                    (not intended as path node separator), you MUST escape that slash
10841                    either with the respective hex escape sequence ("\x2f") or with the
10842                    respective octal escape sequence ("\057").
10843                    
10844    </p>
10845    <p>
10846                    Note for Windows: file path arguments in LSCP are expected
10847                    to use forward slashes as directory node separator similar
10848                    to Unix based operating systems. In contrast to Unix however
10849                    a Windows typical drive character is expected to be
10850                    prefixed to the path. That is an original Windows file path
10851                    like "D:\Sounds\My.gig" would become in LSCP:
10852                    "D:/Sounds/My.gig".
10853                    
10854    </p>
10855    <p>
10856                    The following LSCP commands even support escape sequences as
10857                    part of at least one of their text-based arguments (i.e. entity name,
10858                    description) and / or may contain escape sequences in at least one of
10859                    their text-based fields in their response:
10860                    </p>
10861    <blockquote class="text">
10862    <p><a class='info' href='#GET SERVER INFO'>"GET SERVER INFO"<span> (</span><span class='info'>General sampler informations</span><span>)</span></a>
10863    </p>
10864    <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>
10865    </p>
10866    <p><a class='info' href='#GET CHANNEL INFO'>"GET CHANNEL INFO"<span> (</span><span class='info'>Getting sampler channel information</span><span>)</span></a>
10867    </p>
10868    <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>
10869    </p>
10870    <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>
10871    </p>
10872    <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>
10873    </p>
10874    <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>
10875    </p>
10876    <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>
10877    </p>
10878    <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>
10879    </p>
10880    <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>
10881    </p>
10882    <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>
10883    </p>
10884    <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>
10885    </p>
10886    <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>
10887    </p>
10888    <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>
10889    </p>
10890    <p><a class='info' href='#FIND DB_INSTRUMENT_DIRECTORIES'>"FIND DB_INSTRUMENT_DIRECTORIES"<span> (</span><span class='info'>Finding directories</span><span>)</span></a>
10891    </p>
10892    <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>
10893    </p>
10894    <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>
10895    </p>
10896    <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>
10897    </p>
10898    <p><a class='info' href='#FIND DB_INSTRUMENTS'>"FIND DB_INSTRUMENTS"<span> (</span><span class='info'>Finding instruments</span><span>)</span></a>
10899    </p>
10900    </blockquote><p>
10901                    Please note that these lists are manually maintained. If you
10902                    find a command that also supports escape sequences we forgot to
10903                    mention here, please report it!
10904                    
10905    </p>
10906  <a name="events"></a><br /><hr />  <a name="events"></a><br /><hr />
10907  <table 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>
10908  <a name="rfc.section.8"></a><h3>8.&nbsp;  <a name="rfc.section.8"></a><h3>8.&nbsp;
# Line 8206  Number of sampler channels changed</h3> Line 11063  Number of sampler channels changed</h3>
11063  <p>where &lt;channels&gt; will be replaced by the new number  <p>where &lt;channels&gt; will be replaced by the new number
11064                  of sampler channels.                  of sampler channels.
11065  </p>  </p>
11066  <a name="SUBSCRIBE VOICE_COUNT"></a><br /><hr />  <a name="SUBSCRIBE CHANNEL_MIDI"></a><br /><hr />
11067  <table 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>
11068  <a name="rfc.section.8.6"></a><h3>8.6.&nbsp;  <a name="rfc.section.8.6"></a><h3>8.6.&nbsp;
11069    MIDI data on a sampler channel arrived</h3>
11070    
11071    <p>Client may want to be notified when MIDI data arrive on sampler channels on
11072                    back-end side, by issuing the following command:
11073    </p>
11074    <p>
11075                        </p>
11076    <blockquote class="text">
11077    <p>SUBSCRIBE CHANNEL_MIDI
11078    </p>
11079    </blockquote><p>
11080                    
11081    </p>
11082    <p>Server will start sending one of the the following notification messages:
11083    </p>
11084    <p>
11085                        </p>
11086    <blockquote class="text">
11087    <p>"NOTIFY:CHANNEL_MIDI:&lt;channel-id&gt; NOTE_ON  &lt;note&gt; &lt;velocity&gt;"
11088    </p>
11089    <p>"NOTIFY:CHANNEL_MIDI:&lt;channel-id&gt; NOTE_OFF &lt;note&gt; &lt;velocity&gt;"
11090    </p>
11091    </blockquote><p>
11092                    
11093    </p>
11094    <p>where &lt;channel-id&gt; will be replaced by the ID of the sampler channel where the MIDI
11095                    data arrived. &lt;note&gt; and &lt;velocity&gt; are integer values in the range between
11096                    0 .. 127, reflecting the analog meaning of the MIDI specification.
11097                    
11098    </p>
11099    <p>CAUTION: no guarantee whatsoever will be made that MIDI events are actually all
11100                    delivered by this mechanism! With other words: events could be lost at any time!
11101                    This restriction was made to keep the RT-safeness of the backend's MIDI and audio
11102                    thread unaffected by this feature.
11103    </p>
11104    <a name="SUBSCRIBE DEVICE_MIDI"></a><br /><hr />
11105    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
11106    <a name="rfc.section.8.7"></a><h3>8.7.&nbsp;
11107    MIDI data on a MIDI input device arrived</h3>
11108    
11109    <p>Client may want to be notified when MIDI data arrive on MIDI input devices by issuing the following command:
11110    </p>
11111    <p>
11112                                </p>
11113    <blockquote class="text">
11114    <p>SUBSCRIBE DEVICE_MIDI
11115    </p>
11116    </blockquote><p>
11117                        
11118    </p>
11119    <p>Server will start sending one of the the following notification messages:
11120    </p>
11121    <p>
11122                                </p>
11123    <blockquote class="text">
11124    <p>"NOTIFY:DEVICE_MIDI:&lt;device-id&gt; &lt;port-id&gt; NOTE_ON &lt;note&gt; &lt;velocity&gt;"
11125    </p>
11126    <p>"NOTIFY:DEVICE_MIDI:&lt;device-id&gt; &lt;port-id&gt; NOTE_OFF &lt;note&gt; &lt;velocity&gt;"
11127    </p>
11128    </blockquote><p>
11129                        
11130    </p>
11131    <p>where &lt;device-id&gt; &lt;port-id&gt; will be replaced
11132                           by the IDs of the respective MIDI input device and the device's MIDI port where the MIDI
11133                           data arrived. &lt;note&gt; and &lt;velocity&gt; are integer values in the range between
11134                           0 .. 127, reflecting the analog meaning of the MIDI specification.
11135                        
11136    </p>
11137    <p>CAUTION: no guarantee whatsoever will be made that MIDI events are actually all
11138                           delivered by this mechanism! With other words: events could be lost at any time!
11139                           This restriction was made to keep the RT-safeness of the backend's MIDI and audio
11140                           thread unaffected by this feature.
11141    </p>
11142    <a name="SUBSCRIBE VOICE_COUNT"></a><br /><hr />
11143    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
11144    <a name="rfc.section.8.8"></a><h3>8.8.&nbsp;
11145  Number of active voices changed</h3>  Number of active voices changed</h3>
11146    
11147  <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 8238  Number of active voices changed</h3> Line 11171  Number of active voices changed</h3>
11171  </p>  </p>
11172  <a name="SUBSCRIBE STREAM_COUNT"></a><br /><hr />  <a name="SUBSCRIBE STREAM_COUNT"></a><br /><hr />
11173  <table 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>
11174  <a name="rfc.section.8.7"></a><h3>8.7.&nbsp;  <a name="rfc.section.8.9"></a><h3>8.9.&nbsp;
11175  Number of active disk streams changed</h3>  Number of active disk streams changed</h3>
11176    
11177  <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 8268  Number of active disk streams changed</h Line 11201  Number of active disk streams changed</h
11201  </p>  </p>
11202  <a name="SUBSCRIBE BUFFER_FILL"></a><br /><hr />  <a name="SUBSCRIBE BUFFER_FILL"></a><br /><hr />
11203  <table 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>
11204  <a name="rfc.section.8.8"></a><h3>8.8.&nbsp;  <a name="rfc.section.8.10"></a><h3>8.10.&nbsp;
11205  Disk stream buffer fill state changed</h3>  Disk stream buffer fill state changed</h3>
11206    
11207  <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 8299  Disk stream buffer fill state changed</h Line 11232  Disk stream buffer fill state changed</h
11232  </p>  </p>
11233  <a name="SUBSCRIBE CHANNEL_INFO"></a><br /><hr />  <a name="SUBSCRIBE CHANNEL_INFO"></a><br /><hr />
11234  <table 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>
11235  <a name="rfc.section.8.9"></a><h3>8.9.&nbsp;  <a name="rfc.section.8.11"></a><h3>8.11.&nbsp;
11236  Channel information changed</h3>  Channel information changed</h3>
11237    
11238  <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 8332  Channel information changed</h3> Line 11265  Channel information changed</h3>
11265  </p>  </p>
11266  <a name="SUBSCRIBE FX_SEND_COUNT"></a><br /><hr />  <a name="SUBSCRIBE FX_SEND_COUNT"></a><br /><hr />
11267  <table 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>
11268  <a name="rfc.section.8.10"></a><h3>8.10.&nbsp;  <a name="rfc.section.8.12"></a><h3>8.12.&nbsp;
11269  Number of effect sends changed</h3>  Number of effect sends changed</h3>
11270    
11271  <p>Client may want to be notified when the number of effect sends on  <p>Client may want to be notified when the number of effect sends on
11272                  a particular sampler channel is changed by issuing the following command:                  a particular sampler channel is changed by issuing the following command:
11273  </p>  </p>
11274  <p>  <p>
# Line 8362  Number of effect sends changed</h3> Line 11295  Number of effect sends changed</h3>
11295  </p>  </p>
11296  <a name="SUBSCRIBE FX_SEND_INFO"></a><br /><hr />  <a name="SUBSCRIBE FX_SEND_INFO"></a><br /><hr />
11297  <table 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>
11298  <a name="rfc.section.8.11"></a><h3>8.11.&nbsp;  <a name="rfc.section.8.13"></a><h3>8.13.&nbsp;
11299  Effect send information changed</h3>  Effect send information changed</h3>
11300    
11301  <p>Client may want to be notified when changes were made to effect sends on a  <p>Client may want to be notified when changes were made to effect sends on a
# Line 8392  Effect send information changed</h3> Line 11325  Effect send information changed</h3>
11325  </p>  </p>
11326  <a name="SUBSCRIBE TOTAL_VOICE_COUNT"></a><br /><hr />  <a name="SUBSCRIBE TOTAL_VOICE_COUNT"></a><br /><hr />
11327  <table 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>
11328  <a name="rfc.section.8.12"></a><h3>8.12.&nbsp;  <a name="rfc.section.8.14"></a><h3>8.14.&nbsp;
11329  Total number of active voices changed</h3>  Total number of active voices changed</h3>
11330    
11331  <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 8419  Total number of active voices changed</h Line 11352  Total number of active voices changed</h
11352  <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
11353                  all currently active voices.                  all currently active voices.
11354  </p>  </p>
11355    <a name="SUBSCRIBE TOTAL_STREAM_COUNT"></a><br /><hr />
11356    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
11357    <a name="rfc.section.8.15"></a><h3>8.15.&nbsp;
11358    Total number of active disk streams changed</h3>
11359    
11360    <p>Client may want to be notified when the total number of disk streams on the
11361                    back-end changes by issuing the following command:
11362    </p>
11363    <p>
11364                        </p>
11365    <blockquote class="text">
11366    <p>SUBSCRIBE TOTAL_STREAM_COUNT
11367    </p>
11368    </blockquote><p>
11369                    
11370    </p>
11371    <p>Server will start sending the following notification messages:
11372    </p>
11373    <p>
11374                        </p>
11375    <blockquote class="text">
11376    <p>"NOTIFY:TOTAL_STREAM_COUNT:&lt;streams&gt;"
11377    </p>
11378    </blockquote><p>
11379                    
11380    </p>
11381    <p>where &lt;streams&gt; will be replaced by the new number of
11382                    all currently active disk streams.
11383    </p>
11384  <a name="SUBSCRIBE MIDI_INSTRUMENT_MAP_COUNT"></a><br /><hr />  <a name="SUBSCRIBE MIDI_INSTRUMENT_MAP_COUNT"></a><br /><hr />
11385  <table 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>
11386  <a name="rfc.section.8.13"></a><h3>8.13.&nbsp;  <a name="rfc.section.8.16"></a><h3>8.16.&nbsp;
11387  Number of MIDI instrument maps changed</h3>  Number of MIDI instrument maps changed</h3>
11388    
11389  <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 8450  Number of MIDI instrument maps changed</ Line 11412  Number of MIDI instrument maps changed</
11412  </p>  </p>
11413  <a name="SUBSCRIBE MIDI_INSTRUMENT_MAP_INFO"></a><br /><hr />  <a name="SUBSCRIBE MIDI_INSTRUMENT_MAP_INFO"></a><br /><hr />
11414  <table 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>
11415  <a name="rfc.section.8.14"></a><h3>8.14.&nbsp;  <a name="rfc.section.8.17"></a><h3>8.17.&nbsp;
11416  MIDI instrument map information changed</h3>  MIDI instrument map information changed</h3>
11417    
11418  <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 8483  MIDI instrument map information changed< Line 11445  MIDI instrument map information changed<
11445  </p>  </p>
11446  <a name="SUBSCRIBE MIDI_INSTRUMENT_COUNT"></a><br /><hr />  <a name="SUBSCRIBE MIDI_INSTRUMENT_COUNT"></a><br /><hr />
11447  <table 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>
11448  <a name="rfc.section.8.15"></a><h3>8.15.&nbsp;  <a name="rfc.section.8.18"></a><h3>8.18.&nbsp;
11449  Number of MIDI instruments changed</h3>  Number of MIDI instruments changed</h3>
11450    
11451  <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 8513  Number of MIDI instruments changed</h3> Line 11475  Number of MIDI instruments changed</h3>
11475  </p>  </p>
11476  <a name="SUBSCRIBE MIDI_INSTRUMENT_INFO"></a><br /><hr />  <a name="SUBSCRIBE MIDI_INSTRUMENT_INFO"></a><br /><hr />
11477  <table 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>
11478  <a name="rfc.section.8.16"></a><h3>8.16.&nbsp;  <a name="rfc.section.8.19"></a><h3>8.19.&nbsp;
11479  MIDI instrument information changed</h3>  MIDI instrument information changed</h3>
11480    
11481  <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 8547  MIDI instrument information changed</h3> Line 11509  MIDI instrument information changed</h3>
11509  </p>  </p>
11510  <a name="SUBSCRIBE GLOBAL_INFO"></a><br /><hr />  <a name="SUBSCRIBE GLOBAL_INFO"></a><br /><hr />
11511  <table 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>
11512  <a name="rfc.section.8.17"></a><h3>8.17.&nbsp;  <a name="rfc.section.8.20"></a><h3>8.20.&nbsp;
11513  Global settings changed</h3>  Global settings changed</h3>
11514    
11515  <p>Client may want to be notified when changes to the global settings  <p>Client may want to be notified when changes to the global settings
# Line 8574  Global settings changed</h3> Line 11536  Global settings changed</h3>
11536  </blockquote><p>  </blockquote><p>
11537                                    
11538  </p>  </p>
11539    <a name="SUBSCRIBE DB_INSTRUMENT_DIRECTORY_COUNT"></a><br /><hr />
11540    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
11541    <a name="rfc.section.8.21"></a><h3>8.21.&nbsp;
11542    Number of database instrument directories changed</h3>
11543    
11544    <p>Client may want to be notified when the number of instrument
11545                    directories in a particular directory in the instruments database
11546                    is changed by issuing the following command:
11547    </p>
11548    <p>
11549                        </p>
11550    <blockquote class="text">
11551    <p>SUBSCRIBE DB_INSTRUMENT_DIRECTORY_COUNT
11552    </p>
11553    </blockquote><p>
11554                    
11555    </p>
11556    <p>Server will start sending the following notification messages:
11557    </p>
11558    <p>
11559                        </p>
11560    <blockquote class="text">
11561    <p>"NOTIFY:DB_INSTRUMENT_DIRECTORY_COUNT:&lt;dir-path&gt;"
11562    </p>
11563    </blockquote><p>
11564                    
11565    </p>
11566    <p>where &lt;dir-path&gt; will be replaced by the absolute path
11567                    name of the directory in the instruments database,
11568                    in which the number of directories is changed.
11569    </p>
11570    <p>Note that when a non-empty directory is removed, this event
11571                    is not sent for the subdirectories in that directory.
11572    </p>
11573    <a name="SUBSCRIBE DB_INSTRUMENT_DIRECTORY_INFO"></a><br /><hr />
11574    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
11575    <a name="rfc.section.8.22"></a><h3>8.22.&nbsp;
11576    Database instrument directory information changed</h3>
11577    
11578    <p>Client may want to be notified when changes were made to directories
11579                    in the instruments database by issuing the following command:
11580    </p>
11581    <p>
11582                        </p>
11583    <blockquote class="text">
11584    <p>SUBSCRIBE DB_INSTRUMENT_DIRECTORY_INFO
11585    </p>
11586    </blockquote><p>
11587                    
11588    </p>
11589    <p>Server will start sending the following notification messages:
11590    </p>
11591    <p>
11592                        </p>
11593    <blockquote class="text">
11594    <p>"NOTIFY:DB_INSTRUMENT_DIRECTORY_INFO:&lt;dir-path&gt;"
11595    </p>
11596    </blockquote><p>
11597                    
11598    </p>
11599    <p>where &lt;dir-path&gt; will be replaced by the absolute path name
11600                    of the directory, for which information changes occurred. The front-end will have to send
11601                    the respective command to actually get the updated directory info. Because these messages
11602                    will be triggered by LSCP commands issued by other clients rather than real
11603                    time events happening on the server, it is believed that an empty notification
11604                    message is sufficient here.
11605    </p>
11606    <p>
11607                        </p>
11608    <blockquote class="text">
11609    <p>"NOTIFY:DB_INSTRUMENT_DIRECTORY_INFO:NAME &lt;old-dir-path&gt; &lt;new-name&gt;"
11610    </p>
11611    </blockquote><p>
11612                    
11613    </p>
11614    <p>where &lt;old-dir-path&gt; is the old absolute path name of the directory
11615                    (encapsulated into apostrophes), which name is changes and &lt;new-name&gt; is
11616                    the new name of the directory, encapsulated into apostrophes.
11617    </p>
11618    <a name="SUBSCRIBE DB_INSTRUMENT_COUNT"></a><br /><hr />
11619    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
11620    <a name="rfc.section.8.23"></a><h3>8.23.&nbsp;
11621    Number of database instruments changed</h3>
11622    
11623    <p>Client may want to be notified when the number of instruments
11624                    in a particular directory in the instruments database
11625                    is changed by issuing the following command:
11626    </p>
11627    <p>
11628                        </p>
11629    <blockquote class="text">
11630    <p>SUBSCRIBE DB_INSTRUMENT_COUNT
11631    </p>
11632    </blockquote><p>
11633                    
11634    </p>
11635    <p>Server will start sending the following notification messages:
11636    </p>
11637    <p>
11638                        </p>
11639    <blockquote class="text">
11640    <p>"NOTIFY:DB_INSTRUMENT_COUNT:&lt;dir-path&gt;"
11641    </p>
11642    </blockquote><p>
11643                    
11644    </p>
11645    <p>where &lt;dir-path&gt; will be replaced by the absolute path
11646                    name of the directory in the instruments database,
11647                    in which the number of instruments is changed.
11648    </p>
11649    <p>Note that when a non-empty directory is removed, this event
11650                    is not sent for the instruments in that directory.
11651    </p>
11652    <a name="SUBSCRIBE DB_INSTRUMENT_INFO"></a><br /><hr />
11653    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
11654    <a name="rfc.section.8.24"></a><h3>8.24.&nbsp;
11655    Database instrument information changed</h3>
11656    
11657    <p>Client may want to be notified when changes were made to instruments
11658                    in the instruments database by issuing the following command:
11659    </p>
11660    <p>
11661                        </p>
11662    <blockquote class="text">
11663    <p>SUBSCRIBE DB_INSTRUMENT_INFO
11664    </p>
11665    </blockquote><p>
11666                    
11667    </p>
11668    <p>Server will start sending the following notification messages:
11669    </p>
11670    <p>
11671                        </p>
11672    <blockquote class="text">
11673    <p>"NOTIFY:DB_INSTRUMENT_INFO:&lt;instr-path&gt;"
11674    </p>
11675    </blockquote><p>
11676                    
11677    </p>
11678    <p>where &lt;instr-path&gt; will be replaced by the absolute path name
11679                    of the instrument, which settings are changed. The front-end will have to send
11680                    the respective command to actually get the updated directory info. Because these messages
11681                    will be triggered by LSCP commands issued by other clients rather than real
11682                    time events happening on the server, it is believed that an empty notification
11683                    message is sufficient here.
11684    </p>
11685    <p>
11686                        </p>
11687    <blockquote class="text">
11688    <p>"NOTIFY:DB_INSTRUMENT_INFO:NAME &lt;old-instr-path&gt; &lt;new-name&gt;"
11689    </p>
11690    </blockquote><p>
11691                    
11692    </p>
11693    <p>where &lt;old-instr-path&gt; is the old absolute path name of the instrument
11694                    (encapsulated into apostrophes), which name is changes and &lt;new-name&gt; is
11695                    the new name of the instrument, encapsulated into apostrophes.
11696    </p>
11697    <a name="SUBSCRIBE DB_INSTRUMENTS_JOB_INFO"></a><br /><hr />
11698    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
11699    <a name="rfc.section.8.25"></a><h3>8.25.&nbsp;
11700    Database job status information changed</h3>
11701    
11702    <p>Client may want to be notified when the status of particular database
11703                    instruments job is changed by issuing the following command:
11704    </p>
11705    <p>
11706                        </p>
11707    <blockquote class="text">
11708    <p>SUBSCRIBE DB_INSTRUMENTS_JOB_INFO
11709    </p>
11710    </blockquote><p>
11711                    
11712    </p>
11713    <p>Server will start sending the following notification messages:
11714    </p>
11715    <p>
11716                        </p>
11717    <blockquote class="text">
11718    <p>"NOTIFY:DB_INSTRUMENTS_JOB_INFO:&lt;job-id&gt;"
11719    </p>
11720    </blockquote><p>
11721                    
11722    </p>
11723    <p>where &lt;job-id&gt; will be replaced by the numerical ID of the job,
11724                    which status is changed. The front-end will have to send the respective
11725                    command to actually get the status info. Because these messages
11726                    will be triggered by LSCP commands issued by other clients rather than real
11727                    time events happening on the server, it is believed that an empty notification
11728                    message is sufficient here.
11729    </p>
11730  <a name="SUBSCRIBE MISCELLANEOUS"></a><br /><hr />  <a name="SUBSCRIBE MISCELLANEOUS"></a><br /><hr />
11731  <table 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>
11732  <a name="rfc.section.8.18"></a><h3>8.18.&nbsp;  <a name="rfc.section.8.26"></a><h3>8.26.&nbsp;
11733  Miscellaneous and debugging events</h3>  Miscellaneous and debugging events</h3>
11734    
11735  <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 8641  Acknowledgments</h3> Line 11794  Acknowledgments</h3>
11794  <table 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>
11795  <h3>11.&nbsp;References</h3>  <h3>11.&nbsp;References</h3>
11796  <table width="99%" border="0">  <table width="99%" border="0">
11797    <tr><td class="author-text" valign="top"><a name="RFC20">[RFC20]</a></td>
11798    <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>
11799  <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>
11800  <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>
11801  <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>
11802  <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>
11803  <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>
11804  <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>
11805  </table>  </table>
11806    
11807  <a name="rfc.authors"></a><br /><hr />  <a name="rfc.authors"></a><br /><hr />
# Line 8671  Schoenebeck</td></tr> Line 11826  Schoenebeck</td></tr>
11826  <table 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>
11827  <h3>Full Copyright Statement</h3>  <h3>Full Copyright Statement</h3>
11828  <p class='copyright'>  <p class='copyright'>
11829  Copyright &copy; The IETF Trust (2007).</p>  Copyright &copy; The IETF Trust (2008).</p>
11830  <p class='copyright'>  <p class='copyright'>
11831  This document is subject to the rights,  This document is subject to the rights,
11832  licenses and restrictions contained in BCP&nbsp;78,  licenses and restrictions contained in BCP&nbsp;78,
# Line 8713  or other Line 11868  or other
11868  proprietary rights that may cover technology that may be required  proprietary rights that may cover technology that may be required
11869  to implement this standard.  to implement this standard.
11870  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>  
11871  </body></html>  </body></html>

Legend:
Removed from v.1137  
changed lines
  Added in v.1731

  ViewVC Help
Powered by ViewVC