blob: a2693b4e091778ca1c054bbbed4ba6bd54a5e9de (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
================================================
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
|