================================================ MusE loadable Midi Instrument Definitions (as of 10.09.2003) MusE 0.7.0 ================================================ - File Extension ".idf" - searched in Subdirectory "instruments" (/usr/share/muse/instruments on my system) All found instrument definitions are presented by MusE in Config->MidiPorts in Pulldown in column "Instrument". ------------------------------------------------- Example of Instrument Definition File: ------------------------------------------------- <?xml version="1.0"?> <muse version="1.0"> <MidiInstrument name="GM"> <Init> ...MusE event list which initializes instrument </Init> <PatchGroup name="Piano"> <Patch name="Grand Piano" prog="0"/> <Patch name="Bright Piano" prog="1"/> ... </PatchGroup> <PatchGroup name="Bass"> <Patch name="Acoustic Bass" prog="32"/> <Patch name="Fingered Bass" prog="33"/> </PatchGroup> ... <Controller name="Brightness"> <n>0x4a</n> <min>0</min> <max>127</max> <init>0</init> </Controller> ... </MidiInstrument> </muse> ------------------------------------------------- Notes ------------------------------------------------- (1) PatchGroups are not mandatory; its valid to write: <MidiInstrument name="GM"> <Patch name="Grand Piano" prog="0"/> <Patch name="Bright Piano" prog="1"/> <Patch name="Acoustic Bass" prog="32"/> <Patch name="Fingered Bass" prog="33"/> ... </MidiInstrument> (2) An "Instrument Definition File" can define more than on Instrument, but it is recommended to use one file for one instrument (3) the "prog" parameter in a "Patch" is mandatory. Missing "hbank" or "lbank" are treated as "don't care". Missing "drum" is treated as drum="0". A XG-Patch looks like: <Patch name="Electro" drum="1" hbank="127" lbank="0" prog="24"/> (5) A patch can be associated with a "mode" with one of 1 - GM 2 - GS 4 - XG Example: <Patch name="Electro" mode="4" drum="1" hbank="127" lbank="0" prog="24"/> Mode id's can be ore'd together for patches which are valid for more than one mode: <Patch name="Grand Piano" mode=7" hbank="0" lbank="0" prog="0"/> (4) example for MusE event (Sysex "XG-On"): <event tick="0" type="5" datalen="7"> 43 10 4c 00 00 7e 00 </event> (5) <Init> ... </Init> part can be omitted (6) Controller have the following porperties: name: arbitrary unique (short) string describing the controller n: controller number, defines also the controller type: values from 0x0 - 0x7f are 7Bit controller values from 0x1000 - 0x1ffff are 14 bit controller with MSB/LSB value pairs values from 0x20000 - 0x2ffff are RPN's values from 0x30000 - 0x3ffff are NRPN's min: minimum value for controller max: maximum value for controller init: reset value for controller; when controller value is undefined after instrument reset, use the ''undefined'' value 0x10000 the min/max/init values can be ommited