/[svn]/linuxsampler/trunk/Documentation/lscp.xml
ViewVC logotype

Diff of /linuxsampler/trunk/Documentation/lscp.xml

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

revision 944 by schoenebeck, Sun Nov 26 16:29:57 2006 UTC revision 973 by schoenebeck, Fri Dec 15 21:40:27 2006 UTC
# Line 11  Line 11 
11  <?rfc symrefs="yes" ?>  <?rfc symrefs="yes" ?>
12  <?rfc sortrefs="yes"?>  <?rfc sortrefs="yes"?>
13  <?rfc iprnotified="no" ?>  <?rfc iprnotified="no" ?>
 <?rfc strict="yes" ?>  
14    
15  <rfc category="std" ipr="full2026" docName="LSCP 1.2">  <!-- FIXME: next attribute should actually be "yes", temporarily disbled due
16         to an annoying "missing Normative/Informative References" error message -->
17    <?rfc strict="no" ?>
18    
19    <rfc category="std" ipr="full3978" docName="LSCP 1.2">
20      <front>      <front>
21          <title>LinuxSampler Control Protocol</title>          <title>LinuxSampler Control Protocol</title>
22          <author initials='C.S.' surname="Schoenebeck" fullname='C.          <author initials='C.S.' surname="Schoenebeck" fullname='C.
# Line 31  Schoenebeck'> Line 34  Schoenebeck'>
34                  <email>schoenebeck at software minus engineering dot org</email>                  <email>schoenebeck at software minus engineering dot org</email>
35              </address>              </address>
36          </author>          </author>
37          <date month="November" year="2006"/>          <date month="December" year="2006"/>
38          <workgroup>LinuxSampler Developers</workgroup>          <workgroup>LinuxSampler Developers</workgroup>
39          <keyword>LSCP</keyword>          <keyword>LSCP</keyword>
40          <abstract>          <abstract>
# Line 2571  Schoenebeck'> Line 2574  Schoenebeck'>
2574                                              the channel is a solo channel; "false" otherwise</t>                                              the channel is a solo channel; "false" otherwise</t>
2575                                          </list>                                          </list>
2576                                      </t>                                      </t>
2577                                        <t>MIDI_INSTRUMENT_MAP -
2578                                            <list>
2579                                                <t>Determines to which MIDI instrument map this sampler
2580                                                channel is assigned to. Read chapter
2581                                                <xref target="SET CHANNEL MIDI_INSTRUMENT_MAP">"SET CHANNEL MIDI_INSTRUMENT_MAP"</xref>
2582                                                for a list of possible values.</t>
2583                                            </list>
2584                                        </t>
2585                                  </list>                                  </list>
2586                              </t>                              </t>
2587                          </list>                          </list>
# Line 2593  Schoenebeck'> Line 2604  Schoenebeck'>
2604                              <t>&nbsp;&nbsp;&nbsp;"MIDI_INPUT_DEVICE: 0"</t>                              <t>&nbsp;&nbsp;&nbsp;"MIDI_INPUT_DEVICE: 0"</t>
2605                              <t>&nbsp;&nbsp;&nbsp;"MIDI_INPUT_PORT: 0"</t>                              <t>&nbsp;&nbsp;&nbsp;"MIDI_INPUT_PORT: 0"</t>
2606                              <t>&nbsp;&nbsp;&nbsp;"MIDI_INPUT_CHANNEL: 5"</t>                              <t>&nbsp;&nbsp;&nbsp;"MIDI_INPUT_CHANNEL: 5"</t>
2607                                <t>&nbsp;&nbsp;&nbsp;"VOLUME: 1.0"</t>
2608                                <t>&nbsp;&nbsp;&nbsp;"MUTE: false"</t>
2609                                <t>&nbsp;&nbsp;&nbsp;"SOLO: false"</t>
2610                                <t>&nbsp;&nbsp;&nbsp;"MIDI_INSTRUMENT_MAP: NONE"</t>
2611                              <t>&nbsp;&nbsp;&nbsp;"."</t>                              <t>&nbsp;&nbsp;&nbsp;"."</t>
2612                          </list>                          </list>
2613                      </t>                      </t>
# Line 2753  Schoenebeck'> Line 2768  Schoenebeck'>
2768                      </t>                      </t>
2769                  </section>                  </section>
2770    
2771                  <section title="Setting audio output type" anchor="SET CHANNEL AUDIO_OUTPUT_TYP">                  <section title="Setting audio output type" anchor="SET CHANNEL AUDIO_OUTPUT_TYPE">
2772                      <t>DEPRECATED: THIS COMMAND WILL DISAPPEAR SOON!</t>                      <t>DEPRECATED: THIS COMMAND WILL DISAPPEAR SOON!</t>
2773    
2774                      <t>The front-end can alter the audio output type on a specific sampler                      <t>The front-end can alter the audio output type on a specific sampler
# Line 3144  Schoenebeck'> Line 3159  Schoenebeck'>
3159                      </t>                      </t>
3160                  </section>                  </section>
3161    
3162                    <section title="Assigning a MIDI instrument map to a sampler channel" anchor="SET CHANNEL MIDI_INSTRUMENT_MAP">
3163                        <t>The front-end can assign a MIDI instrument map to a specific sampler channel
3164                        by sending the following command:</t>
3165                        <t>
3166                            <list>
3167                                <t>SET CHANNEL MIDI_INSTRUMENT_MAP &lt;sampler-channel&gt; &lt;map&gt;</t>
3168                            </list>
3169                        </t>
3170                        <t>Where &lt;sampler-channel&gt; is the respective sampler channel
3171                        number as returned by the <xref target="ADD CHANNEL">"ADD CHANNEL"</xref>
3172                        or <xref target="LIST CHANNELS">"LIST CHANNELS"</xref> command and
3173                        &lt;map&gt; can have the following possibilites:</t>
3174                        <t>
3175                            <list>
3176                                <t>"NONE" -
3177                                    <list>
3178                                        <t>This is the default setting. In this case
3179                                        the sampler channel is not assigned any MIDI
3180                                        instrument map and thus will ignore all MIDI
3181                                        program change messages.</t>
3182                                    </list>
3183                                </t>
3184                                <t>"DEFAULT" -
3185                                    <list>
3186                                        <t>The sampler channel will always use the
3187                                        default MIDI instrument map to handle MIDI
3188                                        program change messages.</t>
3189                                    </list>
3190                                </t>
3191                                <t>numeric ID -
3192                                    <list>
3193                                        <t>You can assign a specific MIDI instrument map
3194                                        by replacing &lt;map&gt; with the respective numeric
3195                                        ID of the MIDI instrument map as returned by the
3196                                        <xref target="LIST MIDI_INSTRUMENT_MAPS">"LIST MIDI_INSTRUMENT_MAPS"</xref>
3197                                        command. Once that map will be deleted, the sampler
3198                                        channel would fall back to "NONE".</t>
3199                                    </list>
3200                                </t>
3201                            </list>
3202                        </t>
3203                        <t>Read chapter <xref target="MIDI Instrument Mapping">"MIDI Instrument Mapping"</xref>
3204                        for details regarding MIDI instrument mapping.</t>
3205    
3206                        <t>Possible Answers:</t>
3207                        <t>
3208                            <list>
3209                                <t>"OK" -
3210                                    <list>
3211                                        <t>on success</t>
3212                                    </list>
3213                                </t>
3214                                <t>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
3215                                    <list>
3216                                        <t>in case it failed, providing an appropriate error code and error message</t>
3217                                    </list>
3218                                </t>
3219                            </list>
3220                        </t>
3221    
3222                        <t>Examples:</t>
3223                        <t>
3224                            <list>
3225                                <t></t>
3226                            </list>
3227                        </t>
3228                    </section>
3229    
3230                  <section title="Resetting a sampler channel" anchor="RESET CHANNEL">                  <section title="Resetting a sampler channel" anchor="RESET CHANNEL">
3231                      <t>The front-end can reset a particular sampler channel by sending the following command:</t>                      <t>The front-end can reset a particular sampler channel by sending the following command:</t>
3232                      <t>                      <t>
# Line 3436  Schoenebeck'> Line 3519  Schoenebeck'>
3519              </section>              </section>
3520    
3521    
3522              <section title="MIDI Instrument Mapping">              <section title="MIDI Instrument Mapping" anchor="MIDI Instrument Mapping">
3523                  <t>The MIDI protocol provides a way to switch between instruments                  <t>The MIDI protocol provides a way to switch between instruments
3524                  by sending so called MIDI bank select and MIDI program change                  by sending so called MIDI bank select and MIDI program change
3525                  messages which are essentially just numbers. The following commands                  messages which are essentially just numbers. The following commands
3526                  allow to actually map arbitrary MIDI bank select / program change                  allow to actually map arbitrary MIDI bank select / program change
3527                  numbers with real instruments.</t>                  numbers with real instruments.</t>
3528                  <t>By default, that is when the sampler is launched, this map will                  <t>The sampler allows to manage an arbitrary amount of MIDI
3529                  be empty, thus the sampler will simply ignore all program change                  instrument maps which define which instrument to load on
3530                  messages. The front-end has to explicitly add entries to the map                  which MIDI program change message.</t>
3531                  so the sampler knows how to react on a given program change                  <t>By default, that is when the sampler is launched, there is no
3532                  message, that is by switching to the respectively defined engine                  map, thus the sampler will simply ignore all program change
3533                  type and loading the respective instrument.</t>                  messages. The front-end has to explicitly create at least one
3534                    map, add entries to the map and tell the respective sampler
3535                    channel(s) which MIDI instrument map to use, so the sampler
3536                    knows how to react on a given program change message on the
3537                    respective sampler channel, that is by switching to the
3538                    respectively defined engine type and loading the respective
3539                    instrument. See command
3540                    <xref target="SET CHANNEL MIDI_INSTRUMENT_MAP">"SET CHANNEL MIDI_INSTRUMENT_MAP"</xref>
3541                    for how to assign a MIDI instrument map to a sampler channel.</t>
3542                  <t>Also note per MIDI specification a bank select message does not                  <t>Also note per MIDI specification a bank select message does not
3543                  cause to switch to another instrument. Instead when receiving a                  cause to switch to another instrument. Instead when receiving a
3544                  bank select message the bank value will be stored and a subsequent                  bank select message the bank value will be stored and a subsequent
# Line 3455  Schoenebeck'> Line 3546  Schoenebeck'>
3546                  cause the sampler to switch to the respective instrument as                  cause the sampler to switch to the respective instrument as
3547                  reflected by the current MIDI instrument map.</t>                  reflected by the current MIDI instrument map.</t>
3548    
3549                    <section title="Create a new MIDI instrument map" anchor="ADD MIDI_INSTRUMENT MAP">
3550                        <t>The front-end can add a new MIDI instrument map by sending
3551                        the following command:</t>
3552                        <t>
3553                            <list>
3554                                <t>ADD MIDI_INSTRUMENT_MAP [&lt;name&gt;]</t>
3555                            </list>
3556                        </t>
3557                        <t>Where &lt;name&gt; is an optional argument allowing to
3558                        assign a custom name to the new map. MIDI instrument Map
3559                        names do not have to be unique.</t>
3560    
3561                        <t>Possible Answers:</t>
3562                        <t>
3563                            <list>
3564                                <t>"OK[&lt;map&gt;]" -
3565                                    <list>
3566                                        <t>in case a new MIDI instrument map could
3567                                        be added, where &lt;map&gt; reflects the
3568                                        unique ID of the newly created MIDI
3569                                        instrument map</t>
3570                                    </list>
3571                                </t>
3572                                <t>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
3573                                    <list>
3574                                        <t>when a new map could not be created, which
3575                                        might never occur in practice</t>
3576                                    </list>
3577                                </t>
3578                            </list>
3579                        </t>
3580    
3581                        <t>Examples:</t>
3582                        <t>
3583                            <list>
3584                                <t>C: "ADD MIDI_INSTRUMENT_MAP 'Standard Map'"</t>
3585                                <t>S: "OK[0]"</t>
3586                            </list>
3587                        </t>
3588                        <t>
3589                            <list>
3590                                <t>C: "ADD MIDI_INSTRUMENT_MAP 'Standard Drumkit'"</t>
3591                                <t>S: "OK[1]"</t>
3592                            </list>
3593                        </t>
3594                        <t>
3595                            <list>
3596                                <t>C: "ADD MIDI_INSTRUMENT_MAP"</t>
3597                                <t>S: "OK[5]"</t>
3598                            </list>
3599                        </t>
3600                    </section>
3601    
3602                    <section title="Delete one particular or all MIDI instrument maps" anchor="REMOVE MIDI_INSTRUMENT_MAP">
3603                        <t>The front-end can delete a particular MIDI instrument map
3604                        by sending the following command:</t>
3605                        <t>
3606                            <list>
3607                                <t>REMOVE MIDI_INSTRUMENT_MAP &lt;map&gt;</t>
3608                            </list>
3609                        </t>
3610                        <t>Where &lt;map&gt; reflects the unique ID of the map to delete
3611                        as returned by the <xref target="LIST MIDI_INSTRUMENT_MAPS">"LIST MIDI_INSTRUMENT_MAPS"</xref>
3612                        command.</t>
3613                        <t>The front-end can delete all MIDI instrument maps by
3614                        sending the following command:</t>
3615                        <t>
3616                            <list>
3617                                <t>REMOVE MIDI_INSTRUMENT_MAP ALL</t>
3618                            </list>
3619                        </t>
3620    
3621                        <t>Possible Answers:</t>
3622                        <t>
3623                            <list>
3624                                <t>"OK" -
3625                                    <list>
3626                                        <t>in case the map(s) could be deleted</t>
3627                                    </list>
3628                                </t>
3629                                <t>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
3630                                    <list>
3631                                        <t>when the given map does not exist</t>
3632                                    </list>
3633                                </t>
3634                            </list>
3635                        </t>
3636    
3637                        <t>Examples:</t>
3638                        <t>
3639                            <list>
3640                                <t>C: "REMOVE MIDI_INSTRUMENT_MAP 0"</t>
3641                                <t>S: "OK"</t>
3642                            </list>
3643                        </t>
3644                        <t>
3645                            <list>
3646                                <t>C: "REMOVE MIDI_INSTRUMENT_MAP ALL"</t>
3647                                <t>S: "OK"</t>
3648                            </list>
3649                        </t>
3650                    </section>
3651    
3652                    <section title="Get amount of existing MIDI instrument maps" anchor="GET MIDI_INSTRUMENT_MAPS">
3653                        <t>The front-end can retrieve the current amount of MIDI
3654                        instrument maps by sending the following command:</t>
3655                        <t>
3656                            <list>
3657                                <t>GET MIDI_INSTRUMENT_MAPS</t>
3658                            </list>
3659                        </t>
3660    
3661                        <t>Possible Answers:</t>
3662                        <t>
3663                            <list>
3664                                <t>The sampler will answer by returning the current
3665                                number of MIDI instrument maps.</t>
3666                            </list>
3667                        </t>
3668    
3669                        <t>Example:</t>
3670                        <t>
3671                            <list>
3672                                <t>C: "GET MIDI_INSTRUMENT_MAPS"</t>
3673                                <t>S: "2"</t>
3674                            </list>
3675                        </t>
3676                    </section>
3677    
3678                    <section title="Getting all created MIDI instrument maps" anchor="LIST MIDI_INSTRUMENT_MAPS">
3679                        <t>The number of MIDI instrument maps can change on runtime. To get the
3680                        current list of MIDI instrument maps, the front-end can send the
3681                        following command:</t>
3682                        <t>
3683                            <list>
3684                                <t>LIST MIDI_INSTRUMENT_MAPS</t>
3685                            </list>
3686                        </t>
3687                        <t>Possible Answers:</t>
3688                        <t>
3689                            <list>
3690                                <t>The sampler will answer by returning a comma separated list
3691                                with all MIDI instrument maps' numerical IDs.</t>
3692                            </list>
3693                        </t>
3694                        <t>Example:</t>
3695                        <t>
3696                            <list>
3697                                <t>C: "LIST MIDI_INSTRUMENT_MAPS"</t>
3698                                <t>S: "0,1,5,12"</t>
3699                            </list>
3700                        </t>
3701                    </section>
3702    
3703                    <section title="Getting MIDI instrument map information" anchor="GET MIDI_INSTRUMENT_MAP INFO">
3704                        <t>The front-end can ask for the current settings of a MIDI
3705                        instrument map by sending the following command:</t>
3706                        <t>
3707                            <list>
3708                                <t>GET MIDI_INSTRUMENT_MAP INFO &lt;map&gt;</t>
3709                            </list>
3710                        </t>
3711                        <t>Where &lt;map&gt; is the numerical ID of the map the
3712                        front-end is interested in as returned by the
3713                        <xref target="LIST MIDI_INSTRUMENT_MAPS">"LIST MIDI_INSTRUMENT_MAPS"</xref>
3714                        command.</t>
3715    
3716                        <t>Possible Answers:</t>
3717                        <t>
3718                            <list>
3719                                <t>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
3720                                Each answer line begins with the settings category name
3721                                followed by a colon and then a space character &lt;SP&gt; and finally
3722                                the info character string to that setting category. At the
3723                                moment the following categories are defined:</t>
3724    
3725                                <t>
3726                                    <list>
3727                                        <t>NAME -
3728                                            <list>
3729                                                <t>custom name of the given map,
3730                                                which does not have to be unique</t>
3731                                            </list>
3732                                        </t>
3733                                    </list>
3734                                </t>
3735                            </list>
3736                        </t>
3737                        <t>The mentioned fields above don't have to be in particular order.</t>
3738    
3739                        <t>Example:</t>
3740                        <t>
3741                            <list>
3742                                <t>C: "GET MIDI_INSTRUMENT_MAP INFO 0"</t>
3743                                <t>S: "NAME: Standard Map"</t>
3744                                <t>&nbsp;&nbsp;&nbsp;"."</t>
3745                            </list>
3746                        </t>
3747                    </section>
3748    
3749                    <section title="Renaming a MIDI instrument map" anchor="SET MIDI_INSTRUMENT_MAP NAME">
3750                        <t>The front-end can alter the custom name of a MIDI
3751                        instrument map by sending the following command:</t>
3752                        <t>
3753                            <list>
3754                                <t>SET MIDI_INSTRUMENT_MAP NAME &lt;map&gt; &lt;name&gt;</t>
3755                            </list>
3756                        </t>
3757                        <t>Where &lt;map&gt; is the numerical ID of the map and
3758                        &lt;name&gt; the new custom name of the map, which does not
3759                        have to be unique.</t>
3760    
3761                        <t>Possible Answers:</t>
3762                        <t>
3763                            <list>
3764                                <t>"OK" -
3765                                    <list>
3766                                        <t>on success</t>
3767                                    </list>
3768                                </t>
3769                                <t>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
3770                                    <list>
3771                                        <t>in case the given map does not exist</t>
3772                                    </list>
3773                                </t>
3774                            </list>
3775                        </t>
3776    
3777                        <t>Example:</t>
3778                        <t>
3779                            <list>
3780                                <t>C: "SET MIDI_INSTRUMENT_MAP NAME 0 'Foo instruments'"</t>
3781                                <t>S: "OK"</t>
3782                            </list>
3783                        </t>
3784                    </section>
3785    
3786                  <section title="Create or replace a MIDI instrument map entry" anchor="MAP MIDI_INSTRUMENT">                  <section title="Create or replace a MIDI instrument map entry" anchor="MAP MIDI_INSTRUMENT">
3787                      <t>The front-end can create a new or replace an existing entry                      <t>The front-end can create a new or replace an existing entry
3788                      in the sampler's MIDI instrument map by sending the following                      in a sampler's MIDI instrument map by sending the following
3789                      command:</t>                      command:</t>
3790                      <t>                      <t>
3791                          <list>                          <list>
3792                              <t>MAP MIDI_INSTRUMENT &lt;midi_bank_msb&gt;                              <t>MAP MIDI_INSTRUMENT &lt;map&gt;
3793                              &lt;midi_bank_lsb&gt; &lt;midi_prog&gt; &lt;engine_name&gt;                              &lt;midi_bank&gt; &lt;midi_prog&gt; &lt;engine_name&gt;
3794                              &lt;filename&gt; &lt;instrument_index&gt; &lt;volume_value&gt;                              &lt;filename&gt; &lt;instrument_index&gt; &lt;volume_value&gt;
3795                              [&lt;instr_load_mode&gt;] [&lt;name&gt;]</t>                              [&lt;instr_load_mode&gt;] [&lt;name&gt;]</t>
3796                          </list>                          </list>
3797                      </t>                      </t>
3798                      <t>Where &lt;midi_bank_msb&gt; is an integer value between                      <t>Where &lt;map&gt; is the numeric ID of the map to alter,
3799                      0..127 reflecting the MIDI bank select MSB (coarse) index,                      &lt;midi_bank&gt; is an integer value between
3800                      &lt;midi_bank_lsb&gt; an integer value between 0..127 reflecting                      0..16383 reflecting the MIDI bank select index,
3801                      the MIDI bank select LSB (fine) index, &lt;midi_prog&gt; an                      &lt;midi_prog&gt; an
3802                      integer value between 0..127 reflecting the MIDI program change                      integer value between 0..127 reflecting the MIDI program change
3803                      index, &lt;engine_name&gt; a sampler engine name as returned by                      index, &lt;engine_name&gt; a sampler engine name as returned by
3804                      the <xref target="LIST AVAILABLE_ENGINES">"LIST AVAILABLE_ENGINES"</xref>                      the <xref target="LIST AVAILABLE_ENGINES">"LIST AVAILABLE_ENGINES"</xref>
3805                      command (not encapsulated into apostrophes), &lt;filename&gt; the name                      command (not encapsulated into apostrophes), &lt;filename&gt; the name
3806                      of the instrument's file to be deployed (encapsulated into apostrophes), &lt;instrument_index&gt; the index (integer value) of the instrument                      of the instrument's file to be deployed (encapsulated into apostrophes),
3807                        &lt;instrument_index&gt; the index (integer value) of the instrument
3808                      within the given file, &lt;volume_value&gt; reflects the master                      within the given file, &lt;volume_value&gt; reflects the master
3809                      volume of the instrument as optionally dotted number (where a                      volume of the instrument as optionally dotted number (where a
3810                      value < 1.0 means attenuation and a value > 1.0 means                      value < 1.0 means attenuation and a value > 1.0 means
# Line 3582  Schoenebeck'> Line 3911  Schoenebeck'>
3911                              </t>                              </t>
3912                              <t>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -                              <t>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
3913                                  <list>                                  <list>
3914                                      <t>when the given engine does not exist or a value                                      <t>when the given map or engine does not exist or a value
3915                                      is out of range</t>                                      is out of range</t>
3916                                  </list>                                  </list>
3917                              </t>                              </t>
# Line 3592  Schoenebeck'> Line 3921  Schoenebeck'>
3921                      <t>Examples:</t>                      <t>Examples:</t>
3922                      <t>                      <t>
3923                          <list>                          <list>
3924                              <t>C: "MAP MIDI_INSTRUMENT 3 0 0 gig '/usr/share/Steinway D.gig' 0 0.8 PERSISTENT"</t>                              <t>C: "MAP MIDI_INSTRUMENT 0 3 0 gig '/usr/share/Steinway D.gig' 0 0.8 PERSISTENT"</t>
3925                              <t>S: "OK"</t>                              <t>S: "OK"</t>
3926                          </list>                          </list>
3927                      </t>                      </t>
3928                      <t>                      <t>
3929                          <list>                          <list>
3930                              <t>C: "MAP MIDI_INSTRUMENT 127 4 50 gig '/home/john/foostrings.gig' 7 1.0"</t>                              <t>C: "MAP MIDI_INSTRUMENT 0 4 50 gig '/home/john/foostrings.gig' 7 1.0"</t>
3931                              <t>S: "OK"</t>                              <t>S: "OK"</t>
3932                          </list>                          </list>
3933                      </t>                      </t>
# Line 3606  Schoenebeck'> Line 3935  Schoenebeck'>
3935                          <list>                          <list>
3936                              <t>C: "MAP MIDI_INSTRUMENT 0 0 0 gig '/usr/share/piano.gig' 0 1.0 'Normal Piano'"</t>                              <t>C: "MAP MIDI_INSTRUMENT 0 0 0 gig '/usr/share/piano.gig' 0 1.0 'Normal Piano'"</t>
3937                              <t>S: "OK"</t>                              <t>S: "OK"</t>
3938                              <t>C: "MAP MIDI_INSTRUMENT 1 0 0 gig '/usr/share/piano.gig' 0 0.25 'Silent Piano'"</t>                              <t>C: "MAP MIDI_INSTRUMENT 0 1 0 gig '/usr/share/piano.gig' 0 0.25 'Silent Piano'"</t>
3939                              <t>S: "OK"</t>                              <t>S: "OK"</t>
3940                          </list>                          </list>
3941                      </t>                      </t>
3942                      <t>                      <t>
3943                          <list>                          <list>
3944                              <t>C: "MAP MIDI_INSTRUMENT 99 8 120 gig '/home/joe/foodrums.gig' 0 1.0 PERSISTENT 'Foo Drumkit'"</t>                              <t>C: "MAP MIDI_INSTRUMENT 1 8 120 gig '/home/joe/foodrums.gig' 0 1.0 PERSISTENT 'Foo Drumkit'"</t>
3945                              <t>S: "OK"</t>                              <t>S: "OK"</t>
3946                          </list>                          </list>
3947                      </t>                      </t>
3948                  </section>                  </section>
3949    
3950                  <section title="Getting ammount of MIDI instrument map entries" anchor="GET MIDI_INSTRUMENTS">                  <section title="Getting ammount of MIDI instrument map entries" anchor="GET MIDI_INSTRUMENTS">
3951                      <t>The front-end can query the amount of currently existing MIDI                      <t>The front-end can query the amount of currently existing
3952                      instrument map entries by sending the following                      entries in a MIDI instrument map by sending the following
3953                      command:</t>                      command:</t>
3954                      <t>                      <t>
3955                          <list>                          <list>
3956                              <t>GET MIDI_INSTRUMENTS</t>                              <t>GET MIDI_INSTRUMENTS &lt;map&gt;</t>
3957                            </list>
3958                        </t>
3959                        <t>The front-end can query the amount of currently existing
3960                        entries in all MIDI instrument maps by sending the following
3961                        command:</t>
3962                        <t>
3963                            <list>
3964                                <t>GET MIDI_INSTRUMENTS ALL</t>
3965                          </list>                          </list>
3966                      </t>                      </t>
3967                      <t>Possible Answers:</t>                      <t>Possible Answers:</t>
3968                      <t>                      <t>
3969                          <list>                          <list>
3970                              <t>LinuxSampler will answer by sending the current number of                              <t>The sampler will answer by sending the current number of
3971                              entries in the sampler's MIDI instrument map.</t>                              entries in the MIDI instrument map(s).</t>
3972                          </list>                          </list>
3973                      </t>                      </t>
3974    
3975                      <t>Example:</t>                      <t>Example:</t>
3976                      <t>                      <t>
3977                          <list>                          <list>
3978                              <t>C: "GET MIDI_INSTRUMENTS"</t>                              <t>C: "GET MIDI_INSTRUMENTS 0"</t>
3979                              <t>S: "634"</t>                              <t>S: "234"</t>
3980                            </list>
3981                        </t>
3982                        <t>
3983                            <list>
3984                                <t>C: "GET MIDI_INSTRUMENTS ALL"</t>
3985                                <t>S: "954"</t>
3986                          </list>                          </list>
3987                      </t>                      </t>
3988                  </section>                  </section>
3989    
3990                  <section title="Getting indeces of all MIDI instrument map entries" anchor="LIST MIDI_INSTRUMENTS">                  <section title="Getting indeces of all entries of a MIDI instrument map" anchor="LIST MIDI_INSTRUMENTS">
3991                      <t>The front-end can query a list of all currently existing MIDI                      <t>The front-end can query a list of all currently existing
3992                      instrument map entries by sending the following command:</t>                      entries in a certain MIDI instrument map by sending the following
3993                        command:</t>
3994                      <t>                      <t>
3995                          <list>                          <list>
3996                              <t>LIST MIDI_INSTRUMENTS</t>                              <t>LIST MIDI_INSTRUMENTS &lt;map&gt;</t>
3997                          </list>                          </list>
3998                      </t>                      </t>
3999                        <t>Where &lt;map&gt; is the numeric ID of the MIDI instrument map.</t>
4000                        <t>The front-end can query a list of all currently existing
4001                        entries of all MIDI instrument maps by sending the following
4002                        command:</t>
4003                        <t>
4004                            <list>
4005                                <t>LIST MIDI_INSTRUMENTS ALL</t>
4006                            </list>
4007                        </t>
4008    
4009                      <t>Possible Answers:</t>                      <t>Possible Answers:</t>
4010                      <t>                      <t>
4011                          <list>                          <list>
4012                              <t>LinuxSampler will answer by sending a comma separated                              <t>The sampler will answer by sending a comma separated
4013                              list of MIDI bank MSB (coarse) - MIDI bank LSB (fine) -                              list of map ID - MIDI bank - MIDI program triples, where
4014                              MIDI program triples, where each triple is encapsulated                              each triple is encapsulated into curly braces. The
4015                              into curly braces. The list is returned in one single                              list is returned in one single line. Each triple
4016                              line. Each triple just reflects the key of the respective                              just reflects the key of the respective map entry,
4017                              map entry, thus subsequent                              thus subsequent
4018                              <xref target="GET MIDI_INSTRUMENT INFO">"GET MIDI_INSTRUMENT INFO"</xref>                              <xref target="GET MIDI_INSTRUMENT INFO">"GET MIDI_INSTRUMENT INFO"</xref>
4019                              command(s) are necessary to retrieve detailed informations                              command(s) are necessary to retrieve detailed informations
4020                              about each entry.</t>                              about each entry.</t>
# Line 3670  Schoenebeck'> Line 4024  Schoenebeck'>
4024                      <t>Example:</t>                      <t>Example:</t>
4025                      <t>                      <t>
4026                          <list>                          <list>
4027                              <t>C: "LIST MIDI_INSTRUMENTS"</t>                              <t>C: "LIST MIDI_INSTRUMENTS 0"</t>
4028                              <t>S: "{0,0,0},{0,0,1},{120,0,3},{120,0,4},{23,127,127}"</t>                              <t>S: "{0,0,0},{0,0,1},{0,0,3},{0,1,4},{1,127,127}"</t>
4029                          </list>                          </list>
4030                      </t>                      </t>
4031                  </section>                  </section>
4032    
4033                  <section title="Remove an entry from the MIDI instrument map" anchor="UNMAP MIDI_INSTRUMENT">                  <section title="Remove an entry from the MIDI instrument map" anchor="UNMAP MIDI_INSTRUMENT">
4034                      <t>The front-end can delete an entry from the MIDI instrument                      <t>The front-end can delete an entry from a MIDI instrument
4035                      map by sending the following command:</t>                      map by sending the following command:</t>
4036                      <t>                      <t>
4037                          <list>                          <list>
4038                              <t>UNMAP MIDI_INSTRUMENT &lt;midi_bank_msb&gt; &lt;midi_bank_lsb&gt; &lt;midi_prog&gt;</t>                              <t>UNMAP MIDI_INSTRUMENT &lt;map&gt; &lt;midi_bank&gt; &lt;midi_prog&gt;</t>
4039                          </list>                          </list>
4040                      </t>                      </t>
4041                      <t>                      <t>
4042                      Where &lt;midi_bank_msb&gt; is an integer value between 0..127                      Where &lt;map&gt; is the numeric ID of the MIDI instrument map,
4043                      reflecting the MIDI bank MSB (coarse) value, &lt;midi_bank_lsb&gt;                      &lt;midi_bank&gt; is an integer value between 0..16383
4044                      an integer value between 0..127 reflecting the MIDI bank LSB                      reflecting the MIDI bank value and
4045                      (fine) value and &lt;midi_prog&gt; an integer value between                      &lt;midi_prog&gt; an integer value between
4046                      0..127 reflecting the MIDI program value of the map entrie's key                      0..127 reflecting the MIDI program value of the map's entrie's key
4047                      index triple.                      index triple.
4048                      </t>                      </t>
4049    
# Line 3712  Schoenebeck'> Line 4066  Schoenebeck'>
4066                      <t>Example:</t>                      <t>Example:</t>
4067                      <t>                      <t>
4068                          <list>                          <list>
4069                              <t>C: "UNMAP MIDI_INSTRUMENT 2 40 127"</t>                              <t>C: "UNMAP MIDI_INSTRUMENT 0 2 127"</t>
4070                              <t>S: "OK"</t>                              <t>S: "OK"</t>
4071                          </list>                          </list>
4072                      </t>                      </t>
# Line 3723  Schoenebeck'> Line 4077  Schoenebeck'>
4077                      instrument map entry by sending the following command:</t>                      instrument map entry by sending the following command:</t>
4078                      <t>                      <t>
4079                          <list>                          <list>
4080                              <t>GET MIDI_INSTRUMENT INFO &lt;midi_bank_msb&gt; &lt;midi_bank_lsb&gt; &lt;midi_prog&gt;</t>                              <t>GET MIDI_INSTRUMENT INFO &lt;map&gt; &lt;midi_bank&gt; &lt;midi_prog&gt;</t>
4081                          </list>                          </list>
4082                      </t>                      </t>
4083                      <t>                      <t>
4084                      Where &lt;midi_bank_msb&gt; is an integer value between 0..127                      Where &lt;map&gt; is the numeric ID of the MIDI instrument map,
4085                      reflecting the MIDI bank MSB (coarse) value, &lt;midi_bank_lsb&gt;                      &lt;midi_bank&gt; is an integer value between 0..16383
4086                      an integer value between 0..127 reflecting the MIDI bank LSB                      reflecting the MIDI bank value, &lt;midi_bank&gt;
4087                      (fine) value and &lt;midi_prog&gt; an integer value between                      and &lt;midi_prog&gt; an integer value between
4088                      0..127 reflecting the MIDI program value of the map entrie's key                      0..127 reflecting the MIDI program value of the map's entrie's key
4089                      index triple.                      index triple.
4090                      </t>                      </t>
4091    
# Line 3797  Schoenebeck'> Line 4151  Schoenebeck'>
4151                      <t>Example:</t>                      <t>Example:</t>
4152                      <t>                      <t>
4153                          <list>                          <list>
4154                              <t>C: "GET MIDI_INSTRUMENT INFO 3 45 120"</t>                              <t>C: "GET MIDI_INSTRUMENT INFO 1 45 120"</t>
4155                              <t>S: "NAME: Drums for Foo Song"</t>                              <t>S: "NAME: Drums for Foo Song"</t>
4156                              <t>&nbsp;&nbsp;&nbsp;"ENGINE_NAME: GigEngine"</t>                              <t>&nbsp;&nbsp;&nbsp;"ENGINE_NAME: GigEngine"</t>
4157                              <t>&nbsp;&nbsp;&nbsp;"INSTRUMENT_FILE: /usr/share/joesdrumkit.gig"</t>                              <t>&nbsp;&nbsp;&nbsp;"INSTRUMENT_FILE: /usr/share/joesdrumkit.gig"</t>
# Line 3811  Schoenebeck'> Line 4165  Schoenebeck'>
4165                  </section>                  </section>
4166    
4167                  <section title="Clear MIDI instrument map" anchor="CLEAR MIDI_INSTRUMENTS">                  <section title="Clear MIDI instrument map" anchor="CLEAR MIDI_INSTRUMENTS">
4168                      <t>The front-end can clear the whole MIDI instrument map, that                      <t>The front-end can clear a whole MIDI instrument map, that
4169                      is delete all entries by sending the following command:</t>                      is delete all its entries by sending the following command:</t>
4170                      <t>                      <t>
4171                          <list>                          <list>
4172                              <t>CLEAR MIDI_INSTRUMENTS</t>                              <t>CLEAR MIDI_INSTRUMENTS &lt;map&gt;</t>
4173                          </list>                          </list>
4174                      </t>                      </t>
4175                        <t>Where &lt;map&gt; is the numeric ID of the map to clear.</t>
4176                        <t>The front-end can clear all MIDI instrument maps, that
4177                        is delete all entries of all maps by sending the following
4178                        command:</t>
4179                        <t>
4180                            <list>
4181                                <t>CLEAR MIDI_INSTRUMENTS ALL</t>
4182                            </list>
4183                        </t>
4184                        <t>The command "CLEAR MIDI_INSTRUMENTS ALL" does not delete the
4185                        maps, only their entries, thus the map's settings like
4186                        custom name will be preservevd.</t>
4187    
4188                     <t>Possible Answers:</t>                     <t>Possible Answers:</t>
4189                      <t>                      <t>
# Line 3830  Schoenebeck'> Line 4196  Schoenebeck'>
4196                          </list>                          </list>
4197                      </t>                      </t>
4198    
4199                      <t>Example:</t>                      <t>Examples:</t>
4200                      <t>                      <t>
4201                         <list>                         <list>
4202                              <t>C: "CLEAR MIDI_INSTRUMENTS"</t>                              <t>C: "CLEAR MIDI_INSTRUMENTS 0"</t>
4203                                <t>S: "OK"</t>
4204                            </list>
4205                        </t>
4206                        <t>
4207                           <list>
4208                                <t>C: "CLEAR MIDI_INSTRUMENTS ALL"</t>
4209                              <t>S: "OK"</t>                              <t>S: "OK"</t>
4210                          </list>                          </list>
4211                      </t>                      </t>
# Line 3891  Schoenebeck'> Line 4263  Schoenebeck'>
4263  </t>  </t>
4264  <t>command =  <t>command =
4265          <list>          <list>
4266                  <t>ADD SP CHANNEL                  <t>ADD SP add_instruction
4267                  </t>                  </t>
4268                  <t>/ MAP SP map_instruction                  <t>/ MAP SP map_instruction
4269                  </t>                  </t>
# Line 3908  Schoenebeck'> Line 4280  Schoenebeck'>
4280                  <t>/ LOAD SP load_instruction                  <t>/ LOAD SP load_instruction
4281                  </t>                  </t>
4282                  <t>/ REMOVE SP remove_instruction                  <t>/ REMOVE SP remove_instruction
   
4283                  </t>                  </t>
4284                  <t>/ SET SP set_instruction                  <t>/ SET SP set_instruction
4285                  </t>                  </t>
# Line 3928  Schoenebeck'> Line 4299  Schoenebeck'>
4299                  </t>                  </t>
4300          </list>          </list>
4301  </t>  </t>
4302    <t>add_instruction =
4303            <list>
4304                    <t>CHANNEL
4305                    </t>
4306                    <t>/ MIDI_INSTRUMENT_MAP
4307                    </t>
4308                    <t>/ MIDI_INSTRUMENT_MAP SP map_name
4309                    </t>
4310            </list>
4311    </t>
4312  <t>subscribe_event =  <t>subscribe_event =
4313          <list>          <list>
4314                  <t>CHANNEL_COUNT                  <t>CHANNEL_COUNT
# Line 3966  Schoenebeck'> Line 4347  Schoenebeck'>
4347  </t>  </t>
4348  <t>map_instruction =  <t>map_instruction =
4349          <list>          <list>
4350                  <t>MIDI_INSTRUMENT SP midi_bank_msb SP midi_bank_lsb SP midi_prog SP engine_name SP filename SP instrument_index SP volume_value                  <t>MIDI_INSTRUMENT SP midi_map SP midi_bank SP midi_prog SP engine_name SP filename SP instrument_index SP volume_value
4351                  </t>                  </t>
4352                  <t>/ 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                  <t>/ MIDI_INSTRUMENT SP midi_map SP midi_bank SP midi_prog SP engine_name SP filename SP instrument_index SP volume_value SP instr_load_mode
4353                  </t>                  </t>
4354                  <t>/ 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                  <t>/ MIDI_INSTRUMENT SP midi_map SP midi_bank SP midi_prog SP engine_name SP filename SP instrument_index SP volume_value SP entry_name
4355                  </t>                  </t>
4356                  <t>/ 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                  <t>/ MIDI_INSTRUMENT SP midi_map SP midi_bank SP midi_prog SP engine_name SP filename SP instrument_index SP volume_value SP instr_load_mode SP entry_name
4357                  </t>                  </t>
4358          </list>          </list>
4359  </t>  </t>
4360  <t>unmap_instruction =  <t>unmap_instruction =
4361          <list>          <list>
4362                  <t>MIDI_INSTRUMENT SP midi_bank_msb SP midi_bank_lsb SP midi_prog                  <t>MIDI_INSTRUMENT SP midi_map SP midi_bank SP midi_prog
4363                  </t>                  </t>
4364          </list>          </list>
4365  </t>  </t>
# Line 3986  Schoenebeck'> Line 4367  Schoenebeck'>
4367          <list>          <list>
4368                  <t>CHANNEL SP sampler_channel                  <t>CHANNEL SP sampler_channel
4369                  </t>                  </t>
4370                    <t>/ MIDI_INSTRUMENT_MAP SP midi_map
4371                    </t>
4372                    <t>/ MIDI_INSTRUMENT_MAP SP ALL
4373                    </t>
4374          </list>          </list>
4375  </t>  </t>
4376  <t>get_instruction =  <t>get_instruction =
# Line 4042  Schoenebeck'> Line 4427  Schoenebeck'>
4427                  </t>                  </t>
4428                  <t>/ TOTAL_VOICE_COUNT_MAX                  <t>/ TOTAL_VOICE_COUNT_MAX
4429                  </t>                  </t>
4430                  <t>/ MIDI_INSTRUMENTS                  <t>/ MIDI_INSTRUMENTS SP midi_map
4431                    </t>
4432                    <t>/ MIDI_INSTRUMENTS SP ALL
4433                    </t>
4434                    <t>/ MIDI_INSTRUMENT SP INFO SP midi_map SP midi_bank SP midi_prog
4435                    </t>
4436                    <t>/ MIDI_INSTRUMENT_MAPS
4437                  </t>                  </t>
4438                  <t>/ MIDI_INSTRUMENT SP INFO SP midi_bank_msb SP midi_bank_lsb SP midi_prog                  <t>/ MIDI_INSTRUMENT_MAP SP INFO SP midi_map
4439                  </t>                  </t>
4440          </list>          </list>
4441  </t>  </t>
# Line 4060  Schoenebeck'> Line 4451  Schoenebeck'>
4451                  </t>                  </t>
4452                  <t>/ CHANNEL SP set_chan_instruction                  <t>/ CHANNEL SP set_chan_instruction
4453                  </t>                  </t>
4454                    <t>/ MIDI_INSTRUMENT_MAP SP NAME SP midi_map SP map_name
4455                    </t>
4456                  <t>/ ECHO SP boolean                  <t>/ ECHO SP boolean
4457                  </t>                  </t>
4458          </list>          </list>
# Line 4084  Schoenebeck'> Line 4477  Schoenebeck'>
4477  </t>  </t>
4478  <t>clear_instruction =  <t>clear_instruction =
4479          <list>          <list>
4480                  <t>MIDI_INSTRUMENTS                  <t>MIDI_INSTRUMENTS SP midi_map
4481                    </t>
4482                    <t>/ MIDI_INSTRUMENTS SP ALL
4483                  </t>                  </t>
4484          </list>          </list>
4485  </t>  </t>
# Line 4128  Schoenebeck'> Line 4523  Schoenebeck'>
4523                  </t>                  </t>
4524                  <t>/ SOLO SP sampler_channel SP boolean                  <t>/ SOLO SP sampler_channel SP boolean
4525                  </t>                  </t>
4526                    <t>/ MIDI_INSTRUMENT_MAP SP sampler_channel SP midi_map
4527                    </t>
4528                    <t>/ MIDI_INSTRUMENT_MAP SP sampler_channel SP NONE
4529                    </t>
4530                    <t>/ MIDI_INSTRUMENT_MAP SP sampler_channel SP DEFAULT
4531                    </t>
4532          </list>          </list>
4533  </t>  </t>
4534  <t>key_val_list =  <t>key_val_list =
# Line 4160  Schoenebeck'> Line 4561  Schoenebeck'>
4561                  </t>                  </t>
4562                  <t>/ AVAILABLE_AUDIO_OUTPUT_DRIVERS                  <t>/ AVAILABLE_AUDIO_OUTPUT_DRIVERS
4563                  </t>                  </t>
4564                  <t>/ MIDI_INSTRUMENTS                  <t>/ MIDI_INSTRUMENTS SP midi_map
4565                    </t>
4566                    <t>/ MIDI_INSTRUMENTS SP ALL
4567                    </t>
4568                    <t>/ MIDI_INSTRUMENT_MAPS
4569                  </t>                  </t>
4570          </list>          </list>
4571  </t>  </t>
# Line 4226  Schoenebeck'> Line 4631  Schoenebeck'>
4631                  </t>                  </t>
4632          </list>          </list>
4633  </t>  </t>
4634  <t>midi_bank_msb =  <t>midi_map =
4635          <list>          <list>
4636                  <t>number                  <t>number
4637                  </t>                  </t>
4638          </list>          </list>
4639  </t>  </t>
4640  <t>midi_bank_lsb =  <t>midi_bank =
4641          <list>          <list>
4642                  <t>number                  <t>number
4643                  </t>                  </t>
# Line 4274  Schoenebeck'> Line 4679  Schoenebeck'>
4679          <list>          <list>
4680                  <t>stringval                  <t>stringval
4681                  </t>                  </t>
4682            </list>
4683    </t>
4684    <t>map_name =
4685            <list>
4686                    <t>stringval
4687                    </t>
4688          </list>          </list>
4689  </t>  </t>
4690  <t>entry_name =  <t>entry_name =

Legend:
Removed from v.944  
changed lines
  Added in v.973

  ViewVC Help
Powered by ViewVC