/[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 571 by schoenebeck, Mon May 23 17:41:34 2005 UTC revision 709 by schoenebeck, Thu Jul 21 09:36:52 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="May" year="2005"/>          <date month="July" year="2005"/>
35          <workgroup>LinuxSampler Developers</workgroup>          <workgroup>LinuxSampler Developers</workgroup>
36          <keyword>LSCP</keyword>          <keyword>LSCP</keyword>
37          <abstract>          <abstract>
# Line 130  Schoenebeck'> Line 130  Schoenebeck'>
130              group of backward compatible versions. That means a frontend is              group of backward compatible versions. That means a frontend is
131              compatible to the connected sampler if and only if the LSCP versions              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              to which each of the two parties complies to, match both of the
133              following rule:              following rules:
134              </t>              </t>
135              <t>Compatibility:</t>              <t>Compatibility:</t>
136              <t>              <t>
# Line 463  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. <xref target="GET CHANNEL INFO">"GET CHANNEL INFO"</xref>              commands (e.g. <xref target="GET CHANNEL INFO">"GET CHANNEL INFO"</xref>
# Line 2556  Schoenebeck'> Line 2556  Schoenebeck'>
2556                                              1.0 means amplification)</t>                                              1.0 means amplification)</t>
2557                                          </list>                                          </list>
2558                                      </t>                                      </t>
2559                                        <t>MUTE -
2560                                            <list>
2561                                                <t>Determines whether the channel is muted, "true" if the
2562                                                channel is muted, "false" if the channel is not muted, and
2563                                                "MUTED_BY_SOLO" if the channel is muted because of the
2564                                                presence of a solo channel and will be unmuted when
2565                                                there are no solo channels left</t>
2566                                            </list>
2567                                        </t>
2568                                        <t>SOLO -
2569                                            <list>
2570                                                <t>Determines whether this is a solo channel, "true" if
2571                                                the channel is a solo channel; "false" otherwise</t>
2572                                            </list>
2573                                        </t>
2574                                  </list>                                  </list>
2575                              </t>                              </t>
2576                          </list>                          </list>
# Line 3041  Schoenebeck'> Line 3056  Schoenebeck'>
3056                      </t>                      </t>
3057                  </section>                  </section>
3058    
3059                    <section title="Muting a sampler channel" anchor="SET CHANNEL MUTE">
3060                        <t>The front-end can mute/unmute a specific sampler
3061                        channel by sending the following command:</t>
3062                        <t>
3063                            <list>
3064                                <t>SET CHANNEL MUTE &lt;sampler-channel&gt; &lt;mute&gt;</t>
3065                            </list>
3066                        </t>
3067                        <t>Where &lt;sampler-channel&gt; is the respective sampler channel
3068                        number as returned by the <xref target="ADD CHANNEL">"ADD CHANNEL"</xref>
3069                        or <xref target="LIST CHANNELS">"LIST CHANNELS"</xref> command and
3070                        &lt;mute&gt; should be replaced either by "1" to mute the channel or "0"
3071                        to unmute the channel.</t>
3072    
3073                        <t>Possible Answers:</t>
3074                        <t>
3075                            <list>
3076                                <t>"OK" -
3077                                    <list>
3078                                        <t>on success</t>
3079                                    </list>
3080                                </t>
3081                                <t>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
3082                                    <list>
3083                                        <t>if the channel was muted/unmuted, but there are noteworthy
3084                                        issue(s) related, providing an appropriate warning code and
3085                                        warning message</t>
3086                                    </list>
3087                                </t>
3088                                <t>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
3089                                    <list>
3090                                        <t>in case it failed, providing an appropriate error code and error message</t>
3091                                    </list>
3092                                </t>
3093                            </list>
3094                        </t>
3095                        <t>Examples:</t>
3096                        <t>
3097                            <list>
3098                                <t></t>
3099                            </list>
3100                        </t>
3101                    </section>
3102    
3103                    <section title="Soloing a sampler channel" anchor="SET CHANNEL SOLO">
3104                        <t>The front-end can solo/unsolo a specific sampler channel
3105                        by sending the following command:</t>
3106                        <t>
3107                            <list>
3108                                <t>SET CHANNEL SOLO &lt;sampler-channel&gt; &lt;solo&gt;</t>
3109                            </list>
3110                        </t>
3111                        <t>Where &lt;sampler-channel&gt; is the respective sampler channel
3112                        number as returned by the <xref target="ADD CHANNEL">"ADD CHANNEL"</xref>
3113                        or <xref target="LIST CHANNELS">"LIST CHANNELS"</xref> command and
3114                        &lt;solo&gt; should be replaced either by "1" to solo the channel or "0"
3115                        to unsolo the channel.</t>
3116    
3117                        <t>Possible Answers:</t>
3118                        <t>
3119                            <list>
3120                                <t>"OK" -
3121                                    <list>
3122                                        <t>on success</t>
3123                                    </list>
3124                                </t>
3125                                <t>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
3126                                    <list>
3127                                        <t>if the channel was soloed/unsoloed, but there are noteworthy
3128                                        issue(s) related, providing an appropriate warning code and
3129                                        warning message</t>
3130                                    </list>
3131                                </t>
3132                                <t>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
3133                                    <list>
3134                                        <t>in case it failed, providing an appropriate error code and error message</t>
3135                                    </list>
3136                                </t>
3137                            </list>
3138                        </t>
3139                        <t>Examples:</t>
3140                        <t>
3141                            <list>
3142                                <t></t>
3143                            </list>
3144                        </t>
3145                    </section>
3146    
3147                  <section title="Resetting a sampler channel" anchor="RESET CHANNEL">                  <section title="Resetting a sampler channel" anchor="RESET CHANNEL">
3148                      <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>
3149                      <t>                      <t>
# Line 3264  Schoenebeck'> Line 3367  Schoenebeck'>
3367                      <t>                      <t>
3368                          <list>                          <list>
3369                              <t>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.                              <t>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
3370                                 Each answer line begins with the settings category name                                 Each answer line begins with the information category name
3371                                 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
3372                                 the info character string to that information category. At the                                 the info character string to that information category. At the
3373                                 moment the following categories are defined:                                 moment the following categories are defined:
# Line 3298  Schoenebeck'> Line 3401  Schoenebeck'>
3401          </section>          </section>
3402    
3403          <section title="Command Syntax" anchor="command_syntax">          <section title="Command Syntax" anchor="command_syntax">
3404              <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"/>
3405              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"/>)
3406              the command syntax.</t>              where applicable.
3407                </t>
3408                <!--
3409                    This section is automatically generated by scripts/update_grammar.pl
3410                    from src/network/lscp.y (yacc input file). Do not modify this section
3411                    manually !
3412                -->
3413                <!-- GRAMMAR_BNF_BEGIN - do NOT delete or modify this line !!! -->
3414    
3415    <t>input =
3416            <list>
3417                    <t>line LF
3418                    </t>
3419                    <t>/ line CR LF
3420                    </t>
3421            </list>
3422    </t>
3423    <t>line =
3424            <list>
3425                    <t>/* epsilon (empty line ignored) */
3426                    </t>
3427                    <t>/ comment
3428                    </t>
3429                    <t>/ command
3430                    </t>
3431                    <t>/ error
3432                    </t>
3433            </list>
3434    </t>
3435    <t>comment =
3436            <list>
3437                    <t>'#'
3438                    </t>
3439                    <t>/ comment '#'
3440                    </t>
3441                    <t>/ comment SP
3442                    </t>
3443                    <t>/ comment number
3444                    </t>
3445                    <t>/ comment string
3446                    </t>
3447            </list>
3448    </t>
3449    <t>command =
3450            <list>
3451                    <t>ADD SP CHANNEL
3452                    </t>
3453                    <t>/ GET SP get_instruction
3454                    </t>
3455                    <t>/ CREATE SP create_instruction
3456                    </t>
3457                    <t>/ DESTROY SP destroy_instruction
3458                    </t>
3459                    <t>/ LIST SP list_instruction
3460                    </t>
3461                    <t>/ LOAD SP load_instruction
3462                    </t>
3463                    <t>/ REMOVE SP CHANNEL SP sampler_channel
3464                    </t>
3465                    <t>/ SET SP set_instruction
3466                    </t>
3467                    <t>/ SUBSCRIBE SP subscribe_event
3468                    </t>
3469                    <t>/ UNSUBSCRIBE SP unsubscribe_event
3470                    </t>
3471                    <t>/ SELECT SP text
3472                    </t>
3473                    <t>/ RESET SP CHANNEL SP sampler_channel
3474                    </t>
3475                    <t>/ RESET
3476                    </t>
3477                    <t>/ QUIT
3478                    </t>
3479            </list>
3480    </t>
3481    <t>subscribe_event =
3482            <list>
3483                    <t>CHANNEL_COUNT
3484                    </t>
3485                    <t>/ VOICE_COUNT
3486                    </t>
3487                    <t>/ STREAM_COUNT
3488                    </t>
3489                    <t>/ BUFFER_FILL
3490                    </t>
3491                    <t>/ CHANNEL_INFO
3492                    </t>
3493                    <t>/ MISCELLANEOUS
3494                    </t>
3495            </list>
3496    </t>
3497    <t>unsubscribe_event =
3498            <list>
3499                    <t>CHANNEL_COUNT
3500                    </t>
3501                    <t>/ VOICE_COUNT
3502                    </t>
3503                    <t>/ STREAM_COUNT
3504                    </t>
3505                    <t>/ BUFFER_FILL
3506                    </t>
3507                    <t>/ CHANNEL_INFO
3508                    </t>
3509                    <t>/ MISCELLANEOUS
3510                    </t>
3511            </list>
3512    </t>
3513    <t>get_instruction =
3514            <list>
3515                    <t>AVAILABLE_ENGINES
3516                    </t>
3517                    <t>/ AVAILABLE_MIDI_INPUT_DRIVERS
3518                    </t>
3519                    <t>/ MIDI_INPUT_DRIVER SP INFO SP string
3520                    </t>
3521                    <t>/ MIDI_INPUT_DRIVER_PARAMETER SP INFO SP string SP string
3522                    </t>
3523                    <t>/ MIDI_INPUT_DRIVER_PARAMETER SP INFO SP string SP string SP key_val_list
3524                    </t>
3525                    <t>/ AVAILABLE_AUDIO_OUTPUT_DRIVERS
3526                    </t>
3527                    <t>/ AUDIO_OUTPUT_DRIVER SP INFO SP string
3528                    </t>
3529                    <t>/ AUDIO_OUTPUT_DRIVER_PARAMETER SP INFO SP string SP string
3530                    </t>
3531                    <t>/ AUDIO_OUTPUT_DRIVER_PARAMETER SP INFO SP string SP string SP key_val_list
3532                    </t>
3533                    <t>/ AUDIO_OUTPUT_DEVICES
3534                    </t>
3535                    <t>/ MIDI_INPUT_DEVICES
3536                    </t>
3537                    <t>/ AUDIO_OUTPUT_DEVICE SP INFO SP number
3538                    </t>
3539                    <t>/ MIDI_INPUT_DEVICE SP INFO SP number
3540                    </t>
3541                    <t>/ MIDI_INPUT_PORT SP INFO SP number SP number
3542                    </t>
3543                    <t>/ MIDI_INPUT_PORT_PARAMETER SP INFO SP number SP number SP string
3544                    </t>
3545                    <t>/ AUDIO_OUTPUT_CHANNEL SP INFO SP number SP number
3546                    </t>
3547                    <t>/ AUDIO_OUTPUT_CHANNEL_PARAMETER SP INFO SP number SP number SP string
3548                    </t>
3549                    <t>/ CHANNELS
3550                    </t>
3551                    <t>/ CHANNEL SP INFO SP sampler_channel
3552                    </t>
3553                    <t>/ CHANNEL SP BUFFER_FILL SP buffer_size_type SP sampler_channel
3554                    </t>
3555                    <t>/ CHANNEL SP STREAM_COUNT SP sampler_channel
3556                    </t>
3557                    <t>/ CHANNEL SP VOICE_COUNT SP sampler_channel
3558                    </t>
3559                    <t>/ ENGINE SP INFO SP engine_name
3560                    </t>
3561                    <t>/ SERVER SP INFO
3562                    </t>
3563            </list>
3564    </t>
3565    <t>set_instruction =
3566            <list>
3567                    <t>AUDIO_OUTPUT_DEVICE_PARAMETER SP number SP string '=' param_val_list
3568                    </t>
3569                    <t>/ AUDIO_OUTPUT_CHANNEL_PARAMETER SP number SP number SP string '=' param_val_list
3570                    </t>
3571                    <t>/ MIDI_INPUT_DEVICE_PARAMETER SP number SP string '=' param_val_list
3572                    </t>
3573                    <t>/ MIDI_INPUT_PORT_PARAMETER SP number SP number SP string '=' param_val_list
3574                    </t>
3575                    <t>/ CHANNEL SP set_chan_instruction
3576                    </t>
3577                    <t>/ ECHO SP boolean
3578                    </t>
3579            </list>
3580    </t>
3581    <t>create_instruction =
3582            <list>
3583                    <t>AUDIO_OUTPUT_DEVICE SP string SP key_val_list
3584                    </t>
3585                    <t>/ AUDIO_OUTPUT_DEVICE SP string
3586                    </t>
3587                    <t>/ MIDI_INPUT_DEVICE SP string SP key_val_list
3588                    </t>
3589                    <t>/ MIDI_INPUT_DEVICE SP string
3590                    </t>
3591            </list>
3592    </t>
3593    <t>destroy_instruction =
3594            <list>
3595                    <t>AUDIO_OUTPUT_DEVICE SP number
3596                    </t>
3597                    <t>/ MIDI_INPUT_DEVICE SP number
3598                    </t>
3599            </list>
3600    </t>
3601    <t>load_instruction =
3602            <list>
3603                    <t>INSTRUMENT SP load_instr_args
3604                    </t>
3605                    <t>/ ENGINE SP load_engine_args
3606                    </t>
3607            </list>
3608    </t>
3609    <t>set_chan_instruction =
3610            <list>
3611                    <t>AUDIO_OUTPUT_DEVICE SP sampler_channel SP device_index
3612                    </t>
3613                    <t>/ AUDIO_OUTPUT_CHANNEL SP sampler_channel SP audio_channel_index SP audio_channel_index
3614                    </t>
3615                    <t>/ AUDIO_OUTPUT_TYPE SP sampler_channel SP audio_output_type_name
3616                    </t>
3617                    <t>/ MIDI_INPUT SP sampler_channel SP device_index SP midi_input_port_index SP midi_input_channel_index
3618                    </t>
3619                    <t>/ MIDI_INPUT_DEVICE SP sampler_channel SP device_index
3620                    </t>
3621                    <t>/ MIDI_INPUT_PORT SP sampler_channel SP midi_input_port_index
3622                    </t>
3623                    <t>/ MIDI_INPUT_CHANNEL SP sampler_channel SP midi_input_channel_index
3624                    </t>
3625                    <t>/ MIDI_INPUT_TYPE SP sampler_channel SP midi_input_type_name
3626                    </t>
3627                    <t>/ VOLUME SP sampler_channel SP volume_value
3628                    </t>
3629                    <t>/ MUTE SP sampler_channel SP boolean
3630                    </t>
3631                    <t>/ SOLO SP sampler_channel SP boolean
3632                    </t>
3633            </list>
3634    </t>
3635    <t>key_val_list =
3636            <list>
3637                    <t>string '=' param_val_list
3638                    </t>
3639                    <t>/ key_val_list SP string '=' param_val_list
3640                    </t>
3641            </list>
3642    </t>
3643    <t>buffer_size_type =
3644            <list>
3645                    <t>BYTES
3646                    </t>
3647                    <t>/ PERCENTAGE
3648                    </t>
3649            </list>
3650    </t>
3651    <t>list_instruction =
3652            <list>
3653                    <t>AUDIO_OUTPUT_DEVICES
3654                    </t>
3655                    <t>/ MIDI_INPUT_DEVICES
3656                    </t>
3657                    <t>/ CHANNELS
3658                    </t>
3659                    <t>/ AVAILABLE_ENGINES
3660                    </t>
3661                    <t>/ AVAILABLE_MIDI_INPUT_DRIVERS
3662                    </t>
3663                    <t>/ AVAILABLE_AUDIO_OUTPUT_DRIVERS
3664                    </t>
3665            </list>
3666    </t>
3667    <t>load_instr_args =
3668            <list>
3669                    <t>filename SP instrument_index SP sampler_channel
3670                    </t>
3671                    <t>/ NON_MODAL SP filename SP instrument_index SP sampler_channel
3672                    </t>
3673            </list>
3674    </t>
3675    <t>load_engine_args =
3676            <list>
3677                    <t>engine_name SP sampler_channel
3678                    </t>
3679            </list>
3680    </t>
3681    <t>device_index =
3682            <list>
3683                    <t>number
3684                    </t>
3685            </list>
3686    </t>
3687    <t>audio_channel_index =
3688            <list>
3689                    <t>number
3690                    </t>
3691            </list>
3692    </t>
3693    <t>audio_output_type_name =
3694            <list>
3695                    <t>string
3696                    </t>
3697            </list>
3698    </t>
3699    <t>midi_input_port_index =
3700            <list>
3701                    <t>number
3702                    </t>
3703            </list>
3704    </t>
3705    <t>midi_input_channel_index =
3706            <list>
3707                    <t>number
3708                    </t>
3709                    <t>/ ALL
3710                    </t>
3711            </list>
3712    </t>
3713    <t>midi_input_type_name =
3714            <list>
3715                    <t>string
3716                    </t>
3717            </list>
3718    </t>
3719    <t>volume_value =
3720            <list>
3721                    <t>dotnum
3722                    </t>
3723                    <t>/ number
3724                    </t>
3725            </list>
3726    </t>
3727    <t>sampler_channel =
3728            <list>
3729                    <t>number
3730                    </t>
3731            </list>
3732    </t>
3733    <t>instrument_index =
3734            <list>
3735                    <t>number
3736                    </t>
3737            </list>
3738    </t>
3739    <t>engine_name =
3740            <list>
3741                    <t>string
3742                    </t>
3743            </list>
3744    </t>
3745    <t>filename =
3746            <list>
3747                    <t>stringval
3748                    </t>
3749            </list>
3750    </t>
3751    <t>param_val_list =
3752            <list>
3753                    <t>param_val
3754                    </t>
3755                    <t>/ param_val_list','param_val
3756                    </t>
3757            </list>
3758    </t>
3759    <t>param_val =
3760            <list>
3761                    <t>string
3762                    </t>
3763                    <t>/ '\'' string '\''
3764                    </t>
3765                    <t>/ '\"' string '\"'
3766                    </t>
3767                    <t>/ number
3768                    </t>
3769                    <t>/ dotnum
3770                    </t>
3771            </list>
3772    </t>
3773    
3774                <!-- GRAMMAR_BNF_END - do NOT delete or modify this line !!! -->
3775          </section>          </section>
3776    
3777          <section title="Events" anchor="events">          <section title="Events" anchor="events">
# Line 3459  Schoenebeck'> Line 3930  Schoenebeck'>
3930                      <date year="1997"></date>                      <date year="1997"></date>
3931                  </front>                  </front>
3932                  <seriesInfo name="RFC" value="2119" />                  <seriesInfo name="RFC" value="2119" />
                 <seriesInfo name="STD" value="1" />  
3933              </reference>              </reference>
3934              <reference anchor="RFC793">              <reference anchor="RFC793">
3935                  <front>                  <front>
# Line 3470  Schoenebeck'> Line 3940  Schoenebeck'>
3940                      <date year="1981"></date>                      <date year="1981"></date>
3941                  </front>                  </front>
3942                  <seriesInfo name="RFC" value="793" />                  <seriesInfo name="RFC" value="793" />
3943                  <seriesInfo name="STD" value="1" />              </reference>
3944                <reference anchor="RFC2234">
3945                    <front>
3946                        <title>Augmented BNF for Syntax Specifications</title>
3947                        <author initials="D.H." surname="Crocker" fullname="David H. Crocker">
3948                            <organization>Internet Mail Consortium</organization>
3949                        </author>
3950                        <author initials="P." surname="Overell" fullname="Paul Overell">
3951                            <organization>Demon Internet Ltd</organization>
3952                        </author>
3953                        <date year="1997"></date>
3954                    </front>
3955                    <seriesInfo name="RFC" value="2234" />
3956              </reference>              </reference>
3957           </references>           </references>
3958      </back>      </back>

Legend:
Removed from v.571  
changed lines
  Added in v.709

  ViewVC Help
Powered by ViewVC