/[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 940 by schoenebeck, Sat Nov 25 17:18:12 2006 UTC revision 945 by schoenebeck, Sun Nov 26 16:39:49 2006 UTC
# Line 126  Line 126 
126  <table summary="layout" width="66%" border="0" cellpadding="0" cellspacing="0"><tr><td><table summary="layout" width="100%" border="0" cellpadding="2" cellspacing="1">  <table summary="layout" width="66%" border="0" cellpadding="0" cellspacing="0"><tr><td><table summary="layout" width="100%" border="0" cellpadding="2" cellspacing="1">
127  <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>
128  <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>
129  <tr><td class="header">Expires: May 29, 2007</td><td class="header">Engineering e. V.</td></tr>  <tr><td class="header">Expires: May 30, 2007</td><td class="header">Engineering e. V.</td></tr>
130  <tr><td class="header">&nbsp;</td><td class="header">November 25, 2006</td></tr>  <tr><td class="header">&nbsp;</td><td class="header">November 26, 2006</td></tr>
131  </table></td></tr></table>  </table></td></tr></table>
132  <div align="right"><span class="title"><br />LinuxSampler Control Protocol</span></div>  <div align="right"><span class="title"><br />LinuxSampler Control Protocol</span></div>
133  <div align="right"><span class="title"><br />LSCP 1.1</span></div>  <div align="right"><span class="title"><br />LSCP 1.2</span></div>
134    
135  <h3>Status of this Memo</h3>  <h3>Status of this Memo</h3>
136  <p>  <p>
# Line 153  The list of current Internet-Drafts can Line 153  The list of current Internet-Drafts can
153  The list of Internet-Draft Shadow Directories can be accessed at  The list of Internet-Draft Shadow Directories can be accessed at
154  <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>
155  <p>  <p>
156  This Internet-Draft will expire on May 29, 2007.</p>  This Internet-Draft will expire on May 30, 2007.</p>
157    
158  <h3>Copyright Notice</h3>  <h3>Copyright Notice</h3>
159  <p>  <p>
# Line 318  Maximum amount of active voices<br /> Line 318  Maximum amount of active voices<br />
318  Reset sampler<br />  Reset sampler<br />
319  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET SERVER INFO">6.6.4.</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET SERVER INFO">6.6.4.</a>&nbsp;
320  General sampler informations<br />  General sampler informations<br />
321    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor14">6.7.</a>&nbsp;
322    MIDI Instrument Mapping<br />
323    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#MAP MIDI_INSTRUMENT">6.7.1.</a>&nbsp;
324    Create or replace a MIDI instrument map entry<br />
325    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET MIDI_INSTRUMENTS">6.7.2.</a>&nbsp;
326    Getting ammount of MIDI instrument map entries<br />
327    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#LIST MIDI_INSTRUMENTS">6.7.3.</a>&nbsp;
328    Getting indeces of all MIDI instrument map entries<br />
329    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#UNMAP MIDI_INSTRUMENT">6.7.4.</a>&nbsp;
330    Remove an entry from the MIDI instrument map<br />
331    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET MIDI_INSTRUMENT INFO">6.7.5.</a>&nbsp;
332    Get current settings of MIDI instrument map entry<br />
333    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#CLEAR MIDI_INSTRUMENTS">6.7.6.</a>&nbsp;
334    Clear MIDI instrument map<br />
335  <a href="#command_syntax">7.</a>&nbsp;  <a href="#command_syntax">7.</a>&nbsp;
336  Command Syntax<br />  Command Syntax<br />
337  <a href="#events">8.</a>&nbsp;  <a href="#events">8.</a>&nbsp;
# Line 336  Channel information changed<br /> Line 350  Channel information changed<br />
350  Total number of active voices changed<br />  Total number of active voices changed<br />
351  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE MISCELLANEOUS">8.7.</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE MISCELLANEOUS">8.7.</a>&nbsp;
352  Miscellaneous and debugging events<br />  Miscellaneous and debugging events<br />
353  <a href="#anchor14">9.</a>&nbsp;  <a href="#anchor15">9.</a>&nbsp;
354  Security Considerations<br />  Security Considerations<br />
355  <a href="#anchor15">10.</a>&nbsp;  <a href="#anchor16">10.</a>&nbsp;
356  Acknowledgments<br />  Acknowledgments<br />
357  <a href="#rfc.references1">11.</a>&nbsp;  <a href="#rfc.references1">11.</a>&nbsp;
358  References<br />  References<br />
# Line 5138  Intellectual Property and Copyright Stat Line 5152  Intellectual Property and Copyright Stat
5152  <p>The mentioned fields above don't have to be in particular order.  <p>The mentioned fields above don't have to be in particular order.
5153                      Other fields might be added in future.                      Other fields might be added in future.
5154  </p>  </p>
5155    <a name="anchor14"></a><br /><hr />
5156    <table summary="layout" cellpadding="0" cellspacing="2" class="bug" align="right"><tr><td class="bug"><a href="#toc" class="link2">&nbsp;TOC&nbsp;</a></td></tr></table>
5157    <a name="rfc.section.6.7"></a><h3>6.7.&nbsp;MIDI Instrument Mapping</h3>
5158    
5159    <p>The MIDI protocol provides a way to switch between instruments
5160                    by sending so called MIDI bank select and MIDI program change
5161                    messages which are essentially just numbers. The following commands
5162                    allow to actually map arbitrary MIDI bank select / program change
5163                    numbers with real instruments.
5164    </p>
5165    <p>By default, that is when the sampler is launched, this map will
5166                    be empty, thus the sampler will simply ignore all program change
5167                    messages. The front-end has to explicitly add entries to the map
5168                    so the sampler knows how to react on a given program change
5169                    message, that is by switching to the respectively defined engine
5170                    type and loading the respective instrument.
5171    </p>
5172    <p>Also note per MIDI specification a bank select message does not
5173                    cause to switch to another instrument. Instead when receiving a
5174                    bank select message the bank value will be stored and a subsequent
5175                    program change message (which may occur at any time) will finally
5176                    cause the sampler to switch to the respective instrument as
5177                    reflected by the current MIDI instrument map.
5178    </p>
5179    <a name="MAP MIDI_INSTRUMENT"></a><br /><hr />
5180    <table summary="layout" cellpadding="0" cellspacing="2" class="bug" align="right"><tr><td class="bug"><a href="#toc" class="link2">&nbsp;TOC&nbsp;</a></td></tr></table>
5181    <a name="rfc.section.6.7.1"></a><h3>6.7.1.&nbsp;Create or replace a MIDI instrument map entry</h3>
5182    
5183    <p>The front-end can create a new or replace an existing entry
5184                        in the sampler's MIDI instrument map by sending the following
5185                        command:
5186    </p>
5187    <p>
5188                            </p>
5189    <blockquote class="text">
5190    <p>MAP MIDI_INSTRUMENT &lt;midi_bank_msb&gt;
5191                                &lt;midi_bank_lsb&gt; &lt;midi_prog&gt; &lt;engine_name&gt;
5192                                &lt;filename&gt; &lt;instrument_index&gt; &lt;volume_value&gt;
5193                                [&lt;instr_load_mode&gt;] [&lt;name&gt;]
5194    </p>
5195    </blockquote><p>
5196                        
5197    </p>
5198    <p>Where &lt;midi_bank_msb&gt; is an integer value between
5199                        0..127 reflecting the MIDI bank select MSB (coarse) index,
5200                        &lt;midi_bank_lsb&gt; an integer value between 0..127 reflecting
5201                        the MIDI bank select LSB (fine) index, &lt;midi_prog&gt; an
5202                        integer value between 0..127 reflecting the MIDI program change
5203                        index, &lt;engine_name&gt; a sampler engine name as returned by
5204                        the <a class="info" href="#LIST AVAILABLE_ENGINES">"LIST AVAILABLE_ENGINES"<span> (</span><span class="info">Getting all available engines</span><span>)</span></a>
5205                        command (not encapsulated into apostrophes), &lt;filename&gt; the name
5206                        of the instrument's file to be deployed (encapsulated into apostrophes), &lt;instrument_index&gt; the index (integer value) of the instrument
5207                        within the given file, &lt;volume_value&gt; reflects the master
5208                        volume of the instrument as optionally dotted number (where a
5209                        value < 1.0 means attenuation and a value > 1.0 means
5210                        amplification). This parameter easily allows to adjust the
5211                        volume of all intruments within a custom instrument map
5212                        without having to adjust their instrument files. The
5213                        OPTIONAL &lt;instr_load_mode&gt; argument defines the life
5214                        time of the instrument, that is when the instrument should
5215                        be loaded, when freed and has exactly the following
5216                        possibilities:
5217    </p>
5218    <p>
5219                            </p>
5220    <blockquote class="text">
5221    <p>"ON_DEMAND" -
5222                                    </p>
5223    <blockquote class="text">
5224    <p>The instrument will be loaded when needed,
5225                                        that is when demanded by at least one sampler
5226                                        channel. It will immediately be freed from memory
5227                                        when not needed by any sampler channel anymore.
5228    </p>
5229    </blockquote>
5230                                
5231    
5232    <p>"ON_DEMAND_HOLD" -
5233                                    </p>
5234    <blockquote class="text">
5235    <p>The instrument will be loaded when needed,
5236                                        that is when demanded by at least one sampler
5237                                        channel. It will be kept in memory even when
5238                                        not needed by any sampler channel anymore.
5239                                        Instruments with this mode are only freed
5240                                        when the sampler is reset or all mapping
5241                                        entries with this mode (and respective
5242                                        instrument) are explicitly changed to
5243                                        "ON_DEMAND" and no sampler channel is using
5244                                        the instrument anymore.
5245    </p>
5246    </blockquote>
5247                                
5248    
5249    <p>"PERSISTENT" -
5250                                    </p>
5251    <blockquote class="text">
5252    <p>The instrument will immediately be loaded
5253                                        into memory in the background when this mapping
5254                                        command is sent and the instrument is kept all
5255                                        the time. Instruments with this mode are
5256                                        only freed when the sampler is reset or all
5257                                        mapping entries with this mode (and
5258                                        respective instrument) are explicitly
5259                                        changed to "ON_DEMAND" and no sampler
5260                                        channel is using the instrument anymore.
5261    </p>
5262    </blockquote>
5263                                
5264    
5265    <p>not supplied -
5266                                    </p>
5267    <blockquote class="text">
5268    <p>In case there is no &lt;instr_load_mode&gt;
5269                                        argument given, it will be up to the
5270                                        InstrumentManager to decide which mode to use.
5271                                        Usually it will use "ON_DEMAND" if an entry
5272                                        for the given instrument does not exist in
5273                                        the InstrumentManager's list yet, otherwise
5274                                        if an entry already exists, it will simply
5275                                        stick with the mode currently reflected by
5276                                        the already existing entry, that is it will
5277                                        not change the mode.
5278    </p>
5279    </blockquote>
5280                                
5281    
5282    </blockquote><p>
5283                        
5284    </p>
5285    <p>
5286                        The &lt;instr_load_mode&gt; argument thus allows to define an
5287                        appropriate strategy (low memory consumption vs. fast
5288                        instrument switching) for each instrument individually. Note, the
5289                        following restrictions apply to this argument: "ON_DEMAND_HOLD" and
5290                        "PERSISTENT" have to be supported by the respective sampler engine
5291                        (which is technically the case when the engine provides an
5292                        InstrumentManager for its format). If this is not the case the
5293                        argument will automatically fall back to the default value
5294                        "ON_DEMAND". Also the load mode of one instrument may
5295                        automatically change the laod mode of other instrument(s), i.e.
5296                        because the instruments are part of the same file and the
5297                        engine does not allow a way to manage load modes for them
5298                        individually. Due to this, in case the frontend shows the
5299                        load modes of entries, the frontend should retrieve the actual
5300                        mode by i.e. sending
5301                        <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>
5302                        command(s). Finally the OPTIONAL &lt;name&gt; argument allows to
5303                        set a custom name (encapsulated into apostrophes) for the mapping
5304                        entry, useful for frontends for displaying an appropriate name for
5305                        mapped instruments (using
5306                        <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>).
5307                        
5308    </p>
5309    <p>
5310                        The "MAP MIDI_INSTRUMENT" command
5311                        will immediately return, thus it will not block when an
5312                        instrument is to be loaded due to a "PERSISTENT" type
5313                        entry as instruments are loaded in the background. As a
5314                        consequence this command may not necessarily return an error
5315                        i.e. when the given instrument file does not exist or may
5316                        turn out to be corrupt.
5317                        
5318    </p>
5319    <p>Possible Answers:
5320    </p>
5321    <p>
5322                            </p>
5323    <blockquote class="text">
5324    <p>"OK" -
5325                                    </p>
5326    <blockquote class="text">
5327    <p>usually
5328    </p>
5329    </blockquote>
5330                                
5331    
5332    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
5333                                    </p>
5334    <blockquote class="text">
5335    <p>when the given engine does not exist or a value
5336                                        is out of range
5337    </p>
5338    </blockquote>
5339                                
5340    
5341    </blockquote><p>
5342                        
5343    </p>
5344    <p>Examples:
5345    </p>
5346    <p>
5347                            </p>
5348    <blockquote class="text">
5349    <p>C: "MAP MIDI_INSTRUMENT 3 0 0 gig '/usr/share/Steinway D.gig' 0 0.8 PERSISTENT"
5350    </p>
5351    <p>S: "OK"
5352    </p>
5353    </blockquote><p>
5354                        
5355    </p>
5356    <p>
5357                            </p>
5358    <blockquote class="text">
5359    <p>C: "MAP MIDI_INSTRUMENT 127 4 50 gig '/home/john/foostrings.gig' 7 1.0"
5360    </p>
5361    <p>S: "OK"
5362    </p>
5363    </blockquote><p>
5364                        
5365    </p>
5366    <p>
5367                            </p>
5368    <blockquote class="text">
5369    <p>C: "MAP MIDI_INSTRUMENT 0 0 0 gig '/usr/share/piano.gig' 0 1.0 'Normal Piano'"
5370    </p>
5371    <p>S: "OK"
5372    </p>
5373    <p>C: "MAP MIDI_INSTRUMENT 1 0 0 gig '/usr/share/piano.gig' 0 0.25 'Silent Piano'"
5374    </p>
5375    <p>S: "OK"
5376    </p>
5377    </blockquote><p>
5378                        
5379    </p>
5380    <p>
5381                            </p>
5382    <blockquote class="text">
5383    <p>C: "MAP MIDI_INSTRUMENT 99 8 120 gig '/home/joe/foodrums.gig' 0 1.0 PERSISTENT 'Foo Drumkit'"
5384    </p>
5385    <p>S: "OK"
5386    </p>
5387    </blockquote><p>
5388                        
5389    </p>
5390    <a name="GET MIDI_INSTRUMENTS"></a><br /><hr />
5391    <table summary="layout" cellpadding="0" cellspacing="2" class="bug" align="right"><tr><td class="bug"><a href="#toc" class="link2">&nbsp;TOC&nbsp;</a></td></tr></table>
5392    <a name="rfc.section.6.7.2"></a><h3>6.7.2.&nbsp;Getting ammount of MIDI instrument map entries</h3>
5393    
5394    <p>The front-end can query the amount of currently existing MIDI
5395                        instrument map entries by sending the following
5396                        command:
5397    </p>
5398    <p>
5399                            </p>
5400    <blockquote class="text">
5401    <p>GET MIDI_INSTRUMENTS
5402    </p>
5403    </blockquote><p>
5404                        
5405    </p>
5406    <p>Possible Answers:
5407    </p>
5408    <p>
5409                            </p>
5410    <blockquote class="text">
5411    <p>LinuxSampler will answer by sending the current number of
5412                                entries in the sampler's MIDI instrument map.
5413    </p>
5414    </blockquote><p>
5415                        
5416    </p>
5417    <p>Example:
5418    </p>
5419    <p>
5420                            </p>
5421    <blockquote class="text">
5422    <p>C: "GET MIDI_INSTRUMENTS"
5423    </p>
5424    <p>S: "634"
5425    </p>
5426    </blockquote><p>
5427                        
5428    </p>
5429    <a name="LIST MIDI_INSTRUMENTS"></a><br /><hr />
5430    <table summary="layout" cellpadding="0" cellspacing="2" class="bug" align="right"><tr><td class="bug"><a href="#toc" class="link2">&nbsp;TOC&nbsp;</a></td></tr></table>
5431    <a name="rfc.section.6.7.3"></a><h3>6.7.3.&nbsp;Getting indeces of all MIDI instrument map entries</h3>
5432    
5433    <p>The front-end can query a list of all currently existing MIDI
5434                        instrument map entries by sending the following command:
5435    </p>
5436    <p>
5437                            </p>
5438    <blockquote class="text">
5439    <p>LIST MIDI_INSTRUMENTS
5440    </p>
5441    </blockquote><p>
5442                        
5443    </p>
5444    <p>Possible Answers:
5445    </p>
5446    <p>
5447                            </p>
5448    <blockquote class="text">
5449    <p>LinuxSampler will answer by sending a comma separated
5450                                list of MIDI bank MSB (coarse) - MIDI bank LSB (fine) -
5451                                MIDI program triples, where each triple is encapsulated
5452                                into curly braces. The list is returned in one single
5453                                line. Each triple just reflects the key of the respective
5454                                map entry, thus subsequent
5455                                <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>
5456                                command(s) are necessary to retrieve detailed informations
5457                                about each entry.
5458    </p>
5459    </blockquote><p>
5460                        
5461    </p>
5462    <p>Example:
5463    </p>
5464    <p>
5465                            </p>
5466    <blockquote class="text">
5467    <p>C: "LIST MIDI_INSTRUMENTS"
5468    </p>
5469    <p>S: "{0,0,0},{0,0,1},{120,0,3},{120,0,4},{23,127,127}"
5470    </p>
5471    </blockquote><p>
5472                        
5473    </p>
5474    <a name="UNMAP MIDI_INSTRUMENT"></a><br /><hr />
5475    <table summary="layout" cellpadding="0" cellspacing="2" class="bug" align="right"><tr><td class="bug"><a href="#toc" class="link2">&nbsp;TOC&nbsp;</a></td></tr></table>
5476    <a name="rfc.section.6.7.4"></a><h3>6.7.4.&nbsp;Remove an entry from the MIDI instrument map</h3>
5477    
5478    <p>The front-end can delete an entry from the MIDI instrument
5479                        map by sending the following command:
5480    </p>
5481    <p>
5482                            </p>
5483    <blockquote class="text">
5484    <p>UNMAP MIDI_INSTRUMENT &lt;midi_bank_msb&gt; &lt;midi_bank_lsb&gt; &lt;midi_prog&gt;
5485    </p>
5486    </blockquote><p>
5487                        
5488    </p>
5489    <p>
5490                        Where &lt;midi_bank_msb&gt; is an integer value between 0..127
5491                        reflecting the MIDI bank MSB (coarse) value, &lt;midi_bank_lsb&gt;
5492                        an integer value between 0..127 reflecting the MIDI bank LSB
5493                        (fine) value and &lt;midi_prog&gt; an integer value between
5494                        0..127 reflecting the MIDI program value of the map entrie's key
5495                        index triple.
5496                        
5497    </p>
5498    <p>Possible Answers:
5499    </p>
5500    <p>
5501                            </p>
5502    <blockquote class="text">
5503    <p>"OK" -
5504                                    </p>
5505    <blockquote class="text">
5506    <p>usually
5507    </p>
5508    </blockquote>
5509                                
5510    
5511    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
5512                                    </p>
5513    <blockquote class="text">
5514    <p>when index out of bounds
5515    </p>
5516    </blockquote>
5517                                
5518    
5519    </blockquote><p>
5520                        
5521    </p>
5522    <p>Example:
5523    </p>
5524    <p>
5525                            </p>
5526    <blockquote class="text">
5527    <p>C: "UNMAP MIDI_INSTRUMENT 2 40 127"
5528    </p>
5529    <p>S: "OK"
5530    </p>
5531    </blockquote><p>
5532                        
5533    </p>
5534    <a name="GET MIDI_INSTRUMENT INFO"></a><br /><hr />
5535    <table summary="layout" cellpadding="0" cellspacing="2" class="bug" align="right"><tr><td class="bug"><a href="#toc" class="link2">&nbsp;TOC&nbsp;</a></td></tr></table>
5536    <a name="rfc.section.6.7.5"></a><h3>6.7.5.&nbsp;Get current settings of MIDI instrument map entry</h3>
5537    
5538    <p>The front-end can retrieve the current settings of a certain
5539                        instrument map entry by sending the following command:
5540    </p>
5541    <p>
5542                            </p>
5543    <blockquote class="text">
5544    <p>GET MIDI_INSTRUMENT INFO &lt;midi_bank_msb&gt; &lt;midi_bank_lsb&gt; &lt;midi_prog&gt;
5545    </p>
5546    </blockquote><p>
5547                        
5548    </p>
5549    <p>
5550                        Where &lt;midi_bank_msb&gt; is an integer value between 0..127
5551                        reflecting the MIDI bank MSB (coarse) value, &lt;midi_bank_lsb&gt;
5552                        an integer value between 0..127 reflecting the MIDI bank LSB
5553                        (fine) value and &lt;midi_prog&gt; an integer value between
5554                        0..127 reflecting the MIDI program value of the map entrie's key
5555                        index triple.
5556                        
5557    </p>
5558    <p>Possible Answers:
5559    </p>
5560    <p>
5561                            </p>
5562    <blockquote class="text">
5563    <p>LinuxSampler will answer by sending a &lt;CRLF&gt;
5564                                separated list. Each answer line begins with the
5565                                information category name followed by a colon and then
5566                                a space character &lt;SP&gt; and finally the info
5567                                character string to that info category. At the moment
5568                                the following categories are defined:
5569    </p>
5570    <p>"NAME" -
5571                                    </p>
5572    <blockquote class="text">
5573    <p>Name for this MIDI instrument map entry (if defined).
5574                                        This name shall be used by frontends for displaying a
5575                                        name for this mapped instrument. It can be set and
5576                                        changed with the
5577                                        <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>
5578                                        command and does not have to be unique.
5579    </p>
5580    </blockquote>
5581                                
5582    
5583    <p>"ENGINE_NAME" -
5584                                    </p>
5585    <blockquote class="text">
5586    <p>Name of the engine to be deployed for this
5587                                        instrument.
5588    </p>
5589    </blockquote>
5590                                
5591    
5592    <p>"INSTRUMENT_FILE" -
5593                                    </p>
5594    <blockquote class="text">
5595    <p>File name of the instrument.
5596    </p>
5597    </blockquote>
5598                                
5599    
5600    <p>"INSTRUMENT_NR" -
5601                                    </p>
5602    <blockquote class="text">
5603    <p>Index of the instrument within the file.
5604    </p>
5605    </blockquote>
5606                                
5607    
5608    <p>"INSTRUMENT_NAME" -
5609                                    </p>
5610    <blockquote class="text">
5611    <p>Name of the loaded instrument as reflected by its file.
5612                                        In contrast to the "NAME" field, the "INSTRUMENT_NAME" field
5613                                        cannot be changed.
5614    </p>
5615    </blockquote>
5616                                
5617    
5618    <p>"LOAD_MODE" -
5619                                    </p>
5620    <blockquote class="text">
5621    <p>Life time of instrument
5622                                        (see <a class="info" href="#MAP MIDI_INSTRUMENT">"MAP MIDI_INSTRUMENT"<span> (</span><span class="info">Create or replace a MIDI instrument map entry</span><span>)</span></a> for details about this setting).
5623    </p>
5624    </blockquote>
5625                                
5626    
5627    <p>"VOLUME" -
5628                                    </p>
5629    <blockquote class="text">
5630    <p>master volume of the instrument as optionally
5631                                        dotted number (where a value < 1.0 means attenuation
5632                                        and a value > 1.0 means amplification)
5633    </p>
5634    </blockquote>
5635                                
5636    
5637    <p>The mentioned fields above don't have to be in particular order.
5638    </p>
5639    </blockquote><p>
5640                        
5641    </p>
5642    <p>Example:
5643    </p>
5644    <p>
5645                            </p>
5646    <blockquote class="text">
5647    <p>C: "GET MIDI_INSTRUMENT INFO 3 45 120"
5648    </p>
5649    <p>S: "NAME: Drums for Foo Song"
5650    </p>
5651    <p>&nbsp;&nbsp;&nbsp;"ENGINE_NAME: GigEngine"
5652    </p>
5653    <p>&nbsp;&nbsp;&nbsp;"INSTRUMENT_FILE: /usr/share/joesdrumkit.gig"
5654    </p>
5655    <p>&nbsp;&nbsp;&nbsp;"INSTRUMENT_NR: 0"
5656    </p>
5657    <p>&nbsp;&nbsp;&nbsp;"INSTRUMENT_NAME: Joe's Drumkit"
5658    </p>
5659    <p>&nbsp;&nbsp;&nbsp;"LOAD_MODE: PERSISTENT"
5660    </p>
5661    <p>&nbsp;&nbsp;&nbsp;"VOLUME: 1.0"
5662    </p>
5663    <p>&nbsp;&nbsp;&nbsp;"."
5664    </p>
5665    </blockquote><p>
5666                        
5667    </p>
5668    <a name="CLEAR MIDI_INSTRUMENTS"></a><br /><hr />
5669    <table summary="layout" cellpadding="0" cellspacing="2" class="bug" align="right"><tr><td class="bug"><a href="#toc" class="link2">&nbsp;TOC&nbsp;</a></td></tr></table>
5670    <a name="rfc.section.6.7.6"></a><h3>6.7.6.&nbsp;Clear MIDI instrument map</h3>
5671    
5672    <p>The front-end can clear the whole MIDI instrument map, that
5673                        is delete all entries by sending the following command:
5674    </p>
5675    <p>
5676                            </p>
5677    <blockquote class="text">
5678    <p>CLEAR MIDI_INSTRUMENTS
5679    </p>
5680    </blockquote><p>
5681                        
5682    </p>
5683    <p>Possible Answers:
5684    </p>
5685    <p>
5686                            </p>
5687    <blockquote class="text">
5688    <p>"OK" -
5689                                    </p>
5690    <blockquote class="text">
5691    <p>always
5692    </p>
5693    </blockquote>
5694                                
5695    
5696    </blockquote><p>
5697                        
5698    </p>
5699    <p>Example:
5700    </p>
5701    <p>
5702                           </p>
5703    <blockquote class="text">
5704    <p>C: "CLEAR MIDI_INSTRUMENTS"
5705    </p>
5706    <p>S: "OK"
5707    </p>
5708    </blockquote><p>
5709                        
5710    </p>
5711  <a name="command_syntax"></a><br /><hr />  <a name="command_syntax"></a><br /><hr />
5712  <table summary="layout" cellpadding="0" cellspacing="2" class="bug" align="right"><tr><td class="bug"><a href="#toc" class="link2">&nbsp;TOC&nbsp;</a></td></tr></table>  <table summary="layout" cellpadding="0" cellspacing="2" class="bug" align="right"><tr><td class="bug"><a href="#toc" class="link2">&nbsp;TOC&nbsp;</a></td></tr></table>
5713  <a name="rfc.section.7"></a><h3>7.&nbsp;Command Syntax</h3>  <a name="rfc.section.7"></a><h3>7.&nbsp;Command Syntax</h3>
# Line 5204  Intellectual Property and Copyright Stat Line 5774  Intellectual Property and Copyright Stat
5774  <p>ADD SP CHANNEL  <p>ADD SP CHANNEL
5775                                    
5776  </p>  </p>
5777    <p>/ MAP SP map_instruction
5778                    
5779    </p>
5780    <p>/ UNMAP SP unmap_instruction
5781                    
5782    </p>
5783  <p>/ GET SP get_instruction  <p>/ GET SP get_instruction
5784                                    
5785  </p>  </p>
# Line 5219  Intellectual Property and Copyright Stat Line 5795  Intellectual Property and Copyright Stat
5795  <p>/ LOAD SP load_instruction  <p>/ LOAD SP load_instruction
5796                                    
5797  </p>  </p>
5798  <p>/ REMOVE SP CHANNEL SP sampler_channel  <p>/ REMOVE SP remove_instruction
5799    
5800                                    
5801  </p>  </p>
5802  <p>/ SET SP set_instruction  <p>/ SET SP set_instruction
# Line 5234  Intellectual Property and Copyright Stat Line 5811  Intellectual Property and Copyright Stat
5811  <p>/ SELECT SP text  <p>/ SELECT SP text
5812                                    
5813  </p>  </p>
5814  <p>/ RESET SP CHANNEL SP sampler_channel  <p>/ RESET SP reset_instruction
5815                    
5816    </p>
5817    <p>/ CLEAR SP clear_instruction
5818                                    
5819  </p>  </p>
5820  <p>/ RESET  <p>/ RESET
# Line 5300  Intellectual Property and Copyright Stat Line 5880  Intellectual Property and Copyright Stat
5880  </blockquote><p>  </blockquote><p>
5881    
5882  </p>  </p>
5883    <p>map_instruction =
5884            </p>
5885    <blockquote class="text">
5886    <p>MIDI_INSTRUMENT SP midi_bank_msb SP midi_bank_lsb SP midi_prog SP engine_name SP filename SP instrument_index SP volume_value
5887                    
5888    </p>
5889    <p>/ MIDI_INSTRUMENT SP midi_bank_msb SP midi_bank_lsb SP midi_prog SP engine_name SP filename SP instrument_index SP volume_value SP instr_load_mode
5890                    
5891    </p>
5892    <p>/ MIDI_INSTRUMENT SP midi_bank_msb SP midi_bank_lsb SP midi_prog SP engine_name SP filename SP instrument_index SP volume_value SP entry_name
5893                    
5894    </p>
5895    <p>/ MIDI_INSTRUMENT SP midi_bank_msb SP midi_bank_lsb SP midi_prog SP engine_name SP filename SP instrument_index SP volume_value SP instr_load_mode SP entry_name
5896                    
5897    </p>
5898    </blockquote><p>
5899    
5900    </p>
5901    <p>unmap_instruction =
5902            </p>
5903    <blockquote class="text">
5904    <p>MIDI_INSTRUMENT SP midi_bank_msb SP midi_bank_lsb SP midi_prog
5905                    
5906    </p>
5907    </blockquote><p>
5908    
5909    </p>
5910    <p>remove_instruction =
5911            </p>
5912    <blockquote class="text">
5913    <p>CHANNEL SP sampler_channel
5914                    
5915    </p>
5916    </blockquote><p>
5917    
5918    </p>
5919  <p>get_instruction =  <p>get_instruction =
5920          </p>          </p>
5921  <blockquote class="text">  <blockquote class="text">
# Line 5381  Intellectual Property and Copyright Stat Line 5997  Intellectual Property and Copyright Stat
5997  <p>/ TOTAL_VOICE_COUNT_MAX  <p>/ TOTAL_VOICE_COUNT_MAX
5998                                    
5999  </p>  </p>
6000    <p>/ MIDI_INSTRUMENTS
6001                    
6002    </p>
6003    <p>/ MIDI_INSTRUMENT SP INFO SP midi_bank_msb SP midi_bank_lsb SP midi_prog
6004                    
6005    </p>
6006  </blockquote><p>  </blockquote><p>
6007    
6008  </p>  </p>
# Line 5426  Intellectual Property and Copyright Stat Line 6048  Intellectual Property and Copyright Stat
6048  </blockquote><p>  </blockquote><p>
6049    
6050  </p>  </p>
6051    <p>reset_instruction =
6052            </p>
6053    <blockquote class="text">
6054    <p>CHANNEL SP sampler_channel
6055                    
6056    </p>
6057    </blockquote><p>
6058    
6059    </p>
6060    <p>clear_instruction =
6061            </p>
6062    <blockquote class="text">
6063    <p>MIDI_INSTRUMENTS
6064                    
6065    </p>
6066    </blockquote><p>
6067    
6068    </p>
6069  <p>destroy_instruction =  <p>destroy_instruction =
6070          </p>          </p>
6071  <blockquote class="text">  <blockquote class="text">
# Line 5534  Intellectual Property and Copyright Stat Line 6174  Intellectual Property and Copyright Stat
6174  <p>/ AVAILABLE_AUDIO_OUTPUT_DRIVERS  <p>/ AVAILABLE_AUDIO_OUTPUT_DRIVERS
6175                                    
6176  </p>  </p>
6177    <p>/ MIDI_INSTRUMENTS
6178                    
6179    </p>
6180  </blockquote><p>  </blockquote><p>
6181    
6182  </p>  </p>
# Line 5558  Intellectual Property and Copyright Stat Line 6201  Intellectual Property and Copyright Stat
6201  </blockquote><p>  </blockquote><p>
6202    
6203  </p>  </p>
6204    <p>instr_load_mode =
6205            </p>
6206    <blockquote class="text">
6207    <p>ON_DEMAND
6208                    
6209    </p>
6210    <p>/ ON_DEMAND_HOLD
6211                    
6212    </p>
6213    <p>/ PERSISTENT
6214                    
6215    </p>
6216    </blockquote><p>
6217    
6218    </p>
6219  <p>device_index =  <p>device_index =
6220          </p>          </p>
6221  <blockquote class="text">  <blockquote class="text">
# Line 5615  Intellectual Property and Copyright Stat Line 6273  Intellectual Property and Copyright Stat
6273  </blockquote><p>  </blockquote><p>
6274    
6275  </p>  </p>
6276    <p>midi_bank_msb =
6277            </p>
6278    <blockquote class="text">
6279    <p>number
6280                    
6281    </p>
6282    </blockquote><p>
6283    
6284    </p>
6285    <p>midi_bank_lsb =
6286            </p>
6287    <blockquote class="text">
6288    <p>number
6289                    
6290    </p>
6291    </blockquote><p>
6292    
6293    </p>
6294    <p>midi_prog =
6295            </p>
6296    <blockquote class="text">
6297    <p>number
6298                    
6299    </p>
6300    </blockquote><p>
6301    
6302    </p>
6303  <p>volume_value =  <p>volume_value =
6304          </p>          </p>
6305  <blockquote class="text">  <blockquote class="text">
# Line 5663  Intellectual Property and Copyright Stat Line 6348  Intellectual Property and Copyright Stat
6348  </blockquote><p>  </blockquote><p>
6349    
6350  </p>  </p>
6351    <p>entry_name =
6352            </p>
6353    <blockquote class="text">
6354    <p>stringval
6355                    
6356    </p>
6357    </blockquote><p>
6358    
6359    </p>
6360  <p>param_val_list =  <p>param_val_list =
6361          </p>          </p>
6362  <blockquote class="text">  <blockquote class="text">
# Line 5904  Intellectual Property and Copyright Stat Line 6598  Intellectual Property and Copyright Stat
6598                  wants to send to the client. Client MAY display this data to the                  wants to send to the client. Client MAY display this data to the
6599                  user AS IS to facilitate debugging.                  user AS IS to facilitate debugging.
6600  </p>  </p>
6601  <a name="anchor14"></a><br /><hr />  <a name="anchor15"></a><br /><hr />
6602  <table summary="layout" cellpadding="0" cellspacing="2" class="bug" align="right"><tr><td class="bug"><a href="#toc" class="link2">&nbsp;TOC&nbsp;</a></td></tr></table>  <table summary="layout" cellpadding="0" cellspacing="2" class="bug" align="right"><tr><td class="bug"><a href="#toc" class="link2">&nbsp;TOC&nbsp;</a></td></tr></table>
6603  <a name="rfc.section.9"></a><h3>9.&nbsp;Security Considerations</h3>  <a name="rfc.section.9"></a><h3>9.&nbsp;Security Considerations</h3>
6604    
# Line 5913  Intellectual Property and Copyright Stat Line 6607  Intellectual Property and Copyright Stat
6607              connect, running LinuxSampler might be a security risk for the host              connect, running LinuxSampler might be a security risk for the host
6608              system the LinuxSampler instance is running on.              system the LinuxSampler instance is running on.
6609  </p>  </p>
6610  <a name="anchor15"></a><br /><hr />  <a name="anchor16"></a><br /><hr />
6611  <table summary="layout" cellpadding="0" cellspacing="2" class="bug" align="right"><tr><td class="bug"><a href="#toc" class="link2">&nbsp;TOC&nbsp;</a></td></tr></table>  <table summary="layout" cellpadding="0" cellspacing="2" class="bug" align="right"><tr><td class="bug"><a href="#toc" class="link2">&nbsp;TOC&nbsp;</a></td></tr></table>
6612  <a name="rfc.section.10"></a><h3>10.&nbsp;Acknowledgments</h3>  <a name="rfc.section.10"></a><h3>10.&nbsp;Acknowledgments</h3>
6613    

Legend:
Removed from v.940  
changed lines
  Added in v.945

  ViewVC Help
Powered by ViewVC