--- linuxsampler/trunk/Documentation/lscp.xml 2004/07/28 14:17:29 212 +++ linuxsampler/trunk/Documentation/lscp.xml 2005/04/06 19:24:39 494 @@ -31,7 +31,7 @@ schoenebeck at software minus engineering dot org - + LinuxSampler Developers LSCP @@ -122,12 +122,12 @@ referred in this document as "sampler channels". The channels are in such way virtual as they can be connected to an arbitrary MIDI input method and arbitrary MIDI channel (e.g. - sampler channel 17 could be connected to an Alsa sequencer + sampler channel 17 could be connected to an ALSA sequencer device 64:0 and listening to MIDI channel 1 there). Each sampler engine will be assigned an own instance of one of the available sampler engines (e.g. GigEngine, DLSEngine). The audio output of each sampler channel can be routed to an arbitrary audio output - method (Alsa / Jack) and an arbitrary audio output channel + method (ALSA / JACK) and an arbitrary audio output channel there. @@ -216,6 +216,25 @@ <warning-message> and <error-message> are human readable descriptions of the warning or error respectively. + Examples: + + + C: "LOAD INSTRUMENT '/home/me/Boesendorfer24bit.gig" 0 0 + S: "WRN:32:This is a 24 bit patch which is not supported natively yet." + + + + + C: "GET AUDIO_OUTPUT_DRIVER_PARAMETER INFO ALSA EAR" + S: "ERR:3456:Audio output driver 'ALSA' does not have a parameter 'EAR'." + + + + + C: "GET AUDIO_OUTPUT_DEVICE INFO 123456" + S: "ERR:9:There is no audio output device with index 123456." + + Normal result sets could be: @@ -234,6 +253,13 @@ "OK" + Example: + + + C: "SET AUDIO_OUTPUT_DEVICE_PARAMETER 0 CHANNELS=4" + S: "OK" + + Single line result sets are command specific. One example of a single line result set is an empty line. Multi-line result sets are command specific and may @@ -244,6 +270,20 @@ "." + Example: + + + C: "GET AUDIO_OUTPUT_DEVICE INFO 0" + S: "DRIVER: ALSA" +    "CHANNELS: 2" +    "SAMPLERATE: 44100" +    "ACTIVE: true" +    "FRAGMENTS: 2" +    "FRAGMENTSIZE: 128" +    "CARD: '0,0'" +    "." + + In addition to above mentioned formats, warnings and empty result sets MAY be indexed. In this case, they have the following formats respectively: @@ -258,6 +298,19 @@ related to or other integer value. Each line of the result set MUST end with <CRLF>. + Examples: + + + C: "ADD CHANNEL" + S: "OK[12]" + + + + + C: "CREATE AUDIO_OUTPUT_DEVICE ALSA SAMPLERATE=96000" + S: "WRN[0]:32:Sample rate not supported, using 44100 instead." + +
@@ -390,11 +443,11 @@
Instances of drivers in LinuxSampler are called devices. You can use multiple audio devices simultaneously, e.g. to - output the sound of one sampler channel using the Alsa audio + output the sound of one sampler channel using the ALSA audio output driver, and on another sampler channel you might want - to use the Jack audio output driver. For particular audio + to use the JACK audio output driver. For particular audio output systems it's also possible to create several devices - of the same audio output driver, e.g. two separate Alsa + of the same audio output driver, e.g. two separate ALSA audio output devices for using two different sound cards at the same time. This chapter describes all commands to configure LinuxSampler's audio output devices and their @@ -440,7 +493,7 @@ C: "GET AVAILABLE_AUDIO_OUTPUT_DRIVERS" - S: "Alsa,Jack" + S: "ALSA,JACK"
@@ -506,13 +559,13 @@ Example: - C: "GET AUDIO_OUTPUT_DRIVER INFO Alsa" + C: "GET AUDIO_OUTPUT_DRIVER INFO ALSA" S: "DESCRIPTION: Advanced Linux Sound Architecture"    "VERSION: 1.0"    "PARAMETERS: - driver,channels,samplerate,active,fragments, - fragmentsize,card" + DRIVER,CHANNELS,SAMPLERATE,ACTIVE,FRAGMENTS, + FRAGMENTSIZE,CARD"    "." @@ -542,7 +595,7 @@ LinuxSampler will answer by sending a - &lz;CRLF> separated list. + <CRLF> separated list. Each answer line begins with the information category name followed by a colon and then a space character <SP> and finally @@ -606,7 +659,7 @@ on, means the values for fields 'DEFAULT', 'RANGE_MIN', 'RANGE_MAX' and 'POSSIBILITIES' might depend on these listed parameters, for example assuming that an audio - driver (like the Alsa driver) offers parameters 'card' + driver (like the ALSA driver) offers parameters 'card' and 'samplerate' then parameter 'samplerate' would depend on 'card' because the possible values for 'samplerate' depends on the sound card which can be @@ -647,7 +700,7 @@ - POSSIBILITES - + POSSIBILITIES - comma separated list of possible values for this parameter, character strings are encapsulated into @@ -663,20 +716,20 @@ Examples: - C: "GET AUDIO_OUTPUT_DRIVER_PARAMETER INFO Alsa card" + C: "GET AUDIO_OUTPUT_DRIVER_PARAMETER INFO ALSA CARD" S: "DESCRIPTION: sound card to be used"    "TYPE: STRING"    "MANDATORY: false"    "FIX: true"    "MULTIPLICITY: false"    "DEFAULT: '0,0'" -    "POSSIBILITES: '0,0','1,0','2,0'" +    "POSSIBILITIES: '0,0','1,0','2,0'"    "." - C: "GET AUDIO_OUTPUT_DRIVER_PARAMETER INFO Alsa samplerate" + C: "GET AUDIO_OUTPUT_DRIVER_PARAMETER INFO ALSA SAMPLERATE" S: "DESCRIPTION: output sample rate in Hz"    "TYPE: INT"    "MANDATORY: false" @@ -689,7 +742,7 @@ - C: "GET AUDIO_OUTPUT_DRIVER_PARAMETER INFO Alsa samplerate card='0,0'" + C: "GET AUDIO_OUTPUT_DRIVER_PARAMETER INFO ALSA SAMPLERATE CARD='0,0'" S: "DESCRIPTION: output sample rate in Hz"    "TYPE: INT"    "MANDATORY: false" @@ -750,13 +803,13 @@ Examples: - C: "CREATE AUDIO_OUTPUT_DEVICE Alsa" + C: "CREATE AUDIO_OUTPUT_DEVICE ALSA" S: "OK[0]" - C: "CREATE AUDIO_OUTPUT_DEVICE Alsa card='2,0' samplerate=96000" + C: "CREATE AUDIO_OUTPUT_DEVICE ALSA CARD='2,0' SAMPLERATE=96000" S: "OK[1]" @@ -859,9 +912,9 @@ GET AUDIO_OUTPUT_DEVICE INFO <device-id> - Where <device-id> should be replaced by be numerical ID + Where <device-id> should be replaced by numerical ID of the audio output device as e.g. returned by the - "GET AUDIO_OUTPUT_DEVICES" command. + "LIST AUDIO_OUTPUT_DEVICES" command. Possible Answers: LinuxSampler will answer by sending a <CRLF> separated list. Each answer line begins with the information category name @@ -872,25 +925,25 @@ information categories are defined (independently of device): - driver - + DRIVER - identifier of the used audio output driver, as also returned by the "GET AVAILABLE_AUDIO_OUTPUT_DRIVERS" command - channels - + CHANNELS - amount of audio output channels this device currently offers - samplerate - + SAMPLERATE - playback sample rate the device uses - active - + ACTIVE - either true or false, if false then the audio device is inactive and doesn't output any sound, nor do the @@ -910,13 +963,13 @@ C: "GET AUDIO_OUTPUT_DEVICE INFO 0" - S: "driver: Alsa" -    "channels: 2" -    "samplerate: 44100" -    "active: true" -    "fragments: 2" -    "fragmentsize: 128" -    "card: '0,0'" + S: "DRIVER: ALSA" +    "CHANNELS: 2" +    "SAMPLERATE: 44100" +    "ACTIVE: true" +    "FRAGMENTS: 2" +    "FRAGMENTSIZE: 128" +    "CARD: '0,0'"    "." @@ -959,7 +1012,7 @@ Example: - C: "SET AUDIO_OUTPUT_DEVICE_PARAMETER 0 fragmentsize=128" + C: "SET AUDIO_OUTPUT_DEVICE_PARAMETER 0 FRAGMENTSIZE=128" S: "OK" @@ -1003,7 +1056,8 @@ MIX_CHANNEL_DESTINATION - - reflects the real audio channel (of the same audio + numerical ID (positive integer including 0) + which reflects the real audio channel (of the same audio output device) this mix channel refers to, means where the audio signal actually will be routed / added to (only returned in case the audio channel is mix channel) @@ -1056,7 +1110,7 @@ C: "GET AUDIO_OUTPUT_CHANNEL INFO 1 0" S: "NAME: 'ardour (left)'"    "IS_MIX_CHANNEL: false" -    "jack_bindings: 'ardour:0'" +    "JACK_BINDINGS: 'ardour:0'"    "." @@ -1137,7 +1191,7 @@ parameter) - POSSIBILITES - + POSSIBILITIES - comma separated list of possible values for this parameter, character strings are encapsulated into @@ -1154,12 +1208,12 @@ Example: - C: "GET AUDIO_OUTPUT_CHANNEL_PARAMETER INFO 1 0 jack_bindings" - S: "DESCRIPTION: bindings to other Jack clients" + C: "GET AUDIO_OUTPUT_CHANNEL_PARAMETER INFO 1 0 JACK_BINDINGS" + S: "DESCRIPTION: bindings to other JACK clients"    "TYPE: STRING"    "FIX: false"    "MULTIPLICITY: true" -    "POSSIBILITES: 'PCM:0','PCM:1','ardour:0','ardour:1'" +    "POSSIBILITIES: 'PCM:0','PCM:1','ardour:0','ardour:1'"    "." @@ -1201,7 +1255,7 @@ Example: - C: "SET AUDIO_OUTPUT_CHANNEL PARAMETER 0 0 jack_bindings='PCM:0'" + C: "SET AUDIO_OUTPUT_CHANNEL PARAMETER 0 0 JACK_BINDINGS='PCM:0'" S: "OK" @@ -1217,7 +1271,7 @@
Instances of drivers in LinuxSampler are called devices. You can use multiple MIDI devices simultaneously, e.g. to use MIDI over ethernet as - 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 channel. For particular MIDI input systems it's also possible to create several devices of the same MIDI input type. This chapter describes all commands to configure LinuxSampler's MIDI input devices and their parameters. @@ -1260,7 +1314,7 @@ C: "GET AVAILABLE_MIDI_INPUT_DRIVERS" - S: "Alsa,Jack" + S: "ALSA,JACK"
@@ -1310,10 +1364,10 @@ - C: "GET MIDI_INPUT_DRIVER INFO Alsa" + C: "GET MIDI_INPUT_DRIVER INFO ALSA" S: "DESCRIPTION: Advanced Linux Sound Architecture"    "VERSION: 1.0" -    "PARAMETERS: driver,active" +    "PARAMETERS: DRIVER,ACTIVE"    "." @@ -1400,7 +1454,7 @@ on, means the values for fields 'DEFAULT', 'RANGE_MIN', 'RANGE_MAX' and 'POSSIBILITIES' might depend on these listed parameters, for example assuming that an audio - driver (like the Alsa driver) offers parameters 'card' + driver (like the ALSA driver) offers parameters 'card' and 'samplerate' then parameter 'samplerate' would depend on 'card' because the possible values for 'samplerate' depends on the sound card which can be @@ -1441,7 +1495,7 @@
- POSSIBILITES - + POSSIBILITIES - comma separated list of possible values for this parameter, character strings are encapsulated into @@ -1457,7 +1511,7 @@ Example: - C: "GET MIDI_INPUT_DRIVER_PARAMETER INFO Alsa active" + C: "GET MIDI_INPUT_DRIVER_PARAMETER INFO ALSA ACTIVE" S: "DESCRIPTION: Whether device is enabled"    "TYPE: BOOL"    "MANDATORY: false" @@ -1511,7 +1565,7 @@ Example: - C: "CREATE MIDI_INPUT_DEVICE Alsa" + C: "CREATE MIDI_INPUT_DEVICE ALSA" S: "OK[0]" @@ -1663,14 +1717,14 @@ C: "GET MIDI_INPUT_DEVICE INFO 0" - S: "driver: Alsa" -    "active: true" + S: "DRIVER: ALSA" +    "ACTIVE: true"    "."
-
+
Use the following command to alter a specific setting of a created MIDI input device: @@ -1707,7 +1761,7 @@ Example: - C: "SET MIDI_INPUT_DEVICE PARAMETER 0 ACTIVE=false" + C: "SET MIDI_INPUT_DEVICE_PARAMETER 0 ACTIVE=false" S: "OK" @@ -1748,8 +1802,8 @@ C: "GET MIDI_INPUT_PORT INFO 0 0" - S: "name: 'Masterkeyboard'" -    "alsa_seq_bindings: '64:0'" + S: "NAME: 'Masterkeyboard'" +    "ALSA_SEQ_BINDINGS: '64:0'"    "." @@ -1764,7 +1818,7 @@ Where <dev-id> is the numerical ID of the MIDI input device as returned - by the "GET MIDI_INPUT_DEVICES" command, <port> the MIDI port number and + by the "LIST MIDI_INPUT_DEVICES" command, <port> the MIDI port number and <param> a specific port parameter name for which information should be obtained (as returned by the "GET MIDI_INPUT_PORT INFO" command). @@ -1829,7 +1883,7 @@ parameter) - POSSIBILITES - + POSSIBILITIES - comma separated list of possible values for this parameter, character strings are encapsulated into @@ -1846,12 +1900,12 @@ Example: - C: "GET MIDI_INPUT_PORT_PARAMETER INFO 0 0 alsa_seq_bindings" - S: "DESCRIPTION: bindings to other Alsa sequencer clients" - "TYPE: STRING" + C: "GET MIDI_INPUT_PORT_PARAMETER INFO 0 0 ALSA_SEQ_BINDINGS" + S: "DESCRIPTION: bindings to other ALSA sequencer clients" +    "TYPE: STRING"    "FIX: false"    "MULTIPLICITY: true" -    "POSSIBILITES: '64:0','68:0','68:1'" +    "POSSIBILITIES: '64:0','68:0','68:1'"    "." @@ -1861,7 +1915,7 @@ Use the following command to alter a specific setting of a MIDI input port: - SET MIDI_INPUT_PORT PARAMETER <device-id> <port> <key>=<value> + SET MIDI_INPUT_PORT_PARAMETER <device-id> <port> <key>=<value> @@ -1970,8 +2024,8 @@ - Where <engine-name> is usually the C++ class name of the engine - implementation and <sampler-channel> the sampler channel the + Where <engine-name> is an engine name as obtained by the + "GET AVAILABLE_ENGINES" command and <sampler-channel> the sampler channel the deployed engine should be assigned to. Even if the respective sampler channel has already a deployed engine with that engine name, a new engine instance will be assigned to the sampler channel. @@ -2162,7 +2216,8 @@ LinuxSampler will answer by sending a comma separated character - string of the engines' C++ class names. + string of the engines' names. Engine names can consist of lower and + upper cases, digits and underlines ("_" character). Example: @@ -2182,11 +2237,12 @@ GET ENGINE INFO <engine-name> - Where <engine-name> is usually the C++ class name of the engine implementation. + Where <engine-name> is an engine name as obtained by the + "GET AVAILABLE_ENGINES" command. Possible Answers: - LinuxSampler will answer by sending <> separated list. + LinuxSampler will answer by sending a <CRLF> separated list. Each answer line begins with the information category name followed by a colon and then a space character <SP> and finally the info character string to that info category. At the moment @@ -2286,6 +2342,11 @@ the instrument index number of the loaded instrument + INSTRUMENT_NAME - + + the instrument name of the loaded instrument + + INSTRUMENT_STATUS - integer values 0 to 100 indicating loading progress percentage for the instrument. Negative @@ -2336,6 +2397,7 @@    "AUDIO_OUTPUT_ROUTING: 0,1"    "INSTRUMENT_FILE: /home/joe/FazioliPiano.gig"    "INSTRUMENT_NR: 0" +    "INSTRUMENT_NAME: Fazioli Piano"    "INSTRUMENT_STATUS: 100"    "MIDI_INPUT_DEVICE: 0"    "MIDI_INPUT_PORT: 0" @@ -2500,7 +2562,7 @@ SET CHANNEL AUDIO_OUTPUT_TYPE <sampler-channel> <audio-output-type> - Where <audio-output-type> is currently either "Alsa" or "Jack" and + Where <audio-output-type> is currently either "ALSA" or "JACK" and <sampler-channel> is the respective sampler channel number. Possible Answers: @@ -2626,7 +2688,7 @@ SET CHANNEL MIDI_INPUT_TYPE <sampler-channel> <midi-input-type> - Where <midi-input-type> is currently only "Alsa" and + Where <midi-input-type> is currently only "ALSA" and <sampler-channel> is the respective sampler channel number. Possible Answers: @@ -2876,7 +2938,7 @@
-
+
The front-end can unregister itself if it doesn't want to receive event messages anymore by sending the following command: