/[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 212 by schoenebeck, Wed Jul 28 14:17:29 2004 UTC revision 705 by schoenebeck, Wed Jul 20 21:43:23 2005 UTC
# Line 13  Line 13 
13  <?rfc iprnotified="no" ?>  <?rfc iprnotified="no" ?>
14  <?rfc strict="yes" ?>  <?rfc strict="yes" ?>
15    
16  <rfc category="std" ipr="full2026" docName="lscp.txt">  <rfc category="std" ipr="full2026" docName="LSCP 1.1">
17      <front>      <front>
18          <title>LinuxSampler Control Protocol</title>          <title>LinuxSampler Control Protocol</title>
19          <author initials='C.S.' surname="Schoenebeck" fullname='C.          <author initials='C.S.' surname="Schoenebeck" fullname='C.
# Line 31  Schoenebeck'> Line 31  Schoenebeck'>
31                  <email>schoenebeck at software minus engineering dot org</email>                  <email>schoenebeck at software minus engineering dot org</email>
32              </address>              </address>
33          </author>          </author>
34          <date month="June" year="2004"/>          <date month="May" year="2005"/>
35          <workgroup>LinuxSampler Developers</workgroup>          <workgroup>LinuxSampler Developers</workgroup>
36          <keyword>LSCP</keyword>          <keyword>LSCP</keyword>
37          <abstract>          <abstract>
38              <t>The LinuxSampler Control Protocol (LSCP) is an              <t>The LinuxSampler Control Protocol (LSCP) is an
39              application-level protocol primarily intended for local and              application-level protocol primarily intended for local and
40              remote controlling the LinuxSampler main application, which is a              remote controlling the LinuxSampler backend application, which is a
41              sophisticated console application essentially playing back audio              sophisticated server-like console application essentially playing
42              samples and manipulating the samples in real time to certain              back audio samples and manipulating the samples in real time to
43              extent.</t>              certain extent.</t>
44          </abstract>          </abstract>
45      </front>      </front>
46    
# Line 112  Schoenebeck'> Line 112  Schoenebeck'>
112              return and line feed characters respectively.</t>              return and line feed characters respectively.</t>
113          </section>          </section>
114    
115            <section title="Versioning of this specification" anchor="LSCP versioning">
116                <t>LSCP will certainly be extended and enhanced by-and-by. Each official
117                release of the LSCP specification will be tagged with a unique version
118                tuple. The version tuple consists at least of a major and minor version
119                number like:
120                </t>
121                <t>
122                    <list>
123                        <t>"1.2"</t>
124                    </list>
125                </t>
126                <t>
127                In this example the major version number would be "1" and the minor
128                version number would be "2". Note that the version tuple might also
129                have more than two elements. The major version number defines a
130                group of backward compatible versions. That means a frontend is
131                compatible to the connected sampler if and only if the LSCP versions
132                to which each of the two parties complies to, match both of the
133                following rules:
134                </t>
135                <t>Compatibility:</t>
136                <t>
137                    <list style="numbers">
138                        <t>The frontend's LSCP major version and the sampler's LSCP
139                        major version are exactly equal.</t>
140                        <t>The frontend's LSCP minor version is less or equal than
141                        the sampler's LSCP minor version.</t>
142                    </list>
143                </t>
144                <t>
145                Compatibility can only be claimed if both rules are true.
146                The frontend can use the
147                <xref target="GET SERVER INFO">"GET SERVER INFO"</xref> command to
148                get the version of the LSCP specification the sampler complies with.
149                </t>
150            </section>
151    
152          <section title="Introduction">          <section title="Introduction">
153              <t>LinuxSampler is a so called software sampler application              <t>LinuxSampler is a so called software sampler application
154              capable to playback audio samples from a computer's Random              capable to playback audio samples from a computer's Random
# Line 122  Schoenebeck'> Line 159  Schoenebeck'>
159              referred in this document as "sampler channels". The channels              referred in this document as "sampler channels". The channels
160              are in such way virtual as they can be connected to an              are in such way virtual as they can be connected to an
161              arbitrary MIDI input method and arbitrary MIDI channel (e.g.              arbitrary MIDI input method and arbitrary MIDI channel (e.g.
162              sampler channel 17 could be connected to an Alsa sequencer              sampler channel 17 could be connected to an ALSA sequencer
163              device 64:0 and listening to MIDI channel 1 there). Each sampler              device 64:0 and listening to MIDI channel 1 there). Each sampler
164              engine will be assigned an own instance of one of the available              channel will be associated with an instance of one of the available
165              sampler engines (e.g. GigEngine, DLSEngine). The audio output of              sampler engines (e.g. GigEngine, DLSEngine). The audio output of
166              each sampler channel can be routed to an arbitrary audio output              each sampler channel can be routed to an arbitrary audio output
167              method (Alsa / Jack) and an arbitrary audio output channel              method (ALSA / JACK) and an arbitrary audio output channel
168              there.</t>              there.</t>
169          </section>          </section>
170    
# Line 154  Schoenebeck'> Line 191  Schoenebeck'>
191              methods will be described next.</t>              methods will be described next.</t>
192    
193              <section title="Request/response communication method">              <section title="Request/response communication method">
194                  <t>This simple communication method is based on TCP. The                  <t>This simple communication method is based on
195                    <xref target="RFC793">TCP</xref>. The
196                  front-end application establishes a TCP connection to the                  front-end application establishes a TCP connection to the
197                  LinuxSampler instance on a certain host system. Then the                  LinuxSampler instance on a certain host system. Then the
198                  front-end application will send certain ASCII based commands                  front-end application will send certain ASCII based commands
# Line 216  Schoenebeck'> Line 254  Schoenebeck'>
254                      &lt;warning-message&gt; and &lt;error-message&gt; are                      &lt;warning-message&gt; and &lt;error-message&gt; are
255                      human readable descriptions of the warning or error                      human readable descriptions of the warning or error
256                      respectively.</t>                      respectively.</t>
257                        <t>Examples:</t>
258                        <t>
259                            <list>
260                                <t>C: "LOAD INSTRUMENT '/home/me/Boesendorfer24bit.gig" 0 0</t>
261                                <t>S: "WRN:32:This is a 24 bit patch which is not supported natively yet."</t>
262                            </list>
263                        </t>
264                        <t>
265                            <list>
266                                <t>C: "GET AUDIO_OUTPUT_DRIVER_PARAMETER INFO ALSA EAR"</t>
267                                <t>S: "ERR:3456:Audio output driver 'ALSA' does not have a parameter 'EAR'."</t>
268                            </list>
269                        </t>
270                        <t>
271                            <list>
272                                <t>C: "GET AUDIO_OUTPUT_DEVICE INFO 123456"</t>
273                                <t>S: "ERR:9:There is no audio output device with index 123456."</t>
274                            </list>
275                        </t>
276                      <t>Normal result sets could be:</t>                      <t>Normal result sets could be:</t>
277                      <t>                      <t>
278                          <list style="numbers">                          <list style="numbers">
# Line 234  Schoenebeck'> Line 291  Schoenebeck'>
291                              <t>"OK"</t>                              <t>"OK"</t>
292                          </list>                          </list>
293                      </t>                      </t>
294                        <t>Example:</t>
295                        <t>
296                            <list>
297                                <t>C: "SET AUDIO_OUTPUT_DEVICE_PARAMETER 0 CHANNELS=4"</t>
298                                <t>S: "OK"</t>
299                            </list>
300                        </t>
301                      <t>Single line result sets are command specific. One                      <t>Single line result sets are command specific. One
302                      example of a single line result set is an empty line.                      example of a single line result set is an empty line.
303                      Multi-line result sets are command specific and may                      Multi-line result sets are command specific and may
# Line 244  Schoenebeck'> Line 308  Schoenebeck'>
308                              <t>"."</t>                              <t>"."</t>
309                          </list>                          </list>
310                      </t>                      </t>
311                        <t>Example:</t>
312                        <t>
313                            <list>
314                                <t>C: "GET AUDIO_OUTPUT_DEVICE INFO 0"</t>
315                                <t>S: "DRIVER: ALSA"</t>
316                                <t>&nbsp;&nbsp;&nbsp;"CHANNELS: 2"</t>
317                                <t>&nbsp;&nbsp;&nbsp;"SAMPLERATE: 44100"</t>
318                                <t>&nbsp;&nbsp;&nbsp;"ACTIVE: true"</t>
319                                <t>&nbsp;&nbsp;&nbsp;"FRAGMENTS: 2"</t>
320                                <t>&nbsp;&nbsp;&nbsp;"FRAGMENTSIZE: 128"</t>
321                                <t>&nbsp;&nbsp;&nbsp;"CARD: '0,0'"</t>
322                                <t>&nbsp;&nbsp;&nbsp;"."</t>
323                            </list>
324                        </t>
325                      <t>In addition to above mentioned formats, warnings and                      <t>In addition to above mentioned formats, warnings and
326                      empty result sets MAY be indexed. In this case, they                      empty result sets MAY be indexed. In this case, they
327                      have the following formats respectively:</t>                      have the following formats respectively:</t>
# Line 258  Schoenebeck'> Line 336  Schoenebeck'>
336                      related to or other integer value.</t>                      related to or other integer value.</t>
337                      <t>Each line of the result set MUST end with                      <t>Each line of the result set MUST end with
338                      &lt;CRLF&gt;.</t>                      &lt;CRLF&gt;.</t>
339                        <t>Examples:</t>
340                        <t>
341                            <list>
342                                <t>C: "ADD CHANNEL"</t>
343                                <t>S: "OK[12]"</t>
344                            </list>
345                        </t>
346                        <t>
347                            <list>
348                                <t>C: "CREATE AUDIO_OUTPUT_DEVICE ALSA SAMPLERATE=96000"</t>
349                                <t>S: "WRN[0]:32:Sample rate not supported, using 44100 instead."</t>
350                            </list>
351                        </t>
352                  </section>                  </section>
353              </section>              </section>
354              <section title="Subscribe/notify communication method">              <section title="Subscribe/notify communication method">
# Line 326  Schoenebeck'> Line 417  Schoenebeck'>
417    
418                  <t>where &lt;event-id&gt; will be replace by the respective                  <t>where &lt;event-id&gt; will be replace by the respective
419                  event that client is no longer interested in receiving. For                  event that client is no longer interested in receiving. For
420                  a list of supported events see chapter 6.</t>                  a list of supported events see <xref target="events" />.</t>
421    
422                  <t>Example: the fill states of disk stream buffers have                  <t>Example: the fill states of disk stream buffers have
423                  changed on sampler channel 4 and the LinuxSampler instance                  changed on sampler channel 4 and the LinuxSampler instance
# Line 372  Schoenebeck'> Line 463  Schoenebeck'>
463              </section>              </section>
464          </section>          </section>
465    
466          <section title="Description for control commands">          <section title="Description for control commands" anchor="control_commands">
467              <t>This chapter will describe the available control commands              <t>This chapter will describe the available control commands
468              that can be sent on the TCP connection in detail. Some certain              that can be sent on the TCP connection in detail. Some certain
469              commands (e.g. "GET CHANNEL INFO" or "GET ENGINE INFO") lead to              commands (e.g. <xref target="GET CHANNEL INFO">"GET CHANNEL INFO"</xref>
470                or <xref target="GET ENGINE INFO">"GET ENGINE INFO"</xref>) lead to
471              multiple-line responses. In this case LinuxSampler signals the              multiple-line responses. In this case LinuxSampler signals the
472              end of the response by a "." (single dot) line.</t>              end of the response by a "." (single dot) line.</t>
473    
# Line 390  Schoenebeck'> Line 482  Schoenebeck'>
482              <section title="Configuring audio drivers">              <section title="Configuring audio drivers">
483                  <t>Instances of drivers in LinuxSampler are called devices.                  <t>Instances of drivers in LinuxSampler are called devices.
484                  You can use multiple audio devices simultaneously, e.g. to                  You can use multiple audio devices simultaneously, e.g. to
485                  output the sound of one sampler channel using the Alsa audio                  output the sound of one sampler channel using the ALSA audio
486                  output driver, and on another sampler channel you might want                  output driver, and on another sampler channel you might want
487                  to use the Jack audio output driver. For particular audio                  to use the JACK audio output driver. For particular audio
488                  output systems it's also possible to create several devices                  output systems it's also possible to create several devices
489                  of the same audio output driver, e.g. two separate Alsa                  of the same audio output driver, e.g. two separate ALSA
490                  audio output devices for using two different sound cards at                  audio output devices for using two different sound cards at
491                  the same time. This chapter describes all commands to                  the same time. This chapter describes all commands to
492                  configure LinuxSampler's audio output devices and their                  configure LinuxSampler's audio output devices and their
# Line 419  Schoenebeck'> Line 511  Schoenebeck'>
511                  what parameters drivers are offering, how to retrieve their                  what parameters drivers are offering, how to retrieve their
512                  possible values, etc.</t>                  possible values, etc.</t>
513    
514                  <section title="Getting all available audio output drivers">                  <section title="Getting amount of available audio output drivers" anchor="GET AVAILABLE_AUDIO_OUTPUT_DRIVERS">
515                        <t>Use the following command to get the number of
516                        audio output drivers currently available for the
517                        LinuxSampler instance:</t>
518                        <t>
519                            <list>
520                                <t>GET AVAILABLE_AUDIO_OUTPUT_DRIVERS</t>
521                            </list>
522                        </t>
523                        <t>Possible Answers:</t>
524                        <t>
525                            <list>
526                                <t>LinuxSampler will answer by sending the
527                                number of audio output drivers.</t>
528                            </list>
529                        </t>
530                        <t>Example:</t>
531                        <t>
532                            <list>
533                                <t>C: "GET AVAILABLE_AUDIO_OUTPUT_DRIVERS"</t>
534                                <t>S: "2"</t>
535                            </list>
536                        </t>
537                    </section>
538    
539                    <section title="Getting all available audio output drivers" anchor="LIST AVAILABLE_AUDIO_OUTPUT_DRIVERS">
540                      <t>Use the following command to list all audio output                      <t>Use the following command to list all audio output
541                      drivers currently available for the LinuxSampler                      drivers currently available for the LinuxSampler
542                      instance:</t>                      instance:</t>
543                      <t>                      <t>
544                          <list>                          <list>
545                              <t>GET AVAILABLE_AUDIO_OUTPUT_DRIVERS</t>                              <t>LIST AVAILABLE_AUDIO_OUTPUT_DRIVERS</t>
546                          </list>                          </list>
547                      </t>                      </t>
548                      <t>Possible Answers:</t>                      <t>Possible Answers:</t>
# Line 439  Schoenebeck'> Line 556  Schoenebeck'>
556                      <t>Example:</t>                      <t>Example:</t>
557                      <t>                      <t>
558                          <list>                          <list>
559                              <t>C: "GET AVAILABLE_AUDIO_OUTPUT_DRIVERS"</t>                              <t>C: "LIST AVAILABLE_AUDIO_OUTPUT_DRIVERS"</t>
560                              <t>S: "Alsa,Jack"</t>                              <t>S: "ALSA,JACK"</t>
561                          </list>                          </list>
562                      </t>                      </t>
563                  </section>                  </section>
564    
565                  <section title="Getting information about a specific audio                  <section title="Getting information about a specific audio
566                  output driver">                  output driver" anchor="GET AUDIO_OUTPUT_DRIVER INFO">
567                      <t>Use the following command to get detailed information                      <t>Use the following command to get detailed information
568                      about a specific audio output driver:</t>                      about a specific audio output driver:</t>
569                      <t>                      <t>
# Line 456  Schoenebeck'> Line 573  Schoenebeck'>
573                          </list>                          </list>
574                      </t>                      </t>
575                      <t>Where &lt;audio-output-driver&gt; is the name of the                      <t>Where &lt;audio-output-driver&gt; is the name of the
576                      audio output driver, returned by the "GET                      audio output driver, returned by the
577                      AVAILABLE_AUDIO_OUTPUT_DRIVERS" command.</t>                      <xref target="LIST AVAILABLE_AUDIO_OUTPUT_DRIVERS">"LIST AVAILABLE_AUDIO_OUTPUT_DRIVERS"</xref> command.</t>
578                      <t>Possible Answers:</t>                      <t>Possible Answers:</t>
579                      <t>                      <t>
580                          <list>                          <list>
# Line 506  Schoenebeck'> Line 623  Schoenebeck'>
623                      <t>Example:</t>                      <t>Example:</t>
624                      <t>                      <t>
625                        <list>                        <list>
626                            <t>C: "GET AUDIO_OUTPUT_DRIVER INFO Alsa"</t>                            <t>C: "GET AUDIO_OUTPUT_DRIVER INFO ALSA"</t>
627                            <t>S: "DESCRIPTION: Advanced Linux Sound                            <t>S: "DESCRIPTION: Advanced Linux Sound
628                            Architecture"</t>                            Architecture"</t>
629                            <t>&nbsp;&nbsp;&nbsp;"VERSION: 1.0"</t>                            <t>&nbsp;&nbsp;&nbsp;"VERSION: 1.0"</t>
630                            <t>&nbsp;&nbsp;&nbsp;"PARAMETERS:                            <t>&nbsp;&nbsp;&nbsp;"PARAMETERS:
631                            driver,channels,samplerate,active,fragments,                            DRIVER,CHANNELS,SAMPLERATE,ACTIVE,FRAGMENTS,
632                            fragmentsize,card"</t>                            FRAGMENTSIZE,CARD"</t>
633                            <t>&nbsp;&nbsp;&nbsp;"."</t>                            <t>&nbsp;&nbsp;&nbsp;"."</t>
634                        </list>                        </list>
635                      </t>                      </t>
636                  </section>                  </section>
637    
638                  <section title="Getting information about specific audio                  <section title="Getting information about specific audio
639                  output driver parameter">                  output driver parameter" anchor="GET AUDIO_OUTPUT_DRIVER_PARAMETER INFO">
640                      <t>Use the following command to get detailed information                      <t>Use the following command to get detailed information
641                      about a  specific audio output driver parameter:</t>                      about a  specific audio output driver parameter:</t>
642                      <t>                      <t>
# Line 528  Schoenebeck'> Line 645  Schoenebeck'>
645                          </list>                          </list>
646                      </t>                      </t>
647                      <t>Where &lt;audio&gt; is the name of the audio output                      <t>Where &lt;audio&gt; is the name of the audio output
648                      driver as returned by the "GET AVAILABLE_AUDIO_OUTPUT_DRIVERS" command,                      driver as returned by the <xref target="LIST AVAILABLE_AUDIO_OUTPUT_DRIVERS">
649                        "LIST AVAILABLE_AUDIO_OUTPUT_DRIVERS"</xref> command,
650                      &lt;prm&gt; a specific parameter name for which information should be                      &lt;prm&gt; a specific parameter name for which information should be
651                      obtained (as returned by the "GET AUDIO_OUTPUT_DRIVER INFO" command) and                      obtained (as returned by the
652                        <xref target="GET AUDIO_OUTPUT_DRIVER INFO">"GET AUDIO_OUTPUT_DRIVER INFO"</xref> command) and
653                      &lt;deplist&gt; is an optional list of parameters on which the sought                      &lt;deplist&gt; is an optional list of parameters on which the sought
654                      parameter &lt;prm&gt; depends on, &lt;deplist&gt; is a list of key-value                      parameter &lt;prm&gt; depends on, &lt;deplist&gt; is a list of key-value
655                      pairs in form of "key1=val1 key2=val2 ...", where character string values                      pairs in form of "key1=val1 key2=val2 ...", where character string values
# Line 542  Schoenebeck'> Line 661  Schoenebeck'>
661                      <t>                      <t>
662                          <list>                          <list>
663                              <t>LinuxSampler will answer by sending a                              <t>LinuxSampler will answer by sending a
664                              &lz;CRLF&gt; separated list.                              &lt;CRLF&gt; separated list.
665                              Each answer line begins with the information category name                              Each answer line begins with the information category name
666                              followed by a colon and then a space character &lt;SP&gt; and                              followed by a colon and then a space character &lt;SP&gt; and
667                              finally                              finally
# Line 577  Schoenebeck'> Line 696  Schoenebeck'>
696                                <list>                                <list>
697                                  <t>either true or false, defines if this parameter must be                                  <t>either true or false, defines if this parameter must be
698                                  given when the device is to be created with the                                  given when the device is to be created with the
699                                  'CREATE AUDIO_OUTPUT_DEVICE' command                                  <xref target="CREATE AUDIO_OUTPUT_DEVICE">'CREATE AUDIO_OUTPUT_DEVICE'</xref>
700                                  (always returned, no matter which driver parameter)</t>                                  command (always returned, no matter which driver parameter)</t>
701                                </list>                                </list>
702                              </t>                              </t>
703    
# Line 586  Schoenebeck'> Line 705  Schoenebeck'>
705                                <list>                                <list>
706                                  <t>either true or false, if false then this parameter can                                  <t>either true or false, if false then this parameter can
707                                  be changed at any time, once the device is created by                                  be changed at any time, once the device is created by
708                                  the 'CREATE AUDIO_OUTPUT_DEVICE' command                                  the <xref target="CREATE AUDIO_OUTPUT_DEVICE">'CREATE AUDIO_OUTPUT_DEVICE'</xref>
709                                  (always returned, no matter which driver parameter)</t>                                  command (always returned, no matter which driver parameter)</t>
710                                </list>                                </list>
711                              </t>                              </t>
712    
# Line 602  Schoenebeck'> Line 721  Schoenebeck'>
721    
722                              <t>DEPENDS -                              <t>DEPENDS -
723                                <list>                                <list>
724                                  <t>comma separated list of paramters this parameter depends                                  <t>comma separated list of parameters this parameter depends
725                                  on, means the values for fields 'DEFAULT', 'RANGE_MIN',                                  on, means the values for fields 'DEFAULT', 'RANGE_MIN',
726                                  'RANGE_MAX' and 'POSSIBILITIES' might depend on these                                  'RANGE_MAX' and 'POSSIBILITIES' might depend on these
727                                  listed parameters, for example assuming that an audio                                  listed parameters, for example assuming that an audio
728                                  driver (like the Alsa driver) offers parameters 'card'                                  driver (like the ALSA driver) offers parameters 'card'
729                                  and 'samplerate' then parameter 'samplerate' would                                  and 'samplerate' then parameter 'samplerate' would
730                                  depend on 'card' because the possible values for                                  depend on 'card' because the possible values for
731                                  'samplerate' depends on the sound card which can be                                  'samplerate' depends on the sound card which can be
# Line 619  Schoenebeck'> Line 738  Schoenebeck'>
738                                <list>                                <list>
739                                  <t>reflects the default value for this parameter which is                                  <t>reflects the default value for this parameter which is
740                                  used when the device is created and not explicitly                                  used when the device is created and not explicitly
741                                  given with the 'CREATE AUDIO_OUTPUT_DEVICE' command,                                  given with the <xref target="CREATE AUDIO_OUTPUT_DEVICE">
742                                    'CREATE AUDIO_OUTPUT_DEVICE'</xref> command,
743                                  in case of MULTIPLCITY=true, this is a comma separated                                  in case of MULTIPLCITY=true, this is a comma separated
744                                  list, that's why character strings are encapsulated into                                  list, that's why character strings are encapsulated into
745                                  apostrophes (')                                  apostrophes (')
# Line 647  Schoenebeck'> Line 767  Schoenebeck'>
767                                </list>                                </list>
768                              </t>                              </t>
769    
770                              <t>POSSIBILITES -                              <t>POSSIBILITIES -
771                                <list>                                <list>
772                                  <t>comma separated list of possible values for this                                  <t>comma separated list of possible values for this
773                                  parameter, character strings are encapsulated into                                  parameter, character strings are encapsulated into
# Line 663  Schoenebeck'> Line 783  Schoenebeck'>
783                      <t>Examples:</t>                      <t>Examples:</t>
784                      <t>                      <t>
785                          <list>                          <list>
786                              <t>C: "GET AUDIO_OUTPUT_DRIVER_PARAMETER INFO Alsa card"</t>                              <t>C: "GET AUDIO_OUTPUT_DRIVER_PARAMETER INFO ALSA CARD"</t>
787                              <t>S: "DESCRIPTION: sound card to be used"</t>                              <t>S: "DESCRIPTION: sound card to be used"</t>
788                              <t>&nbsp;&nbsp;&nbsp;"TYPE: STRING"</t>                              <t>&nbsp;&nbsp;&nbsp;"TYPE: STRING"</t>
789                              <t>&nbsp;&nbsp;&nbsp;"MANDATORY: false"</t>                              <t>&nbsp;&nbsp;&nbsp;"MANDATORY: false"</t>
790                              <t>&nbsp;&nbsp;&nbsp;"FIX: true"</t>                              <t>&nbsp;&nbsp;&nbsp;"FIX: true"</t>
791                              <t>&nbsp;&nbsp;&nbsp;"MULTIPLICITY: false"</t>                              <t>&nbsp;&nbsp;&nbsp;"MULTIPLICITY: false"</t>
792                              <t>&nbsp;&nbsp;&nbsp;"DEFAULT: '0,0'"</t>                              <t>&nbsp;&nbsp;&nbsp;"DEFAULT: '0,0'"</t>
793                              <t>&nbsp;&nbsp;&nbsp;"POSSIBILITES: '0,0','1,0','2,0'"</t>                              <t>&nbsp;&nbsp;&nbsp;"POSSIBILITIES: '0,0','1,0','2,0'"</t>
794                              <t>&nbsp;&nbsp;&nbsp;"."</t>                              <t>&nbsp;&nbsp;&nbsp;"."</t>
795                          </list>                          </list>
796                      </t>                      </t>
797                      <t>                      <t>
798                          <list>                          <list>
799                              <t>C: "GET AUDIO_OUTPUT_DRIVER_PARAMETER INFO Alsa samplerate"</t>                              <t>C: "GET AUDIO_OUTPUT_DRIVER_PARAMETER INFO ALSA SAMPLERATE"</t>
800                              <t>S: "DESCRIPTION: output sample rate in Hz"</t>                              <t>S: "DESCRIPTION: output sample rate in Hz"</t>
801                              <t>&nbsp;&nbsp;&nbsp;"TYPE: INT"</t>                              <t>&nbsp;&nbsp;&nbsp;"TYPE: INT"</t>
802                              <t>&nbsp;&nbsp;&nbsp;"MANDATORY: false"</t>                              <t>&nbsp;&nbsp;&nbsp;"MANDATORY: false"</t>
# Line 689  Schoenebeck'> Line 809  Schoenebeck'>
809                      </t>                      </t>
810                      <t>                      <t>
811                          <list>                          <list>
812                              <t>C: "GET AUDIO_OUTPUT_DRIVER_PARAMETER INFO Alsa samplerate card='0,0'"</t>                              <t>C: "GET AUDIO_OUTPUT_DRIVER_PARAMETER INFO ALSA SAMPLERATE CARD='0,0'"</t>
813                              <t>S: "DESCRIPTION: output sample rate in Hz"</t>                              <t>S: "DESCRIPTION: output sample rate in Hz"</t>
814                              <t>&nbsp;&nbsp;&nbsp;"TYPE: INT"</t>                              <t>&nbsp;&nbsp;&nbsp;"TYPE: INT"</t>
815                              <t>&nbsp;&nbsp;&nbsp;"MANDATORY: false"</t>                              <t>&nbsp;&nbsp;&nbsp;"MANDATORY: false"</t>
# Line 704  Schoenebeck'> Line 824  Schoenebeck'>
824                      </t>                      </t>
825                  </section>                  </section>
826    
827                  <section title="Creating an audio output device">                  <section title="Creating an audio output device" anchor="CREATE AUDIO_OUTPUT_DEVICE">
828                      <t>Use the following command to create a new audio output device for  the desired audio output system:</t>                      <t>Use the following command to create a new audio output device for  the desired audio output system:</t>
829    
830                      <t>                      <t>
# Line 714  Schoenebeck'> Line 834  Schoenebeck'>
834                      </t>                      </t>
835    
836                      <t>Where &lt;audio-output-driver&gt; should be replaced by the desired audio                      <t>Where &lt;audio-output-driver&gt; should be replaced by the desired audio
837                      output system and &lt;param-list&gt; by an optional list of driver                      output system as returned by the
838                        <xref target="LIST AVAILABLE_AUDIO_OUTPUT_DRIVERS">"LIST AVAILABLE_AUDIO_OUTPUT_DRIVERS"</xref>
839                        command and &lt;param-list&gt; by an optional list of driver
840                      specific parameters in form of "key1=val1 key2=val2 ...", where                      specific parameters in form of "key1=val1 key2=val2 ...", where
841                      character string values should be encapsulated into apostrophes (').                      character string values should be encapsulated into apostrophes (').
842                      Note that there might be drivers which require parameter(s) to be                      Note that there might be drivers which require parameter(s) to be
# Line 750  Schoenebeck'> Line 872  Schoenebeck'>
872                      <t>Examples:</t>                      <t>Examples:</t>
873                      <t>                      <t>
874                          <list>                          <list>
875                              <t>C: "CREATE AUDIO_OUTPUT_DEVICE Alsa"</t>                              <t>C: "CREATE AUDIO_OUTPUT_DEVICE ALSA"</t>
876                              <t>S: "OK[0]"</t>                              <t>S: "OK[0]"</t>
877                          </list>                          </list>
878                      </t>                      </t>
879                      <t>                      <t>
880                          <list>                          <list>
881                              <t>C: "CREATE AUDIO_OUTPUT_DEVICE Alsa card='2,0' samplerate=96000"</t>                              <t>C: "CREATE AUDIO_OUTPUT_DEVICE ALSA CARD='2,0' SAMPLERATE=96000"</t>
882                              <t>S: "OK[1]"</t>                              <t>S: "OK[1]"</t>
883                          </list>                          </list>
884                      </t>                      </t>
885                  </section>                  </section>
886    
887                  <section title="Destroying an audio output device">                  <section title="Destroying an audio output device" anchor="DESTROY AUDIO_OUTPUT_DEVICE">
888                      <t>Use the following command to destroy a created output device:</t>                      <t>Use the following command to destroy a created output device:</t>
889                      <t>                      <t>
890                          <list>                          <list>
# Line 770  Schoenebeck'> Line 892  Schoenebeck'>
892                          </list>                          </list>
893                      </t>                      </t>
894                      <t>Where &lt;device-id&gt; should be replaced by the numerical ID of the                      <t>Where &lt;device-id&gt; should be replaced by the numerical ID of the
895                      audio output device as given by the "CREATE AUDIO_OUTPUT_DEVICE" or                      audio output device as given by the
896                      "GET AUDIO_OUTPUT_DEVICES" command.</t>                      <xref target="CREATE AUDIO_OUTPUT_DEVICE">"CREATE AUDIO_OUTPUT_DEVICE"</xref>
897                        or <xref target="LIST AUDIO_OUTPUT_DEVICES">"LIST AUDIO_OUTPUT_DEVICES"</xref>
898                        command.</t>
899                      <t>Possible Answers:</t>                      <t>Possible Answers:</t>
900                      <t>                      <t>
901                          <list>                          <list>
# Line 806  Schoenebeck'> Line 930  Schoenebeck'>
930                      </t>                      </t>
931                  </section>                  </section>
932    
933                  <section title="Getting all created audio output device count">                  <section title="Getting all created audio output device count" anchor="GET AUDIO_OUTPUT_DEVICES">
934                      <t>Use the following command to count all created audio output devices:</t>                      <t>Use the following command to count all created audio output devices:</t>
935                      <t>                      <t>
936                          <list>                          <list>
# Line 829  Schoenebeck'> Line 953  Schoenebeck'>
953                      </t>                      </t>
954                  </section>                  </section>
955    
956                  <section title="Getting all created audio output device list">                  <section title="Getting all created audio output device list" anchor="LIST AUDIO_OUTPUT_DEVICES">
957                      <t>Use the following command to list all created audio output devices:</t>                      <t>Use the following command to list all created audio output devices:</t>
958                      <t>                      <t>
959                          <list>                          <list>
# Line 852  Schoenebeck'> Line 976  Schoenebeck'>
976                      </t>                      </t>
977                  </section>                  </section>
978    
979                  <section title="Getting current settings of an audio output device">                  <section title="Getting current settings of an audio output device" anchor="GET AUDIO_OUTPUT_DEVICE INFO">
980                      <t>Use the following command to get current settings of a specific, created audio output device:</t>                      <t>Use the following command to get current settings of a specific, created audio output device:</t>
981                      <t>                      <t>
982                          <list>                          <list>
983                              <t>GET AUDIO_OUTPUT_DEVICE INFO &lt;device-id&gt;</t>                              <t>GET AUDIO_OUTPUT_DEVICE INFO &lt;device-id&gt;</t>
984                          </list>                          </list>
985                      </t>                      </t>
986                      <t>Where &lt;device-id&gt; should be replaced by be numerical ID                      <t>Where &lt;device-id&gt; should be replaced by numerical ID
987                      of the audio output device as e.g. returned by the                      of the audio output device as e.g. returned by the
988                      "GET AUDIO_OUTPUT_DEVICES" command.</t>                      <xref target="LIST AUDIO_OUTPUT_DEVICES">"LIST AUDIO_OUTPUT_DEVICES"</xref> command.</t>
989                      <t>Possible Answers:</t>                      <t>Possible Answers:</t>
990                      <t>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.                      <t>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
991                      Each answer line begins with the information category name                      Each answer line begins with the information category name
# Line 872  Schoenebeck'> Line 996  Schoenebeck'>
996                      information categories are defined (independently of device):</t>                      information categories are defined (independently of device):</t>
997                      <t>                      <t>
998                          <list>                          <list>
999                              <t>driver -                              <t>DRIVER -
1000                                  <list>                                  <list>
1001                                      <t>identifier of the used audio output driver, as also                                      <t>identifier of the used audio output driver, as also
1002                                      returned by the "GET AVAILABLE_AUDIO_OUTPUT_DRIVERS"                                      returned by the
1003                                        <xref target="LIST AVAILABLE_AUDIO_OUTPUT_DRIVERS">
1004                                        "LIST AVAILABLE_AUDIO_OUTPUT_DRIVERS"</xref>
1005                                      command</t>                                      command</t>
1006                                  </list>                                  </list>
1007                              </t>                              </t>
1008                              <t>channels -                              <t>CHANNELS -
1009                                  <list>                                  <list>
1010                                      <t>amount of audio output channels this device currently                                      <t>amount of audio output channels this device currently
1011                                      offers</t>                                      offers</t>
1012                                  </list>                                  </list>
1013                              </t>                              </t>
1014                              <t>samplerate -                              <t>SAMPLERATE -
1015                                  <list>                                  <list>
1016                                      <t>playback sample rate the device uses</t>                                      <t>playback sample rate the device uses</t>
1017                                  </list>                                  </list>
1018                              </t>                              </t>
1019                              <t>active -                              <t>ACTIVE -
1020                                  <list>                                  <list>
1021                                      <t>either true or false, if false then the audio device is                                      <t>either true or false, if false then the audio device is
1022                                      inactive and doesn't output any sound, nor do the                                      inactive and doesn't output any sound, nor do the
# Line 904  Schoenebeck'> Line 1030  Schoenebeck'>
1030                      order. The fields above are only those fields which are                      order. The fields above are only those fields which are
1031                      returned by all audio output devices. Every audio output driver                      returned by all audio output devices. Every audio output driver
1032                      might have its own, additional driver specific parameters (see                      might have its own, additional driver specific parameters (see
1033                      "GET AUDIO_OUTPUT_DRIVER INFO" command) which are also returned                      <xref target="GET AUDIO_OUTPUT_DRIVER INFO" />)
1034                      by this command.</t>                      which are also returned by this command.</t>
1035                      <t>Example:</t>                      <t>Example:</t>
1036                      <t>                      <t>
1037                          <list>                          <list>
1038                              <t>C: "GET AUDIO_OUTPUT_DEVICE INFO 0"</t>                              <t>C: "GET AUDIO_OUTPUT_DEVICE INFO 0"</t>
1039                              <t>S: "driver: Alsa"</t>                              <t>S: "DRIVER: ALSA"</t>
1040                              <t>&nbsp;&nbsp;&nbsp;"channels: 2"</t>                              <t>&nbsp;&nbsp;&nbsp;"CHANNELS: 2"</t>
1041                              <t>&nbsp;&nbsp;&nbsp;"samplerate: 44100"</t>                              <t>&nbsp;&nbsp;&nbsp;"SAMPLERATE: 44100"</t>
1042                              <t>&nbsp;&nbsp;&nbsp;"active: true"</t>                              <t>&nbsp;&nbsp;&nbsp;"ACTIVE: true"</t>
1043                              <t>&nbsp;&nbsp;&nbsp;"fragments: 2"</t>                              <t>&nbsp;&nbsp;&nbsp;"FRAGMENTS: 2"</t>
1044                              <t>&nbsp;&nbsp;&nbsp;"fragmentsize: 128"</t>                              <t>&nbsp;&nbsp;&nbsp;"FRAGMENTSIZE: 128"</t>
1045                              <t>&nbsp;&nbsp;&nbsp;"card: '0,0'"</t>                              <t>&nbsp;&nbsp;&nbsp;"CARD: '0,0'"</t>
1046                              <t>&nbsp;&nbsp;&nbsp;"."</t>                              <t>&nbsp;&nbsp;&nbsp;"."</t>
1047                          </list>                          </list>
1048                      </t>                      </t>
1049                  </section>                  </section>
1050    
1051    
1052                  <section title="Changing settings of audio output devices">                  <section title="Changing settings of audio output devices" anchor="SET AUDIO_OUTPUT_DEVICE_PARAMETER">
1053                      <t>Use the following command to alter a specific setting of a created audio output device:</t>                      <t>Use the following command to alter a specific setting of a created audio output device:</t>
1054                      <t>                      <t>
1055                          <list>                          <list>
# Line 931  Schoenebeck'> Line 1057  Schoenebeck'>
1057                          </list>                          </list>
1058                      </t>                      </t>
1059                      <t>Where &lt;device-id&gt; should be replaced by the numerical ID of the                      <t>Where &lt;device-id&gt; should be replaced by the numerical ID of the
1060                      audio output device, &lt;key&gt; by the name of the parameter to change                      audio output device as given by the
1061                        <xref target="CREATE AUDIO_OUTPUT_DEVICE">"CREATE AUDIO_OUTPUT_DEVICE"</xref>
1062                        or <xref target="LIST AUDIO_OUTPUT_DEVICES">"LIST AUDIO_OUTPUT_DEVICES"</xref>
1063                        command, &lt;key&gt; by the name of the parameter to change
1064                      and &lt;value&gt; by the new value for this parameter.</t>                      and &lt;value&gt; by the new value for this parameter.</t>
1065                      <t>Possible Answers:</t>                      <t>Possible Answers:</t>
1066                      <t>                      <t>
# Line 959  Schoenebeck'> Line 1088  Schoenebeck'>
1088                      <t>Example:</t>                      <t>Example:</t>
1089                      <t>                      <t>
1090                          <list>                          <list>
1091                              <t>C: "SET AUDIO_OUTPUT_DEVICE_PARAMETER 0 fragmentsize=128"</t>                              <t>C: "SET AUDIO_OUTPUT_DEVICE_PARAMETER 0 FRAGMENTSIZE=128"</t>
1092                              <t>S: "OK"</t>                              <t>S: "OK"</t>
1093                          </list>                          </list>
1094                      </t>                      </t>
1095                  </section>                  </section>
1096    
1097                  <section title="Getting information about an audio channel">                  <section title="Getting information about an audio channel" anchor="GET AUDIO_OUTPUT_CHANNEL INFO">
1098                      <t>Use the following command to get information about an audio channel:</t>                      <t>Use the following command to get information about an audio channel:</t>
1099                      <t>                      <t>
1100                          <list>                          <list>
1101                              <t>GET AUDIO_OUTPUT_CHANNEL INFO &lt;device-id&gt; &lt;audio-chan&gt;</t>                              <t>GET AUDIO_OUTPUT_CHANNEL INFO &lt;device-id&gt; &lt;audio-chan&gt;</t>
1102                          </list>                          </list>
1103                      </t>                      </t>
1104                      <t>Where &lt;device-id&gt; is the numerical ID of the audio output device                      <t>Where &lt;device-id&gt; is the numerical ID of the audio output device as given by the
1105                      and &lt;audio-chan&gt; the audio channel number.</t>                      <xref target="CREATE AUDIO_OUTPUT_DEVICE">"CREATE AUDIO_OUTPUT_DEVICE"</xref>
1106                        or <xref target="LIST AUDIO_OUTPUT_DEVICES">"LIST AUDIO_OUTPUT_DEVICES"</xref>
1107                        command and &lt;audio-chan&gt; the audio channel number.</t>
1108                      <t>Possible Answers:</t>                      <t>Possible Answers:</t>
1109                      <t>                      <t>
1110                          <list>                          <list>
# Line 1003  Schoenebeck'> Line 1134  Schoenebeck'>
1134                                      </t>                                      </t>
1135                                      <t>MIX_CHANNEL_DESTINATION -                                      <t>MIX_CHANNEL_DESTINATION -
1136                                          <list>                                          <list>
1137                                              <t>reflects the real audio channel (of the same audio                                              <t>numerical ID (positive integer including 0)
1138                                                which reflects the real audio channel (of the same audio
1139                                              output device) this mix channel refers to, means where                                              output device) this mix channel refers to, means where
1140                                              the audio signal actually will be routed / added to                                              the audio signal actually will be routed / added to
1141                                              (only returned in case the audio channel is mix channel)</t>                                              (only returned in case the audio channel is mix channel)</t>
# Line 1056  Schoenebeck'> Line 1188  Schoenebeck'>
1188                              <t>C: "GET AUDIO_OUTPUT_CHANNEL INFO 1 0"</t>                              <t>C: "GET AUDIO_OUTPUT_CHANNEL INFO 1 0"</t>
1189                              <t>S: "NAME: 'ardour (left)'"</t>                              <t>S: "NAME: 'ardour (left)'"</t>
1190                              <t>&nbsp;&nbsp;&nbsp;"IS_MIX_CHANNEL: false"</t>                              <t>&nbsp;&nbsp;&nbsp;"IS_MIX_CHANNEL: false"</t>
1191                              <t>&nbsp;&nbsp;&nbsp;"jack_bindings: 'ardour:0'"</t>                              <t>&nbsp;&nbsp;&nbsp;"JACK_BINDINGS: 'ardour:0'"</t>
1192                              <t>&nbsp;&nbsp;&nbsp;"."</t>                              <t>&nbsp;&nbsp;&nbsp;"."</t>
1193                          </list>                          </list>
1194                      </t>                      </t>
1195                  </section>                  </section>
1196    
1197                  <section title="Getting information about specific audio channel parameter">                  <section title="Getting information about specific audio channel parameter" anchor="GET AUDIO_OUTPUT_CHANNEL_PARAMETER INFO">
1198                      <t>Use the following command to get detailed information about specific audio channel parameter:</t>                      <t>Use the following command to get detailed information about specific audio channel parameter:</t>
1199    
1200                      <t>                      <t>
# Line 1071  Schoenebeck'> Line 1203  Schoenebeck'>
1203                          </list>                          </list>
1204                      </t>                      </t>
1205    
1206                      <t>Where &lt;dev-id&gt; is the numerical ID of the audio output device as returned                      <t>Where &lt;dev-id&gt; is the numerical ID of the audio output device as returned by the
1207                      by the "GET AUDIO_OUTPUT_DEVICES" command, &lt;chan&gt; the audio channel number                      <xref target="CREATE AUDIO_OUTPUT_DEVICE">"CREATE AUDIO_OUTPUT_DEVICE"</xref>
1208                        or <xref target="LIST AUDIO_OUTPUT_DEVICES">"LIST AUDIO_OUTPUT_DEVICES"</xref>
1209                        command, &lt;chan&gt; the audio channel number
1210                      and &lt;param&gt; a specific channel parameter name for which information should                      and &lt;param&gt; a specific channel parameter name for which information should
1211                      be obtained (as returned by the "GET AUDIO_OUTPUT_CHANNEL INFO" command).</t>                      be obtained (as returned by the <xref target="GET AUDIO_OUTPUT_CHANNEL INFO">
1212                        "GET AUDIO_OUTPUT_CHANNEL INFO"</xref> command).</t>
1213                      <t>Possible Answers:</t>                      <t>Possible Answers:</t>
1214    
1215                      <t>                      <t>
# Line 1137  Schoenebeck'> Line 1272  Schoenebeck'>
1272                                              parameter)</t>                                              parameter)</t>
1273                                          </list>                                          </list>
1274                                      </t>                                      </t>
1275                                      <t>POSSIBILITES -                                      <t>POSSIBILITIES -
1276                                          <list>                                          <list>
1277                                              <t>comma separated list of possible values for this                                              <t>comma separated list of possible values for this
1278                                              parameter, character strings are encapsulated into                                              parameter, character strings are encapsulated into
# Line 1154  Schoenebeck'> Line 1289  Schoenebeck'>
1289                      <t>Example:</t>                      <t>Example:</t>
1290                      <t>                      <t>
1291                          <list>                          <list>
1292                              <t>C: "GET AUDIO_OUTPUT_CHANNEL_PARAMETER INFO 1 0 jack_bindings"</t>                              <t>C: "GET AUDIO_OUTPUT_CHANNEL_PARAMETER INFO 1 0 JACK_BINDINGS"</t>
1293                              <t>S: "DESCRIPTION: bindings to other Jack clients"</t>                              <t>S: "DESCRIPTION: bindings to other JACK clients"</t>
1294                              <t>&nbsp;&nbsp;&nbsp;"TYPE: STRING"</t>                              <t>&nbsp;&nbsp;&nbsp;"TYPE: STRING"</t>
1295                              <t>&nbsp;&nbsp;&nbsp;"FIX: false"</t>                              <t>&nbsp;&nbsp;&nbsp;"FIX: false"</t>
1296                              <t>&nbsp;&nbsp;&nbsp;"MULTIPLICITY: true"</t>                              <t>&nbsp;&nbsp;&nbsp;"MULTIPLICITY: true"</t>
1297                              <t>&nbsp;&nbsp;&nbsp;"POSSIBILITES: 'PCM:0','PCM:1','ardour:0','ardour:1'"</t>                              <t>&nbsp;&nbsp;&nbsp;"POSSIBILITIES: 'PCM:0','PCM:1','ardour:0','ardour:1'"</t>
1298                              <t>&nbsp;&nbsp;&nbsp;"."</t>                              <t>&nbsp;&nbsp;&nbsp;"."</t>
1299                          </list>                          </list>
1300                      </t>                      </t>
1301                  </section>                  </section>
1302    
1303                  <section title="Changing settings of audio output channels">                  <section title="Changing settings of audio output channels" anchor="SET AUDIO_OUTPUT_CHANNEL_PARAMETER">
1304                      <t>Use the following command to alter a specific setting of an audio output channel:</t>                      <t>Use the following command to alter a specific setting of an audio output channel:</t>
1305                      <t>                      <t>
1306                          <list>                          <list>
1307                              <t>SET AUDIO_OUTPUT_CHANNEL_PARAMETER &lt;dev-id&gt; &lt;chn&gt; &lt;key&gt;=&lt;value&gt;</t>                              <t>SET AUDIO_OUTPUT_CHANNEL_PARAMETER &lt;dev-id&gt; &lt;chn&gt; &lt;key&gt;=&lt;value&gt;</t>
1308                          </list>                          </list>
1309                      </t>                      </t>
1310                      <t>Where &lt;dev-id&gt; should be replaced by the numerical ID of the audio                      <t>Where &lt;dev-id&gt; should be replaced by the numerical ID of the audio output device as returned by the
1311                      device, &lt;chn&gt; by the audio channel number, &lt;key&gt; by the name of the                      <xref target="CREATE AUDIO_OUTPUT_DEVICE">"CREATE AUDIO_OUTPUT_DEVICE"</xref>
1312                        or <xref target="LIST AUDIO_OUTPUT_DEVICES">"LIST AUDIO_OUTPUT_DEVICES"</xref>
1313                        command, &lt;chn&gt; by the audio channel number, &lt;key&gt; by the name of the
1314                      parameter to change and &lt;value&gt; by the new value for this parameter.</t>                      parameter to change and &lt;value&gt; by the new value for this parameter.</t>
1315                      <t>Possible Answers:</t>                      <t>Possible Answers:</t>
1316                      <t>                      <t>
# Line 1201  Schoenebeck'> Line 1338  Schoenebeck'>
1338                      <t>Example:</t>                      <t>Example:</t>
1339                      <t>                      <t>
1340                          <list>                          <list>
1341                              <t>C: "SET AUDIO_OUTPUT_CHANNEL PARAMETER 0 0 jack_bindings='PCM:0'"</t>                              <t>C: "SET AUDIO_OUTPUT_CHANNEL PARAMETER 0 0 JACK_BINDINGS='PCM:0'"</t>
1342                              <t>S: "OK"</t>                              <t>S: "OK"</t>
1343                          </list>                          </list>
1344                      </t>                      </t>
# Line 1217  Schoenebeck'> Line 1354  Schoenebeck'>
1354              <section title="Configuring MIDI input drivers">              <section title="Configuring MIDI input drivers">
1355                  <t>Instances of drivers in LinuxSampler are called devices. You can use                  <t>Instances of drivers in LinuxSampler are called devices. You can use
1356                  multiple MIDI devices simultaneously, e.g. to use MIDI over ethernet as                  multiple MIDI devices simultaneously, e.g. to use MIDI over ethernet as
1357                  MIDI input on one sampler channel and Alsa as MIDI input on another sampler                  MIDI input on one sampler channel and ALSA as MIDI input on another sampler
1358                  channel. For particular MIDI input systems it's also possible to create                  channel. For particular MIDI input systems it's also possible to create
1359                  several devices of the same MIDI input type. This chapter describes all                  several devices of the same MIDI input type. This chapter describes all
1360                  commands to configure LinuxSampler's MIDI input devices and their parameters.</t>                  commands to configure LinuxSampler's MIDI input devices and their parameters.</t>
# Line 1241  Schoenebeck'> Line 1378  Schoenebeck'>
1378                  showing how to retrieve what parameters drivers are offering, how to retrieve their                  showing how to retrieve what parameters drivers are offering, how to retrieve their
1379                  possible values, etc.</t>                  possible values, etc.</t>
1380    
1381                  <section title="Getting all available MIDI input drivers">                  <section title="Getting amount of available MIDI input drivers" anchor="GET AVAILABLE_MIDI_INPUT_DRIVERS">
1382                        <t>Use the following command to get the number of
1383                        MIDI input drivers currently available for the
1384                        LinuxSampler instance:</t>
1385                        <t>
1386                            <list>
1387                                <t>GET AVAILABLE_MIDI_INPUT_DRIVERS</t>
1388                            </list>
1389                        </t>
1390                        <t>Possible Answers:</t>
1391                        <t>
1392                            <list>
1393                                <t>LinuxSampler will answer by sending the
1394                                number of available MIDI input drivers.</t>
1395                            </list>
1396                        </t>
1397                        <t>Example:</t>
1398                        <t>
1399                            <list>
1400                                <t>C: "GET AVAILABLE_MIDI_INPUT_DRIVERS"</t>
1401                                <t>S: "2"</t>
1402                            </list>
1403                        </t>
1404                    </section>
1405    
1406                    <section title="Getting all available MIDI input drivers" anchor="LIST AVAILABLE_MIDI_INPUT_DRIVERS">
1407                      <t>Use the following command to list all MIDI input drivers currently available                      <t>Use the following command to list all MIDI input drivers currently available
1408                      for the LinuxSampler instance:</t>                      for the LinuxSampler instance:</t>
1409                      <t>                      <t>
1410                          <list>                          <list>
1411                              <t>GET AVAILABLE_MIDI_INPUT_DRIVERS</t>                              <t>LIST AVAILABLE_MIDI_INPUT_DRIVERS</t>
1412                          </list>                          </list>
1413                      </t>                      </t>
1414                      <t>Possible Answers:</t>                      <t>Possible Answers:</t>
# Line 1259  Schoenebeck'> Line 1421  Schoenebeck'>
1421                      <t>Example:</t>                      <t>Example:</t>
1422                      <t>                      <t>
1423                          <list>                          <list>
1424                              <t>C: "GET AVAILABLE_MIDI_INPUT_DRIVERS"</t>                              <t>C: "LIST AVAILABLE_MIDI_INPUT_DRIVERS"</t>
1425                              <t>S: "Alsa,Jack"</t>                              <t>S: "ALSA,JACK"</t>
1426                          </list>                          </list>
1427                      </t>                      </t>
1428                  </section>                  </section>
1429    
1430                  <section title="Getting information about a specific MIDI input driver">                  <section title="Getting information about a specific MIDI input driver" anchor="GET MIDI_INPUT_DRIVER INFO">
1431                      <t>Use the following command to get detailed information about a specific MIDI input driver:</t>                      <t>Use the following command to get detailed information about a specific MIDI input driver:</t>
1432                      <t>                      <t>
1433                          <list>                          <list>
1434                              <t>GET MIDI_INPUT_DRIVER INFO &lt;midi-input-driver&gt;</t>                              <t>GET MIDI_INPUT_DRIVER INFO &lt;midi-input-driver&gt;</t>
1435                          </list>                          </list>
1436                      </t>                      </t>
1437                      <t>Where &lt;midi-input-driver&gt; is the name of the MIDI input driver.</t>                      <t>Where &lt;midi-input-driver&gt; is the name of the MIDI input driver as returned
1438                        by the <xref target="LIST AVAILABLE_MIDI_INPUT_DRIVERS">
1439                        "LIST AVAILABLE_MIDI_INPUT_DRIVERS"</xref> command.</t>
1440                      <t>Possible Answers:</t>                      <t>Possible Answers:</t>
1441                      <t>                      <t>
1442                          <list>                          <list>
# Line 1310  Schoenebeck'> Line 1474  Schoenebeck'>
1474    
1475                      <t>                      <t>
1476                          <list>                          <list>
1477                              <t>C: "GET MIDI_INPUT_DRIVER INFO Alsa"</t>                              <t>C: "GET MIDI_INPUT_DRIVER INFO ALSA"</t>
1478                              <t>S: "DESCRIPTION: Advanced Linux Sound Architecture"</t>                              <t>S: "DESCRIPTION: Advanced Linux Sound Architecture"</t>
1479                              <t>&nbsp;&nbsp;&nbsp;"VERSION: 1.0"</t>                              <t>&nbsp;&nbsp;&nbsp;"VERSION: 1.0"</t>
1480                              <t>&nbsp;&nbsp;&nbsp;"PARAMETERS: driver,active"</t>                              <t>&nbsp;&nbsp;&nbsp;"PARAMETERS: DRIVER,ACTIVE"</t>
1481                              <t>&nbsp;&nbsp;&nbsp;"."</t>                              <t>&nbsp;&nbsp;&nbsp;"."</t>
1482                          </list>                          </list>
1483                      </t>                      </t>
1484                  </section>                  </section>
1485    
1486                  <section title="Getting information about specific MIDI input driver parameter">                  <section title="Getting information about specific MIDI input driver parameter" anchor="GET MIDI_INPUT_DRIVER_PARAMETER INFO">
1487                      <t>Use the following command to get detailed information about a specific parameter of a specific MIDI input driver:</t>                      <t>Use the following command to get detailed information about a specific parameter of a specific MIDI input driver:</t>
1488                      <t>                      <t>
1489                          <list>                          <list>
# Line 1327  Schoenebeck'> Line 1491  Schoenebeck'>
1491                          </list>                          </list>
1492                      </t>                      </t>
1493    
1494                      <t>Where &lt;midi-t&gt; is the name of the MIDI input driver as returned                      <t>Where &lt;midit&gt; is the name of the MIDI input driver as returned
1495                      by the "GET AVAILABLE_MIDI_INPUT_DRIVERS" command, &lt;param&gt; a specific                      by the <xref target="LIST AVAILABLE_MIDI_INPUT_DRIVERS">
1496                        "LIST AVAILABLE_MIDI_INPUT_DRIVERS"</xref> command, &lt;param&gt; a specific
1497                      parameter name for which information should be obtained (as returned by the                      parameter name for which information should be obtained (as returned by the
1498                      "GET MIDI_INPUT_DRIVER INFO" command) and &lt;deplist&gt; is an optional list                      <xref target="GET MIDI_INPUT_DRIVER INFO">
1499                        "GET MIDI_INPUT_DRIVER INFO"</xref> command) and &lt;deplist&gt; is an optional list
1500                      of parameters on which the sought parameter &lt;param&gt; depends on,                      of parameters on which the sought parameter &lt;param&gt; depends on,
1501                      &lt;deplist&gt; is a key-value pair list in form of "key1=val1 key2=val2 ...",                      &lt;deplist&gt; is a key-value pair list in form of "key1=val1 key2=val2 ...",
1502                      where character string values are encapsulated into apostrophes ('). Arguments                      where character string values are encapsulated into apostrophes ('). Arguments
# Line 1371  Schoenebeck'> Line 1537  Schoenebeck'>
1537                                <list>                                <list>
1538                                  <t>either true or false, defines if this parameter must be                                  <t>either true or false, defines if this parameter must be
1539                                  given when the device is to be created with the                                  given when the device is to be created with the
1540                                  'CREATE MIDI_INPUT_DEVICE' command                                  <xref target="CREATE MIDI_INPUT_DEVICE">
1541                                    'CREATE MIDI_INPUT_DEVICE'</xref> command
1542                                  (always returned, no matter which driver parameter)</t>                                  (always returned, no matter which driver parameter)</t>
1543                                </list>                                </list>
1544                              </t>                              </t>
# Line 1380  Schoenebeck'> Line 1547  Schoenebeck'>
1547                                <list>                                <list>
1548                                  <t>either true or false, if false then this parameter can                                  <t>either true or false, if false then this parameter can
1549                                  be changed at any time, once the device is created by                                  be changed at any time, once the device is created by
1550                                  the 'CREATE MIDI_INPUT_DEVICE' command                                  the <xref target="CREATE MIDI_INPUT_DEVICE">
1551                                    'CREATE MIDI_INPUT_DEVICE'</xref> command
1552                                  (always returned, no matter which driver parameter)</t>                                  (always returned, no matter which driver parameter)</t>
1553                                </list>                                </list>
1554                              </t>                              </t>
# Line 1396  Schoenebeck'> Line 1564  Schoenebeck'>
1564    
1565                              <t>DEPENDS -                              <t>DEPENDS -
1566                                <list>                                <list>
1567                                  <t>comma separated list of paramters this parameter depends                                  <t>comma separated list of parameters this parameter depends
1568                                  on, means the values for fields 'DEFAULT', 'RANGE_MIN',                                  on, means the values for fields 'DEFAULT', 'RANGE_MIN',
1569                                  'RANGE_MAX' and 'POSSIBILITIES' might depend on these                                  'RANGE_MAX' and 'POSSIBILITIES' might depend on these
1570                                  listed parameters, for example assuming that an audio                                  listed parameters, for example assuming that an audio
1571                                  driver (like the Alsa driver) offers parameters 'card'                                  driver (like the ALSA driver) offers parameters 'card'
1572                                  and 'samplerate' then parameter 'samplerate' would                                  and 'samplerate' then parameter 'samplerate' would
1573                                  depend on 'card' because the possible values for                                  depend on 'card' because the possible values for
1574                                  'samplerate' depends on the sound card which can be                                  'samplerate' depends on the sound card which can be
# Line 1413  Schoenebeck'> Line 1581  Schoenebeck'>
1581                                <list>                                <list>
1582                                  <t>reflects the default value for this parameter which is                                  <t>reflects the default value for this parameter which is
1583                                  used when the device is created and not explicitly                                  used when the device is created and not explicitly
1584                                  given with the 'CREATE MIDI_INPUT_DEVICE' command,                                  given with the <xref target="CREATE MIDI_INPUT_DEVICE">
1585                                    'CREATE MIDI_INPUT_DEVICE'</xref> command,
1586                                  in case of MULTIPLCITY=true, this is a comma separated                                  in case of MULTIPLCITY=true, this is a comma separated
1587                                  list, that's why character strings are encapsulated into                                  list, that's why character strings are encapsulated into
1588                                  apostrophes (')                                  apostrophes (')
# Line 1441  Schoenebeck'> Line 1610  Schoenebeck'>
1610                                </list>                                </list>
1611                              </t>                              </t>
1612    
1613                              <t>POSSIBILITES -                              <t>POSSIBILITIES -
1614                                <list>                                <list>
1615                                  <t>comma separated list of possible values for this                                  <t>comma separated list of possible values for this
1616                                  parameter, character strings are encapsulated into                                  parameter, character strings are encapsulated into
# Line 1457  Schoenebeck'> Line 1626  Schoenebeck'>
1626                      <t>Example:</t>                      <t>Example:</t>
1627                      <t>                      <t>
1628                          <list>                          <list>
1629                              <t>C: "GET MIDI_INPUT_DRIVER_PARAMETER INFO Alsa active"</t>                              <t>C: "GET MIDI_INPUT_DRIVER_PARAMETER INFO ALSA ACTIVE"</t>
1630                              <t>S: "DESCRIPTION: Whether device is enabled"</t>                              <t>S: "DESCRIPTION: Whether device is enabled"</t>
1631                              <t>&nbsp;&nbsp;&nbsp;"TYPE: BOOL"</t>                              <t>&nbsp;&nbsp;&nbsp;"TYPE: BOOL"</t>
1632                              <t>&nbsp;&nbsp;&nbsp;"MANDATORY: false"</t>                              <t>&nbsp;&nbsp;&nbsp;"MANDATORY: false"</t>
# Line 1469  Schoenebeck'> Line 1638  Schoenebeck'>
1638                      </t>                      </t>
1639                  </section>                  </section>
1640    
1641                  <section title="Creating a MIDI input device">                  <section title="Creating a MIDI input device" anchor="CREATE MIDI_INPUT_DEVICE">
1642                      <t>Use the following command to create a new MIDI input device for  the desired MIDI input system:</t>                      <t>Use the following command to create a new MIDI input device for  the desired MIDI input system:</t>
1643                      <t>                      <t>
1644                          <list>                          <list>
# Line 1477  Schoenebeck'> Line 1646  Schoenebeck'>
1646                          </list>                          </list>
1647                      </t>                      </t>
1648    
1649                      <t>Where &lt;midi-input-driver&gt; should be replaced by the desired MIDI input system and &lt;param-list&gt; by an                      <t>Where &lt;midi-input-driver&gt; should be replaced by the desired MIDI input system as returned
1650                        by the <xref target="LIST AVAILABLE_MIDI_INPUT_DRIVERS">
1651                        "LIST AVAILABLE_MIDI_INPUT_DRIVERS"</xref> command and &lt;param-list&gt; by an
1652                      optional list of driver specific parameters in form of "key1=val1 key2=val2 ...", where                      optional list of driver specific parameters in form of "key1=val1 key2=val2 ...", where
1653                      character string values should be encapsulated into apostrophes (').                      character string values should be encapsulated into apostrophes (').
1654                      Note that there might be drivers which require parameter(s) to be                      Note that there might be drivers which require parameter(s) to be
# Line 1511  Schoenebeck'> Line 1682  Schoenebeck'>
1682                      <t>Example:</t>                      <t>Example:</t>
1683                      <t>                      <t>
1684                          <list>                          <list>
1685                              <t>C: "CREATE MIDI_INPUT_DEVICE Alsa"</t>                              <t>C: "CREATE MIDI_INPUT_DEVICE ALSA"</t>
1686                              <t>S: "OK[0]"</t>                              <t>S: "OK[0]"</t>
1687                          </list>                          </list>
1688                      </t>                      </t>
1689                  </section>                  </section>
1690    
1691                  <section title="Destroying a MIDI input device">                  <section title="Destroying a MIDI input device" anchor="DESTROY MIDI_INPUT_DEVICE">
1692                      <t>Use the following command to destroy a created MIDI input device:</t>                      <t>Use the following command to destroy a created MIDI input device:</t>
1693                      <t>                      <t>
1694                          <list>                          <list>
1695                              <t>DESTROY MIDI_INPUT_DEVICE &lt;device-id&gt;</t>                              <t>DESTROY MIDI_INPUT_DEVICE &lt;device-id&gt;</t>
1696                          </list>                          </list>
1697                      </t>                      </t>
1698                      <t>Where &lt;device-id&gt; should be replaced by the device's numerical ID.</t>                      <t>Where &lt;device-id&gt; should be replaced by the device's numerical ID as returned by the
1699                        <xref target="CREATE MIDI_INPUT_DEVICE">"CREATE MIDI_INPUT_DEVICE"</xref>
1700                        or <xref target="LIST MIDI_INPUT_DEVICES">"LIST MIDI_INPUT_DEVICES"</xref>
1701                        command.</t>
1702                      <t>Possible Answers:</t>                      <t>Possible Answers:</t>
1703                      <t>                      <t>
1704                          <list>                          <list>
# Line 1556  Schoenebeck'> Line 1730  Schoenebeck'>
1730                      </t>                      </t>
1731                  </section>                  </section>
1732    
1733                  <section title="Getting all created MIDI input device count">                  <section title="Getting all created MIDI input device count" anchor="GET MIDI_INPUT_DEVICES">
1734                      <t>Use the following command to count all created MIDI input devices:</t>                      <t>Use the following command to count all created MIDI input devices:</t>
1735                      <t>                      <t>
1736                          <list>                          <list>
# Line 1580  Schoenebeck'> Line 1754  Schoenebeck'>
1754                  </section>                  </section>
1755    
1756    
1757                  <section title="Getting all created MIDI input device list">                  <section title="Getting all created MIDI input device list" anchor="LIST MIDI_INPUT_DEVICES">
1758                      <t>Use the following command to list all created MIDI input devices:</t>                      <t>Use the following command to list all created MIDI input devices:</t>
1759                      <t>                      <t>
1760                          <list>                          <list>
# Line 1609  Schoenebeck'> Line 1783  Schoenebeck'>
1783                      </t>                      </t>
1784                  </section>                  </section>
1785    
1786                  <section title="Getting current settings of a MIDI input device">                  <section title="Getting current settings of a MIDI input device" anchor="GET MIDI_INPUT_DEVICE INFO">
1787                      <t>Use the following command to get current settings of a specific, created MIDI input device:</t>                      <t>Use the following command to get current settings of a specific, created MIDI input device:</t>
1788                      <t>                      <t>
1789                          <list>                          <list>
1790                              <t>GET MIDI_INPUT_DEVICE INFO &lt;device-id&gt;</t>                              <t>GET MIDI_INPUT_DEVICE INFO &lt;device-id&gt;</t>
1791                          </list>                          </list>
1792                      </t>                      </t>
1793                      <t>Where &lt;device-id&gt; is the numerical ID of the MIDI input device.</t>                      <t>Where &lt;device-id&gt; is the numerical ID of the MIDI input device as returned by the
1794                        <xref target="CREATE MIDI_INPUT_DEVICE">"CREATE MIDI_INPUT_DEVICE"</xref>
1795                        or <xref target="LIST MIDI_INPUT_DEVICES">"LIST MIDI_INPUT_DEVICES"</xref>
1796                        command.</t>
1797                      <t>Possible Answers:</t>                      <t>Possible Answers:</t>
1798                      <t>                      <t>
1799                          <list>                          <list>
# Line 1633  Schoenebeck'> Line 1810  Schoenebeck'>
1810                                      <t>DRIVER -                                      <t>DRIVER -
1811                                          <list>                                          <list>
1812                                              <t>identifier of the used MIDI input driver, as e.g.                                              <t>identifier of the used MIDI input driver, as e.g.
1813                                              returned by the "GET AVAILABLE_MIDI_INPUT_DRIVERS"                                              returned by the <xref target="LIST AVAILABLE_MIDI_INPUT_DRIVERS">
1814                                                "LIST AVAILABLE_MIDI_INPUT_DRIVERS"</xref>
1815                                              command</t>                                              command</t>
1816                                          </list>                                          </list>
1817                                      </t>                                      </t>
# Line 1656  Schoenebeck'> Line 1834  Schoenebeck'>
1834                      order. The fields above are only those fields which are                      order. The fields above are only those fields which are
1835                      returned by all MIDI input devices. Every MIDI input driver                      returned by all MIDI input devices. Every MIDI input driver
1836                      might have its own, additional driver specific parameters (see                      might have its own, additional driver specific parameters (see
1837                      "GET MIDI_INPUT_DRIVER INFO" command) which are also returned                      <xref target="GET MIDI_INPUT_DRIVER INFO">
1838                        "GET MIDI_INPUT_DRIVER INFO"</xref> command) which are also returned
1839                      by this command.</t>                      by this command.</t>
1840    
1841                      <t>Example:</t>                      <t>Example:</t>
1842                      <t>                      <t>
1843                          <list>                          <list>
1844                              <t>C: "GET MIDI_INPUT_DEVICE INFO 0"</t>                              <t>C: "GET MIDI_INPUT_DEVICE INFO 0"</t>
1845                              <t>S: "driver: Alsa"</t>                              <t>S: "DRIVER: ALSA"</t>
1846                              <t>&nbsp;&nbsp;&nbsp;"active: true"</t>                              <t>&nbsp;&nbsp;&nbsp;"ACTIVE: true"</t>
1847                              <t>&nbsp;&nbsp;&nbsp;"."</t>                              <t>&nbsp;&nbsp;&nbsp;"."</t>
1848                          </list>                          </list>
1849                      </t>                      </t>
1850                  </section>                  </section>
1851    
1852                  <section title="Changing settings of audio output devices">                  <section title="Changing settings of MIDI input devices" anchor="SET MIDI_INPUT_DEVICE_PARAMETER">
1853                      <t>Use the following command to alter a specific setting of a created MIDI input device:</t>                      <t>Use the following command to alter a specific setting of a created MIDI input device:</t>
1854                      <t>                      <t>
1855                          <list>                          <list>
# Line 1679  Schoenebeck'> Line 1858  Schoenebeck'>
1858                      </t>                      </t>
1859    
1860                      <t>Where &lt;device-id&gt; should be replaced by the numerical ID of the                      <t>Where &lt;device-id&gt; should be replaced by the numerical ID of the
1861                      MIDI input device, &lt;key&gt; by the name of the parameter to change and                      MIDI input device as returned by the
1862                        <xref target="CREATE MIDI_INPUT_DEVICE">"CREATE MIDI_INPUT_DEVICE"</xref>
1863                        or <xref target="LIST MIDI_INPUT_DEVICES">"LIST MIDI_INPUT_DEVICES"</xref>
1864                        command, &lt;key&gt; by the name of the parameter to change and
1865                      &lt;value&gt; by the new value for this parameter.</t>                      &lt;value&gt; by the new value for this parameter.</t>
1866    
1867                      <t>Possible Answers:</t>                      <t>Possible Answers:</t>
# Line 1707  Schoenebeck'> Line 1889  Schoenebeck'>
1889                      <t>Example:</t>                      <t>Example:</t>
1890                      <t>                      <t>
1891                          <list>                          <list>
1892                              <t>C: "SET MIDI_INPUT_DEVICE PARAMETER 0 ACTIVE=false"</t>                              <t>C: "SET MIDI_INPUT_DEVICE_PARAMETER 0 ACTIVE=false"</t>
1893                              <t>S: "OK"</t>                              <t>S: "OK"</t>
1894                          </list>                          </list>
1895                      </t>                      </t>
1896                  </section>                  </section>
1897    
1898                  <section title="Getting information about a MIDI port">                  <section title="Getting information about a MIDI port" anchor="GET MIDI_INPUT_PORT INFO">
1899                      <t>Use the following command to get information about a MIDI port:</t>                      <t>Use the following command to get information about a MIDI port:</t>
1900                      <t>                      <t>
1901                          <list>                          <list>
1902                              <t>GET MIDI_INPUT_PORT INFO &lt;device-id&gt; &lt;midi-port&gt;</t>                              <t>GET MIDI_INPUT_PORT INFO &lt;device-id&gt; &lt;midi-port&gt;</t>
1903                          </list>                          </list>
1904                      </t>                      </t>
1905                      <t>Where &lt;device-id&gt; is the numerical ID of the MIDI input device                      <t>Where &lt;device-id&gt; is the numerical ID of the MIDI input device as returned by the
1906                      and &lt;midi-port&gt; the MIDI input port number.</t>                      <xref target="CREATE MIDI_INPUT_DEVICE">"CREATE MIDI_INPUT_DEVICE"</xref>
1907                        or <xref target="LIST MIDI_INPUT_DEVICES">"LIST MIDI_INPUT_DEVICES"</xref>
1908                        command and &lt;midi-port&gt; the MIDI input port number.</t>
1909                      <t>Possible Answers:</t>                      <t>Possible Answers:</t>
1910                      <t>                      <t>
1911                          <list>                          <list>
# Line 1748  Schoenebeck'> Line 1932  Schoenebeck'>
1932                      <t>                      <t>
1933                          <list>                          <list>
1934                              <t>C: "GET MIDI_INPUT_PORT INFO 0 0"</t>                              <t>C: "GET MIDI_INPUT_PORT INFO 0 0"</t>
1935                              <t>S: "name: 'Masterkeyboard'"</t>                              <t>S: "NAME: 'Masterkeyboard'"</t>
1936                              <t>&nbsp;&nbsp;&nbsp;"alsa_seq_bindings: '64:0'"</t>                              <t>&nbsp;&nbsp;&nbsp;"ALSA_SEQ_BINDINGS: '64:0'"</t>
1937                              <t>&nbsp;&nbsp;&nbsp;"."</t>                              <t>&nbsp;&nbsp;&nbsp;"."</t>
1938                          </list>                          </list>
1939                      </t>                      </t>
1940                  </section>                  </section>
1941    
1942                  <section title="Getting information about specific MIDI port parameter">                  <section title="Getting information about specific MIDI port parameter" anchor="GET MIDI_INPUT_PORT_PARAMETER INFO">
1943                      <t>Use the following command to get detailed information about specific MIDI port parameter:</t>                      <t>Use the following command to get detailed information about specific MIDI port parameter:</t>
1944                      <t>                      <t>
1945                          <list>                          <list>
# Line 1763  Schoenebeck'> Line 1947  Schoenebeck'>
1947                          </list>                          </list>
1948                      </t>                      </t>
1949    
1950                      <t>Where &lt;dev-id&gt; is the numerical ID of the MIDI input device as returned                      <t>Where &lt;dev-id&gt; is the numerical ID of the MIDI input device as returned by the
1951                      by the "GET MIDI_INPUT_DEVICES" command, &lt;port&gt; the MIDI port number and                      <xref target="CREATE MIDI_INPUT_DEVICE">"CREATE MIDI_INPUT_DEVICE"</xref>
1952                        or <xref target="LIST MIDI_INPUT_DEVICES">"LIST MIDI_INPUT_DEVICES"</xref>
1953                        command, &lt;port&gt; the MIDI port number and
1954                      &lt;param&gt; a specific port parameter name for which information should be                      &lt;param&gt; a specific port parameter name for which information should be
1955                      obtained (as returned by the "GET MIDI_INPUT_PORT INFO" command).</t>                      obtained (as returned by the <xref target="GET MIDI_INPUT_PORT INFO">
1956                        "GET MIDI_INPUT_PORT INFO"</xref> command).</t>
1957    
1958                      <t>Possible Answers:</t>                      <t>Possible Answers:</t>
1959                      <t>                      <t>
# Line 1829  Schoenebeck'> Line 2016  Schoenebeck'>
2016                                      parameter)</t>                                      parameter)</t>
2017                                  </list>                                  </list>
2018                              </t>                              </t>
2019                              <t>POSSIBILITES -                              <t>POSSIBILITIES -
2020                                  <list>                                  <list>
2021                                      <t>comma separated list of possible values for this                                      <t>comma separated list of possible values for this
2022                                      parameter, character strings are encapsulated into                                      parameter, character strings are encapsulated into
# Line 1846  Schoenebeck'> Line 2033  Schoenebeck'>
2033                      <t>Example:</t>                      <t>Example:</t>
2034                      <t>                      <t>
2035                          <list>                          <list>
2036                              <t>C: "GET MIDI_INPUT_PORT_PARAMETER INFO 0 0 alsa_seq_bindings"</t>                              <t>C: "GET MIDI_INPUT_PORT_PARAMETER INFO 0 0 ALSA_SEQ_BINDINGS"</t>
2037                              <t>S: "DESCRIPTION: bindings to other Alsa sequencer clients"</t>                              <t>S: "DESCRIPTION: bindings to other ALSA sequencer clients"</t>
2038                              <t>"TYPE: STRING"</t>                              <t>&nbsp;&nbsp;&nbsp;"TYPE: STRING"</t>
2039                              <t>&nbsp;&nbsp;&nbsp;"FIX: false"</t>                              <t>&nbsp;&nbsp;&nbsp;"FIX: false"</t>
2040                              <t>&nbsp;&nbsp;&nbsp;"MULTIPLICITY: true"</t>                              <t>&nbsp;&nbsp;&nbsp;"MULTIPLICITY: true"</t>
2041                              <t>&nbsp;&nbsp;&nbsp;"POSSIBILITES: '64:0','68:0','68:1'"</t>                              <t>&nbsp;&nbsp;&nbsp;"POSSIBILITIES: '64:0','68:0','68:1'"</t>
2042                              <t>&nbsp;&nbsp;&nbsp;"."</t>                              <t>&nbsp;&nbsp;&nbsp;"."</t>
2043                          </list>                          </list>
2044                      </t>                      </t>
2045                  </section>                  </section>
2046    
2047                  <section title="Changing settings of MIDI input ports">                  <section title="Changing settings of MIDI input ports" anchor="SET MIDI_INPUT_PORT_PARAMETER">
2048                      <t>Use the following command to alter a specific setting of a MIDI input port:</t>                      <t>Use the following command to alter a specific setting of a MIDI input port:</t>
2049                      <t>                      <t>
2050                          <list>                          <list>
2051                              <t>SET MIDI_INPUT_PORT PARAMETER &lt;device-id&gt; &lt;port&gt; &lt;key&gt;=&lt;value&gt;</t>                              <t>SET MIDI_INPUT_PORT_PARAMETER &lt;device-id&gt; &lt;port&gt; &lt;key&gt;=&lt;value&gt;</t>
2052                          </list>                          </list>
2053                      </t>                      </t>
2054    
2055                      <t>Where &lt;device-id&gt; should be replaced by the numerical ID of the                      <t>Where &lt;device-id&gt; should be replaced by the numerical ID of the
2056                      MIDI device, &lt;port&gt; by the MIDI port number, &lt;key&gt; by the name of                      MIDI device as returned by the
2057                        <xref target="CREATE MIDI_INPUT_DEVICE">"CREATE MIDI_INPUT_DEVICE"</xref>
2058                        or <xref target="LIST MIDI_INPUT_DEVICES">"LIST MIDI_INPUT_DEVICES"</xref>
2059                        command, &lt;port&gt; by the MIDI port number, &lt;key&gt; by the name of
2060                      the parameter to change and &lt;value&gt; by the new value for this                      the parameter to change and &lt;value&gt; by the new value for this
2061                      parameter.</t>                      parameter.</t>
2062    
# Line 1902  Schoenebeck'> Line 2092  Schoenebeck'>
2092              </section>              </section>
2093    
2094              <section title="Configuring sampler channels">              <section title="Configuring sampler channels">
2095                  <t>The following commands describe how to add and remove sampler channels, deploy                  <t>The following commands describe how to add and remove sampler channels, associate a
2096                  sampler engines, load instruments and connect sampler channels to MIDI and audio devices.</t>                  sampler channel with a sampler engine, load instruments and connect sampler channels to
2097                    MIDI and audio devices.</t>
2098    
2099                  <section title="Loading an instrument">                  <section title="Loading an instrument" anchor="LOAD INSTRUMENT">
2100                      <t>An instrument file can be loaded and assigned to a sampler channel by one of the following commands:</t>                      <t>An instrument file can be loaded and assigned to a sampler channel by one of the following commands:</t>
2101                      <t>                      <t>
2102                          <list>                          <list>
# Line 1923  Schoenebeck'> Line 2114  Schoenebeck'>
2114                      is that the regular command returns OK only after the instrument has been                      is that the regular command returns OK only after the instrument has been
2115                      fully loaded and the channel is ready to be used while NON_MODAL version                      fully loaded and the channel is ready to be used while NON_MODAL version
2116                      returns immediately and a background process is launched to load the instrument                      returns immediately and a background process is launched to load the instrument
2117                      on the channel. GET CHANNEL INFO command can be used to obtain loading                      on the channel. The <xref target="GET CHANNEL INFO">GET CHANNEL INFO</xref>
2118                        command can be used to obtain loading
2119                      progress from INSTRUMENT_STATUS field. LOAD command will perform sanity checks                      progress from INSTRUMENT_STATUS field. LOAD command will perform sanity checks
2120                      such as making sure that the file could be read and it is of a proper format                      such as making sure that the file could be read and it is of a proper format
2121                      and SHOULD return ERR and SHOULD not launch the background process should any                      and SHOULD return ERR and SHOULD not launch the background process should any
# Line 1961  Schoenebeck'> Line 2153  Schoenebeck'>
2153                      </t>                      </t>
2154                  </section>                  </section>
2155    
2156                  <section title="Loading a sampler engine">                  <section title="Loading a sampler engine" anchor="LOAD ENGINE">
2157                      <t>A sample engine can be deployed and assigned to a specific sampler                      <t>A sampler engine type can be associated to a specific sampler
2158                      channel by the following command:</t>                      channel by the following command:</t>
2159                      <t>                      <t>
2160                          <list>                          <list>
# Line 1970  Schoenebeck'> Line 2162  Schoenebeck'>
2162                          </list>                          </list>
2163                      </t>                      </t>
2164    
2165                      <t>Where &lt;engine-name&gt; is usually the C++ class name of the engine                      <t>Where &lt;engine-name&gt; is an engine name as obtained by the
2166                      implementation and &lt;sampler-channel&gt; the sampler channel the                      <xref target="LIST AVAILABLE_ENGINES">
2167                      deployed engine should be assigned to. Even if the respective                      "LIST AVAILABLE_ENGINES"</xref> command and &lt;sampler-channel&gt;
2168                      sampler channel has already a deployed engine with that engine                      the sampler channel as returned by the
2169                      name, a new engine instance will be assigned to the sampler channel.</t>                      <xref target="ADD CHANNEL">"ADD CHANNEL"</xref> or
2170                        <xref target="LIST CHANNELS">"LIST CHANNELS"</xref> command where
2171                        the engine type should be assigned to. This command should be issued
2172                        after adding a new sampler channel and before any other control
2173                        commands on the new sampler channel. It can also be used to change
2174                        the engine type of a sampler channel. This command has (currently) no
2175                        way to define or force if a new engine instance should be created and
2176                        assigned to the given sampler channel or if an already existing
2177                        instance of that engine type, shared with other sampler channels,
2178                        should be used.</t>
2179    
2180                      <t>Possible Answers:</t>                      <t>Possible Answers:</t>
2181                      <t>                      <t>
# Line 2007  Schoenebeck'> Line 2208  Schoenebeck'>
2208                      </t>                      </t>
2209                  </section>                  </section>
2210    
2211                  <section title="Getting all created sampler channel count">                  <section title="Getting all created sampler channel count" anchor="GET CHANNELS">
2212                      <t>The number of sampler channels can change on runtime. To get the                      <t>The number of sampler channels can change on runtime. To get the
2213                      current amount of sampler channels, the front-end can send the                      current amount of sampler channels, the front-end can send the
2214                      following command:</t>                      following command:</t>
# Line 2031  Schoenebeck'> Line 2232  Schoenebeck'>
2232                      </t>                      </t>
2233                  </section>                  </section>
2234    
2235                  <section title="Getting all created sampler channel list">                  <section title="Getting all created sampler channel list" anchor="LIST CHANNELS">
2236                      <t>The number of sampler channels can change on runtime. To get the                      <t>The number of sampler channels can change on runtime. To get the
2237                      current list of sampler channels, the front-end can send the                      current list of sampler channels, the front-end can send the
2238                      following command:</t>                      following command:</t>
# Line 2056  Schoenebeck'> Line 2257  Schoenebeck'>
2257                      </t>                      </t>
2258                  </section>                  </section>
2259    
2260                  <section title="Adding a new sampler channel">                  <section title="Adding a new sampler channel" anchor="ADD CHANNEL">
2261                      <t>A new sampler channel can be added to the end of the sampler                      <t>A new sampler channel can be added to the end of the sampler
2262                      channel list by sending the following command:</t>                      channel list by sending the following command:</t>
2263                      <t>                      <t>
# Line 2080  Schoenebeck'> Line 2281  Schoenebeck'>
2281                                  <list>                                  <list>
2282                                      <t>in case a new sampler channel could be added, where                                      <t>in case a new sampler channel could be added, where
2283                                      &lt;sampler-channel&gt; reflects the channel number of the new                                      &lt;sampler-channel&gt; reflects the channel number of the new
2284                                      created sampler channel which should the be used to set up                                      created sampler channel which should be used to set up
2285                                      the sampler channel by sending subsequent intialization                                      the sampler channel by sending subsequent initialization
2286                                      commands</t>                                      commands</t>
2287                                  </list>                                  </list>
2288                              </t>                              </t>
# Line 2108  Schoenebeck'> Line 2309  Schoenebeck'>
2309                      </t>                      </t>
2310                  </section>                  </section>
2311    
2312                  <section title="Removing a sampler channel">                  <section title="Removing a sampler channel" anchor="REMOVE CHANNEL">
2313                      <t>A sampler channel can be removed by sending the following command:</t>                      <t>A sampler channel can be removed by sending the following command:</t>
2314                      <t>                      <t>
2315                          <list>                          <list>
# Line 2116  Schoenebeck'> Line 2317  Schoenebeck'>
2317                          </list>                          </list>
2318                      </t>                      </t>
2319    
2320                      <t>This will decrement the sampler channel count by one and also                      <t>Where &lt;sampler-channel&gt; should be replaced by the
2321                      decrement the channel numbers of all subsequent sampler channels by                      number of the sampler channel as given by the
2322                      one.</t>                      <xref target="ADD CHANNEL">"ADD CHANNEL"</xref>
2323                        or <xref target="LIST CHANNELS">"LIST CHANNELS"</xref>
2324                        command. The channel numbers of all subsequent sampler channels
2325                        remain the same.</t>
2326    
2327                      <t>Possible Answers:</t>                      <t>Possible Answers:</t>
2328                      <t>                      <t>
# Line 2151  Schoenebeck'> Line 2355  Schoenebeck'>
2355                      </t>                      </t>
2356                  </section>                  </section>
2357    
2358                  <section title="Getting all available engines">                  <section title="Getting amount of available engines" anchor="GET AVAILABLE_ENGINES">
2359                      <t>The front-end can ask for all available engines by sending the following command:</t>                      <t>The front-end can ask for the number of available engines by sending the following command:</t>
2360                      <t>                      <t>
2361                          <list>                          <list>
2362                              <t>GET AVAILABLE_ENGINES</t>                              <t>GET AVAILABLE_ENGINES</t>
# Line 2161  Schoenebeck'> Line 2365  Schoenebeck'>
2365                      <t>Possible Answers:</t>                      <t>Possible Answers:</t>
2366                      <t>                      <t>
2367                          <list>                          <list>
2368                              <t>LinuxSampler will answer by sending a comma separated character                              <t>LinuxSampler will answer by sending the number of available engines.</t>
                             string of the engines' C++ class names.</t>  
2369                          </list>                          </list>
2370                      </t>                      </t>
2371                      <t>Example:</t>                      <t>Example:</t>
2372                      <t>                      <t>
2373                          <list>                          <list>
2374                              <t>C: "GET AVAILABLE_ENGINES"</t>                              <t>C: "GET AVAILABLE_ENGINES"</t>
2375                              <t>S: "GigEngine,AkaiEngine,DLSEngine,JoesCustomEngine"</t>                              <t>S: "4"</t>
2376                            </list>
2377                        </t>
2378                    </section>
2379    
2380                    <section title="Getting all available engines" anchor="LIST AVAILABLE_ENGINES">
2381                        <t>The front-end can ask for a list of all available engines by sending the following command:</t>
2382                        <t>
2383                            <list>
2384                                <t>LIST AVAILABLE_ENGINES</t>
2385                            </list>
2386                        </t>
2387                        <t>Possible Answers:</t>
2388                        <t>
2389                            <list>
2390                                <t>LinuxSampler will answer by sending a comma separated list
2391                                of the engines' names encapsulated into apostrophes (').
2392                                Engine names can consist of lower and upper cases,
2393                                digits and underlines ("_" character).</t>
2394                            </list>
2395                        </t>
2396                        <t>Example:</t>
2397                        <t>
2398                            <list>
2399                                <t>C: "LIST AVAILABLE_ENGINES"</t>
2400                                <t>S: "'GigEngine','AkaiEngine','DLSEngine','JoesCustomEngine'"</t>
2401                          </list>                          </list>
2402                      </t>                      </t>
2403                  </section>                  </section>
2404    
2405                  <section title="Getting information about an engine">                  <section title="Getting information about an engine" anchor="GET ENGINE INFO">
2406                      <t>The front-end can ask for information about a specific engine by                      <t>The front-end can ask for information about a specific engine by
2407                      sending the following command:</t>                      sending the following command:</t>
2408                      <t>                      <t>
# Line 2182  Schoenebeck'> Line 2410  Schoenebeck'>
2410                              <t>GET ENGINE INFO &lt;engine-name&gt;</t>                              <t>GET ENGINE INFO &lt;engine-name&gt;</t>
2411                          </list>                          </list>
2412                      </t>                      </t>
2413                      <t>Where &lt;engine-name&gt; is usually the C++ class name of the engine implementation.</t>                      <t>Where &lt;engine-name&gt; is an engine name as obtained by the
2414                        <xref target="LIST AVAILABLE_ENGINES">
2415                        "LIST AVAILABLE_ENGINES"</xref> command.</t>
2416                      <t>Possible Answers:</t>                      <t>Possible Answers:</t>
2417                      <t>                      <t>
2418                          <list>                          <list>
2419                              <t>LinuxSampler will answer by sending &lt;&gt; separated list.                              <t>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
2420                              Each answer line begins with the information category name                              Each answer line begins with the information category name
2421                              followed by a colon and then a space character &lt;SP&gt; and finally                              followed by a colon and then a space character &lt;SP&gt; and finally
2422                              the info character string to that info category. At the moment                              the info character string to that info category. At the moment
# Line 2222  Schoenebeck'> Line 2452  Schoenebeck'>
2452                      </t>                      </t>
2453                  </section>                  </section>
2454    
2455                  <section title="Getting sampler channel information">                  <section title="Getting sampler channel information" anchor="GET CHANNEL INFO">
2456                      <t>The front-end can ask for the current settings of a sampler channel                      <t>The front-end can ask for the current settings of a sampler channel
2457                      by sending the following command:</t>                      by sending the following command:</t>
2458                      <t>                      <t>
# Line 2230  Schoenebeck'> Line 2460  Schoenebeck'>
2460                              <t>GET CHANNEL INFO &lt;sampler-channel&gt;</t>                              <t>GET CHANNEL INFO &lt;sampler-channel&gt;</t>
2461                          </list>                          </list>
2462                      </t>                      </t>
2463                      <t>Where &lt;sampler-channel&gt; is the sampler channel number the front-end is interested in.</t>                      <t>Where &lt;sampler-channel&gt; is the sampler channel number the front-end is interested in
2464                        as returned by the <xref target="ADD CHANNEL">"ADD CHANNEL"</xref>
2465                        or <xref target="LIST CHANNELS">"LIST CHANNELS"</xref> command.</t>
2466                      <t>Possible Answers:</t>                      <t>Possible Answers:</t>
2467                      <t>                      <t>
2468                          <list>                          <list>
# Line 2244  Schoenebeck'> Line 2476  Schoenebeck'>
2476                                  <list>                                  <list>
2477                                      <t>ENGINE_NAME -                                      <t>ENGINE_NAME -
2478                                          <list>                                          <list>
2479                                              <t>name of the engine that is deployed on the sampler                                              <t>name of the engine that is associated with the sampler
2480                                              channel, "NONE" if there's no engine deployed yet for                                              channel, "NONE" if there's no engine associated yet for
2481                                              this sampler channel</t>                                              this sampler channel</t>
2482                                          </list>                                          </list>
2483                                      </t>                                      </t>
# Line 2286  Schoenebeck'> Line 2518  Schoenebeck'>
2518                                              <t>the instrument index number of the loaded instrument</t>                                              <t>the instrument index number of the loaded instrument</t>
2519                                          </list>                                          </list>
2520                                      </t>                                      </t>
2521                                        <t>INSTRUMENT_NAME -
2522                                            <list>
2523                                                <t>the instrument name of the loaded instrument</t>
2524                                            </list>
2525                                        </t>
2526                                      <t>INSTRUMENT_STATUS -                                      <t>INSTRUMENT_STATUS -
2527                                          <list>                                          <list>
2528                                              <t>integer values 0 to 100 indicating loading progress percentage for the instrument. Negative                                              <t>integer values 0 to 100 indicating loading progress percentage for the instrument. Negative
# Line 2336  Schoenebeck'> Line 2573  Schoenebeck'>
2573                              <t>&nbsp;&nbsp;&nbsp;"AUDIO_OUTPUT_ROUTING: 0,1"</t>                              <t>&nbsp;&nbsp;&nbsp;"AUDIO_OUTPUT_ROUTING: 0,1"</t>
2574                              <t>&nbsp;&nbsp;&nbsp;"INSTRUMENT_FILE: /home/joe/FazioliPiano.gig"</t>                              <t>&nbsp;&nbsp;&nbsp;"INSTRUMENT_FILE: /home/joe/FazioliPiano.gig"</t>
2575                              <t>&nbsp;&nbsp;&nbsp;"INSTRUMENT_NR: 0"</t>                              <t>&nbsp;&nbsp;&nbsp;"INSTRUMENT_NR: 0"</t>
2576                                <t>&nbsp;&nbsp;&nbsp;"INSTRUMENT_NAME: Fazioli Piano"</t>
2577                              <t>&nbsp;&nbsp;&nbsp;"INSTRUMENT_STATUS: 100"</t>                              <t>&nbsp;&nbsp;&nbsp;"INSTRUMENT_STATUS: 100"</t>
2578                              <t>&nbsp;&nbsp;&nbsp;"MIDI_INPUT_DEVICE: 0"</t>                              <t>&nbsp;&nbsp;&nbsp;"MIDI_INPUT_DEVICE: 0"</t>
2579                              <t>&nbsp;&nbsp;&nbsp;"MIDI_INPUT_PORT: 0"</t>                              <t>&nbsp;&nbsp;&nbsp;"MIDI_INPUT_PORT: 0"</t>
# Line 2345  Schoenebeck'> Line 2583  Schoenebeck'>
2583                      </t>                      </t>
2584                  </section>                  </section>
2585    
2586                  <section title="Current number of active voices">                  <section title="Current number of active voices" anchor="GET CHANNEL VOICE_COUNT">
2587                      <t>The front-end can ask for the current number of active voices on a                      <t>The front-end can ask for the current number of active voices on a
2588                      sampler channel by sending the following command:</t>                      sampler channel by sending the following command:</t>
2589                      <t>                      <t>
# Line 2353  Schoenebeck'> Line 2591  Schoenebeck'>
2591                              <t>GET CHANNEL VOICE_COUNT &lt;sampler-channel&gt;</t>                              <t>GET CHANNEL VOICE_COUNT &lt;sampler-channel&gt;</t>
2592                          </list>                          </list>
2593                      </t>                      </t>
2594                      <t>Where &lt;sampler-channel&gt; is the sampler channel number the front-end is interested in.</t>                      <t>Where &lt;sampler-channel&gt; is the sampler channel number the front-end is interested in
2595                        as returned by the <xref target="ADD CHANNEL">"ADD CHANNEL"</xref>
2596                        or <xref target="LIST CHANNELS">"LIST CHANNELS"</xref> command.</t>
2597    
2598                      <t>Possible Answers:</t>                      <t>Possible Answers:</t>
2599                      <t>                      <t>
# Line 2370  Schoenebeck'> Line 2610  Schoenebeck'>
2610                      </t>                      </t>
2611                  </section>                  </section>
2612    
2613                  <section title="Current number of active disk streams">                  <section title="Current number of active disk streams" anchor="GET CHANNEL STREAM_COUNT">
2614                      <t>The front-end can ask for the current number of active disk streams                      <t>The front-end can ask for the current number of active disk streams
2615                      on a sampler channel by sending the following command:</t>                      on a sampler channel by sending the following command:</t>
2616                      <t>                      <t>
# Line 2378  Schoenebeck'> Line 2618  Schoenebeck'>
2618                              <t>GET CHANNEL STREAM_COUNT &lt;sampler-channel&gt;</t>                              <t>GET CHANNEL STREAM_COUNT &lt;sampler-channel&gt;</t>
2619                          </list>                          </list>
2620                      </t>                      </t>
2621                      <t>Where &lt;sampler-channel&gt; is the sampler channel number the front-end is interested in.</t>                      <t>Where &lt;sampler-channel&gt; is the sampler channel number the front-end is interested in
2622                        as returned by the <xref target="ADD CHANNEL">"ADD CHANNEL"</xref>
2623                        or <xref target="LIST CHANNELS">"LIST CHANNELS"</xref> command.</t>
2624    
2625                      <t>Possible Answers:</t>                      <t>Possible Answers:</t>
2626                      <t>                      <t>
# Line 2397  Schoenebeck'> Line 2639  Schoenebeck'>
2639                      </t>                      </t>
2640                  </section>                  </section>
2641    
2642                  <section title="Current fill state of disk stream buffers">                  <section title="Current fill state of disk stream buffers" anchor="GET CHANNEL BUFFER_FILL">
2643                      <t>The front-end can ask for the current fill state of all disk streams                      <t>The front-end can ask for the current fill state of all disk streams
2644                      on a sampler channel by sending the following command:</t>                      on a sampler channel by sending the following command:</t>
2645                      <t>                      <t>
# Line 2412  Schoenebeck'> Line 2654  Schoenebeck'>
2654                          </list>                          </list>
2655                      </t>                      </t>
2656                      <t>to get the fill state in percent, where &lt;sampler-channel&gt; is the                      <t>to get the fill state in percent, where &lt;sampler-channel&gt; is the
2657                      sampler channel number the front-end is interested in.</t>                      sampler channel number the front-end is interested in
2658                        as returned by the <xref target="ADD CHANNEL">"ADD CHANNEL"</xref>
2659                        or <xref target="LIST CHANNELS">"LIST CHANNELS"</xref> command.</t>
2660    
2661                      <t>Possible Answers:</t>                      <t>Possible Answers:</t>
2662                      <t>                      <t>
# Line 2448  Schoenebeck'> Line 2692  Schoenebeck'>
2692                      </t>                      </t>
2693                  </section>                  </section>
2694    
2695                  <section title="Setting audio output device">                  <section title="Setting audio output device" anchor="SET CHANNEL AUDIO_OUTPUT_DEVICE">
2696                      <t>The front-end can set the audio output device on a specific sampler                      <t>The front-end can set the audio output device on a specific sampler
2697                      channel by sending the following command:</t>                      channel by sending the following command:</t>
2698                      <t>                      <t>
# Line 2456  Schoenebeck'> Line 2700  Schoenebeck'>
2700                              <t>SET CHANNEL AUDIO_OUTPUT_DEVICE &lt;sampler-channel&gt; &lt;audio-device-id&gt;</t>                              <t>SET CHANNEL AUDIO_OUTPUT_DEVICE &lt;sampler-channel&gt; &lt;audio-device-id&gt;</t>
2701                          </list>                          </list>
2702                      </t>                      </t>
2703                      <t>Where &lt;audio-device-id&gt; is the numerical ID of the audio output                      <t>Where &lt;sampler-channel&gt; is the respective sampler channel
2704                      device and &lt;sampler-channel&gt; is the respective sampler channel                      number as returned by the <xref target="ADD CHANNEL">"ADD CHANNEL"</xref>
2705                      number.</t>                      or <xref target="LIST CHANNELS">"LIST CHANNELS"</xref> command and
2706                        &lt;audio-device-id&gt; is the numerical ID of the audio output device as given by the
2707                        <xref target="CREATE AUDIO_OUTPUT_DEVICE">"CREATE AUDIO_OUTPUT_DEVICE"</xref>
2708                        or <xref target="LIST AUDIO_OUTPUT_DEVICES">"LIST AUDIO_OUTPUT_DEVICES"</xref>
2709                        command.</t>
2710    
2711                      <t>Possible Answers:</t>                      <t>Possible Answers:</t>
2712                      <t>                      <t>
# Line 2490  Schoenebeck'> Line 2738  Schoenebeck'>
2738                      </t>                      </t>
2739                  </section>                  </section>
2740    
2741                  <section title="Setting audio output type">                  <section title="Setting audio output type" anchor="SET CHANNEL AUDIO_OUTPUT_TYP">
2742                      <t>DEPRECATED: THIS COMMAND WILL DISAPPEAR SOON!</t>                      <t>DEPRECATED: THIS COMMAND WILL DISAPPEAR SOON!</t>
2743    
2744                      <t>The front-end can alter the audio output type on a specific sampler                      <t>The front-end can alter the audio output type on a specific sampler
# Line 2500  Schoenebeck'> Line 2748  Schoenebeck'>
2748                              <t>SET CHANNEL AUDIO_OUTPUT_TYPE &lt;sampler-channel&gt; &lt;audio-output-type&gt;</t>                              <t>SET CHANNEL AUDIO_OUTPUT_TYPE &lt;sampler-channel&gt; &lt;audio-output-type&gt;</t>
2749                          </list>                          </list>
2750                      </t>                      </t>
2751                      <t>Where &lt;audio-output-type&gt; is currently either "Alsa" or "Jack" and                      <t>Where &lt;audio-output-type&gt; is currently either "ALSA" or "JACK" and
2752                      &lt;sampler-channel&gt; is the respective sampler channel number.</t>                      &lt;sampler-channel&gt; is the respective sampler channel number.</t>
2753    
2754                      <t>Possible Answers:</t>                      <t>Possible Answers:</t>
# Line 2533  Schoenebeck'> Line 2781  Schoenebeck'>
2781                      </t>                      </t>
2782                  </section>                  </section>
2783    
2784                  <section title="Setting audio output channel">                  <section title="Setting audio output channel" anchor="SET CHANNEL AUDIO_OUTPUT_CHANNEL">
2785                      <t>The front-end can alter the audio output channel on a specific                      <t>The front-end can alter the audio output channel on a specific
2786                      sampler channel by sending the following command:</t>                      sampler channel by sending the following command:</t>
2787                      <t>                      <t>
# Line 2541  Schoenebeck'> Line 2789  Schoenebeck'>
2789                              <t>SET CHANNEL AUDIO_OUTPUT_CHANNEL &lt;sampler-chan&gt; &lt;audio-out&gt; &lt;audio-in&gt;</t>                              <t>SET CHANNEL AUDIO_OUTPUT_CHANNEL &lt;sampler-chan&gt; &lt;audio-out&gt; &lt;audio-in&gt;</t>
2790                          </list>                          </list>
2791                      </t>                      </t>
2792                      <t>Where &lt;sampler-chan&gt; is the sampler channel, &lt;audio-out&gt; is the                      <t>Where &lt;sampler-chan&gt; is the sampler channel number
2793                      sampler channel's audio output channel which should be                      as returned by the <xref target="ADD CHANNEL">"ADD CHANNEL"</xref>
2794                      rerouted and &lt;audio-in&gt; the audio channel of the selected audio                      or <xref target="LIST CHANNELS">"LIST CHANNELS"</xref> command, &lt;audio-out&gt; is the
2795                        numerical ID of the sampler channel's audio output channel which should be
2796                        rerouted and &lt;audio-in&gt; is the numerical ID of the audio channel of the selected audio
2797                      output device where &lt;audio-out&gt; should be routed to.</t>                      output device where &lt;audio-out&gt; should be routed to.</t>
2798    
2799                      <t>Possible Answers:</t>                      <t>Possible Answers:</t>
# Line 2576  Schoenebeck'> Line 2826  Schoenebeck'>
2826                      </t>                      </t>
2827                  </section>                  </section>
2828    
2829                  <section title="Setting MIDI input device">                  <section title="Setting MIDI input device" anchor="SET CHANNEL MIDI_INPUT_DEVICE">
2830                      <t>The front-end can set the MIDI input device on a specific sampler                      <t>The front-end can set the MIDI input device on a specific sampler
2831                      channel by sending the following command:</t>                      channel by sending the following command:</t>
2832                      <t>                      <t>
# Line 2584  Schoenebeck'> Line 2834  Schoenebeck'>
2834                              <t>SET CHANNEL MIDI_INPUT_DEVICE &lt;sampler-channel&gt; &lt;midi-device-id&gt;</t>                              <t>SET CHANNEL MIDI_INPUT_DEVICE &lt;sampler-channel&gt; &lt;midi-device-id&gt;</t>
2835                          </list>                          </list>
2836                      </t>                      </t>
2837                      <t></t>                      <t>Where &lt;sampler-channel&gt; is the sampler channel number
2838                        as returned by the <xref target="ADD CHANNEL">"ADD CHANNEL"</xref>
2839                        or <xref target="LIST CHANNELS">"LIST CHANNELS"</xref> command
2840                        and &lt;midi-device-id&gt; is  the numerical ID of the MIDI input device as returned by the
2841                        <xref target="CREATE MIDI_INPUT_DEVICE">"CREATE MIDI_INPUT_DEVICE"</xref>
2842                        or <xref target="LIST MIDI_INPUT_DEVICES">"LIST MIDI_INPUT_DEVICES"</xref> command.</t>
2843    
2844                      <t>Possible Answers:</t>                      <t>Possible Answers:</t>
2845                      <t>                      <t>
# Line 2616  Schoenebeck'> Line 2871  Schoenebeck'>
2871                      </t>                      </t>
2872                  </section>                  </section>
2873    
2874                  <section title="Setting MIDI input type">                  <section title="Setting MIDI input type" anchor="SET CHANNEL MIDI_INPUT_TYPE">
2875                      <t>DEPRECATED: THIS COMMAND WILL DISAPPEAR SOON!</t>                      <t>DEPRECATED: THIS COMMAND WILL DISAPPEAR SOON!</t>
2876    
2877                      <t>The front-end can alter the MIDI input type on a specific sampler                      <t>The front-end can alter the MIDI input type on a specific sampler
# Line 2626  Schoenebeck'> Line 2881  Schoenebeck'>
2881                              <t>SET CHANNEL MIDI_INPUT_TYPE &lt;sampler-channel&gt; &lt;midi-input-type&gt;</t>                              <t>SET CHANNEL MIDI_INPUT_TYPE &lt;sampler-channel&gt; &lt;midi-input-type&gt;</t>
2882                          </list>                          </list>
2883                      </t>                      </t>
2884                      <t>Where &lt;midi-input-type&gt; is currently only "Alsa" and                      <t>Where &lt;midi-input-type&gt; is currently only "ALSA" and
2885                      &lt;sampler-channel&gt; is the respective sampler channel number.</t>                      &lt;sampler-channel&gt; is the respective sampler channel number.</t>
2886    
2887                      <t>Possible Answers:</t>                      <t>Possible Answers:</t>
# Line 2659  Schoenebeck'> Line 2914  Schoenebeck'>
2914                      </t>                      </t>
2915                  </section>                  </section>
2916    
2917                  <section title="Setting MIDI input port">                  <section title="Setting MIDI input port" anchor="SET CHANNEL MIDI_INPUT_PORT">
2918                      <t>The front-end can alter the input MIDI port on a specific sampler                      <t>The front-end can alter the MIDI input port on a specific sampler
2919                      channel by sending the following command:</t>                      channel by sending the following command:</t>
2920                      <t>                      <t>
2921                          <list>                          <list>
# Line 2688  Schoenebeck'> Line 2943  Schoenebeck'>
2943                              </t>                              </t>
2944                              <t>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -                              <t>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
2945                                  <list>                                  <list>
2946                                      <t>in case it failed, providing an appropriate error code and error messag</t>                                      <t>in case it failed, providing an appropriate error code and error message</t>
2947                                  </list>                                  </list>
2948                              </t>                              </t>
2949                          </list>                          </list>
# Line 2701  Schoenebeck'> Line 2956  Schoenebeck'>
2956                      </t>                      </t>
2957                  </section>                  </section>
2958    
2959                  <section title="Setting MIDI input channel">                  <section title="Setting MIDI input channel" anchor="SET CHANNEL MIDI_INPUT_CHANNEL">
2960                      <t>The front-end can alter the MIDI channel a sampler channel should                      <t>The front-end can alter the MIDI channel a sampler channel should
2961                      listen to by sending the following command:</t>                      listen to by sending the following command:</t>
2962                      <t>                      <t>
# Line 2709  Schoenebeck'> Line 2964  Schoenebeck'>
2964                              <t>SET CHANNEL MIDI_INPUT_CHANNEL &lt;sampler-channel&gt; &lt;midi-input-chan&gt;</t>                              <t>SET CHANNEL MIDI_INPUT_CHANNEL &lt;sampler-channel&gt; &lt;midi-input-chan&gt;</t>
2965                          </list>                          </list>
2966                      </t>                      </t>
2967                      <t>Where &lt;midi-input-chan&gt; is the new MIDI input channel where                      <t>Where &lt;midi-input-chan&gt; is the number of the new MIDI input channel where
2968                      &lt;sampler-channel&gt; should listen to or "ALL" to listen on all 16 MIDI                      &lt;sampler-channel&gt; should listen to or "ALL" to listen on all 16 MIDI
2969                      channels.</t>                      channels.</t>
2970    
# Line 2743  Schoenebeck'> Line 2998  Schoenebeck'>
2998                      </t>                      </t>
2999                  </section>                  </section>
3000    
3001                  <section title="Setting channel volume">                  <section title="Setting channel volume" anchor="SET CHANNEL VOLUME">
3002                      <t>The front-end can alter the volume of a sampler channel by sending                      <t>The front-end can alter the volume of a sampler channel by sending
3003                      the following command:</t>                      the following command:</t>
3004                      <t>                      <t>
# Line 2786  Schoenebeck'> Line 3041  Schoenebeck'>
3041                      </t>                      </t>
3042                  </section>                  </section>
3043    
3044                  <section title="Resetting a sampler channel">                  <section title="Resetting a sampler channel" anchor="RESET CHANNEL">
3045                      <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>
3046                      <t>                      <t>
3047                          <list>                          <list>
# Line 2834  Schoenebeck'> Line 3089  Schoenebeck'>
3089              <section title="Controlling connection">              <section title="Controlling connection">
3090                  <t>The following commands are used to control the connection to LinuxSampler.</t>                  <t>The following commands are used to control the connection to LinuxSampler.</t>
3091    
3092                  <section title="Register front-end for receiving event messages">                  <section title="Register front-end for receiving event messages" anchor="SUBSCRIBE">
3093                      <t>The front-end can register itself to the LinuxSampler application to                      <t>The front-end can register itself to the LinuxSampler application to
3094                      be informed about noteworthy events by sending this command:</t>                      be informed about noteworthy events by sending this command:</t>
3095                      <t>                      <t>
# Line 2876  Schoenebeck'> Line 3131  Schoenebeck'>
3131                      </t>                      </t>
3132                  </section>                  </section>
3133    
3134                  <section title="Unregister front-end for not receiving UDP event messages anymore">                  <section title="Unregister front-end for not receiving event messages" anchor="UNSUBSCRIBE">
3135                      <t>The front-end can unregister itself if it doesn't want to receive event                      <t>The front-end can unregister itself if it doesn't want to receive event
3136                      messages anymore by sending the following command:</t>                      messages anymore by sending the following command:</t>
3137                      <t>                      <t>
# Line 2918  Schoenebeck'> Line 3173  Schoenebeck'>
3173                      </t>                      </t>
3174                  </section>                  </section>
3175    
3176                  <section title="Enable or disable echo of commands">                  <section title="Enable or disable echo of commands" anchor="SET ECHO">
3177                      <t>To enable or disable back sending of commands to the client the following command can be used:</t>                      <t>To enable or disable back sending of commands to the client the following command can be used:</t>
3178                      <t>                      <t>
3179                          <list>                          <list>
# Line 2956  Schoenebeck'> Line 3211  Schoenebeck'>
3211                      </t>                      </t>
3212                  </section>                  </section>
3213    
3214                  <section title="Close client connection">                  <section title="Close client connection" anchor="QUIT">
3215                      <t>The client can close its network connection to LinuxSampler by sending the following command:</t>                      <t>The client can close its network connection to LinuxSampler by sending the following command:</t>
3216                      <t>                      <t>
3217                          <list>                          <list>
# Line 2971  Schoenebeck'> Line 3226  Schoenebeck'>
3226              <section title="Global commands">              <section title="Global commands">
3227                  <t>The following commands have global impact on the sampler.</t>                  <t>The following commands have global impact on the sampler.</t>
3228    
3229                  <section title="Reset sampler">                  <section title="Reset sampler" anchor="RESET">
3230                      <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>
3231                      <t>                      <t>
3232                          <list>                          <list>
# Line 2996  Schoenebeck'> Line 3251  Schoenebeck'>
3251                          </list>                          </list>
3252                      </t>                      </t>
3253                  </section>                  </section>
3254    
3255                    <section title="General sampler informations" anchor="GET SERVER INFO">
3256                        <t>The client can ask for general informations about the LinuxSampler
3257                           instance by sending the following command:</t>
3258                        <t>
3259                            <list>
3260                                <t>GET SERVER INFO</t>
3261                            </list>
3262                        </t>
3263                        <t>Possible Answers:</t>
3264                        <t>
3265                            <list>
3266                                <t>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
3267                                   Each answer line begins with the information category name
3268                                   followed by a colon and then a space character &lt;SP&gt; and finally
3269                                   the info character string to that information category. At the
3270                                   moment the following categories are defined:
3271                                </t>
3272                                <t>
3273                                    <list>
3274                                        <t>DESCRIPTION -
3275                                            <list>
3276                                                <t>arbitrary textual description about the sampler</t>
3277                                            </list>
3278                                        </t>
3279                                        <t>VERSION -
3280                                            <list>
3281                                                <t>version of the sampler</t>
3282                                            </list>
3283                                        </t>
3284                                        <t>PROTOCOL_VERSION -
3285                                            <list>
3286                                                <t>version of the LSCP specification the sampler
3287                                                complies with (see <xref target="LSCP versioning" /> for details)</t>
3288                                            </list>
3289                                        </t>
3290                                    </list>
3291                                </t>
3292                            </list>
3293                        </t>
3294                        <t>The mentioned fields above don't have to be in particular order.
3295                        Other fields might be added in future.</t>
3296                    </section>
3297              </section>              </section>
3298          </section>          </section>
3299    
3300          <section title="Command Syntax">          <section title="Command Syntax" anchor="command_syntax">
3301              <t>TODO: will soon automatically included from src/network/lscp.y,              <t>The grammar of the control protocol as descibed in <xref target="control_commands"/>
3302              meanwhile have a look at that file to get the exact definition of              is defined below using Backus-Naur Form (BNF as described in <xref target="RFC2234"/>)
3303              the command syntax.</t>              where applicable.
3304                </t>
3305                <!--
3306                    This section is automatically generated by scripts/update_grammar.pl
3307                    from src/network/lscp.y (yacc input file). Do not modify this section
3308                    manually !
3309                -->
3310                <!-- GRAMMAR_BNF_BEGIN - do NOT delete or modify this line !!! -->
3311    
3312    <t>input =
3313            <list>
3314                    <t>line LF
3315                    </t>
3316                    <t>/ line CR LF
3317                    </t>
3318            </list>
3319    </t>
3320    <t>line =
3321            <list>
3322                    <t>/* epsilon (empty line ignored) */
3323                    </t>
3324                    <t>/ comment  
3325                    </t>
3326                    <t>/ command  
3327                    </t>
3328                    <t>/ error    
3329                    </t>
3330            </list>
3331    </t>
3332    <t>comment =
3333            <list>
3334                    <t>'#'
3335                    </t>
3336                    <t>/ comment '#'
3337                    </t>
3338                    <t>/ comment SP
3339                    </t>
3340                    <t>/ comment number
3341                    </t>
3342                    <t>/ comment string
3343                    </t>
3344            </list>
3345    </t>
3346    <t>command =
3347            <list>
3348                    <t>ADD SP CHANNEL                        
3349                    </t>
3350                    <t>/ GET SP get_instruction                
3351                    </t>
3352                    <t>/ CREATE SP create_instruction          
3353                    </t>
3354                    <t>/ DESTROY SP destroy_instruction        
3355                    </t>
3356                    <t>/ LIST SP list_instruction              
3357                    </t>
3358                    <t>/ LOAD SP load_instruction              
3359                    </t>
3360                    <t>/ REMOVE SP CHANNEL SP sampler_channel  
3361                    </t>
3362                    <t>/ SET SP set_instruction                
3363                    </t>
3364                    <t>/ SUBSCRIBE SP subscribe_event          
3365                    </t>
3366                    <t>/ UNSUBSCRIBE SP unsubscribe_event      
3367                    </t>
3368                    <t>/ SELECT SP text                        
3369                    </t>
3370                    <t>/ RESET SP CHANNEL SP sampler_channel  
3371                    </t>
3372                    <t>/ RESET                                
3373                    </t>
3374                    <t>/ QUIT                                  
3375                    </t>
3376            </list>
3377    </t>
3378    <t>subscribe_event =
3379            <list>
3380                    <t>CHANNEL_COUNT                        
3381                    </t>
3382                    <t>/ VOICE_COUNT                          
3383                    </t>
3384                    <t>/ STREAM_COUNT                          
3385                    </t>
3386                    <t>/ BUFFER_FILL                          
3387                    </t>
3388                    <t>/ CHANNEL_INFO                          
3389                    </t>
3390                    <t>/ MISCELLANEOUS                        
3391                    </t>
3392            </list>
3393    </t>
3394    <t>unsubscribe_event =
3395            <list>
3396                    <t>CHANNEL_COUNT                        
3397                    </t>
3398                    <t>/ VOICE_COUNT                          
3399                    </t>
3400                    <t>/ STREAM_COUNT                          
3401                    </t>
3402                    <t>/ BUFFER_FILL                          
3403                    </t>
3404                    <t>/ CHANNEL_INFO                          
3405                    </t>
3406                    <t>/ MISCELLANEOUS                        
3407                    </t>
3408            </list>
3409    </t>
3410    <t>get_instruction =
3411            <list>
3412                    <t>AVAILABLE_ENGINES                                                          
3413                    </t>
3414                    <t>/ AVAILABLE_MIDI_INPUT_DRIVERS                                              
3415                    </t>
3416                    <t>/ MIDI_INPUT_DRIVER SP INFO SP string                                        
3417                    </t>
3418                    <t>/ MIDI_INPUT_DRIVER_PARAMETER SP INFO SP string SP string                    
3419                    </t>
3420                    <t>/ MIDI_INPUT_DRIVER_PARAMETER SP INFO SP string SP string SP key_val_list    
3421                    </t>
3422                    <t>/ AVAILABLE_AUDIO_OUTPUT_DRIVERS                                            
3423                    </t>
3424                    <t>/ AUDIO_OUTPUT_DRIVER SP INFO SP string                                      
3425                    </t>
3426                    <t>/ AUDIO_OUTPUT_DRIVER_PARAMETER SP INFO SP string SP string                  
3427                    </t>
3428                    <t>/ AUDIO_OUTPUT_DRIVER_PARAMETER SP INFO SP string SP string SP key_val_list  
3429                    </t>
3430                    <t>/ AUDIO_OUTPUT_DEVICES                                                      
3431                    </t>
3432                    <t>/ MIDI_INPUT_DEVICES                                                        
3433                    </t>
3434                    <t>/ AUDIO_OUTPUT_DEVICE SP INFO SP number                                      
3435                    </t>
3436                    <t>/ MIDI_INPUT_DEVICE SP INFO SP number                                        
3437                    </t>
3438                    <t>/ MIDI_INPUT_PORT SP INFO SP number SP number                                
3439                    </t>
3440                    <t>/ MIDI_INPUT_PORT_PARAMETER SP INFO SP number SP number SP string            
3441                    </t>
3442                    <t>/ AUDIO_OUTPUT_CHANNEL SP INFO SP number SP number                          
3443                    </t>
3444                    <t>/ AUDIO_OUTPUT_CHANNEL_PARAMETER SP INFO SP number SP number SP string      
3445                    </t>
3446                    <t>/ CHANNELS                                                                  
3447                    </t>
3448                    <t>/ CHANNEL SP INFO SP sampler_channel                                        
3449                    </t>
3450                    <t>/ CHANNEL SP BUFFER_FILL SP buffer_size_type SP sampler_channel              
3451                    </t>
3452                    <t>/ CHANNEL SP STREAM_COUNT SP sampler_channel                                
3453                    </t>
3454                    <t>/ CHANNEL SP VOICE_COUNT SP sampler_channel                                  
3455                    </t>
3456                    <t>/ ENGINE SP INFO SP engine_name                                              
3457                    </t>
3458                    <t>/ SERVER SP INFO                                                            
3459                    </t>
3460            </list>
3461    </t>
3462    <t>set_instruction =
3463            <list>
3464                    <t>AUDIO_OUTPUT_DEVICE_PARAMETER SP number SP string '=' param_val_list            
3465                    </t>
3466                    <t>/ AUDIO_OUTPUT_CHANNEL_PARAMETER SP number SP number SP string '=' param_val_list  
3467                    </t>
3468                    <t>/ MIDI_INPUT_DEVICE_PARAMETER SP number SP string '=' param_val_list              
3469                    </t>
3470                    <t>/ MIDI_INPUT_PORT_PARAMETER SP number SP number SP string '=' param_val_list      
3471                    </t>
3472                    <t>/ CHANNEL SP set_chan_instruction                                                  
3473                    </t>
3474                    <t>/ ECHO SP boolean                                                                  
3475                    </t>
3476            </list>
3477    </t>
3478    <t>create_instruction =
3479            <list>
3480                    <t>AUDIO_OUTPUT_DEVICE SP string SP key_val_list  
3481                    </t>
3482                    <t>/ AUDIO_OUTPUT_DEVICE SP string                  
3483                    </t>
3484                    <t>/ MIDI_INPUT_DEVICE SP string SP key_val_list    
3485                    </t>
3486                    <t>/ MIDI_INPUT_DEVICE SP string                    
3487                    </t>
3488            </list>
3489    </t>
3490    <t>destroy_instruction =
3491            <list>
3492                    <t>AUDIO_OUTPUT_DEVICE SP number  
3493                    </t>
3494                    <t>/ MIDI_INPUT_DEVICE SP number    
3495                    </t>
3496            </list>
3497    </t>
3498    <t>load_instruction =
3499            <list>
3500                    <t>INSTRUMENT SP load_instr_args  
3501                    </t>
3502                    <t>/ ENGINE SP load_engine_args    
3503                    </t>
3504            </list>
3505    </t>
3506    <t>set_chan_instruction =
3507            <list>
3508                    <t>AUDIO_OUTPUT_DEVICE SP sampler_channel SP device_index                                              
3509                    </t>
3510                    <t>/ AUDIO_OUTPUT_CHANNEL SP sampler_channel SP audio_channel_index SP audio_channel_index              
3511                    </t>
3512                    <t>/ AUDIO_OUTPUT_TYPE SP sampler_channel SP audio_output_type_name                                      
3513                    </t>
3514                    <t>/ MIDI_INPUT SP sampler_channel SP device_index SP midi_input_port_index SP midi_input_channel_index  
3515                    </t>
3516                    <t>/ MIDI_INPUT_DEVICE SP sampler_channel SP device_index                                                
3517                    </t>
3518                    <t>/ MIDI_INPUT_PORT SP sampler_channel SP midi_input_port_index                                        
3519                    </t>
3520                    <t>/ MIDI_INPUT_CHANNEL SP sampler_channel SP midi_input_channel_index                                  
3521                    </t>
3522                    <t>/ MIDI_INPUT_TYPE SP sampler_channel SP midi_input_type_name                                          
3523                    </t>
3524                    <t>/ VOLUME SP sampler_channel SP volume_value                                                          
3525                    </t>
3526                    <t>/ MUTE SP sampler_channel SP boolean                                                                  
3527                    </t>
3528                    <t>/ SOLO SP sampler_channel SP boolean                                                                  
3529                    </t>
3530            </list>
3531    </t>
3532    <t>key_val_list =
3533            <list>
3534                    <t>string '=' param_val_list                  
3535                    </t>
3536                    <t>/ key_val_list SP string '=' param_val_list  
3537                    </t>
3538            </list>
3539    </t>
3540    <t>buffer_size_type =
3541            <list>
3542                    <t>BYTES      
3543                    </t>
3544                    <t>/ PERCENTAGE  
3545                    </t>
3546            </list>
3547    </t>
3548    <t>list_instruction =
3549            <list>
3550                    <t>AUDIO_OUTPUT_DEVICES            
3551                    </t>
3552                    <t>/ MIDI_INPUT_DEVICES              
3553                    </t>
3554                    <t>/ CHANNELS                        
3555                    </t>
3556                    <t>/ AVAILABLE_ENGINES              
3557                    </t>
3558                    <t>/ AVAILABLE_MIDI_INPUT_DRIVERS    
3559                    </t>
3560                    <t>/ AVAILABLE_AUDIO_OUTPUT_DRIVERS  
3561                    </t>
3562            </list>
3563    </t>
3564    <t>load_instr_args =
3565            <list>
3566                    <t>filename SP instrument_index SP sampler_channel              
3567                    </t>
3568                    <t>/ NON_MODAL SP filename SP instrument_index SP sampler_channel  
3569                    </t>
3570            </list>
3571    </t>
3572    <t>load_engine_args =
3573            <list>
3574                    <t>engine_name SP sampler_channel  
3575                    </t>
3576            </list>
3577    </t>
3578    <t>device_index =
3579            <list>
3580                    <t>number
3581                    </t>
3582            </list>
3583    </t>
3584    <t>audio_channel_index =
3585            <list>
3586                    <t>number
3587                    </t>
3588            </list>
3589    </t>
3590    <t>audio_output_type_name =
3591            <list>
3592                    <t>string
3593                    </t>
3594            </list>
3595    </t>
3596    <t>midi_input_port_index =
3597            <list>
3598                    <t>number
3599                    </t>
3600            </list>
3601    </t>
3602    <t>midi_input_channel_index =
3603            <list>
3604                    <t>number
3605                    </t>
3606                    <t>/ ALL  
3607                    </t>
3608            </list>
3609    </t>
3610    <t>midi_input_type_name =
3611            <list>
3612                    <t>string
3613                    </t>
3614            </list>
3615    </t>
3616    <t>volume_value =
3617            <list>
3618                    <t>dotnum
3619                    </t>
3620                    <t>/ number  
3621                    </t>
3622            </list>
3623    </t>
3624    <t>sampler_channel =
3625            <list>
3626                    <t>number
3627                    </t>
3628            </list>
3629    </t>
3630    <t>instrument_index =
3631            <list>
3632                    <t>number
3633                    </t>
3634            </list>
3635    </t>
3636    <t>engine_name =
3637            <list>
3638                    <t>string
3639                    </t>
3640            </list>
3641    </t>
3642    <t>filename =
3643            <list>
3644                    <t>stringval
3645                    </t>
3646            </list>
3647    </t>
3648    <t>param_val_list =
3649            <list>
3650                    <t>param_val
3651                    </t>
3652                    <t>/ param_val_list','param_val  
3653                    </t>
3654            </list>
3655    </t>
3656    <t>param_val =
3657            <list>
3658                    <t>string
3659                    </t>
3660                    <t>/ '\'' string '\''    
3661                    </t>
3662                    <t>/ '\"' string '\"'    
3663                    </t>
3664                    <t>/ number            
3665                    </t>
3666                    <t>/ dotnum            
3667                    </t>
3668            </list>
3669    </t>
3670    
3671                <!-- GRAMMAR_BNF_END - do NOT delete or modify this line !!! -->
3672          </section>          </section>
3673    
3674          <section title="Events">          <section title="Events" anchor="events">
3675              <t>This chapter will describe all currently defined events supported by LinuxSampler.</t>              <t>This chapter will describe all currently defined events supported by LinuxSampler.</t>
3676    
3677              <section title="Number of sampler channels changed">              <section title="Number of sampler channels changed" anchor="SUBSCRIBE CHANNEL">
3678                  <t>Client may want to be notified when the total number of channels on the                  <t>Client may want to be notified when the total number of channels on the
3679                  back-end changes by issuing the following command:</t>                  back-end changes by issuing the following command:</t>
3680                  <t>                  <t>
3681                      <list>                      <list>
3682                          <t>SUBSCRIBE CHANNELS</t>                          <t>SUBSCRIBE CHANNEL_COUNT</t>
3683                      </list>                      </list>
3684                  </t>                  </t>
3685                  <t>Server will start sending the following notification messages:</t>                  <t>Server will start sending the following notification messages:</t>
3686                  <t>                  <t>
3687                      <list>                      <list>
3688                          <t>"NOTIFY:CHANNELS:&lt;channels&gt;"</t>                          <t>"NOTIFY:CHANNEL_COUNT:&lt;channels&gt;"</t>
3689                      </list>                      </list>
3690                  </t>                  </t>
3691                  <t>where &lt;channels&gt; will be replaced by the new number                  <t>where &lt;channels&gt; will be replaced by the new number
3692                  of sampler channels.</t>                  of sampler channels.</t>
3693              </section>              </section>
3694    
3695              <section title="Number of active voices changed">              <section title="Number of active voices changed" anchor="SUBSCRIBE VOICE_COUNT">
3696                  <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
3697                  back-end changes by issuing the following command:</t>                  back-end changes by issuing the following command:</t>
3698                  <t>                  <t>
# Line 3037  Schoenebeck'> Line 3703  Schoenebeck'>
3703                  <t>Server will start sending the following notification messages:</t>                  <t>Server will start sending the following notification messages:</t>
3704                  <t>                  <t>
3705                      <list>                      <list>
3706                          <t>"NOTIFY:VOICE_COUNT:&lt;sampler-channel&gt; &lt;voices>&gt;</t>                          <t>"NOTIFY:VOICE_COUNT:&lt;sampler-channel&gt; &lt;voices&gt;</t>
3707                      </list>                      </list>
3708                  </t>                  </t>
3709                  <t>where &lt;sampler-channel&gt; will be replaced by the sampler channel the                  <t>where &lt;sampler-channel&gt; will be replaced by the sampler channel the
3710                  voice count change occurred and &lt;voices>&gt; by the new number of                  voice count change occurred and &lt;voices&gt; by the new number of
3711                  active voices on that channel.</t>                  active voices on that channel.</t>
3712              </section>              </section>
3713    
3714              <section title="Number of active disk streams changed">              <section title="Number of active disk streams changed" anchor="SUBSCRIBE STREAM_COUNT">
3715                  <t>Client may want to be notified when the number of streams on the back-end                  <t>Client may want to be notified when the number of streams on the back-end
3716                  changes by issuing the following command: SUBSCRIBE STREAM_COUNT</t>                  changes by issuing the following command: SUBSCRIBE STREAM_COUNT</t>
3717                  <t>                  <t>
# Line 3064  Schoenebeck'> Line 3730  Schoenebeck'>
3730                  active disk streams on that channel.</t>                  active disk streams on that channel.</t>
3731              </section>              </section>
3732    
3733              <section title="Disk stream buffer fill state changed">              <section title="Disk stream buffer fill state changed" anchor="SUBSCRIBE BUFFER_FILL">
3734                  <t>Client may want to be notified when the number of streams on the back-end                  <t>Client may want to be notified when the buffer fill state of a disk stream
3735                  changes by issuing the following command:</t>                  on the back-end changes by issuing the following command:</t>
3736                  <t>                  <t>
3737                      <list>                      <list>
3738                          <t>SUBSCRIBE BUFFER_FILL</t>                          <t>SUBSCRIBE BUFFER_FILL</t>
# Line 3079  Schoenebeck'> Line 3745  Schoenebeck'>
3745                      </list>                      </list>
3746                  </t>                  </t>
3747                  <t>where &lt;sampler-channel&gt; will be replaced by the sampler channel the                  <t>where &lt;sampler-channel&gt; will be replaced by the sampler channel the
3748                  buffer fill state change occurred and &lt;fill-data&gt; will be replaced by the                  buffer fill state change occurred on and &lt;fill-data&gt; will be replaced by the
3749                  buffer fill data for this channel as described in 4.4.12 as if the                  buffer fill data for this channel as described in <xref target="GET CHANNEL BUFFER_FILL" />
3750                  "GET CHANNEL BUFFER_FILL PERCENTAGE" was issued on this channel.</t>                  as if the <xref target="GET CHANNEL BUFFER_FILL">
3751                    "GET CHANNEL BUFFER_FILL PERCENTAGE"</xref> command was issued on this channel.</t>
3752              </section>              </section>
3753    
3754              <section title="Channel information changed">              <section title="Channel information changed" anchor="SUBSCRIBE INFO">
3755                  <t>Client may want to be notified when changes were made to sampler channels on the                  <t>Client may want to be notified when changes were made to sampler channels on the
3756                  back-end changes by issuing the following command:</t>                  back-end by issuing the following command:</t>
3757                  <t>                  <t>
3758                      <list>                      <list>
3759                          <t>SUBSCRIBE INFO</t>                          <t>SUBSCRIBE CHANNEL_INFO</t>
3760                      </list>                      </list>
3761                  </t>                  </t>
3762                  <t>Server will start sending the following notification messages:</t>                  <t>Server will start sending the following notification messages:</t>
3763                  <t>                  <t>
3764                      <list>                      <list>
3765                          <t>"NOTIFY:INFO:&lt;sampler-channel&gt;"</t>                          <t>"NOTIFY:CHANNEL_INFO:&lt;sampler-channel&gt;"</t>
3766                      </list>                      </list>
3767                  </t>                  </t>
3768                  <t>where &lt;sampler-channel&gt; will be replaced by the sampler channel the                  <t>where &lt;sampler-channel&gt; will be replaced by the sampler channel the
# Line 3106  Schoenebeck'> Line 3773  Schoenebeck'>
3773                  message is sufficient here.</t>                  message is sufficient here.</t>
3774              </section>              </section>
3775    
3776              <section title="Miscellaneous and debugging events">              <section title="Miscellaneous and debugging events" anchor="SUBSCRIBE MISCELLANEOUS">
3777                  <t>Client may want to be notified of miscellaneous and debugging events occurring at                  <t>Client may want to be notified of miscellaneous and debugging events occurring at
3778                  the server by issuing the following command:</t>                  the server by issuing the following command:</t>
3779                  <t>                  <t>
# Line 3142  Schoenebeck'> Line 3809  Schoenebeck'>
3809                      <t>Rui Nuno Capela</t>                      <t>Rui Nuno Capela</t>
3810                      <t>Vladimir Senkov</t>                      <t>Vladimir Senkov</t>
3811                      <t>Mark Knecht</t>                      <t>Mark Knecht</t>
3812                        <t>Grigor Iliev</t>
3813                  </list>                  </list>
3814              </t>              </t>
3815          </section>          </section>
# Line 3149  Schoenebeck'> Line 3817  Schoenebeck'>
3817      </middle>      </middle>
3818    
3819      <back>      <back>
3820          <references>&rfc2119;</references>          <references>
3821                <reference anchor="RFC2119">
3822                    <front>
3823                        <title>Key words for use in RFCs to Indicate Requirement Levels</title>
3824                        <author initials="S." surname="Bradner" fullname="Scott Bradner">
3825                            <organization>Harvard University</organization>
3826                        </author>
3827                        <date year="1997"></date>
3828                    </front>
3829                    <seriesInfo name="RFC" value="2119" />
3830                </reference>
3831                <reference anchor="RFC793">
3832                    <front>
3833                        <title>TRANSMISSION CONTROL PROTOCOL</title>
3834                        <author>
3835                            <organization>Defense Advanced Research Projects Agency</organization>
3836                        </author>
3837                        <date year="1981"></date>
3838                    </front>
3839                    <seriesInfo name="RFC" value="793" />
3840                </reference>
3841                <reference anchor="RFC2234">
3842                    <front>
3843                        <title>Augmented BNF for Syntax Specifications</title>
3844                        <author initials="D.H." surname="Crocker" fullname="David H. Crocker">
3845                            <organization>Internet Mail Consortium</organization>
3846                        </author>
3847                        <author initials="P." surname="Overell" fullname="Paul Overell">
3848                            <organization>Demon Internet Ltd</organization>
3849                        </author>
3850                        <date year="1997"></date>
3851                    </front>
3852                    <seriesInfo name="RFC" value="2234" />
3853                </reference>
3854             </references>
3855      </back>      </back>
3856    
3857  </rfc>  </rfc>

Legend:
Removed from v.212  
changed lines
  Added in v.705

  ViewVC Help
Powered by ViewVC