16 |
to an annoying "missing Normative/Informative References" error message --> |
to an annoying "missing Normative/Informative References" error message --> |
17 |
<?rfc strict="no" ?> |
<?rfc strict="no" ?> |
18 |
|
|
19 |
<rfc category="std" ipr="full3978" docName="LSCP 1.2cvs"> |
<rfc category="std" ipr="full3978" docName="LSCP 1.2"> |
20 |
<front> |
<front> |
21 |
<title>LinuxSampler Control Protocol (draft)</title> |
<title>LinuxSampler Control Protocol</title> |
22 |
<author initials='C.S.' surname="Schoenebeck" fullname='C. |
<author initials='C.S.' surname="Schoenebeck" fullname='C. |
23 |
Schoenebeck'> |
Schoenebeck'> |
24 |
<organization> |
<organization> |
2443 |
<list> |
<list> |
2444 |
<t>DESCRIPTION - |
<t>DESCRIPTION - |
2445 |
<list> |
<list> |
2446 |
<t>arbitrary description text about the engine</t> |
<t>arbitrary description text about the engine |
2447 |
|
(note that the character string may contain |
2448 |
|
<xref target="character_set">escape sequences</xref>)</t> |
2449 |
</list> |
</list> |
2450 |
</t> |
</t> |
2451 |
<t>VERSION - |
<t>VERSION - |
2529 |
<list> |
<list> |
2530 |
<t>the file name of the loaded instrument, "NONE" if |
<t>the file name of the loaded instrument, "NONE" if |
2531 |
there's no instrument yet loaded for this sampler |
there's no instrument yet loaded for this sampler |
2532 |
channel</t> |
channel (note: since LSCP 1.2 this path may contain |
2533 |
|
<xref target="character_set">escape sequences</xref>)</t> |
2534 |
</list> |
</list> |
2535 |
</t> |
</t> |
2536 |
<t>INSTRUMENT_NR - |
<t>INSTRUMENT_NR - |
2540 |
</t> |
</t> |
2541 |
<t>INSTRUMENT_NAME - |
<t>INSTRUMENT_NAME - |
2542 |
<list> |
<list> |
2543 |
<t>the instrument name of the loaded instrument</t> |
<t>the instrument name of the loaded instrument |
2544 |
|
(note: since LSCP 1.2 this character string may contain |
2545 |
|
<xref target="character_set">escape sequences</xref>)</t> |
2546 |
</list> |
</list> |
2547 |
</t> |
</t> |
2548 |
<t>INSTRUMENT_STATUS - |
<t>INSTRUMENT_STATUS - |
3452 |
<list> |
<list> |
3453 |
<t>NAME - |
<t>NAME - |
3454 |
<list> |
<list> |
3455 |
<t>name of the effect send entity</t> |
<t>name of the effect send entity |
3456 |
|
(note that this character string may contain |
3457 |
|
<xref target="character_set">escape sequences</xref>)</t> |
3458 |
</list> |
</list> |
3459 |
</t> |
</t> |
3460 |
<t>MIDI_CONTROLLER - |
<t>MIDI_CONTROLLER - |
3924 |
</t> |
</t> |
3925 |
</section> |
</section> |
3926 |
|
|
3927 |
|
<section title="Current number of active disk streams" anchor="GET TOTAL_STREAM_COUNT"> |
3928 |
|
<t>The front-end can ask for the current number of active disk streams on |
3929 |
|
the sampler by sending the following command:</t> |
3930 |
|
<t> |
3931 |
|
<list> |
3932 |
|
<t>GET TOTAL_STREAM_COUNT</t> |
3933 |
|
</list> |
3934 |
|
</t> |
3935 |
|
|
3936 |
|
<t>Possible Answers:</t> |
3937 |
|
<t> |
3938 |
|
<list> |
3939 |
|
<t>LinuxSampler will answer by returning the number of all active |
3940 |
|
disk streams on the sampler.</t> |
3941 |
|
</list> |
3942 |
|
</t> |
3943 |
|
</section> |
3944 |
|
|
3945 |
<section title="Reset sampler" anchor="RESET"> |
<section title="Reset sampler" anchor="RESET"> |
3946 |
<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> |
3947 |
<t> |
<t> |
4291 |
<t>NAME - |
<t>NAME - |
4292 |
<list> |
<list> |
4293 |
<t>custom name of the given map, |
<t>custom name of the given map, |
4294 |
which does not have to be unique</t> |
which does not have to be unique |
4295 |
|
(note that this character string may contain |
4296 |
|
<xref target="character_set">escape sequences</xref>)</t> |
4297 |
</list> |
</list> |
4298 |
</t> |
</t> |
4299 |
<t>DEFAULT - |
<t>DEFAULT - |
4690 |
name for this mapped instrument. It can be set and |
name for this mapped instrument. It can be set and |
4691 |
changed with the |
changed with the |
4692 |
<xref target="MAP MIDI_INSTRUMENT">"MAP MIDI_INSTRUMENT"</xref> |
<xref target="MAP MIDI_INSTRUMENT">"MAP MIDI_INSTRUMENT"</xref> |
4693 |
command and does not have to be unique.</t> |
command and does not have to be unique. |
4694 |
|
(note that this character string may contain |
4695 |
|
<xref target="character_set">escape sequences</xref>)</t> |
4696 |
</list> |
</list> |
4697 |
</t> |
</t> |
4698 |
<t>"ENGINE_NAME" - |
<t>"ENGINE_NAME" - |
4703 |
</t> |
</t> |
4704 |
<t>"INSTRUMENT_FILE" - |
<t>"INSTRUMENT_FILE" - |
4705 |
<list> |
<list> |
4706 |
<t>File name of the instrument.</t> |
<t>File name of the instrument |
4707 |
|
(note that this path may contain |
4708 |
|
<xref target="character_set">escape sequences</xref>).</t> |
4709 |
</list> |
</list> |
4710 |
</t> |
</t> |
4711 |
<t>"INSTRUMENT_NR" - |
<t>"INSTRUMENT_NR" - |
4717 |
<list> |
<list> |
4718 |
<t>Name of the loaded instrument as reflected by its file. |
<t>Name of the loaded instrument as reflected by its file. |
4719 |
In contrast to the "NAME" field, the "INSTRUMENT_NAME" field |
In contrast to the "NAME" field, the "INSTRUMENT_NAME" field |
4720 |
cannot be changed.</t> |
cannot be changed (note that this character string may contain |
4721 |
|
<xref target="character_set">escape sequences</xref>).</t> |
4722 |
</list> |
</list> |
4723 |
</t> |
</t> |
4724 |
<t>"LOAD_MODE" - |
<t>"LOAD_MODE" - |
6015 |
editor application by sending the following command:</t> |
editor application by sending the following command:</t> |
6016 |
<t> |
<t> |
6017 |
<list> |
<list> |
6018 |
<t>EDIT INSTRUMENT <sampler-channel></t> |
<t>EDIT CHANNEL INSTRUMENT <sampler-channel></t> |
6019 |
</list> |
</list> |
6020 |
</t> |
</t> |
6021 |
<t>Where <sampler-channel> should be replaced by the |
<t>Where <sampler-channel> should be replaced by the |
6067 |
<t>Examples:</t> |
<t>Examples:</t> |
6068 |
<t> |
<t> |
6069 |
<list> |
<list> |
6070 |
<t>C: "EDIT INSTRUMENT 0"</t> |
<t>C: "EDIT CHANNEL INSTRUMENT 0"</t> |
6071 |
<t>S: "OK"</t> |
<t>S: "OK"</t> |
6072 |
</list> |
</list> |
6073 |
</t> |
</t> |
6236 |
</t> |
</t> |
6237 |
<t>/ MISCELLANEOUS |
<t>/ MISCELLANEOUS |
6238 |
</t> |
</t> |
6239 |
|
<t>/ TOTAL_STREAM_COUNT |
6240 |
|
</t> |
6241 |
<t>/ TOTAL_VOICE_COUNT |
<t>/ TOTAL_VOICE_COUNT |
6242 |
</t> |
</t> |
6243 |
<t>/ GLOBAL_INFO |
<t>/ GLOBAL_INFO |
6288 |
</t> |
</t> |
6289 |
<t>/ MISCELLANEOUS |
<t>/ MISCELLANEOUS |
6290 |
</t> |
</t> |
6291 |
|
<t>/ TOTAL_STREAM_COUNT |
6292 |
|
</t> |
6293 |
<t>/ TOTAL_VOICE_COUNT |
<t>/ TOTAL_VOICE_COUNT |
6294 |
</t> |
</t> |
6295 |
<t>/ GLOBAL_INFO |
<t>/ GLOBAL_INFO |
6380 |
</t> |
</t> |
6381 |
<t>/ SERVER SP INFO |
<t>/ SERVER SP INFO |
6382 |
</t> |
</t> |
6383 |
|
<t>/ TOTAL_STREAM_COUNT |
6384 |
|
</t> |
6385 |
<t>/ TOTAL_VOICE_COUNT |
<t>/ TOTAL_VOICE_COUNT |
6386 |
</t> |
</t> |
6387 |
<t>/ TOTAL_VOICE_COUNT_MAX |
<t>/ TOTAL_VOICE_COUNT_MAX |
6416 |
</t> |
</t> |
6417 |
<t>/ VOLUME |
<t>/ VOLUME |
6418 |
</t> |
</t> |
6419 |
|
<t>/ FILE SP INSTRUMENTS SP filename |
6420 |
|
</t> |
6421 |
|
<t>/ FILE SP INSTRUMENT SP INFO SP filename SP instrument_index |
6422 |
|
</t> |
6423 |
</list> |
</list> |
6424 |
</t> |
</t> |
6425 |
<t>set_instruction = |
<t>set_instruction = |
6570 |
</t> |
</t> |
6571 |
<t>edit_instruction = |
<t>edit_instruction = |
6572 |
<list> |
<list> |
6573 |
<t>INSTRUMENT SP sampler_channel |
<t>CHANNEL SP INSTRUMENT SP sampler_channel |
6574 |
</t> |
</t> |
6575 |
</list> |
</list> |
6576 |
</t> |
</t> |
6634 |
</t> |
</t> |
6635 |
<t>/ DB_INSTRUMENTS SP db_path |
<t>/ DB_INSTRUMENTS SP db_path |
6636 |
</t> |
</t> |
6637 |
|
<t>/ FILE SP INSTRUMENTS SP filename |
6638 |
|
</t> |
6639 |
</list> |
</list> |
6640 |
</t> |
</t> |
6641 |
<t>load_instr_args = |
<t>load_instr_args = |
6759 |
<t>filename = |
<t>filename = |
6760 |
<list> |
<list> |
6761 |
<t>path |
<t>path |
6762 |
|
#if WIN32 |
6763 |
|
$$ = $1.toWindows(); |
6764 |
|
#else |
6765 |
|
|
6766 |
|
$$ = $1.toPosix(); |
6767 |
|
#endif |
6768 |
|
|
6769 |
</t> |
</t> |
6770 |
</list> |
</list> |
6771 |
</t> |
</t> |
6875 |
in the old versions a single backslash was sufficient.</t> |
in the old versions a single backslash was sufficient.</t> |
6876 |
|
|
6877 |
<t>The following LSCP commands support escape sequences as part |
<t>The following LSCP commands support escape sequences as part |
6878 |
of their filename / path based arguments: |
of their filename / path based arguments and / or may contain |
6879 |
|
a filename / path with escape sequences in their response: |
6880 |
<list> |
<list> |
6881 |
<t><xref target="LOAD INSTRUMENT">"LOAD INSTRUMENT"</xref></t> |
<t><xref target="LOAD INSTRUMENT">"LOAD INSTRUMENT"</xref></t> |
6882 |
|
<t><xref target="GET CHANNEL INFO">"GET CHANNEL INFO"</xref></t> |
6883 |
<t><xref target="MAP MIDI_INSTRUMENT">"MAP MIDI_INSTRUMENT"</xref></t> |
<t><xref target="MAP MIDI_INSTRUMENT">"MAP MIDI_INSTRUMENT"</xref></t> |
6884 |
|
<t><xref target="GET MIDI_INSTRUMENT INFO">"GET MIDI_INSTRUMENT INFO"</xref></t> |
6885 |
<t><xref target="ADD DB_INSTRUMENT_DIRECTORY">"ADD DB_INSTRUMENT_DIRECTORY"</xref></t> |
<t><xref target="ADD DB_INSTRUMENT_DIRECTORY">"ADD DB_INSTRUMENT_DIRECTORY"</xref></t> |
6886 |
<t><xref target="ADD DB_INSTRUMENTS">"ADD DB_INSTRUMENTS"</xref></t> |
<t><xref target="ADD DB_INSTRUMENTS">"ADD DB_INSTRUMENTS"</xref></t> |
6887 |
<t><xref target="REMOVE DB_INSTRUMENT_DIRECTORY">"REMOVE DB_INSTRUMENT_DIRECTORY"</xref></t> |
<t><xref target="REMOVE DB_INSTRUMENT_DIRECTORY">"REMOVE DB_INSTRUMENT_DIRECTORY"</xref></t> |
6914 |
<t> |
<t> |
6915 |
The following LSCP commands even support escape sequences as |
The following LSCP commands even support escape sequences as |
6916 |
part of at least one of their text-based arguments (i.e. entity name, |
part of at least one of their text-based arguments (i.e. entity name, |
6917 |
description): |
description) and / or may contain escape sequences in at least one of |
6918 |
|
their text-based fields in their response: |
6919 |
<list> |
<list> |
6920 |
|
<t><xref target="GET SERVER INFO">"GET SERVER INFO"</xref></t> |
6921 |
|
<t><xref target="GET ENGINE INFO">"GET ENGINE INFO"</xref></t> |
6922 |
|
<t><xref target="GET CHANNEL INFO">"GET CHANNEL INFO"</xref></t> |
6923 |
<t><xref target="CREATE FX_SEND">"CREATE FX_SEND"</xref></t> |
<t><xref target="CREATE FX_SEND">"CREATE FX_SEND"</xref></t> |
6924 |
|
<t><xref target="GET FX_SEND INFO">"GET FX_SEND INFO"</xref></t> |
6925 |
<t><xref target="SET FX_SEND NAME">"SET FX_SEND NAME"</xref></t> |
<t><xref target="SET FX_SEND NAME">"SET FX_SEND NAME"</xref></t> |
6926 |
|
<t><xref target="GET MIDI_INSTRUMENT INFO">"GET MIDI_INSTRUMENT INFO"</xref></t> |
6927 |
|
<t><xref target="GET MIDI_INSTRUMENT_MAP INFO">"GET MIDI_INSTRUMENT_MAP INFO"</xref></t> |
6928 |
<t><xref target="ADD MIDI_INSTRUMENT_MAP">"ADD MIDI_INSTRUMENT_MAP"</xref></t> |
<t><xref target="ADD MIDI_INSTRUMENT_MAP">"ADD MIDI_INSTRUMENT_MAP"</xref></t> |
6929 |
<t><xref target="MAP MIDI_INSTRUMENT">"MAP MIDI_INSTRUMENT"</xref></t> |
<t><xref target="MAP MIDI_INSTRUMENT">"MAP MIDI_INSTRUMENT"</xref></t> |
6930 |
<t><xref target="SET MIDI_INSTRUMENT_MAP NAME">"SET MIDI_INSTRUMENT_MAP NAME"</xref></t> |
<t><xref target="SET MIDI_INSTRUMENT_MAP NAME">"SET MIDI_INSTRUMENT_MAP NAME"</xref></t> |
6931 |
|
<t><xref target="GET DB_INSTRUMENT_DIRECTORY INFO">"GET DB_INSTRUMENT_DIRECTORY INFO"</xref></t> |
6932 |
<t><xref target="SET DB_INSTRUMENT_DIRECTORY NAME">"SET DB_INSTRUMENT_DIRECTORY NAME"</xref></t> |
<t><xref target="SET DB_INSTRUMENT_DIRECTORY NAME">"SET DB_INSTRUMENT_DIRECTORY NAME"</xref></t> |
6933 |
<t><xref target="SET DB_INSTRUMENT_DIRECTORY DESCRIPTION">"SET DB_INSTRUMENT_DIRECTORY DESCRIPTION"</xref></t> |
<t><xref target="SET DB_INSTRUMENT_DIRECTORY DESCRIPTION">"SET DB_INSTRUMENT_DIRECTORY DESCRIPTION"</xref></t> |
6934 |
<t><xref target="FIND DB_INSTRUMENT_DIRECTORIES">"FIND DB_INSTRUMENT_DIRECTORIES"</xref></t> |
<t><xref target="FIND DB_INSTRUMENT_DIRECTORIES">"FIND DB_INSTRUMENT_DIRECTORIES"</xref></t> |
6935 |
|
<t><xref target="GET DB_INSTRUMENT INFO">"GET DB_INSTRUMENT INFO"</xref></t> |
6936 |
<t><xref target="SET DB_INSTRUMENT NAME">"SET DB_INSTRUMENT NAME"</xref></t> |
<t><xref target="SET DB_INSTRUMENT NAME">"SET DB_INSTRUMENT NAME"</xref></t> |
6937 |
<t><xref target="SET DB_INSTRUMENT DESCRIPTION">"SET DB_INSTRUMENT DESCRIPTION"</xref></t> |
<t><xref target="SET DB_INSTRUMENT DESCRIPTION">"SET DB_INSTRUMENT DESCRIPTION"</xref></t> |
6938 |
<t><xref target="FIND DB_INSTRUMENTS">"FIND DB_INSTRUMENTS"</xref></t> |
<t><xref target="FIND DB_INSTRUMENTS">"FIND DB_INSTRUMENTS"</xref></t> |
7182 |
all currently active voices.</t> |
all currently active voices.</t> |
7183 |
</section> |
</section> |
7184 |
|
|
7185 |
|
<section title="Total number of active disk streams changed" anchor="SUBSCRIBE TOTAL_STREAM_COUNT"> |
7186 |
|
<t>Client may want to be notified when the total number of disk streams on the |
7187 |
|
back-end changes by issuing the following command:</t> |
7188 |
|
<t> |
7189 |
|
<list> |
7190 |
|
<t>SUBSCRIBE TOTAL_STREAM_COUNT</t> |
7191 |
|
</list> |
7192 |
|
</t> |
7193 |
|
<t>Server will start sending the following notification messages:</t> |
7194 |
|
<t> |
7195 |
|
<list> |
7196 |
|
<t>"NOTIFY:TOTAL_STREAM_COUNT:<streams>"</t> |
7197 |
|
</list> |
7198 |
|
</t> |
7199 |
|
<t>where <streams> will be replaced by the new number of |
7200 |
|
all currently active disk streams.</t> |
7201 |
|
</section> |
7202 |
|
|
7203 |
<section title="Number of MIDI instrument maps changed" anchor="SUBSCRIBE MIDI_INSTRUMENT_MAP_COUNT"> |
<section title="Number of MIDI instrument maps changed" anchor="SUBSCRIBE MIDI_INSTRUMENT_MAP_COUNT"> |
7204 |
<t>Client may want to be notified when the number of MIDI instrument maps on the |
<t>Client may want to be notified when the number of MIDI instrument maps on the |
7205 |
back-end changes by issuing the following command:</t> |
back-end changes by issuing the following command:</t> |