--- linuxsampler/trunk/Documentation/lscp.xml 2007/01/14 17:31:48 1027
+++ linuxsampler/trunk/Documentation/lscp.xml 2007/02/19 19:38:04 1047
@@ -34,7 +34,7 @@
schoenebeck at software minus engineering dot org
-
+
LinuxSampler Developers
LSCP
@@ -4257,7 +4257,7 @@
command:
- MAP MIDI_INSTRUMENT <map>
+ MAP MIDI_INSTRUMENT [NON_MODAL] <map>
<midi_bank> <midi_prog> <engine_name>
<filename> <instrument_index> <volume_value>
[<instr_load_mode>] [<name>]
@@ -4310,7 +4310,7 @@
"PERSISTENT" -
The instrument will immediately be loaded
- into memory in the background when this mapping
+ into memory when this mapping
command is sent and the instrument is kept all
the time. Instruments with this mode are
only freed when the sampler is reset or all
@@ -4360,13 +4360,19 @@
"GET MIDI_INSTRUMENT INFO").
- The "MAP MIDI_INSTRUMENT" command
- will immediately return, thus it will not block when an
- instrument is to be loaded due to a "PERSISTENT" type
- entry as instruments are loaded in the background. As a
- consequence this command may not necessarily return an error
- i.e. when the given instrument file does not exist or may
- turn out to be corrupt.
+ By default, "MAP MIDI_INSTRUMENT" commands block until the mapping is
+ completely established in the sampler. The OPTIONAL "NON_MODAL" argument
+ however causes the respective "MAP MIDI_INSTRUMENT" command to return
+ immediately, that is to let the sampler establish the mapping in the
+ background. So this argument might be especially useful for mappings with
+ a "PERSISTENT" type, because these have to load the respective instruments
+ immediately and might thus block for a very long time. It is recommended
+ however to use the OPTIONAL "NON_MODAL" argument only if really necessary,
+ because it has the following drawbacks: as "NON_MODAL" instructions return
+ immediately, they may not necessarily return an error i.e. when the given
+ instrument file turns out to be corrupt, beside that subsequent commands
+ in a LSCP instruction sequence might fail, because mandatory mappings are
+ not yet completed.
Possible Answers:
@@ -4409,7 +4415,7 @@
- C: "MAP MIDI_INSTRUMENT 1 8 120 gig '/home/joe/foodrums.gig' 0 1.0 PERSISTENT 'Foo Drumkit'"
+ C: "MAP MIDI_INSTRUMENT NON_MODAL 1 8 120 gig '/home/joe/foodrums.gig' 0 1.0 PERSISTENT 'Foo Drumkit'"
S: "OK"
@@ -4847,13 +4853,13 @@
map_instruction =
- MIDI_INSTRUMENT SP midi_map SP midi_bank SP midi_prog SP engine_name SP filename SP instrument_index SP volume_value
+ MIDI_INSTRUMENT SP modal_arg midi_map SP midi_bank SP midi_prog SP engine_name SP filename SP instrument_index SP volume_value
- / MIDI_INSTRUMENT SP midi_map SP midi_bank SP midi_prog SP engine_name SP filename SP instrument_index SP volume_value SP instr_load_mode
+ / MIDI_INSTRUMENT SP modal_arg midi_map SP midi_bank SP midi_prog SP engine_name SP filename SP instrument_index SP volume_value SP instr_load_mode
- / MIDI_INSTRUMENT SP midi_map SP midi_bank SP midi_prog SP engine_name SP filename SP instrument_index SP volume_value SP entry_name
+ / MIDI_INSTRUMENT SP modal_arg midi_map SP midi_bank SP midi_prog SP engine_name SP filename SP instrument_index SP volume_value SP entry_name
- / MIDI_INSTRUMENT SP midi_map SP midi_bank SP midi_prog SP engine_name SP filename SP instrument_index SP volume_value SP instr_load_mode SP entry_name
+ / MIDI_INSTRUMENT SP modal_arg midi_map SP midi_bank SP midi_prog SP engine_name SP filename SP instrument_index SP volume_value SP instr_load_mode SP entry_name
@@ -5051,6 +5057,14 @@
+modal_arg =
+
+ /* epsilon (empty argument) */
+
+ / NON_MODAL SP
+
+
+
key_val_list =
string '=' param_val_list