/[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 1387 by iliev, Sun Oct 7 10:32:53 2007 UTC revision 2138 by schoenebeck, Mon Oct 4 22:11:53 2010 UTC
# Line 16  Line 16 
16       to an annoying "missing Normative/Informative References" error message -->       to an annoying "missing Normative/Informative References" error message -->
17  <?rfc strict="no" ?>  <?rfc strict="no" ?>
18    
19  <rfc category="std" ipr="full3978" docName="LSCP 1.2cvs">  <rfc category="std" ipr="full3978" docName="LSCP 1.5">
20      <front>      <front>
21          <title>LinuxSampler Control Protocol (draft)</title>          <title>LinuxSampler Control Protocol</title>
22          <author initials='C.S.' surname="Schoenebeck" fullname='C.          <author initials='C.S.' surname="Schoenebeck" fullname='C.
23  Schoenebeck'>  Schoenebeck'>
24              <organization>              <organization>
# Line 34  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="September" year="2007"/>          <date month="October" year="2010"/>
38          <workgroup>LinuxSampler Developers</workgroup>          <workgroup>LinuxSampler Developers</workgroup>
39          <keyword>LSCP</keyword>          <keyword>LSCP</keyword>
40          <abstract>          <abstract>
# Line 2162  Schoenebeck'> Line 2162  Schoenebeck'>
2162                              </t>                              </t>
2163                          </list>                          </list>
2164                      </t>                      </t>
2165                      <t>Example:</t>                      <t>Example (Unix):</t>
2166                      <t>                      <t>
2167                          <list>                          <list>
2168                              <t></t>                              <t>C: LOAD INSTRUMENT '/home/joe/gigs/cello.gig' 0 0</t>
2169                                <t>S: OK</t>
2170                            </list>
2171                        </t>
2172                        <t>Example (Windows):</t>
2173                        <t>
2174                            <list>
2175                                <t>C: LOAD INSTRUMENT 'D:/MySounds/cello.gig' 0 0</t>
2176                                <t>S: OK</t>
2177                          </list>                          </list>
2178                      </t>                      </t>
2179                  </section>                  </section>
# Line 2443  Schoenebeck'> Line 2451  Schoenebeck'>
2451                                  <list>                                  <list>
2452                                      <t>DESCRIPTION -                                      <t>DESCRIPTION -
2453                                          <list>                                          <list>
2454                                              <t>arbitrary description text about the engine</t>                                              <t>arbitrary description text about the engine
2455                                                (note that the character string may contain
2456                                                <xref target="character_set">escape sequences</xref>)</t>
2457                                          </list>                                          </list>
2458                                      </t>                                      </t>
2459                                       <t>VERSION -                                       <t>VERSION -
# Line 2502  Schoenebeck'> Line 2512  Schoenebeck'>
2512                                          <list>                                          <list>
2513                                              <t>numerical ID of the audio output device which is                                              <t>numerical ID of the audio output device which is
2514                                              currently connected to this sampler channel to output                                              currently connected to this sampler channel to output
2515                                              the audio signal, "NONE" if there's no device                                              the audio signal, "-1" if there's no device
2516                                              connected to this sampler channel</t>                                              connected to this sampler channel</t>
2517                                          </list>                                          </list>
2518                                      </t>                                      </t>
# Line 2527  Schoenebeck'> Line 2537  Schoenebeck'>
2537                                          <list>                                          <list>
2538                                              <t>the file name of the loaded instrument, "NONE" if                                              <t>the file name of the loaded instrument, "NONE" if
2539                                              there's no instrument yet loaded for this sampler                                              there's no instrument yet loaded for this sampler
2540                                              channel</t>                                              channel (note: since LSCP 1.2 this path may contain
2541                                                <xref target="character_set">escape sequences</xref>)</t>
2542                                          </list>                                          </list>
2543                                      </t>                                      </t>
2544                                      <t>INSTRUMENT_NR -                                      <t>INSTRUMENT_NR -
2545                                          <list>                                          <list>
2546                                              <t>the instrument index number of the loaded instrument</t>                                              <t>the instrument index number of the loaded instrument,
2547                                                "-1" if there's no instrument loaded for this sampler
2548                                                channel</t>
2549                                          </list>                                          </list>
2550                                      </t>                                      </t>
2551                                      <t>INSTRUMENT_NAME -                                      <t>INSTRUMENT_NAME -
2552                                          <list>                                          <list>
2553                                              <t>the instrument name of the loaded instrument</t>                                              <t>the instrument name of the loaded instrument
2554                                                (note: since LSCP 1.2 this character string may contain
2555                                                <xref target="character_set">escape sequences</xref>)</t>
2556                                          </list>                                          </list>
2557                                      </t>                                      </t>
2558                                      <t>INSTRUMENT_STATUS -                                      <t>INSTRUMENT_STATUS -
2559                                          <list>                                          <list>
2560                                              <t>integer values 0 to 100 indicating loading progress percentage for the instrument. Negative                                              <t>Integer values 0 to 100 indicating loading progress
2561                                              value indicates a loading exception. Value of 100 indicates that the instrument is fully                                              percentage for the instrument. Negative
2562                                                value indicates a loading exception (also returns "-1" in case no
2563                                                instrument was yet to be loaded on the sampler channel).
2564                                                Value of 100 indicates that the instrument is fully
2565                                              loaded.</t>                                              loaded.</t>
2566                                          </list>                                          </list>
2567                                      </t>                                      </t>
# Line 2551  Schoenebeck'> Line 2569  Schoenebeck'>
2569                                          <list>                                          <list>
2570                                              <t>numerical ID of the MIDI input device which is                                              <t>numerical ID of the MIDI input device which is
2571                                              currently connected to this sampler channel to deliver                                              currently connected to this sampler channel to deliver
2572                                              MIDI input commands, "NONE" if there's no device                                              MIDI input commands, "-1" if there's no device
2573                                              connected to this sampler channel</t>                                              connected to this sampler channel</t>
2574                                          </list>                                          </list>
2575                                      </t>                                      </t>
2576                                      <t>MIDI_INPUT_PORT -                                      <t>MIDI_INPUT_PORT -
2577                                          <list>                                          <list>
2578                                              <t>port number of the MIDI input device</t>                                              <t>port number of the MIDI input device (in case a
2579                                                MIDI device was already assigned to the sampler
2580                                                channel)</t>
2581                                          </list>                                          </list>
2582                                      </t>                                      </t>
2583                                      <t>MIDI_INPUT_CHANNEL -                                      <t>MIDI_INPUT_CHANNEL -
# Line 3255  Schoenebeck'> Line 3275  Schoenebeck'>
3275                      sampler channel on which the effect send should be created on, &lt;midi-ctrl&gt;                      sampler channel on which the effect send should be created on, &lt;midi-ctrl&gt;
3276                      is a number between 0..127 defining the MIDI controller which can alter the                      is a number between 0..127 defining the MIDI controller which can alter the
3277                      effect send level and &lt;name&gt; is an optional argument defining a name                      effect send level and &lt;name&gt; is an optional argument defining a name
3278                      for the effect send entity. The name does not have to be unique.</t>                      for the effect send entity. The name does not have to be unique, but MUST be
3279                        encapsulated into apostrophes and supports escape sequences as described in chapter
3280                        "<xref target="character_set">Character Set and Escape Sequences</xref>".</t>
3281    
3282                      <t>By default, that is as initial routing, the effect send's audio channels                      <t>By default, that is as initial routing, the effect send's audio channels
3283                      are automatically routed to the last audio channels of the sampler channel's                      are automatically routed to the last audio channels of the sampler channel's
# Line 3445  Schoenebeck'> Line 3467  Schoenebeck'>
3467                                  <list>                                  <list>
3468                                      <t>NAME -                                      <t>NAME -
3469                                          <list>                                          <list>
3470                                              <t>name of the effect send entity</t>                                              <t>name of the effect send entity
3471                                                (note that this character string may contain
3472                                                 <xref target="character_set">escape sequences</xref>)</t>
3473                                          </list>                                          </list>
3474                                      </t>                                      </t>
3475                                      <t>MIDI_CONTROLLER -                                      <t>MIDI_CONTROLLER -
# Line 3471  Schoenebeck'> Line 3495  Schoenebeck'>
3495                                              channel 1 is routed to the channel 3 of the audio                                              channel 1 is routed to the channel 3 of the audio
3496                                              output device (see                                              output device (see
3497                                              <xref target="SET FX_SEND AUDIO_OUTPUT_CHANNEL">"SET FX_SEND AUDIO_OUTPUT_CHANNEL"</xref>                                              <xref target="SET FX_SEND AUDIO_OUTPUT_CHANNEL">"SET FX_SEND AUDIO_OUTPUT_CHANNEL"</xref>
3498                                              for details)</t>                                              for details), if an internal send
3499                                                effect is assigned to the effect
3500                                                send, then this setting defines the
3501                                                audio channel routing to that
3502                                                effect instance respectively</t>
3503                                            </list>
3504                                        </t>
3505                                        <t>SEND_EFFECT -
3506                                            <list>
3507                                                <t>destination send effect chain ID
3508                                                and destination effect chain
3509                                                position, separated by comma in the
3510                                                form "&lt;effect-chain&gt;,&lt;chain-pos&gt;"
3511                                                or "NONE" if there is no send effect
3512                                                assigned to the effect send</t>
3513                                          </list>                                          </list>
3514                                      </t>                                      </t>
3515                                  </list>                                  </list>
# Line 3508  Schoenebeck'> Line 3546  Schoenebeck'>
3546                      as returned by the <xref target="CREATE FX_SEND">"CREATE FX_SEND"</xref>                      as returned by the <xref target="CREATE FX_SEND">"CREATE FX_SEND"</xref>
3547                      or <xref target="LIST FX_SENDS">"LIST FX_SENDS"</xref> command and                      or <xref target="LIST FX_SENDS">"LIST FX_SENDS"</xref> command and
3548                      &lt;name&gt; is the new name of the effect send entity, which                      &lt;name&gt; is the new name of the effect send entity, which
3549                      does not have to be unique.</t>                      does not have to be unique (name MUST be encapsulated into apostrophes
3550                        and supports escape sequences as described in chapter
3551                        "<xref target="character_set">Character Set and Escape Sequences</xref>").
3552                        </t>
3553    
3554                      <t>Possible Answers:</t>                      <t>Possible Answers:</t>
3555                      <t>                      <t>
# Line 3551  Schoenebeck'> Line 3592  Schoenebeck'>
3592                      &lt;audio-src&gt; is the numerical ID of the effect send's audio channel                      &lt;audio-src&gt; is the numerical ID of the effect send's audio channel
3593                      which should be rerouted and &lt;audio-dst&gt; is the numerical ID of                      which should be rerouted and &lt;audio-dst&gt; is the numerical ID of
3594                      the audio channel of the selected audio output device where &lt;audio-src&gt;                      the audio channel of the selected audio output device where &lt;audio-src&gt;
3595                      should be routed to.</t>                      should be routed to. If an internal send effect is assigned
3596                        to the effect send, then this setting defines the audio
3597                        channel routing to that effect instance respectively.</t>
3598    
3599                      <t>Note that effect sends can only route audio to the same audio output                      <t>Note that effect sends can only route audio to the same audio output
3600                      device as assigned to the effect send's sampler channel. Also note that an                      device as assigned to the effect send's sampler channel. Also note that an
# Line 3594  Schoenebeck'> Line 3637  Schoenebeck'>
3637                      </t>                      </t>
3638                  </section>                  </section>
3639    
3640                    <section title="Assigning destination effect to an effect send" anchor="SET FX_SEND SEND_EFFECT">
3641                        <t>The front-end can (re-)assign a destination effect to an
3642                        effect send by sending the following command:</t>
3643                        <t>
3644                            <list>
3645                                <t>SET FX_SEND SEND_EFFECT &lt;sampler-chan&gt; &lt;fx-send-id&gt; &lt;effect-chain&gt; &lt;chain-pos&gt;</t>
3646                            </list>
3647                        </t>
3648                        <t>Where &lt;sampler-chan&gt; is the sampler channel number
3649                        as returned by the <xref target="ADD CHANNEL">"ADD CHANNEL"</xref>
3650                        or <xref target="LIST CHANNELS">"LIST CHANNELS"</xref> command,
3651                        &lt;fx-send-id&gt; reflects the numerical ID of the effect send entity
3652                        as returned by the <xref target="CREATE FX_SEND">"CREATE FX_SEND"</xref>
3653                        or <xref target="LIST FX_SENDS">"LIST FX_SENDS"</xref> command,
3654                        &lt;effect-chain&gt; by the numerical ID of the destination
3655                        effect chain as returned by the
3656                        <xref target="ADD SEND_EFFECT_CHAIN">"ADD SEND_EFFECT_CHAIN"</xref>
3657                        or
3658                        <xref target="LIST SEND_EFFECT_CHAINS">"LIST SEND_EFFECT_CHAINS"</xref>
3659                        command and &lt;chain-pos&gt; reflects the exact effect
3660                        chain position in the effect chain which hosts the actual
3661                        destination effect.</t>
3662    
3663                        <t>Possible Answers:</t>
3664                        <t>
3665                            <list>
3666                                <t>"OK" -
3667                                    <list>
3668                                        <t>on success</t>
3669                                    </list>
3670                                </t>
3671                                <t>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
3672                                    <list>
3673                                        <t>in case it failed, providing an appropriate error code and error message</t>
3674                                    </list>
3675                                </t>
3676                            </list>
3677                        </t>
3678                        <t>Example:</t>
3679                        <t>
3680                            <list>
3681                                <t>C: "SET FX_SEND SEND_EFFECT 0 0 2 5"</t>
3682                                <t>S: "OK"</t>
3683                            </list>
3684                        </t>
3685                    </section>
3686    
3687                    <section title="Removing destination effect from an effect send" anchor="REMOVE FX_SEND SEND_EFFECT">
3688                        <t>The front-end can (re-)assign a destination effect to an
3689                        effect send by sending the following command:</t>
3690                        <t>
3691                            <list>
3692                                <t>REMOVE FX_SEND SEND_EFFECT &lt;sampler-chan&gt; &lt;fx-send-id&gt;</t>
3693                            </list>
3694                        </t>
3695                        <t>Where &lt;sampler-chan&gt; is the sampler channel number
3696                        as returned by the <xref target="ADD CHANNEL">"ADD CHANNEL"</xref>
3697                        or <xref target="LIST CHANNELS">"LIST CHANNELS"</xref> command,
3698                        &lt;fx-send-id&gt; reflects the numerical ID of the effect send entity
3699                        as returned by the <xref target="CREATE FX_SEND">"CREATE FX_SEND"</xref>
3700                        or <xref target="LIST FX_SENDS">"LIST FX_SENDS"</xref> command.</t>
3701    
3702                        <t>After the destination effect has been removed from the
3703                        effect send, the audio signal of the effect send will be
3704                        routed directly to the audio output device, according to the
3705                        audio channel routing setting of the effect send.
3706                        </t>
3707    
3708                        <t>Possible Answers:</t>
3709                        <t>
3710                            <list>
3711                                <t>"OK" -
3712                                    <list>
3713                                        <t>on success</t>
3714                                    </list>
3715                                </t>
3716                                <t>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
3717                                    <list>
3718                                        <t>in case it failed, providing an appropriate error code and error message</t>
3719                                    </list>
3720                                </t>
3721                            </list>
3722                        </t>
3723                        <t>Example:</t>
3724                        <t>
3725                            <list>
3726                                <t>C: "REMOVE FX_SEND SEND_EFFECT 0 0"</t>
3727                                <t>S: "OK"</t>
3728                            </list>
3729                        </t>
3730                    </section>
3731    
3732                  <section title="Altering effect send's MIDI controller" anchor="SET FX_SEND MIDI_CONTROLLER">                  <section title="Altering effect send's MIDI controller" anchor="SET FX_SEND MIDI_CONTROLLER">
3733                      <t>The front-end can alter the MIDI controller of an effect                      <t>The front-end can alter the MIDI controller of an effect
3734                      send entity by sending the following command:</t>                      send entity by sending the following command:</t>
# Line 3691  Schoenebeck'> Line 3826  Schoenebeck'>
3826                      </t>                      </t>
3827                  </section>                  </section>
3828    
3829                    <section title="Sending MIDI messages to sampler channel" anchor="SEND CHANNEL MIDI_DATA">
3830                        <t>The front-end can send MIDI events to a specific sampler channel
3831                        by sending the following command:</t>
3832                        <t>
3833                            <list>
3834                                <t>SEND CHANNEL MIDI_DATA &lt;midi-msg&gt; &lt;sampler-chan&gt; &lt;arg1&gt; &lt;arg2&gt;</t>
3835                            </list>
3836                        </t>
3837                        <t>Where &lt;sampler-chan&gt; is the sampler channel number
3838                        as returned by the <xref target="ADD CHANNEL">"ADD CHANNEL"</xref>
3839                        or <xref target="LIST CHANNELS">"LIST CHANNELS"</xref> command,
3840                        &lt;arg1&gt; and &lt;arg2&gt; arguments depend on the &lt;midi-msg&gt; argument, which
3841                        specifies the MIDI message type. Currently, the following MIDI messages are supported:</t>
3842                        <t>
3843                            <list>
3844                                <t>"NOTE_ON" -
3845                                    <list>
3846                                        <t>For turning on MIDI notes, where &lt;arg1&gt;
3847                                        specifies the key number and &lt;arg2&gt; the velocity
3848                                        as described in the MIDI specification.</t>
3849                                    </list>
3850                                </t>
3851                                <t>"NOTE_OFF" -
3852                                    <list>
3853                                        <t>For turning a currently playing MIDI note off, where &lt;arg1&gt;
3854                                        specifies the key number and &lt;arg2&gt; the velocity
3855                                        as described in the MIDI specification.</t>
3856                                    </list>
3857                                </t>
3858                                <t>"CC" -
3859                                    <list>
3860                                        <t>For changing a MIDI controller, where &lt;arg1&gt;
3861                                        specifies the controller number and &lt;arg2&gt; the
3862                                        new value of the controller as described in the Control
3863                                        Change section of the MIDI specification.</t>
3864                                    </list>
3865                                </t>
3866                            </list>
3867                        </t>
3868                        <t>CAUTION: This command is provided for implementations of virtual MIDI keyboards
3869                        and no realtime guarantee whatsoever will be made!</t>
3870                        <t>Possible Answers:</t>
3871                        <t>
3872                            <list>
3873                                <t>"OK" -
3874                                    <list>
3875                                        <t>on success</t>
3876                                    </list>
3877                                </t>
3878                                <t>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
3879                                    <list>
3880                                        <t>in case it failed, providing an appropriate error code and error message</t>
3881                                    </list>
3882                                </t>
3883                            </list>
3884                        </t>
3885                        <t>Example:</t>
3886                        <t>
3887                            <list>
3888                                <t>C: "SEND CHANNEL MIDI_DATA NOTE_ON 0 56 112"</t>
3889                                <t>S: "OK"</t>
3890                            </list>
3891                        </t>
3892                    </section>
3893    
3894                  <section title="Resetting a sampler channel" anchor="RESET CHANNEL">                  <section title="Resetting a sampler channel" anchor="RESET CHANNEL">
3895                      <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>
3896                      <t>                      <t>
# Line 3912  Schoenebeck'> Line 4112  Schoenebeck'>
4112                      </t>                      </t>
4113                  </section>                  </section>
4114    
4115                    <section title="Current number of active disk streams" anchor="GET TOTAL_STREAM_COUNT">
4116                        <t>The front-end can ask for the current number of active disk streams on
4117                        the sampler by sending the following command:</t>
4118                        <t>
4119                            <list>
4120                                <t>GET TOTAL_STREAM_COUNT</t>
4121                            </list>
4122                        </t>
4123    
4124                        <t>Possible Answers:</t>
4125                        <t>
4126                            <list>
4127                                <t>LinuxSampler will answer by returning the number of all active
4128                                disk streams on the sampler.</t>
4129                            </list>
4130                        </t>
4131                    </section>
4132    
4133                  <section title="Reset sampler" anchor="RESET">                  <section title="Reset sampler" anchor="RESET">
4134                      <t>The front-end can reset the whole sampler by sending the following command:</t>                      <t>The front-end can reset the whole sampler by sending the following command:</t>
4135                      <t>                      <t>
# Line 3959  Schoenebeck'> Line 4177  Schoenebeck'>
4177                                  <list>                                  <list>
4178                                      <t>DESCRIPTION -                                      <t>DESCRIPTION -
4179                                          <list>                                          <list>
4180                                              <t>arbitrary textual description about the sampler                                              <t>arbitrary textual description about the sampler
4181                                              (note that the character string may contain                                              (note that the character string may contain
4182                                              <xref target="character_set">escape sequences</xref>)</t>                                              <xref target="character_set">escape sequences</xref>)</t>
4183                                          </list>                                          </list>
4184                                      </t>                                      </t>
# Line 4047  Schoenebeck'> Line 4265  Schoenebeck'>
4265                          </list>                          </list>
4266                      </t>                      </t>
4267                  </section>                  </section>
4268    
4269                    <section title="Getting global voice limit" anchor="GET VOICES">
4270                        <t>The client can ask for the current global sampler-wide limit
4271                           for maximum voices by sending the following command:</t>
4272                        <t>
4273                            <list>
4274                                <t>GET VOICES</t>
4275                            </list>
4276                        </t>
4277                        <t>Possible Answers:</t>
4278                        <t>
4279                            <list>
4280                                <t>LinuxSampler will answer by returning the number for
4281                                   the current limit of maximum voices.</t>
4282                            </list>
4283                        </t>
4284    
4285                        <t>The voice limit setting defines how many voices should maximum
4286                           be processed by the sampler at the same time. If the user
4287                           triggers new notes which would exceed that voice limit, the
4288                           sampler engine will react by stealing old voices for those
4289                           newly triggered notes. Note that the amount of voices triggered
4290                           by a new note can be larger than one and is dependent to the
4291                           respective instrument and probably further criterias.</t>
4292                    </section>
4293    
4294                    <section title="Setting global voice limit" anchor="SET VOICES">
4295                        <t>The client can alter the current global sampler-wide limit
4296                        for maximum voices by sending the following command:</t>
4297                        <t>
4298                            <list>
4299                                <t>SET VOICES &lt;max-voices&gt;</t>
4300                            </list>
4301                        </t>
4302                       <t>Where &lt;max-voices&gt; should be replaced by the integer
4303                       value, reflecting the new global amount limit of maximum voices.
4304                       This value has to be larger than 0.</t>
4305    
4306                        <t>Possible Answers:</t>
4307                        <t>
4308                            <list>
4309                                <t>"OK" -
4310                                    <list>
4311                                        <t>on success</t>
4312                                    </list>
4313                                </t>
4314                                <t>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
4315                                    <list>
4316                                        <t>if the voice limit was set, but there are noteworthy
4317                                        issue(s) related, providing an appropriate warning code and
4318                                        warning message</t>
4319                                    </list>
4320                                </t>
4321                                <t>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
4322                                    <list>
4323                                        <t>in case it failed, providing an appropriate error code and error message</t>
4324                                    </list>
4325                                </t>
4326                            </list>
4327                        </t>
4328    
4329                        <t>Note: the given value will be passed to all sampler engine instances.
4330                           The total amount of maximum voices on the running system might thus
4331                           be as big as the given value multiplied by the current amount of engine
4332                           instances.</t>
4333    
4334                         <t>Caution: when adjusting the voice limit, you SHOULD also
4335                            adjust the disk stream limit respectively and vice versa.</t>
4336                    </section>
4337    
4338                    <section title="Getting global disk stream limit" anchor="GET STREAMS">
4339                        <t>The client can ask for the current global sampler-wide limit
4340                           for maximum disk streams by sending the following command:</t>
4341                        <t>
4342                            <list>
4343                                <t>GET STREAMS</t>
4344                            </list>
4345                        </t>
4346                        <t>Possible Answers:</t>
4347                        <t>
4348                            <list>
4349                                <t>LinuxSampler will answer by returning the number for
4350                                   the current limit of maximum disk streams.</t>
4351                            </list>
4352                        </t>
4353    
4354                        <t>The disk stream limit setting defines how many disk streams should
4355                           maximum be processed by a sampler engine at the same time. The
4356                           higher this value, the more memory (RAM) will be occupied, since
4357                           every disk streams allocates a certain buffer size for being able
4358                           to perform its streaming operations.</t>
4359                    </section>
4360    
4361                    <section title="Setting global disk stream limit" anchor="SET STREAMS">
4362                        <t>The client can alter the current global sampler-wide limit
4363                        for maximum disk streams by sending the following command:</t>
4364                        <t>
4365                            <list>
4366                                <t>SET STREAMS &lt;max-streams&gt;</t>
4367                            </list>
4368                        </t>
4369                       <t>Where &lt;max-streams&gt; should be replaced by the integer
4370                       value, reflecting the new global amount limit of maximum disk streams.
4371                       This value has to be positive.</t>
4372    
4373                        <t>Possible Answers:</t>
4374                        <t>
4375                            <list>
4376                                <t>"OK" -
4377                                    <list>
4378                                        <t>on success</t>
4379                                    </list>
4380                                </t>
4381                                <t>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
4382                                    <list>
4383                                        <t>if the disk stream limit was set, but there are noteworthy
4384                                        issue(s) related, providing an appropriate warning code and
4385                                        warning message</t>
4386                                    </list>
4387                                </t>
4388                                <t>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
4389                                    <list>
4390                                        <t>in case it failed, providing an appropriate error code and error message</t>
4391                                    </list>
4392                                </t>
4393                            </list>
4394                        </t>
4395    
4396                        <t>Note: the given value will be passed to all sampler engine instances.
4397                           The total amount of maximum disk streams on the running system might
4398                           thus be as big as the given value multiplied by the current amount of
4399                           engine instances.</t>
4400    
4401                         <t>Caution: when adjusting the disk stream limit, you SHOULD also
4402                            adjust the voice limit respectively and vice versa.</t>
4403                    </section>
4404    
4405              </section>              </section>
4406    
4407    
# Line 4077  Schoenebeck'> Line 4432  Schoenebeck'>
4432                  cause the sampler to switch to the respective instrument as                  cause the sampler to switch to the respective instrument as
4433                  reflected by the current MIDI instrument map.</t>                  reflected by the current MIDI instrument map.</t>
4434    
4435                  <section title="Create a new MIDI instrument map" anchor="ADD MIDI_INSTRUMENT MAP">                  <section title="Create a new MIDI instrument map" anchor="ADD MIDI_INSTRUMENT_MAP">
4436                      <t>The front-end can add a new MIDI instrument map by sending                      <t>The front-end can add a new MIDI instrument map by sending
4437                      the following command:</t>                      the following command:</t>
4438                      <t>                      <t>
# Line 4087  Schoenebeck'> Line 4442  Schoenebeck'>
4442                      </t>                      </t>
4443                      <t>Where &lt;name&gt; is an optional argument allowing to                      <t>Where &lt;name&gt; is an optional argument allowing to
4444                      assign a custom name to the new map. MIDI instrument Map                      assign a custom name to the new map. MIDI instrument Map
4445                      names do not have to be unique.</t>                      names do not have to be unique, but MUST be encapsulated
4446                        into apostrophes and support escape sequences as described
4447                        in chapter "<xref target="character_set">Character Set and Escape Sequences</xref>".
4448                        </t>
4449    
4450                      <t>Possible Answers:</t>                      <t>Possible Answers:</t>
4451                      <t>                      <t>
# Line 4258  Schoenebeck'> Line 4616  Schoenebeck'>
4616                                      <t>NAME -                                      <t>NAME -
4617                                          <list>                                          <list>
4618                                              <t>custom name of the given map,                                              <t>custom name of the given map,
4619                                              which does not have to be unique</t>                                              which does not have to be unique
4620                                                (note that this character string may contain
4621                                                 <xref target="character_set">escape sequences</xref>)</t>
4622                                          </list>                                          </list>
4623                                      </t>                                      </t>
4624                                      <t>DEFAULT -                                      <t>DEFAULT -
# Line 4294  Schoenebeck'> Line 4654  Schoenebeck'>
4654                      </t>                      </t>
4655                      <t>Where &lt;map&gt; is the numerical ID of the map and                      <t>Where &lt;map&gt; is the numerical ID of the map and
4656                      &lt;name&gt; the new custom name of the map, which does not                      &lt;name&gt; the new custom name of the map, which does not
4657                      have to be unique.</t>                      have to be unique (name MUST be encapsulated into apostrophes
4658                        and supports escape sequences as described in chapter
4659                        "<xref target="character_set">Character Set and Escape Sequences</xref>").
4660                        </t>
4661    
4662                      <t>Possible Answers:</t>                      <t>Possible Answers:</t>
4663                      <t>                      <t>
# Line 4652  Schoenebeck'> Line 5015  Schoenebeck'>
5015                                      name for this mapped instrument. It can be set and                                      name for this mapped instrument. It can be set and
5016                                      changed with the                                      changed with the
5017                                      <xref target="MAP MIDI_INSTRUMENT">"MAP MIDI_INSTRUMENT"</xref>                                      <xref target="MAP MIDI_INSTRUMENT">"MAP MIDI_INSTRUMENT"</xref>
5018                                      command and does not have to be unique.</t>                                      command and does not have to be unique.
5019                                        (note that this character string may contain
5020                                        <xref target="character_set">escape sequences</xref>)</t>
5021                                  </list>                                  </list>
5022                              </t>                              </t>
5023                              <t>"ENGINE_NAME" -                              <t>"ENGINE_NAME" -
# Line 4663  Schoenebeck'> Line 5028  Schoenebeck'>
5028                              </t>                              </t>
5029                              <t>"INSTRUMENT_FILE" -                              <t>"INSTRUMENT_FILE" -
5030                                  <list>                                  <list>
5031                                      <t>File name of the instrument.</t>                                      <t>File name of the instrument
5032                                        (note that this path may contain
5033                                        <xref target="character_set">escape sequences</xref>).</t>
5034                                  </list>                                  </list>
5035                              </t>                              </t>
5036                              <t>"INSTRUMENT_NR" -                              <t>"INSTRUMENT_NR" -
# Line 4675  Schoenebeck'> Line 5042  Schoenebeck'>
5042                                  <list>                                  <list>
5043                                      <t>Name of the loaded instrument as reflected by its file.                                      <t>Name of the loaded instrument as reflected by its file.
5044                                      In contrast to the "NAME" field, the "INSTRUMENT_NAME" field                                      In contrast to the "NAME" field, the "INSTRUMENT_NAME" field
5045                                      cannot be changed.</t>                                      cannot be changed (note that this character string may contain
5046                                        <xref target="character_set">escape sequences</xref>).</t>
5047                                  </list>                                  </list>
5048                              </t>                              </t>
5049                              <t>"LOAD_MODE" -                              <t>"LOAD_MODE" -
# Line 5242  Schoenebeck'> Line 5610  Schoenebeck'>
5610                      to the instruments database by sending the following command:</t>                      to the instruments database by sending the following command:</t>
5611                      <t>                      <t>
5612                          <list>                          <list>
5613                              <t>ADD DB_INSTRUMENTS [NON_MODAL] [&lt;mode&gt;] &lt;db_dir&gt; &lt;file_path&gt; [&lt;instr_index&gt;]</t>                              <t>ADD DB_INSTRUMENTS [NON_MODAL] [&lt;mode&gt;[ FILE_AS_DIR]] &lt;db_dir&gt; &lt;file_path&gt; [&lt;instr_index&gt;]</t>
5614                          </list>                          </list>
5615                      </t>                      </t>
5616                      <t>Where &lt;db_dir&gt; is the absolute path name of a directory                      <t>Where &lt;db_dir&gt; is the absolute path name of a directory
# Line 5287  Schoenebeck'> Line 5655  Schoenebeck'>
5655                          </list>                          </list>
5656                      </t>                      </t>
5657    
5658                     <t> If FILE_AS_DIR argument is supplied, all instruments in an instrument
5659                     file will be added to a separate directory in the instruments database, which
5660                     name will be the name of the instrument file with the file extension stripped off.
5661                     </t>
5662                   <t>The difference between regular and NON_MODAL versions of the command                   <t>The difference between regular and NON_MODAL versions of the command
5663                      is that the regular command returns when the scanning is finished                      is that the regular command returns when the scanning is finished
5664                      while NON_MODAL version returns immediately and a background process is launched.                      while NON_MODAL version returns immediately and a background process is launched.
# Line 5690  Schoenebeck'> Line 6062  Schoenebeck'>
6062                          </list>                          </list>
6063                      </t>                      </t>
6064                      <t>Where &lt;instr&gt; is the absolute path name of the instrument and                      <t>Where &lt;instr&gt; is the absolute path name of the instrument and
6065                      &lt;desc&gt; is the new description for the instrument                      &lt;desc&gt; is the new description for the instrument
6066                      (encapsulated into apostrophes, supporting escape sequences as described in chapter                      (encapsulated into apostrophes, supporting escape sequences as described in chapter
6067                      "<xref target="character_set">Character Set and Escape Sequences</xref>").</t>                      "<xref target="character_set">Character Set and Escape Sequences</xref>").</t>
6068    
# Line 5933  Schoenebeck'> Line 6305  Schoenebeck'>
6305                              <t>FORMAT INSTRUMENTS_DB</t>                              <t>FORMAT INSTRUMENTS_DB</t>
6306                          </list>                          </list>
6307                      </t>                      </t>
6308                        
6309                      <t>Possible Answers:</t>                      <t>Possible Answers:</t>
6310                      <t>                      <t>
6311                          <list>                          <list>
# Line 5952  Schoenebeck'> Line 6324  Schoenebeck'>
6324                      </t>                      </t>
6325                  </section>                  </section>
6326    
6327                    <section title="Checking for lost instrument files" anchor="FIND LOST DB_INSTRUMENT_FILES">
6328                        <t>The front-end can retrieve the list of all instrument files in the instruments database
6329                        that don't exist in the filesystem by sending the following command:</t>
6330                        <t>
6331                            <list>
6332                                <t>FIND LOST DB_INSTRUMENT_FILES</t>
6333                            </list>
6334                        </t>
6335    
6336                        <t>Possible Answers:</t>
6337                        <t>
6338                            <list>
6339                                <t>A comma separated list with the absolute path names
6340                                (encapsulated into apostrophes) of all lost instrument files.</t>
6341                                <t>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
6342                                    <list>
6343                                        <t>in case it failed, providing an appropriate error code and error message.</t>
6344                                    </list>
6345                                </t>
6346                            </list>
6347                        </t>
6348                        <t>Example:</t>
6349                        <t>
6350                            <list>
6351                                <t>C: "FIND LOST DB_INSTRUMENT_FILES"</t>
6352                                <t>S: "'/gigs/Bosendorfer 290.gig','/gigs/Steinway D.gig','/gigs/Free Piano.gig'"</t>
6353                            </list>
6354                        </t>
6355                    </section>
6356    
6357                    <section title="Replacing an instrument file" anchor="SET DB_INSTRUMENT FILE_PATH">
6358                        <t>The front-end can substitute all occurrences of an instrument file
6359                        in the instruments database with a new one by sending the following command:</t>
6360                        <t>
6361                            <list>
6362                                <t>SET DB_INSTRUMENT FILE_PATH &lt;old_path&gt; &lt;new_path&gt;</t>
6363                            </list>
6364                        </t>
6365                        <t>Where &lt;old_path&gt; is the absolute path name of the instrument file
6366                        to substitute with &lt;new_path&gt;.</t>
6367    
6368                        <t>Possible Answers:</t>
6369                        <t>
6370                            <list>
6371                                <t>"OK" -
6372                                    <list>
6373                                        <t>on success</t>
6374                                    </list>
6375                                </t>
6376                                <t>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
6377                                    <list>
6378                                        <t>in case it failed, providing an appropriate error code and error message.</t>
6379                                    </list>
6380                                </t>
6381                            </list>
6382                        </t>
6383    
6384                        <t>Example:</t>
6385                        <t>
6386                            <list>
6387                                <t>C: "SET DB_INSTRUMENT FILE_PATH '/gigs/Bosendorfer 290.gig' '/gigs/pianos/Bosendorfer 290.gig'"</t>
6388                                <t>S: "OK"</t>
6389                            </list>
6390                        </t>
6391                    </section>
6392    
6393              </section>              </section>
6394    
6395    
# Line 5972  Schoenebeck'> Line 6410  Schoenebeck'>
6410                      editor application by sending the following command:</t>                      editor application by sending the following command:</t>
6411                      <t>                      <t>
6412                          <list>                          <list>
6413                              <t>EDIT INSTRUMENT &lt;sampler-channel&gt;</t>                              <t>EDIT CHANNEL INSTRUMENT &lt;sampler-channel&gt;</t>
6414                          </list>                          </list>
6415                      </t>                      </t>
6416                      <t>Where &lt;sampler-channel&gt; should be replaced by the                      <t>Where &lt;sampler-channel&gt; should be replaced by the
# Line 6024  Schoenebeck'> Line 6462  Schoenebeck'>
6462                      <t>Examples:</t>                      <t>Examples:</t>
6463                      <t>                      <t>
6464                          <list>                          <list>
6465                              <t>C: "EDIT INSTRUMENT 0"</t>                              <t>C: "EDIT CHANNEL INSTRUMENT 0"</t>
6466                              <t>S: "OK"</t>                              <t>S: "OK"</t>
6467                          </list>                          </list>
6468                      </t>                      </t>
6469                  </section>                  </section>
6470              </section>              </section>
         </section>  
6471    
6472                <section title="Managing Files" anchor="file_management">
6473                    <t>You can query detailed informations about files located
6474                    at the same system where the sampler instance is running on.
6475                    Using this command set allows to retrieve file informations
6476                    even remotely from another machine.</t>
6477    
6478                    <section title="Retrieving amount of instruments of a file" anchor="GET FILE INSTRUMENTS">
6479                        <t>The front-end can retrieve the amount of instruments
6480                        within a given instrument file by sending the
6481                        following command:</t>
6482                        <t>
6483                            <list>
6484                                <t>GET FILE INSTRUMENTS &lt;filename&gt;</t>
6485                            </list>
6486                        </t>
6487                        <t>Where &lt;filename&gt; is the name of the instrument
6488                        file (encapsulated into apostrophes, supporting escape
6489                        sequences as described in chapter
6490                        "<xref target="character_set">Character Set and Escape
6491                            Sequences</xref>").</t>
6492    
6493                        <t>The sampler will try to ask all sampler engines,
6494                        whether they support the given file and ask the first
6495                        engine with a positive answer for the amount of
6496                        instruments.</t>
6497    
6498                        <t>Possible Answers:</t>
6499                        <t>
6500                            <list>
6501                                <t>On success, the sampler will answer by
6502                                   returning the amount of instruments.
6503                                </t>
6504                                <t>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
6505                                    <list>
6506                                        <t>if the file could not be handled</t>
6507                                    </list>
6508                                </t>
6509                            </list>
6510                        </t>
6511    
6512                        <t>Examples:</t>
6513                        <t>
6514                            <list>
6515                                <t>C: "GET FILE INSTRUMENTS 'D:/Sounds/Foo.gig'"</t>
6516                                <t>S: "10"</t>
6517                            </list>
6518                        </t>
6519                    </section>
6520    
6521                    <section title="Retrieving all instruments of a file" anchor="LIST FILE INSTRUMENTS">
6522                        <t>The front-end can retrieve a list of all instruments
6523                        within a given instrument file by sending the
6524                        following command:</t>
6525                        <t>
6526                            <list>
6527                                <t>LIST FILE INSTRUMENTS &lt;filename&gt;</t>
6528                            </list>
6529                        </t>
6530                        <t>Where &lt;filename&gt; is the name of the instrument
6531                        file (encapsulated into apostrophes, supporting escape
6532                        sequences as described in chapter
6533                        "<xref target="character_set">Character Set and Escape
6534                            Sequences</xref>").</t>
6535    
6536                        <t>The sampler will try to ask all sampler engines,
6537                        whether they support the given file and ask the first
6538                        engine with a positive answer for a list of IDs for the
6539                        instruments in the given file.</t>
6540    
6541                        <t>Possible Answers:</t>
6542                        <t>
6543                            <list>
6544                                <t>On success, the sampler will answer by
6545                                   returning a comma separated list of
6546                                   instrument IDs.
6547                                </t>
6548                                <t>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
6549                                    <list>
6550                                        <t>if the file could not be handled</t>
6551                                    </list>
6552                                </t>
6553                            </list>
6554                        </t>
6555    
6556                        <t>Examples:</t>
6557                        <t>
6558                            <list>
6559                                <t>C: "LIST FILE INSTRUMENTS 'D:/Sounds/Foo.gig'"</t>
6560                                <t>S: "0,1,2,3,4,5,6,7,8,9"</t>
6561                            </list>
6562                        </t>
6563                    </section>
6564    
6565                    <section title="Retrieving informations about one instrument in a file" anchor="GET FILE INSTRUMENT INFO">
6566                        <t>The front-end can retrieve detailed informations
6567                        about a specific instrument within a given instrument
6568                        file by sending the following command:</t>
6569                        <t>
6570                            <list>
6571                                <t>GET FILE INSTRUMENT INFO &lt;filename&gt;
6572                                &lt;instr-id&gt;</t>
6573                            </list>
6574                        </t>
6575                        <t>Where &lt;filename&gt; is the name of the instrument
6576                        file (encapsulated into apostrophes, supporting escape
6577                        sequences as described in chapter
6578                        "<xref target="character_set">Character Set and Escape
6579                            Sequences</xref>") and &lt;instr-id&gt; is the numeric
6580                        instrument ID as returned by the
6581                        <xref target="LIST FILE INSTRUMENTS">
6582                        "LIST FILE INSTRUMENTS"</xref> command.</t>
6583    
6584                        <t>The sampler will try to ask all sampler engines,
6585                        whether they support the given file and ask the first
6586                        engine with a positive answer for informations about the
6587                        specific instrument in the given file.</t>
6588    
6589                        <t>Possible Answers:</t>
6590                        <t>
6591                            <list>
6592                                <t>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
6593                                Each answer line begins with the settings category name
6594                                followed by a colon and then a space character &lt;SP&gt; and finally
6595                                the info character string to that setting category. At the
6596                                moment the following categories are defined:</t>
6597    
6598                                <t>
6599                                    <list>
6600                                        <t>NAME -
6601                                            <list>
6602                                                <t>name of the instrument as
6603                                                stored in the instrument file</t>
6604                                            </list>
6605                                        </t>
6606                                        <t>FORMAT_FAMILY -
6607                                            <list>
6608                                                <t>name of the sampler format
6609                                                of the given instrument</t>
6610                                            </list>
6611                                        </t>
6612                                        <t>FORMAT_VERSION -
6613                                            <list>
6614                                                <t>version of the sampler format
6615                                                the instrumen is stored as</t>
6616                                            </list>
6617                                        </t>
6618                                        <t>PRODUCT -
6619                                            <list>
6620                                                <t>official product name of the
6621                                                instrument as stored in the file
6622                                                </t>
6623                                            </list>
6624                                        </t>
6625                                        <t>ARTISTS -
6626                                            <list>
6627                                                <t>artists / sample library
6628                                                vendor of the instrument</t>
6629                                            </list>
6630                                        </t>
6631                                        <t>KEY_BINDINGS -
6632                                            <list>
6633                                                <t>comma separated list of integer values representing
6634                                                   the instrument's key mapping in the range between 0 .. 127,
6635                                                   reflecting the analog meaning of the MIDI specification.</t>
6636                                            </list>
6637                                        </t>
6638                                        <t>KEYSWITCH_BINDINGS -
6639                                            <list>
6640                                                <t>comma separated list of integer values representing
6641                                                   the instrument's keyswitch mapping in the range between 0 .. 127,
6642                                                   reflecting the analog meaning of the MIDI specification.</t>
6643                                            </list>
6644                                        </t>
6645                                    </list>
6646                                </t>
6647                            </list>
6648                        </t>
6649                        <t>The mentioned fields above don't have to be in particular order.</t>
6650    
6651                        <t>Example:</t>
6652                        <t>
6653                            <list>
6654                                <t>C: "GET FILE INSTRUMENT INFO 'D:/Sounds/Foo.gig' 0"</t>
6655                                <t>S: "NAME: Lunatic Loops"</t>
6656                                <t>&nbsp;&nbsp;&nbsp;"FORMAT_FAMILY: GIG"</t>
6657                                <t>&nbsp;&nbsp;&nbsp;"FORMAT_VERSION: 3"</t>
6658                                <t>&nbsp;&nbsp;&nbsp;"PRODUCT: The Backbone Bongo Beats"</t>
6659                                <t>&nbsp;&nbsp;&nbsp;"ARTISTS: Jimmy the Fish"</t>
6660                                <t>&nbsp;&nbsp;&nbsp;"."</t>
6661                            </list>
6662                        </t>
6663                    </section>
6664                </section>
6665                <section title="Managing Effects" anchor="effects">
6666                    <t>Audio effects (e.g. reverb, delay, compression) can be
6667                    applied to the audio signals generated by the sampler. The
6668                    sampler usually provides a set of internal audio effects for
6669                    this task. The exact set of effects depends on the availability
6670                    of third party effect plugins installed on the system where the
6671                    sampler runs on.</t>
6672                    <t>At the moment only "send effects" are supported. Support for
6673                    "insert effects" and "master effects" is planned to be added at
6674                    a later point.</t>
6675                    <t>The following commands allow to retrieve the set of internal
6676                    effects available to the sampler, detailed informations about
6677                    those effects and to create and destroy instances of such
6678                    effects. After an instance of an effect is created, the effect
6679                    instance can be inserted into the audio signal path of the
6680                    sampler, e.g. as send effect.</t>
6681                    <t>The sampler allows to create an arbitrary amount of so called
6682                    send effect chains. Each effect chain can host an arbitrary
6683                    amount of effect instances. The output of the first effect
6684                    instance in an effect chain is fed to the input of the second
6685                    effect instance of the chain and so on. So effects in one chain
6686                    are processed sequentially. Send effect chains however are
6687                    processed in parallel to other send effect chains. Audio signals
6688                    of sampler channels are fed to send effects by creating FX sends
6689                    to the respective sampler channel and assigning a destination
6690                    send effect to that FX by using the
6691                    <xref target="SET FX_SEND SEND_EFFECT">"SET FX_SEND SEND_EFFECT"</xref>
6692                    command. The latter allows to route the FX send to the beginning
6693                    of a send effect chain, as well as directly to any other
6694                    position of the send effect chain.</t>
6695    
6696                    <section title="Retrieve amount of available effects" anchor="GET AVAILABLE_EFFECTS">
6697                        <t>The front-end can retrieve the amount of internal
6698                        effects, available to the sampler by sending
6699                        the following command:</t>
6700                        <t>
6701                            <list>
6702                                <t>GET AVAILABLE_EFFECTS</t>
6703                            </list>
6704                        </t>
6705    
6706                        <t>Possible Answers:</t>
6707                        <t>
6708                            <list>
6709                                <t>The sampler will answer by returning the current
6710                                number of effects available to the sampler.</t>
6711                            </list>
6712                        </t>
6713    
6714                        <t>Examples:</t>
6715                        <t>
6716                            <list>
6717                                <t>C: "GET AVAILABLE_EFFECTS"</t>
6718                                <t>S: "129"</t>
6719                            </list>
6720                        </t>
6721                    </section>
6722    
6723                    <section title="Get list of available effects" anchor="LIST AVAILABLE_EFFECTS">
6724                        <t>The set of available internal effects can change at
6725                        runtime. The front-end can retrieve the list of internal
6726                        effects, available to the sampler by sending the following
6727                        command:</t>
6728                        <t>
6729                            <list>
6730                                <t>LIST AVAILABLE_EFFECTS</t>
6731                            </list>
6732                        </t>
6733    
6734                        <t>Possible Answers:</t>
6735                        <t>
6736                            <list>
6737                                <t>The sampler will answer by returning a comma
6738                                separated list with numerical IDs of effects. Note:
6739                                the numercial ID of an effect is generated by the
6740                                sampler for the current moment. The numerical ID of
6741                                the same effect can change at runtime, e.g. when the
6742                                user requests a rescan of available effect plugins.
6743                                </t>
6744                            </list>
6745                        </t>
6746                        <t>Example:</t>
6747                        <t>
6748                            <list>
6749                                <t>C: "LIST AVAILABLE_EFFECTS"</t>
6750                                <t>S: "5,6,7,120,121,122,123,124"</t>
6751                            </list>
6752                        </t>
6753                    </section>
6754    
6755                    <section title="Retrieving general information about an effect" anchor="GET EFFECT INFO">
6756                        <t>The front-end can ask for general informations about an
6757                        effect by sending the following command:</t>
6758                        <t>
6759                            <list>
6760                                <t>GET EFFECT INFO &lt;effect-index&gt;</t>
6761                            </list>
6762                        </t>
6763                        <t>Where &lt;effect-index&gt; is the numerical ID of an
6764                        effect as returned by the
6765                        <xref target="LIST AVAILABLE_EFFECTS">"LIST AVAILABLE_EFFECTS"</xref>
6766                        command.</t>
6767                        <t>Possible Answers:</t>
6768                        <t>
6769                            <list>
6770                                <t>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
6771                                Each answer line begins with the effect information
6772                                category name, followed by a colon and then a space
6773                                character &lt;SP&gt; and finally the info character
6774                                string to that effect information category. At the
6775                                moment the following categories are defined:</t>
6776                                <t>
6777                                    <list>
6778                                        <t>SYSTEM -
6779                                            <list>
6780                                                <t>name of the effect plugin system
6781                                                the effect is based on
6782                                                (e.g. "LADSPA")</t>
6783                                            </list>
6784                                        </t>
6785                                        <t>MODULE -
6786                                            <list>
6787                                                <t>module of the effect plugin
6788                                                system that contains this effect,
6789                                                the module is usually the
6790                                                dynamic-linked library (DLL)
6791                                                filename of the effect plugin,
6792                                                including full path (note that this
6793                                                filename may contain
6794                                                <xref target="character_set">escape sequences</xref>)</t>
6795                                            </list>
6796                                        </t>
6797                                        <t>NAME -
6798                                            <list>
6799                                                <t>character string defining the
6800                                                unique name of the effect within its
6801                                                module (note that the character
6802                                                string may contain
6803                                                <xref target="character_set">escape sequences</xref>)</t>
6804                                            </list>
6805                                        </t>
6806                                        <t>DESCRIPTION -
6807                                            <list>
6808                                                <t>human readable name of the
6809                                                effect, intended to be displayed in
6810                                                user interfaces (note that the
6811                                                character string may contain
6812                                                <xref target="character_set">escape sequences</xref>)</t>
6813                                            </list>
6814                                        </t>
6815                                    </list>
6816                                </t>
6817                            </list>
6818                        </t>
6819                        <t>The mentioned fields above don't have to be in particular order.</t>
6820    
6821                        <t>Example:</t>
6822                        <t>
6823                            <list>
6824                                <t>C: "GET EFFECT INFO 121"</t>
6825                                <t>S: "SYSTEM: LADSPA"</t>
6826                                <t>&nbsp;&nbsp;&nbsp;"MODULE: /usr/lib/ladspa/lowpass_iir_1891.so"</t>
6827                                <t>&nbsp;&nbsp;&nbsp;"NAME: lowpass_iir"</t>
6828                                <t>&nbsp;&nbsp;&nbsp;"DESCRIPTION: Glame Lowpass Filter"</t>
6829                                <t>&nbsp;&nbsp;&nbsp;"."</t>
6830                            </list>
6831                        </t>
6832                    </section>
6833    
6834                    <section title="Creating an instance of an effect by its portable ID" anchor="CREATE EFFECT_INSTANCE">
6835                        <t>The front-end can spawn an instance of the desired
6836                        effect by sending the following command:</t>
6837                        <t>
6838                            <list>
6839                                <t>CREATE EFFECT_INSTANCE &lt;effect-system&gt; &lt;module&gt; &lt;effect-name&gt;</t>
6840                            </list>
6841                        </t>
6842                        <t>Where &lt;effect-system&gt; is the "SYSTEM" field,
6843                        &lt;module&gt; the "MODULE" field and &lt;effect-name&gt;
6844                        the "NAME" field as returned by the
6845                        <xref target="GET EFFECT INFO">"GET EFFECT INFO"</xref>
6846                        command. The filename of argument &lt;module&gt; and the
6847                        character string of argument &lt;effect-name&gt; may contain
6848                        <xref target="character_set">escape sequences</xref>.</t>
6849    
6850                        <t>The sampler will try to load the requested effect and to
6851                        create an instance of it. To allow loading the same effect
6852                        on a different machine, probably even running a completely
6853                        different operating system (e.g. Linux vs. Windows), the
6854                        sampler tries to match &lt;module&gt; "softly". That means
6855                        it first tries to find an effect that exactly matches the
6856                        given &lt;module&gt; argument. If there is no exact match,
6857                        the sampler will try to lower the restrictions on matching
6858                        the &lt;module&gt; argument more and more, e.g. by ignoring
6859                        upper / lower case differences and by ignoring the path of
6860                        the DLL filename and file extension. If there is still no
6861                        match at the end, the sampler will try to ignore the
6862                        &lt;module&gt; argument completely and as a last resort
6863                        search for an effect that only matches the given
6864                        &lt;effect-system&gt; and &lt;effect-name&gt; arguments.</t>
6865    
6866                        <t>Possible Answers:</t>
6867                        <t>
6868                            <list>
6869                                <t>"OK[&lt;effect-instance&gt;]" -
6870                                    <list>
6871                                        <t>in case the effect instance was
6872                                        successfully created, where
6873                                        &lt;effect-instance&gt; is the numerical ID
6874                                        of the new effect instance</t>
6875                                    </list>
6876                                </t>
6877                                <t>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
6878                                    <list>
6879                                        <t>in case the effect instance was spawned
6880                                        successfully, but there are noteworthy
6881                                        issue(s) related, providing an appropriate
6882                                        warning code and warning message</t>
6883                                    </list>
6884                                </t>
6885                                <t>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
6886                                    <list>
6887                                        <t>if the effect could not be instantiated</t>
6888                                    </list>
6889                                </t>
6890                            </list>
6891                        </t>
6892    
6893                        <t>Examples:</t>
6894                        <t>
6895                            <list>
6896                                <t>C: "CREATE EFFECT_INSTANCE LADSPA '/usr/lib/ladspa/mod_delay_1419.so' 'modDelay'"</t>
6897                                <t>S: "OK[0]"</t>
6898                            </list>
6899                        </t>
6900                    </section>
6901    
6902                    <section title="Creating an instance of an effect by its numerical ID" anchor="CREATE EFFECT_INSTANCE (non-portable)">
6903                        <t>The front-end can spawn an instance of the desired
6904                        effect by sending the following command:</t>
6905                        <t>
6906                            <list>
6907                                <t>CREATE EFFECT_INSTANCE &lt;effect-index&gt;</t>
6908                            </list>
6909                        </t>
6910                        <t>Where &lt;effect-index&gt; is the numerical ID of the
6911                        effect as returned by the
6912                        <xref target="LIST AVAILABLE_EFFECTS">"LIST AVAILABLE_EFFECTS"</xref>
6913                        command.</t>
6914    
6915                        <t>The sampler will try to load the requested effect and to
6916                        create an instance of it.</t>
6917    
6918                        <t>Note: Since the numerical ID of a certain effect can
6919                        change at any time, you should not use this command in
6920                        LSCP files to restore a certain effect at a later time! To
6921                        store a sampler session including all its effects, use the
6922                        <xref target="CREATE EFFECT_INSTANCE">portable text-based
6923                        version of "CREATE EFFECT_INSTANCE"</xref> instead! This
6924                        allows to restore a sampler session with all its effects
6925                        also on other machines, possibly even running a completely
6926                        different operating system (e.g. Linux vs. Windows), with
6927                        different plugin directories or plugin DLL names.</t>
6928    
6929                        <t>Possible Answers:</t>
6930                        <t>
6931                            <list>
6932                                <t>"OK[&lt;effect-instance&gt;]" -
6933                                    <list>
6934                                        <t>in case the effect instance was
6935                                        successfully created, where
6936                                        &lt;effect-instance&gt; is the numerical ID
6937                                        of the new effect instance</t>
6938                                    </list>
6939                                </t>
6940                                <t>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
6941                                    <list>
6942                                        <t>in case the effect instance was spawned
6943                                        successfully, but there are noteworthy
6944                                        issue(s) related, providing an appropriate
6945                                        warning code and warning message</t>
6946                                    </list>
6947                                </t>
6948                                <t>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
6949                                    <list>
6950                                        <t>if the effect could not be instantiated</t>
6951                                    </list>
6952                                </t>
6953                            </list>
6954                        </t>
6955    
6956                        <t>Examples:</t>
6957                        <t>
6958                            <list>
6959                                <t>C: "CREATE EFFECT_INSTANCE 72"</t>
6960                                <t>S: "OK[5]"</t>
6961                            </list>
6962                        </t>
6963                    </section>
6964    
6965                    <section title="Destroy an effect instance" anchor="DESTROY EFFECT_INSTANCE">
6966                        <t>The front-end can destroy an unusued effect instance and
6967                        thus freeing it from memory by sending the following command:</t>
6968                        <t>
6969                            <list>
6970                                <t>DESTROY EFFECT_INSTANCE &lt;effect-instance&gt;</t>
6971                            </list>
6972                        </t>
6973                        <t>Where &lt;effect-instance&gt; is the numerical ID of the
6974                        effect instance as returned by the
6975                        <xref target="CREATE EFFECT_INSTANCE">"CREATE EFFECT_INSTANCE"</xref> or
6976                        <xref target="LIST EFFECT_INSTANCES">"LIST EFFECT_INSTANCES"</xref>
6977                        command.</t>
6978    
6979                        <t>The effect instance can only be destroyed if it's not
6980                        used in any part of the sampler's audio signal path anymore.
6981                        If the effect instance is still in use somewhere, trying to
6982                        destroy the effect instance will result in an error
6983                        message.</t>
6984    
6985                        <t>Possible Answers:</t>
6986                        <t>
6987                            <list>
6988                                <t>"OK" -
6989                                    <list>
6990                                        <t>in case the effect instance was successfully destroyed</t>
6991                                    </list>
6992                                </t>
6993                                <t>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
6994                                    <list>
6995                                        <t>in case it failed, providing an appropriate error code and
6996                                        error message</t>
6997                                    </list>
6998                                </t>
6999                            </list>
7000                        </t>
7001    
7002                        <t>Examples:</t>
7003                        <t>
7004                            <list>
7005                                <t>C: "DESTROY EFFECT_INSTANCE 5"</t>
7006                                <t>S: "OK"</t>
7007                            </list>
7008                        </t>
7009                    </section>
7010    
7011                    <section title="Retrieve amount of effect instances" anchor="GET EFFECT_INSTANCES">
7012                        <t>The front-end can retrieve the current amount of effect
7013                        instances by sending the following command:</t>
7014                        <t>
7015                            <list>
7016                                <t>GET EFFECT_INSTANCES</t>
7017                            </list>
7018                        </t>
7019    
7020                        <t>Possible Answers:</t>
7021                        <t>
7022                            <list>
7023                                <t>The sampler will answer by returning the current
7024                                number of effect instances created and not yet
7025                                destroyed in the current sampler session.</t>
7026                            </list>
7027                        </t>
7028    
7029                        <t>Examples:</t>
7030                        <t>
7031                            <list>
7032                                <t>C: "GET EFFECT_INSTANCES"</t>
7033                                <t>S: "14"</t>
7034                            </list>
7035                        </t>
7036                    </section>
7037    
7038                    <section title="Get list of effect instances" anchor="LIST EFFECT_INSTANCES">
7039                        <t>The front-end can retrieve the current list of effect
7040                        instances by sending the following command:</t>
7041                        <t>
7042                            <list>
7043                                <t>LIST EFFECT_INSTANCES</t>
7044                            </list>
7045                        </t>
7046    
7047                        <t>Possible Answers:</t>
7048                        <t>
7049                            <list>
7050                                <t>The sampler will answer by returning a comma
7051                                separated list with numerical IDs of effects
7052                                instances.
7053                                </t>
7054                            </list>
7055                        </t>
7056                        <t>Example:</t>
7057                        <t>
7058                            <list>
7059                                <t>C: "LIST EFFECT_INSTANCES"</t>
7060                                <t>S: "9,11,14,15,16,17,25"</t>
7061                            </list>
7062                        </t>
7063                    </section>
7064    
7065                    <section title="Retrieving current information about an effect instance" anchor="GET EFFECT_INSTANCE INFO">
7066                        <t>The front-end can ask for the current informations about
7067                        a particular effect instance by sending the following command:</t>
7068                        <t>
7069                            <list>
7070                                <t>GET EFFECT_INSTANCE INFO &lt;effect-instance&gt;</t>
7071                            </list>
7072                        </t>
7073                        <t>Where &lt;effect-instance&gt; is the numerical ID of an
7074                        effect instance as returned by the
7075                        <xref target="CREATE EFFECT_INSTANCE">"CREATE EFFECT_INSTANCE"</xref>
7076                        or
7077                        <xref target="LIST EFFECT_INSTANCES">"LIST EFFECT_INSTANCES"</xref>
7078                        command.</t>
7079    
7080                        <t>Possible Answers:</t>
7081                        <t>
7082                            <list>
7083                                <t>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
7084                                Each answer line begins with the information
7085                                category name, followed by a colon and then a space
7086                                character &lt;SP&gt; and finally the info character
7087                                string to that information category. At the
7088                                moment the following categories are defined:</t>
7089                                <t>
7090                                    <list>
7091                                        <t>SYSTEM -
7092                                            <list>
7093                                                <t>name of the effect plugin system
7094                                                the effect is based on
7095                                                (e.g. "LADSPA")</t>
7096                                            </list>
7097                                        </t>
7098                                        <t>MODULE -
7099                                            <list>
7100                                                <t>module of the effect plugin
7101                                                system that contains this effect,
7102                                                the module is usually the
7103                                                dynamic-linked library (DLL)
7104                                                filename of the effect plugin,
7105                                                including full path (note that this
7106                                                filename may contain
7107                                                <xref target="character_set">escape sequences</xref>)</t>
7108                                            </list>
7109                                        </t>
7110                                        <t>NAME -
7111                                            <list>
7112                                                <t>character string defining the
7113                                                unique name of the effect within its
7114                                                module (note that the character
7115                                                string may contain
7116                                                <xref target="character_set">escape sequences</xref>)</t>
7117                                            </list>
7118                                        </t>
7119                                        <t>DESCRIPTION -
7120                                            <list>
7121                                                <t>human readable name of the
7122                                                effect, intended to be displayed in
7123                                                user interfaces (note that the
7124                                                character string may contain
7125                                                <xref target="character_set">escape sequences</xref>)</t>
7126                                            </list>
7127                                        </t>
7128                                        <t>INPUT_CONTROLS -
7129                                            <list>
7130                                                <t>amount of input controls the
7131                                                effect instance provides, to allow
7132                                                controlling the effect parameters in
7133                                                realtime</t>
7134                                            </list>
7135                                        </t>
7136                                    </list>
7137                                </t>
7138                            </list>
7139                        </t>
7140                        <t>The mentioned fields above don't have to be in particular order.</t>
7141    
7142                        <t>Example:</t>
7143                        <t>
7144                            <list>
7145                                <t>C: "GET EFFECT_INSTANCE INFO 3"</t>
7146                                <t>S: "SYSTEM: LADSPA"</t>
7147                                <t>&nbsp;&nbsp;&nbsp;"MODULE: /usr/lib/ladspa/mod_delay_1419.so"</t>
7148                                <t>&nbsp;&nbsp;&nbsp;"NAME: modDelay"</t>
7149                                <t>&nbsp;&nbsp;&nbsp;"DESCRIPTION: Modulatable delay"</t>
7150                                <t>&nbsp;&nbsp;&nbsp;"INPUT_CONTROLS: 1"</t>
7151                                <t>&nbsp;&nbsp;&nbsp;"."</t>
7152                            </list>
7153                        </t>
7154                    </section>
7155    
7156                    <section title="Retrieving information about an effect parameter" anchor="GET EFFECT_INSTANCE_INPUT_CONTROL INFO">
7157                        <t>Effects typically provide a certain set of effect
7158                        parameters which can be altered by the user in realtime
7159                        (e.g. depth of a reverb effect, duration of a delay effect,
7160                        dry / wet signal ratio). Those controllable effect parameters
7161                        are called "input controls". The front-end can ask for the
7162                        current informations of an effect instance's input control
7163                        by sending the following command:</t>
7164                        <t>
7165                            <list>
7166                                <t>GET EFFECT_INSTANCE_INPUT_CONTROL INFO &lt;effect-instance&gt; &lt;input-control&gt;</t>
7167                            </list>
7168                        </t>
7169                        <t>Where &lt;effect-instance&gt; is the numerical ID of an
7170                        effect instance as returned by the
7171                        <xref target="CREATE EFFECT_INSTANCE">"CREATE EFFECT_INSTANCE"</xref>
7172                        or
7173                        <xref target="LIST EFFECT_INSTANCES">"LIST EFFECT_INSTANCES"</xref>
7174                        command and &lt;input-control&gt; is the index of the input
7175                        control within the numerical bounds as returned by the
7176                        "INPUT_CONTROLS" field of the
7177                        <xref target="GET EFFECT_INSTANCE INFO">"GET EFFECT_INSTANCE INFO"</xref>
7178                        command.</t>
7179    
7180                        <t>Possible Answers:</t>
7181                        <t>
7182                            <list>
7183                                <t>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
7184                                Each answer line begins with the information
7185                                category name, followed by a colon and then a space
7186                                character &lt;SP&gt; and finally the info character
7187                                string to that information category. There are
7188                                information categories which are always returned,
7189                                independent of the respective effect parameter and
7190                                there are optional information categories
7191                                which are only shown for certain effect parameters.
7192                                At the moment the following categories are defined:</t>
7193                                <t>
7194                                    <list>
7195                                        <t>DESCRIPTION -
7196                                            <list>
7197                                                <t>(always returned)
7198                                                human readable name of the
7199                                                effect parameter, intended to be
7200                                                displayed in user interfaces (note
7201                                                that the character string may
7202                                                contain <xref target="character_set">escape sequences</xref>)</t>
7203                                            </list>
7204                                        </t>
7205                                        <t>VALUE -
7206                                            <list>
7207                                                <t>
7208                                                (always returned)
7209                                                current (optional dotted)
7210                                                floating point value of this effect
7211                                                parameter</t>
7212                                            </list>
7213                                        </t>
7214                                        <t>RANGE_MIN -
7215                                            <list>
7216                                                <t>
7217                                                (optionally returned)
7218                                                minimum allowed value for this
7219                                                effect parameter</t>
7220                                            </list>
7221                                        </t>
7222                                        <t>RANGE_MAX -
7223                                            <list>
7224                                                <t>
7225                                                (optionally returned)
7226                                                maximum allowed value for this
7227                                                effect parameter</t>
7228                                            </list>
7229                                        </t>
7230                                        <t>POSSIBILITIES -
7231                                            <list>
7232                                                <t>
7233                                                (optionally returned)
7234                                                comma separated list of
7235                                                (optional dotted) floating point
7236                                                numbers, reflecting the exact set of
7237                                                possible values for this effect
7238                                                parameter</t>
7239                                            </list>
7240                                        </t>
7241                                        <t>DEFAULT -
7242                                            <list>
7243                                                <t>
7244                                                (optionally returned)
7245                                                default value of this effect
7246                                                parameter</t>
7247                                            </list>
7248                                        </t>
7249                                    </list>
7250                                </t>
7251                            </list>
7252                        </t>
7253                        <t>The mentioned fields above don't have to be in particular order.</t>
7254    
7255                        <t>Example:</t>
7256                        <t>
7257                            <list>
7258                                <t>C: "GET EFFECT_INSTANCE_INPUT_CONTROL INFO 1 0"</t>
7259                                <t>S: "SYSTEM: LADSPA"</t>
7260                                <t>&nbsp;&nbsp;&nbsp;"DESCRIPTION: Base delay (s)"</t>
7261                                <t>&nbsp;&nbsp;&nbsp;"VALUE: 0.500"</t>
7262                                <t>&nbsp;&nbsp;&nbsp;"RANGE_MIN: 0.000"</t>
7263                                <t>&nbsp;&nbsp;&nbsp;"."</t>
7264                            </list>
7265                        </t>
7266                    </section>
7267    
7268                    <section title="Altering an effect parameter" anchor="SET EFFECT_INSTANCE_INPUT_CONTROL VALUE">
7269                        <t>The front-end can alter the current value of an effect
7270                        parameter by sending the following command:</t>
7271                        <t>
7272                            <list>
7273                                <t>SET EFFECT_INSTANCE_INPUT_CONTROL VALUE &lt;effect-instance&gt; &lt;input-control&gt; &lt;value&gt;</t>
7274                            </list>
7275                        </t>
7276                        <t>Where &lt;effect-instance&gt; is the numerical ID of the
7277                        effect instance as returned by the
7278                        <xref target="CREATE EFFECT_INSTANCE">"CREATE EFFECT_INSTANCE"</xref> or
7279                        <xref target="LIST EFFECT_INSTANCES">"LIST EFFECT_INSTANCES"</xref>
7280                        command, &lt;input-control&gt; is the index of the input
7281                        control within the numerical bounds as returned by the
7282                        "INPUT_CONTROLS" field of the
7283                        <xref target="GET EFFECT_INSTANCE INFO">"GET EFFECT_INSTANCE INFO"</xref>
7284                        command and &lt;value&gt; is the new (optional dotted)
7285                        floating point value for this effect parameter.</t>
7286    
7287                        <t>Possible Answers:</t>
7288                        <t>
7289                            <list>
7290                                <t>"OK" -
7291                                    <list>
7292                                        <t>in case the effect was altered successfully</t>
7293                                    </list>
7294                                </t>
7295                                <t>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
7296                                    <list>
7297                                        <t>in case it failed, providing an appropriate error code and
7298                                        error message</t>
7299                                    </list>
7300                                </t>
7301                            </list>
7302                        </t>
7303    
7304                        <t>Examples:</t>
7305                        <t>
7306                            <list>
7307                                <t>C: "SET EFFECT_INSTANCE_INPUT_CONTROL VALUE 0 1 0.5"</t>
7308                                <t>S: "OK"</t>
7309                            </list>
7310                        </t>
7311                    </section>
7312    
7313                    <section title="Retrieve amount of send effect chains" anchor="GET SEND_EFFECT_CHAINS">
7314                        <t>The front-end can retrieve the current amount of send
7315                        effect chains of an audio output device by sending the
7316                        following command:</t>
7317                        <t>
7318                            <list>
7319                                <t>GET SEND_EFFECT_CHAINS &lt;audio-device&gt;</t>
7320                            </list>
7321                        </t>
7322                        <t>Where &lt;audio-device&gt; should be replaced by the
7323                        numerical ID of the audio output device as given by the
7324                        <xref target="CREATE AUDIO_OUTPUT_DEVICE">"CREATE AUDIO_OUTPUT_DEVICE"</xref>
7325                        or <xref target="LIST AUDIO_OUTPUT_DEVICES">"LIST AUDIO_OUTPUT_DEVICES"</xref>
7326                        command.</t>
7327    
7328                        <t>Possible Answers:</t>
7329                        <t>
7330                            <list>
7331                                <t>The sampler will answer by returning the current
7332                                number of send effect chains of the supplied audio
7333                                output device.</t>
7334                            </list>
7335                        </t>
7336    
7337                        <t>Examples:</t>
7338                        <t>
7339                            <list>
7340                                <t>C: "GET SEND_EFFECT_CHAINS 0"</t>
7341                                <t>S: "4"</t>
7342                            </list>
7343                        </t>
7344                    </section>
7345    
7346                    <section title="Retrieve list of send effect chains" anchor="LIST SEND_EFFECT_CHAINS">
7347                        <t>The front-end can retrieve the current list of send
7348                        effect chains of an audio output device by sending the
7349                        following command:</t>
7350                        <t>
7351                            <list>
7352                                <t>LIST SEND_EFFECT_CHAINS &lt;audio-device&gt;</t>
7353                            </list>
7354                        </t>
7355                        <t>Where &lt;audio-device&gt; should be replaced by the
7356                        numerical ID of the audio output device as given by the
7357                        <xref target="CREATE AUDIO_OUTPUT_DEVICE">"CREATE AUDIO_OUTPUT_DEVICE"</xref>
7358                        or <xref target="LIST AUDIO_OUTPUT_DEVICES">"LIST AUDIO_OUTPUT_DEVICES"</xref>
7359                        command.</t>
7360    
7361                        <t>Possible Answers:</t>
7362                        <t>
7363                            <list>
7364                                <t>The sampler will answer by returning a comma
7365                                separated list with numerical IDs of send effect
7366                                chains of the supplied audio output device.
7367                                </t>
7368                            </list>
7369                        </t>
7370    
7371                        <t>Examples:</t>
7372                        <t>
7373                            <list>
7374                                <t>C: "LIST SEND_EFFECT_CHAINS 0"</t>
7375                                <t>S: "3,4,7"</t>
7376                            </list>
7377                        </t>
7378                    </section>
7379    
7380                    <section title="Add send effect chain" anchor="ADD SEND_EFFECT_CHAIN">
7381                        <t>The front-end can add a send effect chain by sending the
7382                        following command:</t>
7383                        <t>
7384                            <list>
7385                                <t>ADD SEND_EFFECT_CHAIN &lt;audio-device&gt;</t>
7386                            </list>
7387                        </t>
7388                        <t>Where &lt;audio-device&gt; should be replaced by the
7389                        numerical ID of the audio output device as given by the
7390                        <xref target="CREATE AUDIO_OUTPUT_DEVICE">"CREATE AUDIO_OUTPUT_DEVICE"</xref>
7391                        or <xref target="LIST AUDIO_OUTPUT_DEVICES">"LIST AUDIO_OUTPUT_DEVICES"</xref>
7392                        command.</t>
7393    
7394                        <t>Possible Answers:</t>
7395                        <t>
7396                            <list>
7397                                <t>"OK[&lt;effect-chain&gt;]" -
7398                                    <list>
7399                                        <t>in case the send effect chain was
7400                                        added successfully, where
7401                                        &lt;effect-chain&gt; is the numerical ID
7402                                        of the new send effect chain</t>
7403                                    </list>
7404                                </t>
7405                                <t>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
7406                                    <list>
7407                                        <t>if the send effect chain could not be added</t>
7408                                    </list>
7409                                </t>
7410                            </list>
7411                        </t>
7412    
7413                        <t>Examples:</t>
7414                        <t>
7415                            <list>
7416                                <t>C: "ADD SEND_EFFECT_CHAIN 0"</t>
7417                                <t>S: "OK[2]"</t>
7418                            </list>
7419                        </t>
7420                    </section>
7421    
7422                    <section title="Remove send effect chain" anchor="REMOVE SEND_EFFECT_CHAIN">
7423                        <t>The front-end can remove a send effect chain by sending
7424                        the following command:</t>
7425                        <t>
7426                            <list>
7427                                <t>REMOVE SEND_EFFECT_CHAIN &lt;audio-device&gt; &lt;effect-chain&gt;</t>
7428                            </list>
7429                        </t>
7430                        <t>Where &lt;audio-device&gt; should be replaced by the
7431                        numerical ID of the audio output device as given by the
7432                        <xref target="CREATE AUDIO_OUTPUT_DEVICE">"CREATE AUDIO_OUTPUT_DEVICE"</xref>
7433                        or <xref target="LIST AUDIO_OUTPUT_DEVICES">"LIST AUDIO_OUTPUT_DEVICES"</xref>
7434                        command and &lt;effect-chain&gt; by the numerical ID as
7435                        returned by the
7436                        <xref target="ADD SEND_EFFECT_CHAIN">"ADD SEND_EFFECT_CHAIN"</xref>
7437                        or
7438                        <xref target="LIST SEND_EFFECT_CHAINS">"LIST SEND_EFFECT_CHAINS"</xref>
7439                        command.</t>
7440    
7441                        <t>Possible Answers:</t>
7442                        <t>
7443                            <list>
7444                                <t>"OK" -
7445                                    <list>
7446                                        <t>in case the send effect chain was
7447                                        removed successfully</t>
7448                                    </list>
7449                                </t>
7450                                <t>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
7451                                    <list>
7452                                        <t>if the send effect chain could not be removed</t>
7453                                    </list>
7454                                </t>
7455                            </list>
7456                        </t>
7457    
7458                        <t>Examples:</t>
7459                        <t>
7460                            <list>
7461                                <t>C: "REMOVE SEND_EFFECT_CHAIN 0 2"</t>
7462                                <t>S: "OK"</t>
7463                            </list>
7464                        </t>
7465                    </section>
7466    
7467                    <section title="Retrieving information about a send effect chain" anchor="GET SEND_EFFECT_CHAIN INFO">
7468                        <t>The front-end can ask for informations of a send effect
7469                        chain by sending the following command:</t>
7470                        <t>
7471                            <list>
7472                                <t>GET SEND_EFFECT_CHAIN INFO &lt;audio-device&gt; &lt;effect-chain&gt;</t>
7473                            </list>
7474                        </t>
7475                        <t>Where &lt;audio-device&gt; should be replaced by the
7476                        numerical ID of the audio output device as given by the
7477                        <xref target="CREATE AUDIO_OUTPUT_DEVICE">"CREATE AUDIO_OUTPUT_DEVICE"</xref>
7478                        or <xref target="LIST AUDIO_OUTPUT_DEVICES">"LIST AUDIO_OUTPUT_DEVICES"</xref>
7479                        command and &lt;effect-chain&gt; by the numerical ID as
7480                        returned by the
7481                        <xref target="ADD SEND_EFFECT_CHAIN">"ADD SEND_EFFECT_CHAIN"</xref>
7482                        or
7483                        <xref target="LIST SEND_EFFECT_CHAINS">"LIST SEND_EFFECT_CHAINS"</xref>
7484                        command.</t>
7485    
7486                        <t>Possible Answers:</t>
7487                        <t>
7488                            <list>
7489                                <t>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
7490                                Each answer line begins with the information
7491                                category name, followed by a colon and then a space
7492                                character &lt;SP&gt; and finally the info character
7493                                string to that information category.
7494                                At the moment the following categories are defined:</t>
7495                                <t>
7496                                    <list>
7497                                        <t>EFFECT_COUNT -
7498                                            <list>
7499                                                <t>amount of effects in this send
7500                                                effect chain</t>
7501                                            </list>
7502                                        </t>
7503                                        <t>EFFECT_SEQUENCE -
7504                                            <list>
7505                                                <t>comma separated list of the
7506                                                numerical IDs of the effect
7507                                                instances in this send effect chain,
7508                                                in the order as they are procssed in
7509                                                the effect chain</t>
7510                                            </list>
7511                                        </t>
7512                                    </list>
7513                                </t>
7514                            </list>
7515                        </t>
7516                        <t>The mentioned fields above don't have to be in particular order.</t>
7517    
7518                        <t>Example:</t>
7519                        <t>
7520                            <list>
7521                                <t>C: "GET SEND_EFFECT_CHAIN INFO 0 2"</t>
7522                                <t>S: "EFFECT_COUNT: 3"</t>
7523                                <t>&nbsp;&nbsp;&nbsp;"EFFECT_SEQUENCE: 31,4,7"</t>
7524                                <t>&nbsp;&nbsp;&nbsp;"."</t>
7525                            </list>
7526                        </t>
7527                    </section>
7528    
7529                    <section title="Append effect instance to a send effect chain" anchor="APPEND SEND_EFFECT_CHAIN EFFECT">
7530                        <t>The front-end can add an unused effect instance to the
7531                        end of a send effect chain by sending the following command:</t>
7532                        <t>
7533                            <list>
7534                                <t>APPEND SEND_EFFECT_CHAIN EFFECT &lt;audio-device&gt; &lt;effect-chain&gt; &lt;effect-instance&gt;</t>
7535                            </list>
7536                        </t>
7537                        <t>Where &lt;audio-device&gt; should be replaced by the
7538                        numerical ID of the audio output device as given by the
7539                        <xref target="CREATE AUDIO_OUTPUT_DEVICE">"CREATE AUDIO_OUTPUT_DEVICE"</xref>
7540                        or <xref target="LIST AUDIO_OUTPUT_DEVICES">"LIST AUDIO_OUTPUT_DEVICES"</xref>
7541                        command and &lt;effect-chain&gt; by the numerical ID as
7542                        returned by the
7543                        <xref target="ADD SEND_EFFECT_CHAIN">"ADD SEND_EFFECT_CHAIN"</xref>
7544                        or
7545                        <xref target="LIST SEND_EFFECT_CHAINS">"LIST SEND_EFFECT_CHAINS"</xref>
7546                        command and &lt;effect-instance&gt; as returned by the
7547                        <xref target="CREATE EFFECT_INSTANCE">"CREATE EFFECT_INSTANCE"</xref> or
7548                        <xref target="LIST EFFECT_INSTANCES">"LIST EFFECT_INSTANCES"</xref>
7549                        command.</t>
7550                        <t>Only unused effect instances can be added to the effect
7551                        chain. Trying to add an effect instance which is already in
7552                        use somewhere in the audio signal path of the sampler will
7553                        result in an error.</t>
7554    
7555                        <t>Possible Answers:</t>
7556                        <t>
7557                            <list>
7558                                <t>"OK" -
7559                                    <list>
7560                                        <t>in case the effect instance was
7561                                        added successfully to the chain</t>
7562                                    </list>
7563                                </t>
7564                                <t>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
7565                                    <list>
7566                                        <t>if the effect instance could not be added</t>
7567                                    </list>
7568                                </t>
7569                            </list>
7570                        </t>
7571    
7572                        <t>Examples:</t>
7573                        <t>
7574                            <list>
7575                                <t>C: "APPEND SEND_EFFECT_CHAIN EFFECT 0 2 38"</t>
7576                                <t>S: "OK"</t>
7577                            </list>
7578                        </t>
7579                    </section>
7580    
7581                    <section title="Insert effect instance to a send effect chain" anchor="INSERT SEND_EFFECT_CHAIN EFFECT">
7582                        <t>The front-end can add an unused effect instance to a
7583                        certain position of a send effect chain by sending the
7584                        following command:</t>
7585                        <t>
7586                            <list>
7587                                <t>INSERT SEND_EFFECT_CHAIN EFFECT &lt;audio-device&gt; &lt;effect-chain&gt; &lt;chain-pos&gt; &lt;effect-instance&gt;</t>
7588                            </list>
7589                        </t>
7590                        <t>Where &lt;audio-device&gt; should be replaced by the
7591                        numerical ID of the audio output device as given by the
7592                        <xref target="CREATE AUDIO_OUTPUT_DEVICE">"CREATE AUDIO_OUTPUT_DEVICE"</xref>
7593                        or <xref target="LIST AUDIO_OUTPUT_DEVICES">"LIST AUDIO_OUTPUT_DEVICES"</xref>
7594                        command, &lt;effect-chain&gt; by the numerical ID as
7595                        returned by the
7596                        <xref target="ADD SEND_EFFECT_CHAIN">"ADD SEND_EFFECT_CHAIN"</xref>
7597                        or
7598                        <xref target="LIST SEND_EFFECT_CHAINS">"LIST SEND_EFFECT_CHAINS"</xref>
7599                        command, &lt;effect-instance&gt; as returned by the
7600                        <xref target="CREATE EFFECT_INSTANCE">"CREATE EFFECT_INSTANCE"</xref> or
7601                        <xref target="LIST EFFECT_INSTANCES">"LIST EFFECT_INSTANCES"</xref>
7602                        command and &lt;chain-pos&gt; the exact position of the
7603                        effect chain where the supplied effect shall be inserted
7604                        to.</t>
7605                        <t>Only unused effect instances can be added to the effect
7606                        chain. Trying to add an effect instance which is already in
7607                        use somewhere in the audio signal path of the sampler will
7608                        result in an error.</t>
7609    
7610                        <t>Possible Answers:</t>
7611                        <t>
7612                            <list>
7613                                <t>"OK" -
7614                                    <list>
7615                                        <t>in case the effect instance was
7616                                        added successfully to the chain</t>
7617                                    </list>
7618                                </t>
7619                                <t>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
7620                                    <list>
7621                                        <t>if the effect instance could not be added</t>
7622                                    </list>
7623                                </t>
7624                            </list>
7625                        </t>
7626    
7627                        <t>Examples:</t>
7628                        <t>
7629                            <list>
7630                                <t>C: "INSERT SEND_EFFECT_CHAIN EFFECT 0 2 4 38"</t>
7631                                <t>S: "OK"</t>
7632                            </list>
7633                        </t>
7634                    </section>
7635    
7636                    <section title="Remove effect instance from send effect chain" anchor="REMOVE SEND_EFFECT_CHAIN EFFECT">
7637                        <t>The front-end can remove an effect instance from a
7638                        certain position of a send effect chain by sending the
7639                        following command:</t>
7640                        <t>
7641                            <list>
7642                                <t>REMOVE SEND_EFFECT_CHAIN EFFECT &lt;audio-device&gt; &lt;effect-chain&gt; &lt;chain-pos&gt;</t>
7643                            </list>
7644                        </t>
7645                        <t>Where &lt;audio-device&gt; should be replaced by the
7646                        numerical ID of the audio output device as given by the
7647                        <xref target="CREATE AUDIO_OUTPUT_DEVICE">"CREATE AUDIO_OUTPUT_DEVICE"</xref>
7648                        or <xref target="LIST AUDIO_OUTPUT_DEVICES">"LIST AUDIO_OUTPUT_DEVICES"</xref>
7649                        command, &lt;effect-chain&gt; by the numerical ID as
7650                        returned by the
7651                        <xref target="ADD SEND_EFFECT_CHAIN">"ADD SEND_EFFECT_CHAIN"</xref>
7652                        or
7653                        <xref target="LIST SEND_EFFECT_CHAINS">"LIST SEND_EFFECT_CHAINS"</xref>
7654                        command and &lt;chain-pos&gt; the exact position of the
7655                        effect instance to be removed from the effect chain.</t>
7656    
7657                        <t>Possible Answers:</t>
7658                        <t>
7659                            <list>
7660                                <t>"OK" -
7661                                    <list>
7662                                        <t>in case the effect instance was
7663                                        removed successfully</t>
7664                                    </list>
7665                                </t>
7666                                <t>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
7667                                    <list>
7668                                        <t>if the effect instance could not be removed</t>
7669                                    </list>
7670                                </t>
7671                            </list>
7672                        </t>
7673    
7674                        <t>Examples:</t>
7675                        <t>
7676                            <list>
7677                                <t>C: "REMOVE SEND_EFFECT_CHAIN EFFECT 0 2 4"</t>
7678                                <t>S: "OK"</t>
7679                            </list>
7680                        </t>
7681                    </section>
7682    
7683                </section>
7684            </section>
7685    
7686          <section title="Command Syntax" anchor="command_syntax">          <section title="Command Syntax" anchor="command_syntax">
7687              <t>The grammar of the control protocol as descibed in <xref target="control_commands"/>              <t>The grammar of the control protocol as descibed in <xref target="control_commands"/>
# Line 6119  Schoenebeck'> Line 7769  Schoenebeck'>
7769                  </t>                  </t>
7770                  <t>/ FORMAT SP format_instruction                  <t>/ FORMAT SP format_instruction
7771                  </t>                  </t>
7772                    <t>/ SEND SP send_instruction
7773                    </t>
7774                    <t>/ APPEND SP append_instruction
7775                    </t>
7776                    <t>/ INSERT SP insert_instruction
7777                    </t>
7778                  <t>/ RESET                  <t>/ RESET
7779                  </t>                  </t>
7780                  <t>/ QUIT                  <t>/ QUIT
# Line 6133  Schoenebeck'> Line 7789  Schoenebeck'>
7789                  </t>                  </t>
7790                  <t>/ DB_INSTRUMENTS SP NON_MODAL SP scan_mode SP db_path SP filename                  <t>/ DB_INSTRUMENTS SP NON_MODAL SP scan_mode SP db_path SP filename
7791                  </t>                  </t>
7792                    <t>/ DB_INSTRUMENTS SP NON_MODAL SP scan_mode SP FILE_AS_DIR SP db_path SP filename
7793                    </t>
7794                  <t>/ DB_INSTRUMENTS SP scan_mode SP db_path SP filename                  <t>/ DB_INSTRUMENTS SP scan_mode SP db_path SP filename
7795                  </t>                  </t>
7796                    <t>/ DB_INSTRUMENTS SP scan_mode SP FILE_AS_DIR SP db_path SP filename
7797                    </t>
7798                  <t>/ DB_INSTRUMENTS SP NON_MODAL SP db_path SP filename                  <t>/ DB_INSTRUMENTS SP NON_MODAL SP db_path SP filename
7799                  </t>                  </t>
7800                  <t>/ DB_INSTRUMENTS SP NON_MODAL SP db_path SP filename SP instrument_index                  <t>/ DB_INSTRUMENTS SP NON_MODAL SP db_path SP filename SP instrument_index
# Line 6147  Schoenebeck'> Line 7807  Schoenebeck'>
7807                  </t>                  </t>
7808                  <t>/ MIDI_INSTRUMENT_MAP SP map_name                  <t>/ MIDI_INSTRUMENT_MAP SP map_name
7809                  </t>                  </t>
7810                    <t>/ SEND_EFFECT_CHAIN SP device_index
7811                    </t>
7812          </list>          </list>
7813  </t>  </t>
7814  <t>subscribe_event =  <t>subscribe_event =
# Line 6161  Schoenebeck'> Line 7823  Schoenebeck'>
7823                  </t>                  </t>
7824                  <t>/ CHANNEL_COUNT                  <t>/ CHANNEL_COUNT
7825                  </t>                  </t>
7826                    <t>/ CHANNEL_MIDI
7827                    </t>
7828                    <t>/ DEVICE_MIDI
7829                    </t>
7830                  <t>/ VOICE_COUNT                  <t>/ VOICE_COUNT
7831                  </t>                  </t>
7832                  <t>/ STREAM_COUNT                  <t>/ STREAM_COUNT
# Line 6193  Schoenebeck'> Line 7859  Schoenebeck'>
7859                  </t>                  </t>
7860                  <t>/ MISCELLANEOUS                  <t>/ MISCELLANEOUS
7861                  </t>                  </t>
7862                    <t>/ TOTAL_STREAM_COUNT
7863                    </t>
7864                  <t>/ TOTAL_VOICE_COUNT                  <t>/ TOTAL_VOICE_COUNT
7865                  </t>                  </t>
7866                  <t>/ GLOBAL_INFO                  <t>/ GLOBAL_INFO
# Line 6211  Schoenebeck'> Line 7879  Schoenebeck'>
7879                  </t>                  </t>
7880                  <t>/ CHANNEL_COUNT                  <t>/ CHANNEL_COUNT
7881                  </t>                  </t>
7882                    <t>/ CHANNEL_MIDI
7883                    </t>
7884                    <t>/ DEVICE_MIDI
7885                    </t>
7886                  <t>/ VOICE_COUNT                  <t>/ VOICE_COUNT
7887                  </t>                  </t>
7888                  <t>/ STREAM_COUNT                  <t>/ STREAM_COUNT
# Line 6243  Schoenebeck'> Line 7915  Schoenebeck'>
7915                  </t>                  </t>
7916                  <t>/ MISCELLANEOUS                  <t>/ MISCELLANEOUS
7917                  </t>                  </t>
7918                    <t>/ TOTAL_STREAM_COUNT
7919                    </t>
7920                  <t>/ TOTAL_VOICE_COUNT                  <t>/ TOTAL_VOICE_COUNT
7921                  </t>                  </t>
7922                  <t>/ GLOBAL_INFO                  <t>/ GLOBAL_INFO
# Line 6275  Schoenebeck'> Line 7949  Schoenebeck'>
7949                  </t>                  </t>
7950                  <t>/ MIDI_INSTRUMENT_MAP SP ALL                  <t>/ MIDI_INSTRUMENT_MAP SP ALL
7951                  </t>                  </t>
7952                    <t>/ SEND_EFFECT_CHAIN SP device_index SP effect_chain
7953                    </t>
7954                    <t>/ SEND_EFFECT_CHAIN SP EFFECT SP device_index SP effect_chain SP chain_pos
7955                    </t>
7956                    <t>/ FX_SEND SP SEND_EFFECT SP sampler_channel SP fx_send_id
7957                    </t>
7958                  <t>/ DB_INSTRUMENT_DIRECTORY SP FORCE SP db_path                  <t>/ DB_INSTRUMENT_DIRECTORY SP FORCE SP db_path
7959                  </t>                  </t>
7960                  <t>/ DB_INSTRUMENT_DIRECTORY SP db_path                  <t>/ DB_INSTRUMENT_DIRECTORY SP db_path
# Line 6287  Schoenebeck'> Line 7967  Schoenebeck'>
7967          <list>          <list>
7968                  <t>AVAILABLE_ENGINES                  <t>AVAILABLE_ENGINES
7969                  </t>                  </t>
7970                    <t>/ AVAILABLE_EFFECTS
7971                    </t>
7972                    <t>/ EFFECT_INSTANCES
7973                    </t>
7974                    <t>/ EFFECT SP INFO SP effect_index
7975                    </t>
7976                    <t>/ EFFECT_INSTANCE SP INFO SP effect_instance
7977                    </t>
7978                    <t>/ EFFECT_INSTANCE_INPUT_CONTROL SP INFO SP effect_instance SP input_control
7979                    </t>
7980                    <t>/ SEND_EFFECT_CHAINS SP device_index
7981                    </t>
7982                    <t>/ SEND_EFFECT_CHAIN SP INFO SP device_index SP effect_chain
7983                    </t>
7984                  <t>/ AVAILABLE_MIDI_INPUT_DRIVERS                  <t>/ AVAILABLE_MIDI_INPUT_DRIVERS
7985                  </t>                  </t>
7986                  <t>/ MIDI_INPUT_DRIVER SP INFO SP string                  <t>/ MIDI_INPUT_DRIVER SP INFO SP string
# Line 6333  Schoenebeck'> Line 8027  Schoenebeck'>
8027                  </t>                  </t>
8028                  <t>/ SERVER SP INFO                  <t>/ SERVER SP INFO
8029                  </t>                  </t>
8030                    <t>/ TOTAL_STREAM_COUNT
8031                    </t>
8032                  <t>/ TOTAL_VOICE_COUNT                  <t>/ TOTAL_VOICE_COUNT
8033                  </t>                  </t>
8034                  <t>/ TOTAL_VOICE_COUNT_MAX                  <t>/ TOTAL_VOICE_COUNT_MAX
# Line 6367  Schoenebeck'> Line 8063  Schoenebeck'>
8063                  </t>                  </t>
8064                  <t>/ VOLUME                  <t>/ VOLUME
8065                  </t>                  </t>
8066                    <t>/ VOICES
8067                    </t>
8068                    <t>/ STREAMS
8069                    </t>
8070                    <t>/ FILE SP INSTRUMENTS SP filename
8071                    </t>
8072                    <t>/ FILE SP INSTRUMENT SP INFO SP filename SP instrument_index
8073                    </t>
8074          </list>          </list>
8075  </t>  </t>
8076  <t>set_instruction =  <t>set_instruction =
# Line 6381  Schoenebeck'> Line 8085  Schoenebeck'>
8085                  </t>                  </t>
8086                  <t>/ MIDI_INPUT_PORT_PARAMETER SP number SP number SP string '=' param_val_list                  <t>/ MIDI_INPUT_PORT_PARAMETER SP number SP number SP string '=' param_val_list
8087                  </t>                  </t>
8088                    <t>/ EFFECT_INSTANCE_INPUT_CONTROL SP VALUE SP effect_instance SP input_control SP control_value
8089                    </t>
8090                  <t>/ CHANNEL SP set_chan_instruction                  <t>/ CHANNEL SP set_chan_instruction
8091                  </t>                  </t>
8092                  <t>/ MIDI_INSTRUMENT_MAP SP NAME SP midi_map SP map_name                  <t>/ MIDI_INSTRUMENT_MAP SP NAME SP midi_map SP map_name
# Line 6393  Schoenebeck'> Line 8099  Schoenebeck'>
8099                  </t>                  </t>
8100                  <t>/ FX_SEND SP LEVEL SP sampler_channel SP fx_send_id SP volume_value                  <t>/ FX_SEND SP LEVEL SP sampler_channel SP fx_send_id SP volume_value
8101                  </t>                  </t>
8102                  <t>/ DB_INSTRUMENT_DIRECTORY SP NAME SP db_path SP raw_path                  <t>/ FX_SEND SP SEND_EFFECT SP sampler_channel SP fx_send_id SP effect_chain SP chain_pos
8103                    </t>
8104                    <t>/ DB_INSTRUMENT_DIRECTORY SP NAME SP db_path SP stringval_escaped
8105                    </t>
8106                    <t>/ DB_INSTRUMENT_DIRECTORY SP DESCRIPTION SP db_path SP stringval_escaped
8107                  </t>                  </t>
8108                  <t>/ DB_INSTRUMENT_DIRECTORY SP DESCRIPTION SP db_path SP raw_path                  <t>/ DB_INSTRUMENT SP NAME SP db_path SP stringval_escaped
8109                  </t>                  </t>
8110                  <t>/ DB_INSTRUMENT SP NAME SP db_path SP raw_path                  <t>/ DB_INSTRUMENT SP DESCRIPTION SP db_path SP stringval_escaped
8111                  </t>                  </t>
8112                  <t>/ DB_INSTRUMENT SP DESCRIPTION SP db_path SP raw_path                  <t>/ DB_INSTRUMENT SP FILE_PATH SP filename SP filename
8113                  </t>                  </t>
8114                  <t>/ ECHO SP boolean                  <t>/ ECHO SP boolean
8115                  </t>                  </t>
8116                  <t>/ VOLUME SP volume_value                  <t>/ VOLUME SP volume_value
8117                  </t>                  </t>
8118                    <t>/ VOICES SP number
8119                    </t>
8120                    <t>/ STREAMS SP number
8121                    </t>
8122          </list>          </list>
8123  </t>  </t>
8124  <t>create_instruction =  <t>create_instruction =
# Line 6421  Schoenebeck'> Line 8135  Schoenebeck'>
8135                  </t>                  </t>
8136                  <t>/ FX_SEND SP sampler_channel SP midi_ctrl SP fx_send_name                  <t>/ FX_SEND SP sampler_channel SP midi_ctrl SP fx_send_name
8137                  </t>                  </t>
8138                    <t>/ EFFECT_INSTANCE SP effect_index
8139                    </t>
8140                    <t>/ EFFECT_INSTANCE SP effect_system SP module SP effect_name
8141                    </t>
8142          </list>          </list>
8143  </t>  </t>
8144  <t>reset_instruction =  <t>reset_instruction =
# Line 6447  Schoenebeck'> Line 8165  Schoenebeck'>
8165                  </t>                  </t>
8166                  <t>/ DB_INSTRUMENT_DIRECTORIES SP db_path SP query_val_list                  <t>/ DB_INSTRUMENT_DIRECTORIES SP db_path SP query_val_list
8167                  </t>                  </t>
8168                    <t>/ LOST SP DB_INSTRUMENT_FILES
8169                    </t>
8170          </list>          </list>
8171  </t>  </t>
8172  <t>move_instruction =  <t>move_instruction =
# Line 6473  Schoenebeck'> Line 8193  Schoenebeck'>
8193                  </t>                  </t>
8194                  <t>/ FX_SEND SP sampler_channel SP fx_send_id                  <t>/ FX_SEND SP sampler_channel SP fx_send_id
8195                  </t>                  </t>
8196                    <t>/ EFFECT_INSTANCE SP number
8197                    </t>
8198          </list>          </list>
8199  </t>  </t>
8200  <t>load_instruction =  <t>load_instruction =
# Line 6483  Schoenebeck'> Line 8205  Schoenebeck'>
8205                  </t>                  </t>
8206          </list>          </list>
8207  </t>  </t>
8208    <t>append_instruction =
8209            <list>
8210                    <t>SEND_EFFECT_CHAIN SP EFFECT SP device_index SP effect_chain SP effect_instance
8211                    </t>
8212            </list>
8213    </t>
8214    <t>insert_instruction =
8215            <list>
8216                    <t>SEND_EFFECT_CHAIN SP EFFECT SP device_index SP effect_chain SP chain_pos SP effect_instance
8217                    </t>
8218            </list>
8219    </t>
8220  <t>set_chan_instruction =  <t>set_chan_instruction =
8221          <list>          <list>
8222                  <t>AUDIO_OUTPUT_DEVICE SP sampler_channel SP device_index                  <t>AUDIO_OUTPUT_DEVICE SP sampler_channel SP device_index
# Line 6517  Schoenebeck'> Line 8251  Schoenebeck'>
8251  </t>  </t>
8252  <t>edit_instruction =  <t>edit_instruction =
8253          <list>          <list>
8254                  <t>INSTRUMENT SP sampler_channel                  <t>CHANNEL SP INSTRUMENT SP sampler_channel
8255                  </t>                  </t>
8256          </list>          </list>
8257  </t>  </t>
# Line 6561  Schoenebeck'> Line 8295  Schoenebeck'>
8295                  </t>                  </t>
8296                  <t>/ AVAILABLE_ENGINES                  <t>/ AVAILABLE_ENGINES
8297                  </t>                  </t>
8298                    <t>/ AVAILABLE_EFFECTS
8299                    </t>
8300                    <t>/ EFFECT_INSTANCES
8301                    </t>
8302                    <t>/ SEND_EFFECT_CHAINS SP number
8303                    </t>
8304                  <t>/ AVAILABLE_MIDI_INPUT_DRIVERS                  <t>/ AVAILABLE_MIDI_INPUT_DRIVERS
8305                  </t>                  </t>
8306                  <t>/ AVAILABLE_AUDIO_OUTPUT_DRIVERS                  <t>/ AVAILABLE_AUDIO_OUTPUT_DRIVERS
# Line 6581  Schoenebeck'> Line 8321  Schoenebeck'>
8321                  </t>                  </t>
8322                  <t>/ DB_INSTRUMENTS SP db_path                  <t>/ DB_INSTRUMENTS SP db_path
8323                  </t>                  </t>
8324                    <t>/ FILE SP INSTRUMENTS SP filename
8325                    </t>
8326            </list>
8327    </t>
8328    <t>send_instruction =
8329            <list>
8330                    <t>CHANNEL SP MIDI_DATA SP string SP sampler_channel SP number SP number
8331                    </t>
8332          </list>          </list>
8333  </t>  </t>
8334  <t>load_instr_args =  <t>load_instr_args =
# Line 6607  Schoenebeck'> Line 8355  Schoenebeck'>
8355                  </t>                  </t>
8356          </list>          </list>
8357  </t>  </t>
8358    <t>effect_instance =
8359            <list>
8360                    <t>number
8361                    </t>
8362            </list>
8363    </t>
8364  <t>device_index =  <t>device_index =
8365          <list>          <list>
8366                  <t>number                  <t>number
# Line 6677  Schoenebeck'> Line 8431  Schoenebeck'>
8431                  </t>                  </t>
8432          </list>          </list>
8433  </t>  </t>
8434    <t>control_value =
8435            <list>
8436                    <t>real
8437                    </t>
8438            </list>
8439    </t>
8440  <t>sampler_channel =  <t>sampler_channel =
8441          <list>          <list>
8442                  <t>number                  <t>number
# Line 6715  Schoenebeck'> Line 8475  Schoenebeck'>
8475  </t>  </t>
8476  <t>map_name =  <t>map_name =
8477          <list>          <list>
8478                  <t>stringval                  <t>stringval_escaped
8479                  </t>                  </t>
8480          </list>          </list>
8481  </t>  </t>
8482  <t>entry_name =  <t>entry_name =
8483          <list>          <list>
8484                  <t>stringval                  <t>stringval_escaped
8485                  </t>                  </t>
8486          </list>          </list>
8487  </t>  </t>
8488  <t>fx_send_name =  <t>fx_send_name =
8489          <list>          <list>
8490                  <t>stringval                  <t>stringval_escaped
8491                    </t>
8492            </list>
8493    </t>
8494    <t>effect_name =
8495            <list>
8496                    <t>stringval_escaped
8497                    </t>
8498            </list>
8499    </t>
8500    <t>effect_index =
8501            <list>
8502                    <t>number
8503                    </t>
8504            </list>
8505    </t>
8506    <t>effect_chain =
8507            <list>
8508                    <t>number
8509                    </t>
8510            </list>
8511    </t>
8512    <t>chain_pos =
8513            <list>
8514                    <t>number
8515                    </t>
8516            </list>
8517    </t>
8518    <t>input_control =
8519            <list>
8520                    <t>number
8521                  </t>                  </t>
8522          </list>          </list>
8523  </t>  </t>
# Line 6762  Schoenebeck'> Line 8552  Schoenebeck'>
8552  </t>  </t>
8553  <t>query_val =  <t>query_val =
8554          <list>          <list>
8555                  <t>raw_path_base                  <t>text_escaped
8556                  </t>                  </t>
8557                  <t>/ raw_path                  <t>/ stringval_escaped
8558                  </t>                  </t>
8559          </list>          </list>
8560  </t>  </t>
# Line 6778  Schoenebeck'> Line 8568  Schoenebeck'>
8568                  </t>                  </t>
8569          </list>          </list>
8570  </t>  </t>
8571    <t>effect_system =
8572            <list>
8573                    <t>string
8574                    </t>
8575            </list>
8576    </t>
8577    <t>module =
8578            <list>
8579                    <t>filename
8580                    </t>
8581            </list>
8582    </t>
8583    
8584              <!-- GRAMMAR_BNF_END - do NOT delete or modify this line !!! -->              <!-- GRAMMAR_BNF_END - do NOT delete or modify this line !!! -->
8585    
# Line 6811  Schoenebeck'> Line 8613  Schoenebeck'>
8613                  where escape characters are now supported, a backslash characters                  where escape characters are now supported, a backslash characters
8614                  MUST be escaped as well (that is as double backslash), whereas                  MUST be escaped as well (that is as double backslash), whereas
8615                  in the old versions a single backslash was sufficient.</t>                  in the old versions a single backslash was sufficient.</t>
8616    
8617                    <t>The following LSCP commands support escape sequences as part
8618                    of their filename / path based arguments and / or may contain
8619                    a filename / path with escape sequences in their response:
8620                    <list>
8621                        <t><xref target="LOAD INSTRUMENT">"LOAD INSTRUMENT"</xref></t>
8622                        <t><xref target="GET CHANNEL INFO">"GET CHANNEL INFO"</xref></t>
8623                        <t><xref target="MAP MIDI_INSTRUMENT">"MAP MIDI_INSTRUMENT"</xref></t>
8624                        <t><xref target="GET MIDI_INSTRUMENT INFO">"GET MIDI_INSTRUMENT INFO"</xref></t>
8625                        <t><xref target="ADD DB_INSTRUMENT_DIRECTORY">"ADD DB_INSTRUMENT_DIRECTORY"</xref></t>
8626                        <t><xref target="ADD DB_INSTRUMENTS">"ADD DB_INSTRUMENTS"</xref></t>
8627                        <t><xref target="REMOVE DB_INSTRUMENT_DIRECTORY">"REMOVE DB_INSTRUMENT_DIRECTORY"</xref></t>
8628                        <t><xref target="REMOVE DB_INSTRUMENT">"REMOVE DB_INSTRUMENT"</xref></t>
8629                        <t><xref target="GET DB_INSTRUMENT_DIRECTORIES">"GET DB_INSTRUMENT_DIRECTORIES"</xref></t>
8630                        <t><xref target="LIST DB_INSTRUMENT_DIRECTORIES">"LIST DB_INSTRUMENT_DIRECTORIES"</xref></t>
8631                        <t><xref target="GET DB_INSTRUMENT_DIRECTORY INFO">"GET DB_INSTRUMENT_DIRECTORY INFO"</xref></t>
8632                        <t><xref target="GET DB_INSTRUMENTS">"GET DB_INSTRUMENTS"</xref></t>
8633                        <t><xref target="LIST DB_INSTRUMENTS">"LIST DB_INSTRUMENTS"</xref></t>
8634                        <t><xref target="GET DB_INSTRUMENT INFO">"GET DB_INSTRUMENT INFO"</xref></t>
8635                        <t><xref target="SET DB_INSTRUMENT_DIRECTORY NAME">"SET DB_INSTRUMENT_DIRECTORY NAME"</xref></t>
8636                        <t><xref target="SET DB_INSTRUMENT_DIRECTORY DESCRIPTION">"SET DB_INSTRUMENT_DIRECTORY DESCRIPTION"</xref></t>
8637                        <t><xref target="SET DB_INSTRUMENT NAME">"SET DB_INSTRUMENT NAME"</xref></t>
8638                        <t><xref target="SET DB_INSTRUMENT DESCRIPTION">"SET DB_INSTRUMENT DESCRIPTION"</xref></t>
8639                        <t><xref target="FIND DB_INSTRUMENTS">"FIND DB_INSTRUMENTS"</xref></t>
8640                        <t><xref target="FIND DB_INSTRUMENT_DIRECTORIES">"FIND DB_INSTRUMENT_DIRECTORIES"</xref></t>
8641                        <t><xref target="MOVE DB_INSTRUMENT">"MOVE DB_INSTRUMENT"</xref></t>
8642                        <t><xref target="MOVE DB_INSTRUMENT_DIRECTORY">"MOVE DB_INSTRUMENT_DIRECTORY"</xref></t>
8643                        <t><xref target="COPY DB_INSTRUMENT">"COPY DB_INSTRUMENT"</xref></t>
8644                        <t><xref target="COPY DB_INSTRUMENT_DIRECTORY">"COPY DB_INSTRUMENT_DIRECTORY"</xref></t>
8645                        <t><xref target="FIND LOST DB_INSTRUMENT_FILES">"FIND LOST DB_INSTRUMENT_FILES"</xref></t>
8646                        <t><xref target="SET DB_INSTRUMENT FILE_PATH">"SET DB_INSTRUMENT FILE_PATH"</xref></t>
8647                        <t><xref target="GET FILE INSTRUMENTS">"GET FILE INSTRUMENTS"</xref></t>
8648                        <t><xref target="LIST FILE INSTRUMENTS">"LIST FILE INSTRUMENTS"</xref></t>
8649                        <t><xref target="GET FILE INSTRUMENT INFO">"GET FILE INSTRUMENT INFO"</xref></t>
8650                        <t><xref target="GET EFFECT INFO">"GET EFFECT INFO"</xref></t>
8651                        <t><xref target="GET EFFECT_INSTANCE INFO">"GET EFFECT_INSTANCE INFO"</xref></t>
8652                        <t><xref target="CREATE EFFECT_INSTANCE">"CREATE EFFECT_INSTANCE"</xref></t>
8653                    </list>
8654                    Note that the forward slash character ('/') has a special meaning in
8655                    filename / path based arguments: it acts as separator of the nodes in
8656                    the path, thus if a directory- or filename includes a forward slash
8657                    (not intended as path node separator), you MUST escape that slash
8658                    either with the respective hex escape sequence ("\x2f") or with the
8659                    respective octal escape sequence ("\057").
8660                    </t>
8661    
8662                    <t>
8663                    Note for Windows: file path arguments in LSCP are expected
8664                    to use forward slashes as directory node separator similar
8665                    to Unix based operating systems. In contrast to Unix however
8666                    a Windows typical drive character is expected to be
8667                    prefixed to the path. That is an original Windows file path
8668                    like "D:\Sounds\My.gig" would become in LSCP:
8669                    "D:/Sounds/My.gig".
8670                    </t>
8671    
8672                    <t>
8673                    The following LSCP commands even support escape sequences as
8674                    part of at least one of their text-based arguments (i.e. entity name,
8675                    description) and / or may contain escape sequences in at least one of
8676                    their text-based fields in their response:
8677                    <list>
8678                        <t><xref target="GET SERVER INFO">"GET SERVER INFO"</xref></t>
8679                        <t><xref target="GET ENGINE INFO">"GET ENGINE INFO"</xref></t>
8680                        <t><xref target="GET CHANNEL INFO">"GET CHANNEL INFO"</xref></t>
8681                        <t><xref target="CREATE FX_SEND">"CREATE FX_SEND"</xref></t>
8682                        <t><xref target="GET FX_SEND INFO">"GET FX_SEND INFO"</xref></t>
8683                        <t><xref target="SET FX_SEND NAME">"SET FX_SEND NAME"</xref></t>
8684                        <t><xref target="GET MIDI_INSTRUMENT INFO">"GET MIDI_INSTRUMENT INFO"</xref></t>
8685                        <t><xref target="GET MIDI_INSTRUMENT_MAP INFO">"GET MIDI_INSTRUMENT_MAP INFO"</xref></t>
8686                        <t><xref target="ADD MIDI_INSTRUMENT_MAP">"ADD MIDI_INSTRUMENT_MAP"</xref></t>
8687                        <t><xref target="MAP MIDI_INSTRUMENT">"MAP MIDI_INSTRUMENT"</xref></t>
8688                        <t><xref target="SET MIDI_INSTRUMENT_MAP NAME">"SET MIDI_INSTRUMENT_MAP NAME"</xref></t>
8689                        <t><xref target="GET DB_INSTRUMENT_DIRECTORY INFO">"GET DB_INSTRUMENT_DIRECTORY INFO"</xref></t>
8690                        <t><xref target="SET DB_INSTRUMENT_DIRECTORY NAME">"SET DB_INSTRUMENT_DIRECTORY NAME"</xref></t>
8691                        <t><xref target="SET DB_INSTRUMENT_DIRECTORY DESCRIPTION">"SET DB_INSTRUMENT_DIRECTORY DESCRIPTION"</xref></t>
8692                        <t><xref target="FIND DB_INSTRUMENT_DIRECTORIES">"FIND DB_INSTRUMENT_DIRECTORIES"</xref></t>
8693                        <t><xref target="GET DB_INSTRUMENT INFO">"GET DB_INSTRUMENT INFO"</xref></t>
8694                        <t><xref target="SET DB_INSTRUMENT NAME">"SET DB_INSTRUMENT NAME"</xref></t>
8695                        <t><xref target="SET DB_INSTRUMENT DESCRIPTION">"SET DB_INSTRUMENT DESCRIPTION"</xref></t>
8696                        <t><xref target="FIND DB_INSTRUMENTS">"FIND DB_INSTRUMENTS"</xref></t>
8697                        <t><xref target="GET EFFECT INFO">"GET EFFECT INFO"</xref></t>
8698                        <t><xref target="GET EFFECT_INSTANCE INFO">"GET EFFECT_INSTANCE INFO"</xref></t>
8699                        <t><xref target="CREATE EFFECT_INSTANCE">"CREATE EFFECT_INSTANCE"</xref></t>
8700                    </list>
8701                    Please note that these lists are manually maintained. If you
8702                    find a command that also supports escape sequences we forgot to
8703                    mention here, please report it!
8704                    </t>
8705              </section>              </section>
8706          </section>          </section>
8707    
# Line 6915  Schoenebeck'> Line 8806  Schoenebeck'>
8806                  of sampler channels.</t>                  of sampler channels.</t>
8807              </section>              </section>
8808    
8809                <section title="MIDI data on a sampler channel arrived" anchor="SUBSCRIBE CHANNEL_MIDI">
8810                    <t>Client may want to be notified when MIDI data arrive on sampler channels on
8811                    back-end side, by issuing the following command:</t>
8812                    <t>
8813                        <list>
8814                            <t>SUBSCRIBE CHANNEL_MIDI</t>
8815                        </list>
8816                    </t>
8817                    <t>Server will start sending one of the the following notification messages:</t>
8818                    <t>
8819                        <list>
8820                            <t>"NOTIFY:CHANNEL_MIDI:&lt;channel-id&gt; NOTE_ON  &lt;note&gt; &lt;velocity&gt;"</t>
8821                            <t>"NOTIFY:CHANNEL_MIDI:&lt;channel-id&gt; NOTE_OFF &lt;note&gt; &lt;velocity&gt;"</t>
8822                        </list>
8823                    </t>
8824                    <t>where &lt;channel-id&gt; will be replaced by the ID of the sampler channel where the MIDI
8825                    data arrived. &lt;note&gt; and &lt;velocity&gt; are integer values in the range between
8826                    0 .. 127, reflecting the analog meaning of the MIDI specification.
8827                    </t>
8828                    <t>CAUTION: no guarantee whatsoever will be made that MIDI events are actually all
8829                    delivered by this mechanism! With other words: events could be lost at any time!
8830                    This restriction was made to keep the RT-safeness of the backend's MIDI and audio
8831                    thread unaffected by this feature.</t>
8832                </section>
8833    
8834                <section title="MIDI data on a MIDI input device arrived" anchor="SUBSCRIBE DEVICE_MIDI">
8835                        <t>Client may want to be notified when MIDI data arrive on MIDI input devices by issuing the following command:</t>
8836                        <t>
8837                                <list>
8838                                        <t>SUBSCRIBE DEVICE_MIDI</t>
8839                                </list>
8840                        </t>
8841                        <t>Server will start sending one of the the following notification messages:</t>
8842                        <t>
8843                                <list>
8844                                        <t>"NOTIFY:DEVICE_MIDI:&lt;device-id&gt; &lt;port-id&gt; NOTE_ON &lt;note&gt; &lt;velocity&gt;"</t>
8845                                        <t>"NOTIFY:DEVICE_MIDI:&lt;device-id&gt; &lt;port-id&gt; NOTE_OFF &lt;note&gt; &lt;velocity&gt;"</t>
8846                                </list>
8847                        </t>
8848                        <t>where &lt;device-id&gt; &lt;port-id&gt; will be replaced
8849                           by the IDs of the respective MIDI input device and the device's MIDI port where the MIDI
8850                           data arrived. &lt;note&gt; and &lt;velocity&gt; are integer values in the range between
8851                           0 .. 127, reflecting the analog meaning of the MIDI specification.
8852                        </t>
8853                        <t>CAUTION: no guarantee whatsoever will be made that MIDI events are actually all
8854                           delivered by this mechanism! With other words: events could be lost at any time!
8855                           This restriction was made to keep the RT-safeness of the backend's MIDI and audio
8856                           thread unaffected by this feature.</t>
8857                </section>
8858    
8859              <section title="Number of active voices changed" anchor="SUBSCRIBE VOICE_COUNT">              <section title="Number of active voices changed" anchor="SUBSCRIBE VOICE_COUNT">
8860                  <t>Client may want to be notified when the number of voices on the                  <t>Client may want to be notified when the number of voices on the
8861                  back-end changes by issuing the following command:</t>                  back-end changes by issuing the following command:</t>
# Line 7052  Schoenebeck'> Line 8993  Schoenebeck'>
8993                  all currently active voices.</t>                  all currently active voices.</t>
8994              </section>              </section>
8995    
8996                <section title="Total number of active disk streams changed" anchor="SUBSCRIBE TOTAL_STREAM_COUNT">
8997                    <t>Client may want to be notified when the total number of disk streams on the
8998                    back-end changes by issuing the following command:</t>
8999                    <t>
9000                        <list>
9001                            <t>SUBSCRIBE TOTAL_STREAM_COUNT</t>
9002                        </list>
9003                    </t>
9004                    <t>Server will start sending the following notification messages:</t>
9005                    <t>
9006                        <list>
9007                            <t>"NOTIFY:TOTAL_STREAM_COUNT:&lt;streams&gt;"</t>
9008                        </list>
9009                    </t>
9010                    <t>where &lt;streams&gt; will be replaced by the new number of
9011                    all currently active disk streams.</t>
9012                </section>
9013    
9014              <section title="Number of MIDI instrument maps changed" anchor="SUBSCRIBE MIDI_INSTRUMENT_MAP_COUNT">              <section title="Number of MIDI instrument maps changed" anchor="SUBSCRIBE MIDI_INSTRUMENT_MAP_COUNT">
9015                  <t>Client may want to be notified when the number of MIDI instrument maps on the                  <t>Client may want to be notified when the number of MIDI instrument maps on the
9016                  back-end changes by issuing the following command:</t>                  back-end changes by issuing the following command:</t>
# Line 7150  Schoenebeck'> Line 9109  Schoenebeck'>
9109                          replaced by the optional dotted floating point value, reflecting the                          replaced by the optional dotted floating point value, reflecting the
9110                          new global volume parameter.</t>                          new global volume parameter.</t>
9111                      </list>                      </list>
9112                        <list>
9113                            <t>"NOTIFY:GLOBAL_INFO:VOICES &lt;max-voices&gt;" - Notifies that the
9114                            golbal limit of the sampler for maximum voices is changed, where
9115                            &lt;max-voices&gt; will be an integer value, reflecting the
9116                            new global voice limit parameter.</t>
9117                        </list>
9118                        <list>
9119                            <t>"NOTIFY:GLOBAL_INFO:STREAMS &lt;max-streams&gt;" - Notifies that the
9120                            golbal limit of the sampler for maximum disk streams is changed, where
9121                            &lt;max-streams&gt; will be an integer value, reflecting the
9122                            new global disk streams limit parameter.</t>
9123                        </list>
9124                  </t>                  </t>
9125              </section>              </section>
9126    

Legend:
Removed from v.1387  
changed lines
  Added in v.2138

  ViewVC Help
Powered by ViewVC