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="Jan" year="2005"/> |
35 |
<workgroup>LinuxSampler Developers</workgroup> |
<workgroup>LinuxSampler Developers</workgroup> |
36 |
<keyword>LSCP</keyword> |
<keyword>LSCP</keyword> |
37 |
<abstract> |
<abstract> |
122 |
referred in this document as "sampler channels". The channels |
referred in this document as "sampler channels". The channels |
123 |
are in such way virtual as they can be connected to an |
are in such way virtual as they can be connected to an |
124 |
arbitrary MIDI input method and arbitrary MIDI channel (e.g. |
arbitrary MIDI input method and arbitrary MIDI channel (e.g. |
125 |
sampler channel 17 could be connected to an Alsa sequencer |
sampler channel 17 could be connected to an ALSA sequencer |
126 |
device 64:0 and listening to MIDI channel 1 there). Each sampler |
device 64:0 and listening to MIDI channel 1 there). Each sampler |
127 |
engine will be assigned an own instance of one of the available |
engine will be assigned an own instance of one of the available |
128 |
sampler engines (e.g. GigEngine, DLSEngine). The audio output of |
sampler engines (e.g. GigEngine, DLSEngine). The audio output of |
129 |
each sampler channel can be routed to an arbitrary audio output |
each sampler channel can be routed to an arbitrary audio output |
130 |
method (Alsa / Jack) and an arbitrary audio output channel |
method (ALSA / JACK) and an arbitrary audio output channel |
131 |
there.</t> |
there.</t> |
132 |
</section> |
</section> |
133 |
|
|
390 |
<section title="Configuring audio drivers"> |
<section title="Configuring audio drivers"> |
391 |
<t>Instances of drivers in LinuxSampler are called devices. |
<t>Instances of drivers in LinuxSampler are called devices. |
392 |
You can use multiple audio devices simultaneously, e.g. to |
You can use multiple audio devices simultaneously, e.g. to |
393 |
output the sound of one sampler channel using the Alsa audio |
output the sound of one sampler channel using the ALSA audio |
394 |
output driver, and on another sampler channel you might want |
output driver, and on another sampler channel you might want |
395 |
to use the Jack audio output driver. For particular audio |
to use the JACK audio output driver. For particular audio |
396 |
output systems it's also possible to create several devices |
output systems it's also possible to create several devices |
397 |
of the same audio output driver, e.g. two separate Alsa |
of the same audio output driver, e.g. two separate ALSA |
398 |
audio output devices for using two different sound cards at |
audio output devices for using two different sound cards at |
399 |
the same time. This chapter describes all commands to |
the same time. This chapter describes all commands to |
400 |
configure LinuxSampler's audio output devices and their |
configure LinuxSampler's audio output devices and their |
440 |
<t> |
<t> |
441 |
<list> |
<list> |
442 |
<t>C: "GET AVAILABLE_AUDIO_OUTPUT_DRIVERS"</t> |
<t>C: "GET AVAILABLE_AUDIO_OUTPUT_DRIVERS"</t> |
443 |
<t>S: "Alsa,Jack"</t> |
<t>S: "ALSA,JACK"</t> |
444 |
</list> |
</list> |
445 |
</t> |
</t> |
446 |
</section> |
</section> |
506 |
<t>Example:</t> |
<t>Example:</t> |
507 |
<t> |
<t> |
508 |
<list> |
<list> |
509 |
<t>C: "GET AUDIO_OUTPUT_DRIVER INFO Alsa"</t> |
<t>C: "GET AUDIO_OUTPUT_DRIVER INFO ALSA"</t> |
510 |
<t>S: "DESCRIPTION: Advanced Linux Sound |
<t>S: "DESCRIPTION: Advanced Linux Sound |
511 |
Architecture"</t> |
Architecture"</t> |
512 |
<t> "VERSION: 1.0"</t> |
<t> "VERSION: 1.0"</t> |
513 |
<t> "PARAMETERS: |
<t> "PARAMETERS: |
514 |
driver,channels,samplerate,active,fragments, |
DRIVER,CHANNELS,SAMPLERATE,ACTIVE,FRAGMENTS, |
515 |
fragmentsize,card"</t> |
FRAGMENTSIZE,CARD"</t> |
516 |
<t> "."</t> |
<t> "."</t> |
517 |
</list> |
</list> |
518 |
</t> |
</t> |
606 |
on, means the values for fields 'DEFAULT', 'RANGE_MIN', |
on, means the values for fields 'DEFAULT', 'RANGE_MIN', |
607 |
'RANGE_MAX' and 'POSSIBILITIES' might depend on these |
'RANGE_MAX' and 'POSSIBILITIES' might depend on these |
608 |
listed parameters, for example assuming that an audio |
listed parameters, for example assuming that an audio |
609 |
driver (like the Alsa driver) offers parameters 'card' |
driver (like the ALSA driver) offers parameters 'card' |
610 |
and 'samplerate' then parameter 'samplerate' would |
and 'samplerate' then parameter 'samplerate' would |
611 |
depend on 'card' because the possible values for |
depend on 'card' because the possible values for |
612 |
'samplerate' depends on the sound card which can be |
'samplerate' depends on the sound card which can be |
663 |
<t>Examples:</t> |
<t>Examples:</t> |
664 |
<t> |
<t> |
665 |
<list> |
<list> |
666 |
<t>C: "GET AUDIO_OUTPUT_DRIVER_PARAMETER INFO Alsa card"</t> |
<t>C: "GET AUDIO_OUTPUT_DRIVER_PARAMETER INFO ALSA CARD"</t> |
667 |
<t>S: "DESCRIPTION: sound card to be used"</t> |
<t>S: "DESCRIPTION: sound card to be used"</t> |
668 |
<t> "TYPE: STRING"</t> |
<t> "TYPE: STRING"</t> |
669 |
<t> "MANDATORY: false"</t> |
<t> "MANDATORY: false"</t> |
676 |
</t> |
</t> |
677 |
<t> |
<t> |
678 |
<list> |
<list> |
679 |
<t>C: "GET AUDIO_OUTPUT_DRIVER_PARAMETER INFO Alsa samplerate"</t> |
<t>C: "GET AUDIO_OUTPUT_DRIVER_PARAMETER INFO ALSA SAMPLERATE"</t> |
680 |
<t>S: "DESCRIPTION: output sample rate in Hz"</t> |
<t>S: "DESCRIPTION: output sample rate in Hz"</t> |
681 |
<t> "TYPE: INT"</t> |
<t> "TYPE: INT"</t> |
682 |
<t> "MANDATORY: false"</t> |
<t> "MANDATORY: false"</t> |
689 |
</t> |
</t> |
690 |
<t> |
<t> |
691 |
<list> |
<list> |
692 |
<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> |
693 |
<t>S: "DESCRIPTION: output sample rate in Hz"</t> |
<t>S: "DESCRIPTION: output sample rate in Hz"</t> |
694 |
<t> "TYPE: INT"</t> |
<t> "TYPE: INT"</t> |
695 |
<t> "MANDATORY: false"</t> |
<t> "MANDATORY: false"</t> |
750 |
<t>Examples:</t> |
<t>Examples:</t> |
751 |
<t> |
<t> |
752 |
<list> |
<list> |
753 |
<t>C: "CREATE AUDIO_OUTPUT_DEVICE Alsa"</t> |
<t>C: "CREATE AUDIO_OUTPUT_DEVICE ALSA"</t> |
754 |
<t>S: "OK[0]"</t> |
<t>S: "OK[0]"</t> |
755 |
</list> |
</list> |
756 |
</t> |
</t> |
757 |
<t> |
<t> |
758 |
<list> |
<list> |
759 |
<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> |
760 |
<t>S: "OK[1]"</t> |
<t>S: "OK[1]"</t> |
761 |
</list> |
</list> |
762 |
</t> |
</t> |
872 |
information categories are defined (independently of device):</t> |
information categories are defined (independently of device):</t> |
873 |
<t> |
<t> |
874 |
<list> |
<list> |
875 |
<t>driver - |
<t>DRIVER - |
876 |
<list> |
<list> |
877 |
<t>identifier of the used audio output driver, as also |
<t>identifier of the used audio output driver, as also |
878 |
returned by the "GET AVAILABLE_AUDIO_OUTPUT_DRIVERS" |
returned by the "GET AVAILABLE_AUDIO_OUTPUT_DRIVERS" |
879 |
command</t> |
command</t> |
880 |
</list> |
</list> |
881 |
</t> |
</t> |
882 |
<t>channels - |
<t>CHANNELS - |
883 |
<list> |
<list> |
884 |
<t>amount of audio output channels this device currently |
<t>amount of audio output channels this device currently |
885 |
offers</t> |
offers</t> |
886 |
</list> |
</list> |
887 |
</t> |
</t> |
888 |
<t>samplerate - |
<t>SAMPLERATE - |
889 |
<list> |
<list> |
890 |
<t>playback sample rate the device uses</t> |
<t>playback sample rate the device uses</t> |
891 |
</list> |
</list> |
892 |
</t> |
</t> |
893 |
<t>active - |
<t>ACTIVE - |
894 |
<list> |
<list> |
895 |
<t>either true or false, if false then the audio device is |
<t>either true or false, if false then the audio device is |
896 |
inactive and doesn't output any sound, nor do the |
inactive and doesn't output any sound, nor do the |
910 |
<t> |
<t> |
911 |
<list> |
<list> |
912 |
<t>C: "GET AUDIO_OUTPUT_DEVICE INFO 0"</t> |
<t>C: "GET AUDIO_OUTPUT_DEVICE INFO 0"</t> |
913 |
<t>S: "driver: Alsa"</t> |
<t>S: "DRIVER: ALSA"</t> |
914 |
<t> "channels: 2"</t> |
<t> "CHANNELS: 2"</t> |
915 |
<t> "samplerate: 44100"</t> |
<t> "SAMPLERATE: 44100"</t> |
916 |
<t> "active: true"</t> |
<t> "ACTIVE: true"</t> |
917 |
<t> "fragments: 2"</t> |
<t> "FRAGMENTS: 2"</t> |
918 |
<t> "fragmentsize: 128"</t> |
<t> "FRAGMENTSIZE: 128"</t> |
919 |
<t> "card: '0,0'"</t> |
<t> "CARD: '0,0'"</t> |
920 |
<t> "."</t> |
<t> "."</t> |
921 |
</list> |
</list> |
922 |
</t> |
</t> |
959 |
<t>Example:</t> |
<t>Example:</t> |
960 |
<t> |
<t> |
961 |
<list> |
<list> |
962 |
<t>C: "SET AUDIO_OUTPUT_DEVICE_PARAMETER 0 fragmentsize=128"</t> |
<t>C: "SET AUDIO_OUTPUT_DEVICE_PARAMETER 0 FRAGMENTSIZE=128"</t> |
963 |
<t>S: "OK"</t> |
<t>S: "OK"</t> |
964 |
</list> |
</list> |
965 |
</t> |
</t> |
1056 |
<t>C: "GET AUDIO_OUTPUT_CHANNEL INFO 1 0"</t> |
<t>C: "GET AUDIO_OUTPUT_CHANNEL INFO 1 0"</t> |
1057 |
<t>S: "NAME: 'ardour (left)'"</t> |
<t>S: "NAME: 'ardour (left)'"</t> |
1058 |
<t> "IS_MIX_CHANNEL: false"</t> |
<t> "IS_MIX_CHANNEL: false"</t> |
1059 |
<t> "jack_bindings: 'ardour:0'"</t> |
<t> "JACK_BINDINGS: 'ardour:0'"</t> |
1060 |
<t> "."</t> |
<t> "."</t> |
1061 |
</list> |
</list> |
1062 |
</t> |
</t> |
1154 |
<t>Example:</t> |
<t>Example:</t> |
1155 |
<t> |
<t> |
1156 |
<list> |
<list> |
1157 |
<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> |
1158 |
<t>S: "DESCRIPTION: bindings to other Jack clients"</t> |
<t>S: "DESCRIPTION: bindings to other JACK clients"</t> |
1159 |
<t> "TYPE: STRING"</t> |
<t> "TYPE: STRING"</t> |
1160 |
<t> "FIX: false"</t> |
<t> "FIX: false"</t> |
1161 |
<t> "MULTIPLICITY: true"</t> |
<t> "MULTIPLICITY: true"</t> |
1201 |
<t>Example:</t> |
<t>Example:</t> |
1202 |
<t> |
<t> |
1203 |
<list> |
<list> |
1204 |
<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> |
1205 |
<t>S: "OK"</t> |
<t>S: "OK"</t> |
1206 |
</list> |
</list> |
1207 |
</t> |
</t> |
1217 |
<section title="Configuring MIDI input drivers"> |
<section title="Configuring MIDI input drivers"> |
1218 |
<t>Instances of drivers in LinuxSampler are called devices. You can use |
<t>Instances of drivers in LinuxSampler are called devices. You can use |
1219 |
multiple MIDI devices simultaneously, e.g. to use MIDI over ethernet as |
multiple MIDI devices simultaneously, e.g. to use MIDI over ethernet as |
1220 |
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 |
1221 |
channel. For particular MIDI input systems it's also possible to create |
channel. For particular MIDI input systems it's also possible to create |
1222 |
several devices of the same MIDI input type. This chapter describes all |
several devices of the same MIDI input type. This chapter describes all |
1223 |
commands to configure LinuxSampler's MIDI input devices and their parameters.</t> |
commands to configure LinuxSampler's MIDI input devices and their parameters.</t> |
1260 |
<t> |
<t> |
1261 |
<list> |
<list> |
1262 |
<t>C: "GET AVAILABLE_MIDI_INPUT_DRIVERS"</t> |
<t>C: "GET AVAILABLE_MIDI_INPUT_DRIVERS"</t> |
1263 |
<t>S: "Alsa,Jack"</t> |
<t>S: "ALSA,JACK"</t> |
1264 |
</list> |
</list> |
1265 |
</t> |
</t> |
1266 |
</section> |
</section> |
1310 |
|
|
1311 |
<t> |
<t> |
1312 |
<list> |
<list> |
1313 |
<t>C: "GET MIDI_INPUT_DRIVER INFO Alsa"</t> |
<t>C: "GET MIDI_INPUT_DRIVER INFO ALSA"</t> |
1314 |
<t>S: "DESCRIPTION: Advanced Linux Sound Architecture"</t> |
<t>S: "DESCRIPTION: Advanced Linux Sound Architecture"</t> |
1315 |
<t> "VERSION: 1.0"</t> |
<t> "VERSION: 1.0"</t> |
1316 |
<t> "PARAMETERS: driver,active"</t> |
<t> "PARAMETERS: DRIVER,ACTIVE"</t> |
1317 |
<t> "."</t> |
<t> "."</t> |
1318 |
</list> |
</list> |
1319 |
</t> |
</t> |
1400 |
on, means the values for fields 'DEFAULT', 'RANGE_MIN', |
on, means the values for fields 'DEFAULT', 'RANGE_MIN', |
1401 |
'RANGE_MAX' and 'POSSIBILITIES' might depend on these |
'RANGE_MAX' and 'POSSIBILITIES' might depend on these |
1402 |
listed parameters, for example assuming that an audio |
listed parameters, for example assuming that an audio |
1403 |
driver (like the Alsa driver) offers parameters 'card' |
driver (like the ALSA driver) offers parameters 'card' |
1404 |
and 'samplerate' then parameter 'samplerate' would |
and 'samplerate' then parameter 'samplerate' would |
1405 |
depend on 'card' because the possible values for |
depend on 'card' because the possible values for |
1406 |
'samplerate' depends on the sound card which can be |
'samplerate' depends on the sound card which can be |
1457 |
<t>Example:</t> |
<t>Example:</t> |
1458 |
<t> |
<t> |
1459 |
<list> |
<list> |
1460 |
<t>C: "GET MIDI_INPUT_DRIVER_PARAMETER INFO Alsa active"</t> |
<t>C: "GET MIDI_INPUT_DRIVER_PARAMETER INFO ALSA ACTIVE"</t> |
1461 |
<t>S: "DESCRIPTION: Whether device is enabled"</t> |
<t>S: "DESCRIPTION: Whether device is enabled"</t> |
1462 |
<t> "TYPE: BOOL"</t> |
<t> "TYPE: BOOL"</t> |
1463 |
<t> "MANDATORY: false"</t> |
<t> "MANDATORY: false"</t> |
1511 |
<t>Example:</t> |
<t>Example:</t> |
1512 |
<t> |
<t> |
1513 |
<list> |
<list> |
1514 |
<t>C: "CREATE MIDI_INPUT_DEVICE Alsa"</t> |
<t>C: "CREATE MIDI_INPUT_DEVICE ALSA"</t> |
1515 |
<t>S: "OK[0]"</t> |
<t>S: "OK[0]"</t> |
1516 |
</list> |
</list> |
1517 |
</t> |
</t> |
1663 |
<t> |
<t> |
1664 |
<list> |
<list> |
1665 |
<t>C: "GET MIDI_INPUT_DEVICE INFO 0"</t> |
<t>C: "GET MIDI_INPUT_DEVICE INFO 0"</t> |
1666 |
<t>S: "driver: Alsa"</t> |
<t>S: "DRIVER: ALSA"</t> |
1667 |
<t> "active: true"</t> |
<t> "ACTIVE: true"</t> |
1668 |
<t> "."</t> |
<t> "."</t> |
1669 |
</list> |
</list> |
1670 |
</t> |
</t> |
1748 |
<t> |
<t> |
1749 |
<list> |
<list> |
1750 |
<t>C: "GET MIDI_INPUT_PORT INFO 0 0"</t> |
<t>C: "GET MIDI_INPUT_PORT INFO 0 0"</t> |
1751 |
<t>S: "name: 'Masterkeyboard'"</t> |
<t>S: "NAME: 'Masterkeyboard'"</t> |
1752 |
<t> "alsa_seq_bindings: '64:0'"</t> |
<t> "ALSA_SEQ_BINDINGS: '64:0'"</t> |
1753 |
<t> "."</t> |
<t> "."</t> |
1754 |
</list> |
</list> |
1755 |
</t> |
</t> |
1846 |
<t>Example:</t> |
<t>Example:</t> |
1847 |
<t> |
<t> |
1848 |
<list> |
<list> |
1849 |
<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> |
1850 |
<t>S: "DESCRIPTION: bindings to other Alsa sequencer clients"</t> |
<t>S: "DESCRIPTION: bindings to other ALSA sequencer clients"</t> |
1851 |
<t>"TYPE: STRING"</t> |
<t> "TYPE: STRING"</t> |
1852 |
<t> "FIX: false"</t> |
<t> "FIX: false"</t> |
1853 |
<t> "MULTIPLICITY: true"</t> |
<t> "MULTIPLICITY: true"</t> |
1854 |
<t> "POSSIBILITES: '64:0','68:0','68:1'"</t> |
<t> "POSSIBILITES: '64:0','68:0','68:1'"</t> |
2286 |
<t>the instrument index number of the loaded instrument</t> |
<t>the instrument index number of the loaded instrument</t> |
2287 |
</list> |
</list> |
2288 |
</t> |
</t> |
2289 |
|
<t>INSTRUMENT_NAME - |
2290 |
|
<list> |
2291 |
|
<t>the instrument name of the loaded instrument</t> |
2292 |
|
</list> |
2293 |
|
</t> |
2294 |
<t>INSTRUMENT_STATUS - |
<t>INSTRUMENT_STATUS - |
2295 |
<list> |
<list> |
2296 |
<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 |
2341 |
<t> "AUDIO_OUTPUT_ROUTING: 0,1"</t> |
<t> "AUDIO_OUTPUT_ROUTING: 0,1"</t> |
2342 |
<t> "INSTRUMENT_FILE: /home/joe/FazioliPiano.gig"</t> |
<t> "INSTRUMENT_FILE: /home/joe/FazioliPiano.gig"</t> |
2343 |
<t> "INSTRUMENT_NR: 0"</t> |
<t> "INSTRUMENT_NR: 0"</t> |
2344 |
|
<t> "INSTRUMENT_NAME: Fazioli Piano"</t> |
2345 |
<t> "INSTRUMENT_STATUS: 100"</t> |
<t> "INSTRUMENT_STATUS: 100"</t> |
2346 |
<t> "MIDI_INPUT_DEVICE: 0"</t> |
<t> "MIDI_INPUT_DEVICE: 0"</t> |
2347 |
<t> "MIDI_INPUT_PORT: 0"</t> |
<t> "MIDI_INPUT_PORT: 0"</t> |
2506 |
<t>SET CHANNEL AUDIO_OUTPUT_TYPE <sampler-channel> <audio-output-type></t> |
<t>SET CHANNEL AUDIO_OUTPUT_TYPE <sampler-channel> <audio-output-type></t> |
2507 |
</list> |
</list> |
2508 |
</t> |
</t> |
2509 |
<t>Where <audio-output-type> is currently either "Alsa" or "Jack" and |
<t>Where <audio-output-type> is currently either "ALSA" or "JACK" and |
2510 |
<sampler-channel> is the respective sampler channel number.</t> |
<sampler-channel> is the respective sampler channel number.</t> |
2511 |
|
|
2512 |
<t>Possible Answers:</t> |
<t>Possible Answers:</t> |
2632 |
<t>SET CHANNEL MIDI_INPUT_TYPE <sampler-channel> <midi-input-type></t> |
<t>SET CHANNEL MIDI_INPUT_TYPE <sampler-channel> <midi-input-type></t> |
2633 |
</list> |
</list> |
2634 |
</t> |
</t> |
2635 |
<t>Where <midi-input-type> is currently only "Alsa" and |
<t>Where <midi-input-type> is currently only "ALSA" and |
2636 |
<sampler-channel> is the respective sampler channel number.</t> |
<sampler-channel> is the respective sampler channel number.</t> |
2637 |
|
|
2638 |
<t>Possible Answers:</t> |
<t>Possible Answers:</t> |
2882 |
</t> |
</t> |
2883 |
</section> |
</section> |
2884 |
|
|
2885 |
<section title="Unregister front-end for not receiving UDP event messages anymore"> |
<section title="Unregister front-end for not receiving event messages"> |
2886 |
<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 |
2887 |
messages anymore by sending the following command:</t> |
messages anymore by sending the following command:</t> |
2888 |
<t> |
<t> |