1:- module(genmidi, [gm/1, gm/4, perc/2]).
13gm( Instr) :- gm(Instr,_,_,_).
14gm( Instr, P0, 0, LSB) :- primo(Instr,P1,LSB), succ(P0,P1).
15gm( kit/Type/1, P0, 0, 120) :- seco(Type,P1), succ(P0,P1).
16gm( kit/Type/2, P0, 1, 0) :- seco(Type,P1), succ(P0,P1).
17
18primo( piano/1, 1, 0). 19primo( piano/2, 1, 8).
20primo( piano/3, 1, 16).
21
22primo( piano/4, 2, 0). 23primo( piano/5, 2, 8).
24
25primo( piano/6, 3, 0). 26primo( piano/7, 3, 8).
27
28primo( piano/8, 4, 0). 29primo( piano/9, 4, 8).
30
31primo( epiano/1, 5, 0).
32primo( epiano/2, 5, 8).
33primo( epiano/3, 5, 16).
34primo( epiano/4, 5, 24).
35primo( epiano/5, 6, 0).
36primo( epiano/6, 6, 8).
37primo( epiano/7, 6, 16).
38
39primo( harpsichord/1, 7, 0).
40primo( harpsichord/2, 7, 8).
41primo( harpsichord/3, 7, 16).
42primo( harpsichord/4, 7, 24).
43primo( clavichord, 8, 0). 44primo( celesta, 9, 0).
45
46primo( glockenspiel, 10, 0).
47primo( music_box, 11, 0).
48primo( vibraphone/1, 12, 0).
49primo( vibraphone/2, 12, 8).
50primo( marimba/1, 13, 0).
51primo( marimba/2, 13, 8).
52primo( xylophone, 14, 0).
53
54primo( bell/tubular, 15, 0).
55primo( bell/church, 15, 8).
56primo( bell/carillon, 15, 9).
57primo( santur, 16, 0).
58
59primo( organ/1, 17, 0).
60primo( organ/2, 17, 8).
61primo( organ/3, 17, 16).
62primo( organ/4, 17, 32).
63primo( organ/5, 18, 0).
64primo( organ/6, 18, 8).
65primo( organ/7, 18, 32).
66primo( organ/8, 19, 0).
67primo( organ/church/1, 20, 0).
68primo( organ/church/2, 20, 8).
69primo( organ/church/3, 20, 16).
70primo( organ/reed, 21, 0).
71
72primo( accordion, 22, 0).
73primo( harmonica, 22, 0).
74primo( bandeon, 22, 0).
75
76primo( ukulele, 25, 8).
77primo( guitar/nylon1, 25, 0).
78primo( guitar/nylon2, 25, 16).
79primo( guitar/nylon3, 25, 32).
80primo( guitar/steel, 26, 0).
81primo( mandolin, 26, 16).
82primo( guitar/jazz, 27, 0).
83primo( guitar/clean, 28, 0).
84primo( guitar/muted, 29, 0).
85primo( guitar/funk, 29, 8).
86primo( guitar/overdrive, 30, 0).
87primo( guitar/distortion, 31, 0).
88primo( guitar/feedback, 31, 8).
89primo( guitar/harmonics, 32, 0).
90primo( guitar/feedback2, 32, 8).
91
92primo( bass/acoustic, 33, 0).
93primo( bass/fingered, 34, 0).
94primo( bass/picked, 35, 0).
95primo( bass/fretless, 36, 0).
96primo( bass/slap1, 37, 0).
97primo( bass/slap2, 38, 0).
98primo( bass/synth1, 39, 0).
99primo( bass/synth2, 39, 1).
100primo( bass/synth3, 39, 8).
101primo( bass/synth4, 40, 0).
102primo( bass/synth5, 40, 8).
103primo( bass/rubber, 40, 16).
104
105primo( violin, 41, 0).
106primo( viola, 42, 0).
107primo( cello, 43, 0).
108primo( contrabass, 44, 0).
109primo( strings/tremolo, 45, 0).
110primo( strings/pizzicato, 46, 0).
111
112primo( harp, 47, 0).
113primo( timpani, 47, 0).
114primo( strings/1, 49, 0).
115primo( strings/orch, 49, 8).
116primo( strings/slow, 50, 0).
117primo( strings/synth1, 51, 0).
118primo( strings/synth2, 51, 8).
119primo( strings/synth3, 52, 0).
120
121primo( choir/aahs/1, 53, 0).
122primo( choir/aahs/2, 53, 8).
123primo( choir/oohs, 54, 0).
124
125primo( trumpet, 57, 0).
126primo( trombone/1, 58, 0).
127primo( trombone/2, 58, 8).
128primo( tuba, 59, 0).
129primo( trumpet/muted, 60, 0).
130primo( french_horn/1, 61, 0).
131primo( french_horn/2, 61, 8).
132
133primo( sax/soprano, 65, 0).
134primo( sax/alto, 66, 0).
135primo( sax/tenor, 67, 0).
136primo( sax/baritone, 68, 0).
137primo( oboe, 69, 0).
138primo( english_horn, 70, 0).
139primo( bassoon, 71, 0).
140primo( clarinet, 72, 0).
141primo( piccolo, 73, 0).
142primo( flute, 74, 0).
143primo( recorder, 75, 0).
144primo( pan_pipe, 76, 0).
145primo( shakuhachi, 78, 0).
146primo( whistle, 79, 0).
147primo( ocarina, 80, 0).
148
149primo( square/1, 81, 0).
150primo( square/2, 81, 1).
151primo( sine, 81, 8).
152primo( saw/1, 82, 0).
153primo( saw/2, 82, 1).
154primo( lead/calliope, 83, 0).
155primo( lead/chiff, 84, 0).
156primo( lead/charang, 85, 0).
157primo( lead/voice, 86, 0).
158primo( lead/fifths, 87, 0).
159primo( lead/w_bass, 88, 0).
160
161primo( pad/new_age, 89, 0).
162primo( pad/warm, 90, 0).
163primo( pad/polysynth,91, 0).
164primo( pad/choir, 92, 0).
165primo( pad/bowed, 93, 0).
166primo( pad/metallic, 94, 0).
167primo( pad/halo, 95, 0).
168primo( pad/sweep, 96, 0).
169
170primo( fx/rain, 97, 0).
171primo( fx/soundtrack, 98, 0).
172primo( fx/crystal, 99, 0).
173primo( fx/atmosphere, 100, 0).
174primo( fx/brightness, 101, 0).
175primo( fx/goblins, 102, 0).
176primo( fx/echoes, 103, 0).
177primo( fx/sci_fi, 104, 0).
178
179primo( sitar/1, 105, 0).
180primo( sitar/2, 105, 1).
181primo( banjo, 106, 0).
182primo( shamisen, 107, 0).
183primo( koto, 108, 0).
184primo( kalimba, 109, 0).
185primo( bagpipe, 110, 0).
186primo( fiddle, 111, 0).
187primo( shanai, 112, 0).
188
189
190primo( tinkle_bell, 113, 0).
191primo( agogo, 114, 0).
192primo( steel_drums, 115, 0).
193primo( woodblock, 116, 0).
194primo( taiko, 117, 0).
195primo( melodic_tom, 118, 0).
196primo( synth_drum, 119, 0).
197primo( reverse_cymbal, 120, 0).
198
200seco( standard, 1).
201seco( standard2, 2).
202seco( room, 9).
203seco( power, 17).
204seco( elec, 25).
205seco( tr808, 26).
206seco( dance, 27).
207seco( jazz, 33).
208seco( brush, 41).
209seco( orch, 49).
210seco( sfx, 57).
216perc(35,'Acoustic Bass Drum').
217perc(36,'Bass Drum 1').
218perc(37,'Side Stick').
219perc(38,'Acoustic Snare').
220perc(39,'Hand Clap').
221perc(40,'Electric Snare').
222perc(41,'Low Floor Tom').
223perc(42,'Closed Hi-Hat').
224perc(43,'High Floor Tom').
225perc(44,'Pedal Hi-Hat').
226perc(45,'Low Tom').
227perc(46,'Open Hi-Hat').
228perc(47,'Low-Mid Tom').
229perc(48,'High-Mid Tom').
230perc(49,'Crash Cymbal 1').
231perc(50,'High Tom').
232perc(51,'Ride Cymbal 1').
233perc(52,'Chinese Cymbal').
234perc(53,'Ride Bell').
235perc(54,'Tambourine').
236perc(55,'Splash Cymbal').
237perc(56,'Cowbell').
238perc(57,'Crash Cymbal 2').
239perc(58,'Vibraslap').
240perc(59,'Ride Cymbal 2').
241perc(60,'High Bongo').
242perc(61,'Low Bongo').
243perc(62,'Mute Hi Conga').
244perc(63,'Open Hi Conga').
245perc(64,'Low Conga').
246perc(65,'High Timbale').
247perc(66,'Low Timbale').
248perc(67,'High Agogo').
249perc(68,'Low Agogo').
250perc(69,'Cabasa').
251perc(70,'Maracas').
252perc(71,'Short Whistle').
253perc(72,'Long Whistle').
254perc(73,'Short Guiro').
255perc(74,'Long Guiro').
256perc(75,'Claves').
257perc(76,'Hi Woodblock').
258perc(77,'Low Woodblock').
259perc(78,'Mute Cuica').
260perc(79,'Open Cuica').
261perc(80,'Mute Triangle').
262perc(81,'Open Triangle')
General MIDI instrument assignments
Instruments are named by terms, some of which are of the form
Class/N
, whereN
is an integer andClass
is an atom representing a class of instruments, for examplepiano, epiano, guitar, sax
etc. These can be discovered using gm/1. */