--- 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: