This information (partly) is also supplied with the MusE source. You should find it in ../muse/README.instruments
example idf file================================================
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 properties: 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 omitted how it use / install the new idf fileAfter you have written all the stuff you want to use it? Tips on creating such a idf fileI've just done a idf file for the Roland XV 3080 and it contains millions of patches. Most easy way is to search the internet for a pdf like this one: http://www.roland.co.uk/support/updates/XV-3080.pdf which you open with xpdf then. You can use vertical selection to get all soundnames in a collum and paste them into a text-document with the middle click of your mouse. Next you can write yourself a little converter or be busy as a bee! |