/[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 1696 by schoenebeck, Sat Feb 16 01:16:39 2008 UTC revision 2023 by schoenebeck, Sun Nov 1 12:59:16 2009 UTC
# Line 3  Line 3 
3  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
4  <meta name="description" content="LinuxSampler Control Protocol">  <meta name="description" content="LinuxSampler Control Protocol">
5  <meta name="keywords" content="LSCP">  <meta name="keywords" content="LSCP">
6  <meta name="generator" content="xml2rfc v1.32 (http://xml.resource.org/)">  <meta name="generator" content="xml2rfc v1.34 (http://xml.resource.org/)">
7  <style type='text/css'><!--  <style type='text/css'><!--
8          body {          body {
9                  font-family: verdana, charcoal, helvetica, arial, sans-serif;                  font-family: verdana, charcoal, helvetica, arial, sans-serif;
# 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: August 19, 2008</td><td class="header">February 16, 2008</td></tr>  <tr><td class="header">Expires: May 5, 2010</td><td class="header">November 1, 2009</td></tr>
149  </table></td></tr></table>  </table></td></tr></table>
150  <h1><br />LinuxSampler Control Protocol<br />LSCP 1.4</h1>  <h1><br />LinuxSampler Control Protocol<br />LSCP 1.5</h1>
151    
152    <h3>Abstract</h3>
153    
154    <p>The LinuxSampler Control Protocol (LSCP) is an
155                application-level protocol primarily intended for local and
156                remote controlling the LinuxSampler backend application, which is a
157                sophisticated server-like console application essentially playing
158                back audio samples and manipulating the samples in real time to
159                certain extent.
160    </p>
161  <h3>Status of this Memo</h3>  <h3>Status of this Memo</h3>
162  <p>  <p>
163  By submitting this Internet-Draft,  By submitting this Internet-Draft,
# Line 173  The list of current Internet-Drafts can Line 182  The list of current Internet-Drafts can
182  The list of Internet-Draft Shadow Directories can be accessed at  The list of Internet-Draft Shadow Directories can be accessed at
183  <a href='http://www.ietf.org/shadow.html'>http://www.ietf.org/shadow.html</a>.</p>  <a href='http://www.ietf.org/shadow.html'>http://www.ietf.org/shadow.html</a>.</p>
184  <p>  <p>
185  This Internet-Draft will expire on August 19, 2008.</p>  This Internet-Draft will expire on May 5, 2010.</p>
186    <a name="toc"></a><br /><hr />
 <h3>Copyright Notice</h3>  
 <p>  
 Copyright &copy; The IETF Trust (2008).</p>  
   
 <h3>Abstract</h3>  
   
 <p>The LinuxSampler Control Protocol (LSCP) is an  
             application-level protocol primarily intended for local and  
             remote controlling the LinuxSampler backend application, which is a  
             sophisticated server-like console application essentially playing  
             back audio samples and manipulating the samples in real time to  
             certain extent.  
 </p><a name="toc"></a><br /><hr />  
187  <h3>Table of Contents</h3>  <h3>Table of Contents</h3>
188  <p class="toc">  <p class="toc">
189  <a href="#anchor1">1.</a>&nbsp;  <a href="#anchor1">1.</a>&nbsp;
# Line 336  Altering effect send's audio routing<br Line 332  Altering effect send's audio routing<br
332  Altering effect send's MIDI controller<br />  Altering effect send's MIDI controller<br />
333  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET FX_SEND LEVEL">6.4.33.</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET FX_SEND LEVEL">6.4.33.</a>&nbsp;
334  Altering effect send's send level<br />  Altering effect send's send level<br />
335  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#RESET CHANNEL">6.4.34.</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SEND CHANNEL MIDI_DATA">6.4.34.</a>&nbsp;
336    Sending MIDI messages to sampler channel<br />
337    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#RESET CHANNEL">6.4.35.</a>&nbsp;
338  Resetting a sampler channel<br />  Resetting a sampler channel<br />
339  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor12">6.5.</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor12">6.5.</a>&nbsp;
340  Controlling connection<br />  Controlling connection<br />
# Line 364  General sampler informations<br /> Line 362  General sampler informations<br />
362  Getting global volume attenuation<br />  Getting global volume attenuation<br />
363  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET VOLUME">6.6.7.</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET VOLUME">6.6.7.</a>&nbsp;
364  Setting global volume attenuation<br />  Setting global volume attenuation<br />
365    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET VOICES">6.6.8.</a>&nbsp;
366    Getting global voice limit<br />
367    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET VOICES">6.6.9.</a>&nbsp;
368    Setting global voice limit<br />
369    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET STREAMS">6.6.10.</a>&nbsp;
370    Getting global disk stream limit<br />
371    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET STREAMS">6.6.11.</a>&nbsp;
372    Setting global disk stream limit<br />
373  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#MIDI Instrument Mapping">6.7.</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#MIDI Instrument Mapping">6.7.</a>&nbsp;
374  MIDI Instrument Mapping<br />  MIDI Instrument Mapping<br />
375  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ADD MIDI_INSTRUMENT_MAP">6.7.1.</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ADD MIDI_INSTRUMENT_MAP">6.7.1.</a>&nbsp;
# Line 436  Finding instruments<br /> Line 442  Finding instruments<br />
442  Getting job status information<br />  Getting job status information<br />
443  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#FORMAT INSTRUMENTS_DB">6.8.22.</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#FORMAT INSTRUMENTS_DB">6.8.22.</a>&nbsp;
444  Formatting the instruments database<br />  Formatting the instruments database<br />
445    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#FIND LOST DB_INSTRUMENT_FILES">6.8.23.</a>&nbsp;
446    Checking for lost instrument files<br />
447    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET DB_INSTRUMENT FILE_PATH">6.8.24.</a>&nbsp;
448    Replacing an instrument file<br />
449  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#editing_instruments">6.9.</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#editing_instruments">6.9.</a>&nbsp;
450  Editing Instruments<br />  Editing Instruments<br />
451  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#EDIT INSTRUMENT">6.9.1.</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#EDIT INSTRUMENT">6.9.1.</a>&nbsp;
# Line 3986  Getting sampler channel information</h3> Line 3996  Getting sampler channel information</h3>
3996  <blockquote class="text">  <blockquote class="text">
3997  <p>numerical ID of the audio output device which is  <p>numerical ID of the audio output device which is
3998                                              currently connected to this sampler channel to output                                              currently connected to this sampler channel to output
3999                                              the audio signal, "NONE" if there's no device                                              the audio signal, "-1" if there's no device
4000                                              connected to this sampler channel                                              connected to this sampler channel
4001  </p>  </p>
4002  </blockquote>  </blockquote>
# Line 4029  Getting sampler channel information</h3> Line 4039  Getting sampler channel information</h3>
4039  <p>INSTRUMENT_NR -  <p>INSTRUMENT_NR -
4040                                          </p>                                          </p>
4041  <blockquote class="text">  <blockquote class="text">
4042  <p>the instrument index number of the loaded instrument  <p>the instrument index number of the loaded instrument,
4043                                                "-1" if there's no instrument loaded for this sampler
4044                                                channel
4045  </p>  </p>
4046  </blockquote>  </blockquote>
4047                                                                            
# Line 4047  Getting sampler channel information</h3> Line 4059  Getting sampler channel information</h3>
4059  <p>INSTRUMENT_STATUS -  <p>INSTRUMENT_STATUS -
4060                                          </p>                                          </p>
4061  <blockquote class="text">  <blockquote class="text">
4062  <p>integer values 0 to 100 indicating loading progress percentage for the instrument. Negative  <p>Integer values 0 to 100 indicating loading progress
4063                                              value indicates a loading exception. Value of 100 indicates that the instrument is fully                                              percentage for the instrument. Negative
4064                                                value indicates a loading exception (also returns "-1" in case no
4065                                                instrument was yet to be loaded on the sampler channel).
4066                                                Value of 100 indicates that the instrument is fully
4067                                              loaded.                                              loaded.
4068  </p>  </p>
4069  </blockquote>  </blockquote>
# Line 4059  Getting sampler channel information</h3> Line 4074  Getting sampler channel information</h3>
4074  <blockquote class="text">  <blockquote class="text">
4075  <p>numerical ID of the MIDI input device which is  <p>numerical ID of the MIDI input device which is
4076                                              currently connected to this sampler channel to deliver                                              currently connected to this sampler channel to deliver
4077                                              MIDI input commands, "NONE" if there's no device                                              MIDI input commands, "-1" if there's no device
4078                                              connected to this sampler channel                                              connected to this sampler channel
4079  </p>  </p>
4080  </blockquote>  </blockquote>
# Line 4068  Getting sampler channel information</h3> Line 4083  Getting sampler channel information</h3>
4083  <p>MIDI_INPUT_PORT -  <p>MIDI_INPUT_PORT -
4084                                          </p>                                          </p>
4085  <blockquote class="text">  <blockquote class="text">
4086  <p>port number of the MIDI input device  <p>port number of the MIDI input device (in case a
4087                                                MIDI device was already assigned to the sampler
4088                                                channel)
4089  </p>  </p>
4090  </blockquote>  </blockquote>
4091                                                                            
# Line 5745  Altering effect send's send level</h3> Line 5762  Altering effect send's send level</h3>
5762  </blockquote><p>  </blockquote><p>
5763                                            
5764  </p>  </p>
5765  <a name="RESET CHANNEL"></a><br /><hr />  <a name="SEND CHANNEL MIDI_DATA"></a><br /><hr />
5766  <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>  <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
5767  <a name="rfc.section.6.4.34"></a><h3>6.4.34.&nbsp;  <a name="rfc.section.6.4.34"></a><h3>6.4.34.&nbsp;
5768    Sending MIDI messages to sampler channel</h3>
5769    
5770    <p>The front-end can send MIDI events to a specific sampler channel
5771                        by sending the following command:
5772    </p>
5773    <p>
5774                            </p>
5775    <blockquote class="text">
5776    <p>SEND CHANNEL MIDI_DATA &lt;midi-msg&gt; &lt;sampler-chan&gt; &lt;arg1&gt; &lt;arg2&gt;
5777    </p>
5778    </blockquote><p>
5779                        
5780    </p>
5781    <p>Where &lt;sampler-chan&gt; is the sampler channel number
5782                        as returned by the <a class='info' href='#ADD CHANNEL'>"ADD CHANNEL"<span> (</span><span class='info'>Adding a new sampler channel</span><span>)</span></a>
5783                        or <a class='info' href='#LIST CHANNELS'>"LIST CHANNELS"<span> (</span><span class='info'>Getting all created sampler channel list</span><span>)</span></a> command,
5784                        &lt;arg1&gt; and &lt;arg2&gt; arguments depend on the &lt;midi-msg&gt; argument, which
5785                        specifies the MIDI message type. Currently, the following MIDI messages are supported:
5786    </p>
5787    <p>
5788                            </p>
5789    <blockquote class="text">
5790    <p>"NOTE_ON" -
5791                                    </p>
5792    <blockquote class="text">
5793    <p>For turning on MIDI notes, where &lt;arg1&gt;
5794                                        specifies the key number and &lt;arg2&gt; the velocity
5795                                        as described in the MIDI specification.
5796    </p>
5797    </blockquote>
5798                                
5799    
5800    <p>"NOTE_OFF" -
5801                                    </p>
5802    <blockquote class="text">
5803    <p>For turning a currently playing MIDI note off, where &lt;arg1&gt;
5804                                        specifies the key number and &lt;arg2&gt; the velocity
5805                                        as described in the MIDI specification.
5806    </p>
5807    </blockquote>
5808                                
5809    
5810    <p>"CC" -
5811                                    </p>
5812    <blockquote class="text">
5813    <p>For changing a MIDI controller, where &lt;arg1&gt;
5814                                        specifies the controller number and &lt;arg2&gt; the
5815                                        new value of the controller as described in the Control
5816                                        Change section of the MIDI specification.
5817    </p>
5818    </blockquote>
5819                                
5820    
5821    </blockquote><p>
5822                        
5823    </p>
5824    <p>CAUTION: This command is provided for implementations of virtual MIDI keyboards
5825                        and no realtime guarantee whatsoever will be made!
5826    </p>
5827    <p>Possible Answers:
5828    </p>
5829    <p>
5830                            </p>
5831    <blockquote class="text">
5832    <p>"OK" -
5833                                    </p>
5834    <blockquote class="text">
5835    <p>on success
5836    </p>
5837    </blockquote>
5838                                
5839    
5840    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
5841                                    </p>
5842    <blockquote class="text">
5843    <p>in case it failed, providing an appropriate error code and error message
5844    </p>
5845    </blockquote>
5846                                
5847    
5848    </blockquote><p>
5849                        
5850    </p>
5851    <p>Example:
5852    </p>
5853    <p>
5854                            </p>
5855    <blockquote class="text">
5856    <p>C: "SEND CHANNEL MIDI_DATA NOTE_ON 0 56 112"
5857    </p>
5858    <p>S: "OK"
5859    </p>
5860    </blockquote><p>
5861                        
5862    </p>
5863    <a name="RESET CHANNEL"></a><br /><hr />
5864    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
5865    <a name="rfc.section.6.4.35"></a><h3>6.4.35.&nbsp;
5866  Resetting a sampler channel</h3>  Resetting a sampler channel</h3>
5867    
5868  <p>The front-end can reset a particular sampler channel by sending the following command:  <p>The front-end can reset a particular sampler channel by sending the following command:
# Line 6314  Setting global volume attenuation</h3> Line 6429  Setting global volume attenuation</h3>
6429  </blockquote><p>  </blockquote><p>
6430                                            
6431  </p>  </p>
6432    <a name="GET VOICES"></a><br /><hr />
6433    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
6434    <a name="rfc.section.6.6.8"></a><h3>6.6.8.&nbsp;
6435    Getting global voice limit</h3>
6436    
6437    <p>The client can ask for the current global sampler-wide limit
6438                           for maximum voices by sending the following command:
6439    </p>
6440    <p>
6441                            </p>
6442    <blockquote class="text">
6443    <p>GET VOICES
6444    </p>
6445    </blockquote><p>
6446                        
6447    </p>
6448    <p>Possible Answers:
6449    </p>
6450    <p>
6451                            </p>
6452    <blockquote class="text">
6453    <p>LinuxSampler will answer by returning the number for
6454                                   the current limit of maximum voices.
6455    </p>
6456    </blockquote><p>
6457                        
6458    </p>
6459    <p>The voice limit setting defines how many voices should maximum
6460                           be processed by the sampler at the same time. If the user
6461                           triggers new notes which would exceed that voice limit, the
6462                           sampler engine will react by stealing old voices for those
6463                           newly triggered notes. Note that the amount of voices triggered
6464                           by a new note can be larger than one and is dependent to the
6465                           respective instrument and probably further criterias.
6466    </p>
6467    <a name="SET VOICES"></a><br /><hr />
6468    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
6469    <a name="rfc.section.6.6.9"></a><h3>6.6.9.&nbsp;
6470    Setting global voice limit</h3>
6471    
6472    <p>The client can alter the current global sampler-wide limit
6473                        for maximum voices by sending the following command:
6474    </p>
6475    <p>
6476                            </p>
6477    <blockquote class="text">
6478    <p>SET VOICES &lt;max-voices&gt;
6479    </p>
6480    </blockquote><p>
6481                        
6482    </p>
6483    <p>Where &lt;max-voices&gt; should be replaced by the integer
6484                       value, reflecting the new global amount limit of maximum voices.
6485                       This value has to be larger than 0.
6486    </p>
6487    <p>Possible Answers:
6488    </p>
6489    <p>
6490                            </p>
6491    <blockquote class="text">
6492    <p>"OK" -
6493                                    </p>
6494    <blockquote class="text">
6495    <p>on success
6496    </p>
6497    </blockquote>
6498                                
6499    
6500    <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
6501                                    </p>
6502    <blockquote class="text">
6503    <p>if the voice limit was set, but there are noteworthy
6504                                        issue(s) related, providing an appropriate warning code and
6505                                        warning message
6506    </p>
6507    </blockquote>
6508                                
6509    
6510    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
6511                                    </p>
6512    <blockquote class="text">
6513    <p>in case it failed, providing an appropriate error code and error message
6514    </p>
6515    </blockquote>
6516                                
6517    
6518    </blockquote><p>
6519                        
6520    </p>
6521    <p>Note: the given value will be passed to all sampler engine instances.
6522                           The total amount of maximum voices on the running system might thus
6523                           be as big as the given value multiplied by the current amount of engine
6524                           instances.
6525    </p>
6526    <p>Caution: when adjusting the voice limit, you SHOULD also
6527                            adjust the disk stream limit respectively and vice versa.
6528    </p>
6529    <a name="GET STREAMS"></a><br /><hr />
6530    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
6531    <a name="rfc.section.6.6.10"></a><h3>6.6.10.&nbsp;
6532    Getting global disk stream limit</h3>
6533    
6534    <p>The client can ask for the current global sampler-wide limit
6535                           for maximum disk streams by sending the following command:
6536    </p>
6537    <p>
6538                            </p>
6539    <blockquote class="text">
6540    <p>GET STREAMS
6541    </p>
6542    </blockquote><p>
6543                        
6544    </p>
6545    <p>Possible Answers:
6546    </p>
6547    <p>
6548                            </p>
6549    <blockquote class="text">
6550    <p>LinuxSampler will answer by returning the number for
6551                                   the current limit of maximum disk streams.
6552    </p>
6553    </blockquote><p>
6554                        
6555    </p>
6556    <p>The disk stream limit setting defines how many disk streams should
6557                           maximum be processed by a sampler engine at the same time. The
6558                           higher this value, the more memory (RAM) will be occupied, since
6559                           every disk streams allocates a certain buffer size for being able
6560                           to perform its streaming operations.
6561    </p>
6562    <a name="SET STREAMS"></a><br /><hr />
6563    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
6564    <a name="rfc.section.6.6.11"></a><h3>6.6.11.&nbsp;
6565    Setting global disk stream limit</h3>
6566    
6567    <p>The client can alter the current global sampler-wide limit
6568                        for maximum disk streams by sending the following command:
6569    </p>
6570    <p>
6571                            </p>
6572    <blockquote class="text">
6573    <p>SET STREAMS &lt;max-streams&gt;
6574    </p>
6575    </blockquote><p>
6576                        
6577    </p>
6578    <p>Where &lt;max-streams&gt; should be replaced by the integer
6579                       value, reflecting the new global amount limit of maximum disk streams.
6580                       This value has to be positive.
6581    </p>
6582    <p>Possible Answers:
6583    </p>
6584    <p>
6585                            </p>
6586    <blockquote class="text">
6587    <p>"OK" -
6588                                    </p>
6589    <blockquote class="text">
6590    <p>on success
6591    </p>
6592    </blockquote>
6593                                
6594    
6595    <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
6596                                    </p>
6597    <blockquote class="text">
6598    <p>if the disk stream limit was set, but there are noteworthy
6599                                        issue(s) related, providing an appropriate warning code and
6600                                        warning message
6601    </p>
6602    </blockquote>
6603                                
6604    
6605    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
6606                                    </p>
6607    <blockquote class="text">
6608    <p>in case it failed, providing an appropriate error code and error message
6609    </p>
6610    </blockquote>
6611                                
6612    
6613    </blockquote><p>
6614                        
6615    </p>
6616    <p>Note: the given value will be passed to all sampler engine instances.
6617                           The total amount of maximum disk streams on the running system might
6618                           thus be as big as the given value multiplied by the current amount of
6619                           engine instances.
6620    </p>
6621    <p>Caution: when adjusting the disk stream limit, you SHOULD also
6622                            adjust the voice limit respectively and vice versa.
6623    </p>
6624  <a name="MIDI Instrument Mapping"></a><br /><hr />  <a name="MIDI Instrument Mapping"></a><br /><hr />
6625  <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>  <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
6626  <a name="rfc.section.6.7"></a><h3>6.7.&nbsp;  <a name="rfc.section.6.7"></a><h3>6.7.&nbsp;
# Line 8060  Adding instruments to the instruments da Line 8367  Adding instruments to the instruments da
8367  <p>  <p>
8368                          </p>                          </p>
8369  <blockquote class="text">  <blockquote class="text">
8370  <p>ADD DB_INSTRUMENTS [NON_MODAL] [&lt;mode&gt;] &lt;db_dir&gt; &lt;file_path&gt; [&lt;instr_index&gt;]  <p>ADD DB_INSTRUMENTS [NON_MODAL] [&lt;mode&gt;[ FILE_AS_DIR]] &lt;db_dir&gt; &lt;file_path&gt; [&lt;instr_index&gt;]
8371  </p>  </p>
8372  </blockquote><p>  </blockquote><p>
8373                                            
# Line 8118  Adding instruments to the instruments da Line 8425  Adding instruments to the instruments da
8425  </blockquote><p>  </blockquote><p>
8426                                            
8427  </p>  </p>
8428    <p> If FILE_AS_DIR argument is supplied, all instruments in an instrument
8429                     file will be added to a separate directory in the instruments database, which
8430                     name will be the name of the instrument file with the file extension stripped off.
8431                    
8432    </p>
8433  <p>The difference between regular and NON_MODAL versions of the command  <p>The difference between regular and NON_MODAL versions of the command
8434                      is that the regular command returns when the scanning is finished                      is that the regular command returns when the scanning is finished
8435                      while NON_MODAL version returns immediately and a background process is launched.                      while NON_MODAL version returns immediately and a background process is launched.
# Line 9104  Formatting the instruments database</h3> Line 9416  Formatting the instruments database</h3>
9416  </blockquote><p>  </blockquote><p>
9417                                            
9418  </p>  </p>
9419    <a name="FIND LOST DB_INSTRUMENT_FILES"></a><br /><hr />
9420    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
9421    <a name="rfc.section.6.8.23"></a><h3>6.8.23.&nbsp;
9422    Checking for lost instrument files</h3>
9423    
9424    <p>The front-end can retrieve the list of all instrument files in the instruments database
9425                        that don't exist in the filesystem by sending the following command:
9426    </p>
9427    <p>
9428                            </p>
9429    <blockquote class="text">
9430    <p>FIND LOST DB_INSTRUMENT_FILES
9431    </p>
9432    </blockquote><p>
9433                        
9434    </p>
9435    <p>Possible Answers:
9436    </p>
9437    <p>
9438                            </p>
9439    <blockquote class="text">
9440    <p>A comma separated list with the absolute path names
9441                                (encapsulated into apostrophes) of all lost instrument files.
9442    </p>
9443    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
9444                                    </p>
9445    <blockquote class="text">
9446    <p>in case it failed, providing an appropriate error code and error message.
9447    </p>
9448    </blockquote>
9449                                
9450    
9451    </blockquote><p>
9452                        
9453    </p>
9454    <p>Example:
9455    </p>
9456    <p>
9457                            </p>
9458    <blockquote class="text">
9459    <p>C: "FIND LOST DB_INSTRUMENT_FILES"
9460    </p>
9461    <p>S: "'/gigs/Bosendorfer 290.gig','/gigs/Steinway D.gig','/gigs/Free Piano.gig'"
9462    </p>
9463    </blockquote><p>
9464                        
9465    </p>
9466    <a name="SET DB_INSTRUMENT FILE_PATH"></a><br /><hr />
9467    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
9468    <a name="rfc.section.6.8.24"></a><h3>6.8.24.&nbsp;
9469    Replacing an instrument file</h3>
9470    
9471    <p>The front-end can substitute all occurrences of an instrument file
9472                        in the instruments database with a new one by sending the following command:
9473    </p>
9474    <p>
9475                            </p>
9476    <blockquote class="text">
9477    <p>SET DB_INSTRUMENT FILE_PATH &lt;old_path&gt; &lt;new_path&gt;
9478    </p>
9479    </blockquote><p>
9480                        
9481    </p>
9482    <p>Where &lt;old_path&gt; is the absolute path name of the instrument file
9483                        to substitute with &lt;new_path&gt;.
9484    </p>
9485    <p>Possible Answers:
9486    </p>
9487    <p>
9488                            </p>
9489    <blockquote class="text">
9490    <p>"OK" -
9491                                    </p>
9492    <blockquote class="text">
9493    <p>on success
9494    </p>
9495    </blockquote>
9496                                
9497    
9498    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
9499                                    </p>
9500    <blockquote class="text">
9501    <p>in case it failed, providing an appropriate error code and error message.
9502    </p>
9503    </blockquote>
9504                                
9505    
9506    </blockquote><p>
9507                        
9508    </p>
9509    <p>Example:
9510    </p>
9511    <p>
9512                            </p>
9513    <blockquote class="text">
9514    <p>C: "SET DB_INSTRUMENT FILE_PATH '/gigs/Bosendorfer 290.gig' '/gigs/pianos/Bosendorfer 290.gig'"
9515    </p>
9516    <p>S: "OK"
9517    </p>
9518    </blockquote><p>
9519                        
9520    </p>
9521  <a name="editing_instruments"></a><br /><hr />  <a name="editing_instruments"></a><br /><hr />
9522  <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>  <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
9523  <a name="rfc.section.6.9"></a><h3>6.9.&nbsp;  <a name="rfc.section.6.9"></a><h3>6.9.&nbsp;
# Line 9427  Retrieving informations about one instru Line 9841  Retrieving informations about one instru
9841  </blockquote>  </blockquote>
9842                                                                            
9843    
9844    <p>KEY_BINDINGS -
9845                                            </p>
9846    <blockquote class="text">
9847    <p>comma separated list of integer values representing
9848                                                   the instrument's key mapping in the range between 0 .. 127,
9849                                                   reflecting the analog meaning of the MIDI specification.
9850    </p>
9851    </blockquote>
9852                                        
9853    
9854    <p>KEYSWITCH_BINDINGS -
9855                                            </p>
9856    <blockquote class="text">
9857    <p>comma separated list of integer values representing
9858                                                   the instrument's keyswitch mapping in the range between 0 .. 127,
9859                                                   reflecting the analog meaning of the MIDI specification.
9860    </p>
9861    </blockquote>
9862                                        
9863    
9864  </blockquote>  </blockquote>
9865                                                            
9866    
# Line 9578  Command Syntax</h3> Line 10012  Command Syntax</h3>
10012  <p>/ FORMAT SP format_instruction  <p>/ FORMAT SP format_instruction
10013                                    
10014  </p>  </p>
10015    <p>/ SEND SP send_instruction
10016                    
10017    </p>
10018  <p>/ RESET  <p>/ RESET
10019                                    
10020  </p>  </p>
# Line 9599  Command Syntax</h3> Line 10036  Command Syntax</h3>
10036  <p>/ DB_INSTRUMENTS SP NON_MODAL SP scan_mode SP db_path SP filename  <p>/ DB_INSTRUMENTS SP NON_MODAL SP scan_mode SP db_path SP filename
10037                                    
10038  </p>  </p>
10039    <p>/ DB_INSTRUMENTS SP NON_MODAL SP scan_mode SP FILE_AS_DIR SP db_path SP filename
10040                    
10041    </p>
10042  <p>/ DB_INSTRUMENTS SP scan_mode SP db_path SP filename  <p>/ DB_INSTRUMENTS SP scan_mode SP db_path SP filename
10043                                    
10044  </p>  </p>
10045    <p>/ DB_INSTRUMENTS SP scan_mode SP FILE_AS_DIR SP db_path SP filename
10046                    
10047    </p>
10048  <p>/ DB_INSTRUMENTS SP NON_MODAL SP db_path SP filename  <p>/ DB_INSTRUMENTS SP NON_MODAL SP db_path SP filename
10049                                    
10050  </p>  </p>
# Line 9971  Command Syntax</h3> Line 10414  Command Syntax</h3>
10414  <p>/ VOLUME  <p>/ VOLUME
10415                                    
10416  </p>  </p>
10417    <p>/ VOICES
10418                    
10419    </p>
10420    <p>/ STREAMS
10421                    
10422    </p>
10423  <p>/ FILE SP INSTRUMENTS SP filename  <p>/ FILE SP INSTRUMENTS SP filename
10424                                    
10425  </p>  </p>
# Line 10028  Command Syntax</h3> Line 10477  Command Syntax</h3>
10477  <p>/ DB_INSTRUMENT SP DESCRIPTION SP db_path SP stringval_escaped  <p>/ DB_INSTRUMENT SP DESCRIPTION SP db_path SP stringval_escaped
10478                                    
10479  </p>  </p>
10480    <p>/ DB_INSTRUMENT SP FILE_PATH SP filename SP filename
10481                    
10482    </p>
10483  <p>/ ECHO SP boolean  <p>/ ECHO SP boolean
10484                                    
10485  </p>  </p>
10486  <p>/ VOLUME SP volume_value  <p>/ VOLUME SP volume_value
10487                                    
10488  </p>  </p>
10489    <p>/ VOICES SP number
10490                    
10491    </p>
10492    <p>/ STREAMS SP number
10493                    
10494    </p>
10495  </blockquote><p>  </blockquote><p>
10496    
10497  </p>  </p>
# Line 10097  Command Syntax</h3> Line 10555  Command Syntax</h3>
10555  <p>/ DB_INSTRUMENT_DIRECTORIES SP db_path SP query_val_list  <p>/ DB_INSTRUMENT_DIRECTORIES SP db_path SP query_val_list
10556                                    
10557  </p>  </p>
10558    <p>/ LOST SP DB_INSTRUMENT_FILES
10559                    
10560    </p>
10561  </blockquote><p>  </blockquote><p>
10562    
10563  </p>  </p>
# Line 10304  Command Syntax</h3> Line 10765  Command Syntax</h3>
10765  </blockquote><p>  </blockquote><p>
10766    
10767  </p>  </p>
10768    <p>send_instruction =
10769            </p>
10770    <blockquote class="text">
10771    <p>CHANNEL SP MIDI_DATA SP string SP sampler_channel SP number SP number
10772                    
10773    </p>
10774    </blockquote><p>
10775    
10776    </p>
10777  <p>load_instr_args =  <p>load_instr_args =
10778          </p>          </p>
10779  <blockquote class="text">  <blockquote class="text">
# Line 10652  Character Set and Escape Sequences</h3> Line 11122  Character Set and Escape Sequences</h3>
11122  <td align="left">two digit hex ASCII code of the character</td>  <td align="left">two digit hex ASCII code of the character</td>
11123  </tr>  </tr>
11124  </table>  </table>
11125    <br clear="all" />
11126    
11127  <p>Notice: due to the transition of certain parts of the  <p>Notice: due to the transition of certain parts of the
11128                  protocol which now support escape sequences, a slight backward                  protocol which now support escape sequences, a slight backward
# Line 10714  Character Set and Escape Sequences</h3> Line 11185  Character Set and Escape Sequences</h3>
11185  </p>  </p>
11186  <p><a class='info' href='#COPY DB_INSTRUMENT_DIRECTORY'>"COPY DB_INSTRUMENT_DIRECTORY"<span> (</span><span class='info'>Copying instrument directories</span><span>)</span></a>  <p><a class='info' href='#COPY DB_INSTRUMENT_DIRECTORY'>"COPY DB_INSTRUMENT_DIRECTORY"<span> (</span><span class='info'>Copying instrument directories</span><span>)</span></a>
11187  </p>  </p>
11188    <p><a class='info' href='#FIND LOST DB_INSTRUMENT_FILES'>"FIND LOST DB_INSTRUMENT_FILES"<span> (</span><span class='info'>Checking for lost instrument files</span><span>)</span></a>
11189    </p>
11190    <p><a class='info' href='#SET DB_INSTRUMENT FILE_PATH'>"SET DB_INSTRUMENT FILE_PATH"<span> (</span><span class='info'>Replacing an instrument file</span><span>)</span></a>
11191    </p>
11192  <p><a class='info' href='#GET FILE INSTRUMENTS'>"GET FILE INSTRUMENTS"<span> (</span><span class='info'>Retrieving amount of instruments of a file</span><span>)</span></a>  <p><a class='info' href='#GET FILE INSTRUMENTS'>"GET FILE INSTRUMENTS"<span> (</span><span class='info'>Retrieving amount of instruments of a file</span><span>)</span></a>
11193  </p>  </p>
11194  <p><a class='info' href='#LIST FILE INSTRUMENTS'>"LIST FILE INSTRUMENTS"<span> (</span><span class='info'>Retrieving all instruments of a file</span><span>)</span></a>  <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>
# Line 11008  MIDI data on a MIDI input device arrived Line 11483  MIDI data on a MIDI input device arrived
11483  <p>  <p>
11484                              </p>                              </p>
11485  <blockquote class="text">  <blockquote class="text">
11486  <p>"NOTIFY:CHANNEL_MIDI:&lt;device-id&gt; &lt;port-id&gt; NOTE_ON &lt;note&gt; &lt;velocity&gt;"  <p>"NOTIFY:DEVICE_MIDI:&lt;device-id&gt; &lt;port-id&gt; NOTE_ON &lt;note&gt; &lt;velocity&gt;"
11487  </p>  </p>
11488  <p>"NOTIFY:CHANNEL_MIDI:&lt;device-id&gt; &lt;port-id&gt; NOTE_OFF &lt;note&gt; &lt;velocity&gt;"  <p>"NOTIFY:DEVICE_MIDI:&lt;device-id&gt; &lt;port-id&gt; NOTE_OFF &lt;note&gt; &lt;velocity&gt;"
11489  </p>  </p>
11490  </blockquote><p>  </blockquote><p>
11491                                            
# Line 11421  Global settings changed</h3> Line 11896  Global settings changed</h3>
11896                          new global volume parameter.                          new global volume parameter.
11897  </p>  </p>
11898  </blockquote><p>  </blockquote><p>
11899                        </p>
11900    <blockquote class="text">
11901    <p>"NOTIFY:GLOBAL_INFO:VOICES &lt;max-voices&gt;" - Notifies that the
11902                            golbal limit of the sampler for maximum voices is changed, where
11903                            &lt;max-voices&gt; will be an integer value, reflecting the
11904                            new global voice limit parameter.
11905    </p>
11906    </blockquote><p>
11907                        </p>
11908    <blockquote class="text">
11909    <p>"NOTIFY:GLOBAL_INFO:STREAMS &lt;max-streams&gt;" - Notifies that the
11910                            golbal limit of the sampler for maximum disk streams is changed, where
11911                            &lt;max-streams&gt; will be an integer value, reflecting the
11912                            new global disk streams limit parameter.
11913    </p>
11914    </blockquote><p>
11915                                    
11916  </p>  </p>
11917  <a name="SUBSCRIBE DB_INSTRUMENT_DIRECTORY_COUNT"></a><br /><hr />  <a name="SUBSCRIBE DB_INSTRUMENT_DIRECTORY_COUNT"></a><br /><hr />
# Line 11682  Acknowledgments</h3> Line 12173  Acknowledgments</h3>
12173  <h3>11.&nbsp;References</h3>  <h3>11.&nbsp;References</h3>
12174  <table width="99%" border="0">  <table width="99%" border="0">
12175  <tr><td class="author-text" valign="top"><a name="RFC20">[RFC20]</a></td>  <tr><td class="author-text" valign="top"><a name="RFC20">[RFC20]</a></td>
12176  <td class="author-text">UCLA, &ldquo;<a href="ftp://ftp.isi.edu/in-notes/rfc20.txt">ASCII format for Network Interchange</a>,&rdquo; RFC&nbsp;20, 1969.</td></tr>  <td class="author-text">UCLA, &ldquo;<a href="http://tools.ietf.org/html/rfc20">ASCII format for Network Interchange</a>,&rdquo; RFC&nbsp;20, 1969.</td></tr>
12177  <tr><td class="author-text" valign="top"><a name="RFC2119">[RFC2119]</a></td>  <tr><td class="author-text" valign="top"><a name="RFC2119">[RFC2119]</a></td>
12178  <td class="author-text">Bradner, S., &ldquo;<a href="ftp://ftp.isi.edu/in-notes/rfc2119.txt">Key words for use in RFCs to Indicate Requirement Levels</a>,&rdquo; RFC&nbsp;2119, 1997.</td></tr>  <td class="author-text">Bradner, S., &ldquo;<a href="http://tools.ietf.org/html/rfc2119">Key words for use in RFCs to Indicate Requirement Levels</a>,&rdquo; RFC&nbsp;2119, 1997.</td></tr>
12179  <tr><td class="author-text" valign="top"><a name="RFC2234">[RFC2234]</a></td>  <tr><td class="author-text" valign="top"><a name="RFC2234">[RFC2234]</a></td>
12180  <td class="author-text">Crocker, D. and P. Overell, &ldquo;<a href="ftp://ftp.isi.edu/in-notes/rfc2234.txt">Augmented BNF for Syntax Specifications</a>,&rdquo; RFC&nbsp;2234, 1997.</td></tr>  <td class="author-text">Crocker, D. and P. Overell, &ldquo;<a href="http://tools.ietf.org/html/rfc2234">Augmented BNF for Syntax Specifications</a>,&rdquo; RFC&nbsp;2234, 1997.</td></tr>
12181  <tr><td class="author-text" valign="top"><a name="RFC793">[RFC793]</a></td>  <tr><td class="author-text" valign="top"><a name="RFC793">[RFC793]</a></td>
12182  <td class="author-text">Defense Advanced Research Projects Agency, &ldquo;<a href="ftp://ftp.isi.edu/in-notes/rfc793.txt">TRANSMISSION CONTROL PROTOCOL</a>,&rdquo; RFC&nbsp;793, 1981.</td></tr>  <td class="author-text">Defense Advanced Research Projects Agency, &ldquo;<a href="http://tools.ietf.org/html/rfc793">TRANSMISSION CONTROL PROTOCOL</a>,&rdquo; RFC&nbsp;793, 1981.</td></tr>
12183  </table>  </table>
12184    
12185  <a name="rfc.authors"></a><br /><hr />  <a name="rfc.authors"></a><br /><hr />
# Line 11713  Schoenebeck</td></tr> Line 12204  Schoenebeck</td></tr>
12204  <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>  <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
12205  <h3>Full Copyright Statement</h3>  <h3>Full Copyright Statement</h3>
12206  <p class='copyright'>  <p class='copyright'>
12207  Copyright &copy; The IETF Trust (2008).</p>  Copyright &copy; The IETF Trust (2009).</p>
12208  <p class='copyright'>  <p class='copyright'>
12209  This document is subject to the rights,  This document is subject to the rights,
12210  licenses and restrictions contained in BCP&nbsp;78,  licenses and restrictions contained in BCP&nbsp;78,
# Line 11755  or other Line 12246  or other
12246  proprietary rights that may cover technology that may be required  proprietary rights that may cover technology that may be required
12247  to implement this standard.  to implement this standard.
12248  Please address the information to the IETF at <a href='mailto:ietf-ipr@ietf.org'>ietf-ipr@ietf.org</a>.</p>  Please address the information to the IETF at <a href='mailto:ietf-ipr@ietf.org'>ietf-ipr@ietf.org</a>.</p>
 <h3>Acknowledgment</h3>  
 <p class='copyright'>  
 Funding for the RFC Editor function is provided by  
 the IETF Administrative Support Activity (IASA).</p>  
12249  </body></html>  </body></html>
12250    

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

  ViewVC Help
Powered by ViewVC