MT32MusicComponent.rMT32MusicComponent.r
/*
File: MT32MusicComponent.r
Copyright: © 1993-1996 by Apple Computer, Inc., all rights reserved.
Change History (most recent first):
<19> 5/31/96 JB Interface changes for ETO 21
<18> 11/20/95 dvb Use new InstrumentList api, and new instrument numbering scheme.
<17> 9/28/95 dvb new build system, resource numbering
<16+> res id's
<16> 8/30/95 dvb settings list tagged with numbers, for category breaks.
<15> 8/9/95 dvb removed some synth flags
<14> 6/27/95 dvb knobID field in knobdescription.
<13> 5/29/95 dvb controller flags
<12> 3-5-95 dvb global knobs knobgroup,
<11> 10-2-95 dvb minor knob groups
<10+> minor start
<10> 6-2-95 dvb more knobs
<9+> patch params as part of instrument, oscillator configs
<9> 30-1-95 dvb rearranged a little
<8> 20-1-95 dvb
<7> 5-1-95 dvb
<6> 22-12-94 dvb minor
<5> 9-12-94 dvb types.r is changed
<4> 7-12-94 dvb
<3> 24-10-94 dvb minor
<2+> comments for future use
<2> 30-9-94 dvb misc
<7> 5/12/94 dvb New Drumkit numbering, some generic support.
<6> 5/4/94 dvb Everything's different, and more sensible, too.
<5> 12/6/93 dvb More 'thng' fields
<3> 8/18/93 dvb New .h file ruined everything!
<2> 6/18/93 dvb GM Equivalents
*/
/*
*/
#include "GenericMusicComponent.r"
#define kBaseResID 300
#define kBaseKnobID 0x05040000
/* ---------------- ---------------- ---------------- ---------------- */
resource 'STR ' (kBaseResID,purgeable) {"MT32 Music Component"};
resource 'STR ' (kBaseResID+1,purgeable) {"Supports the Roland MT32"};
resource 'thng' (kBaseResID, "MT32") {
'musi',
'mt32',
'dvb ',
0,
0,
'musi',
kBaseResID,
'STR ',
kBaseResID,
'STR ',
kBaseResID+1,
0,0, /* no icon */
0,0,0, {}
};
resource 'Long' (kBaseResID+kGenericMusicResMiscLongList)
{
{
32, /* maximum polyphony */
8,0,0xFFFF, /* instrument: parts, user instruments, channel mask */
1,0,0xFFFF, /* drum: parts, user instruments, channel mask */
2,0, /* outputs. Latency in µSec. */
kSynthesizerUsesMIDIPort
+ kSynthesizerDynamicVoice
+ kSynthesizerDynamicChannel, /* flags */
0x0000, /* hw, bank where gm sounds live */
0x0000, /* hw, bank where gm drums live */
}
};
resource 'Long' (kBaseResID+kGenericMusicResBitsLongList)
{
{
0x82600001, 0x00000001, 0x00000000, 0x00000000, /* controllers */
0x00000000, 0x00000000, 0x00000000, 0x00000000, /* GM Instruments */
0x00000000, 0x00000000, 0x00000000, 0x00000000 /* GM Drums */
}
};
resource 'STR#' (kBaseResID+kGenericMusicResMiscStringList)
{
{
"MT32"
}
};
resource 'zLst' (kBaseResID+kGenericMusicResInstrumentList)
{
{
"Piano",0,0, //„„
"Acoustic Piano 1",0x8000,0,
"Acoustic Piano 2",0x8001,0,
"Acoustic Piano 3",0x8002,0,
"Electric Piano 1",0x8003,0,
"Electric Piano 2",0x8004,0,
"Electric Piano 3",0x8005,0,
"Electric Piano 4",0x8006,0,
"Honkytonk",0x8007,0,
"Organ",0,0, //„„
"Electric Organ 1",0x8008,0,
"Electric Organ 2",0x8009,0,
"Electric Organ 3",0x800a,0,
"Electric Organ 4",0x800b,0,
"Pipe Organ 1",0x800c,0,
"Pipe Organ 2",0x800d,0,
"Pipe Organ 3",0x800e,0,
"Accordian",0x800f,0,
"Keyboard",0,0, //„„
"Harpsichord 1",0x8010,0,
"Harpsichord 2",0x8011,0,
"Harpsichord 3",0x8012,0,
"Clavinet 1",0x8013,0,
"Clavinet 2",0x8014,0,
"Clavinet 3",0x8015,0,
"Celesta 1",0x8016,0,
"Celesta 2",0x8017,0,
"Synth Brass",0,0, //„„
"Synth Brass 1",0x8018,0,
"Synth Brass 2",0x8019,0,
"Synth Brass 3",0x801a,0,
"Synth Brass 4",0x801b,0,
"Synth Bass",0,0, //„„
"Synth Bass 1",0x801c,0,
"Synth Bass 2",0x801d,0,
"Synth Bass 3",0x801e,0,
"Synth Bass 4",0x801f,0,
"Synth Sounds",0,0, //„„
"Fantasy",0x8020,0,
"Harmo Pan",0x8021,0,
"Chorale",0x8022,0,
"Glasses",0x8023,0,
"Soundtrack",0x8024,0,
"Atmosphere",0x8025,0,
"Warm Bell",0x8026,0,
"Funny Vox",0x8027,0,
"Echo Bell",0x8028,0,
"Ice Rain",0x8029,0,
"Oboe 2001",0x802a,0,
"Echo Pan",0x802b,0,
"Doctor Solo",0x802c,0,
"Schooldaze",0x802d,0,
"Bellsinger",0x802e,0,
"Square Wave",0x802f,0,
"Strings",0,0, //„„
"String Section 1",0x8030,0,
"String Section 2",0x8031,0,
"String Section 3",0x8032,0,
"Pizzicato",0x8033,0,
"Violin 1",0x8034,0,
"Violin 2",0x8035,0,
"Cello 1",0x8036,0,
"Cello 2",0x8037,0,
"Contrabass",0x8038,0,
"Plucked",0,0, //„„
"Harp 1",0x8039,0,
"Harp 2",0x803a,0,
"Guitar 1",0x803b,0,
"Guitar 2",0x803c,0,
"Electric Guitar 1",0x803d,0,
"Electric Guitar 2",0x803e,0,
"Sitar",0x803f,0,
"Bass",0,0, //„„
"Acoustic Bass 1",0x8040,0,
"Acoustic Bass 2",0x8041,0,
"Electric Bass 1",0x8042,0,
"Electric Bass 2",0x8043,0,
"Slap Bass 1",0x8044,0,
"Slap Bass 2",0x8045,0,
"Fretless 1",0x8046,0,
"Fretless 2",0x8047,0,
"Winds",0,0, //„„
"Flute 1",0x8048,0,
"Flute 2",0x8049,0,
"Piccolo 1",0x804a,0,
"Piccolo 2",0x804b,0,
"Recorder",0x804c,0,
"Pan Pipes",0x804d,0,
"Saxophone 1",0x804e,0,
"Saxophone 2",0x804f,0,
"Saxophone 3",0x8050,0,
"Saxophone 4",0x8051,0,
"Clarinet 1",0x8052,0,
"Clarinet 2",0x8053,0,
"Oboe",0x8054,0,
"English Horn",0x8055,0,
"Bassoon",0x8056,0,
"Harmonica",0x8057,0,
"Brass",0,0, //„„
"Trumpet 1",0x8058,0,
"Trumpet 2",0x8059,0,
"Trombone 1",0x805a,0,
"Trombone 2",0x805b,0,
"French Horn 1",0x805c,0,
"French Horn 2",0x805d,0,
"Tuba",0x805e,0,
"Brass Section 1",0x805f,0,
"Brass Section 2",0x8060,0,
"Chromatic Percussion",0,0, //„„
"Vibe 1",0x8061,0,
"Vibe 2",0x8062,0,
"Synth Mallet",0x8063,0,
"Windbell",0x8064,0,
"Glockenspiel",0x8065,0,
"Tube Bell",0x8066,0,
"Xylophone",0x8067,0,
"Misc",0,0, //„„
"Marimba",0x8068,0,
"Koto",0x8069,0,
"Sho",0x806a,0,
"Shakahachi",0x806b,0,
"Whistle 1",0x806c,0,
"Whistle 2",0x806d,0,
"Bottleblow",0x806e,0,
"Breathpipe",0x806f,0,
"Percussion",0,0, //„„
"Timpani",0x8070,0,
"Melodic Tom",0x8071,0,
"Deep Snare",0x8072,0,
"Electric Percussion 1",0x8073,0,
"Electric Percussion 2",0x8074,0,
"Taiko",0x8075,0,
"Taiko Rim",0x8076,0,
"Cymbal",0x8077,0,
"Special Effects",0,0, //„„
"Castanets",0x8078,0,
"Triangle",0x8079,0,
"Orchestra Hit",0x807a,0,
"Telephone",0x807b,0,
"Bird Tweet",0x807c,0,
"One Note Jam",0x807d,0,
"Water Bells",0x807e,0,
"Jungle Tune",0x807f,0,
"Drum Kit",0,kInstListFlagDrumKit, //„„
"MT32",0xc000,kInstListFlagDrumKit
}
};
resource 'Long' (kBaseResID+kGenericMusicResGMTranslation,"GM Equivalents")
{
{
1,2,5,8, 4,6,18,21, /* pianos */
23,102,98,103, 105,104,103,102, /* chromo perc */
9,10,11,13, 13,16,16,16, /* organs */
60,61,62,63, 63,63,63,63, /* elec guitars */
65,65,65,71, 69,70,29,30, /* bass */
53,52,55,57, 49,52,58,113, /* strings & timpani */
50,51,53,54, 35,35,40,123, /* ensemble */
89,91,95,90, 93,96,25,26, /* brass */
79,80,81,82, 85,86,87,83, /* sax & such */
75,74,77,78, 111,108,109,111, /* flutes */
48,48,48,48, 48,48,48,48, /* synth lead */
33,33,33,33, 33,33,33,33, /* synth pad */
42,37,36,38, 33,40,44,43, /* synth fx */
64,64,108,106, 104,85,54,108, /* ethnic */
101,104,103,104, 118,114,116,120, /* perc */
0,0,0,125, 124,0,0,119 /* fx */
}
};
resource 'Knob' (kBaseResID+kGenericMusicResKnobDescriptionList,"Knobs")
{
{
"Effect",0,0,0,kKnobTypeGroupName,0,
0,0,0,0,
"Effect Type",0,3,1,0,kBaseKnobID+18,
0x40001,0,0,0,
"Effect Time",0,7,1,0,kBaseKnobID+19,
0x40002,0,0,0,
"Effect Level",0,7,1,0,kBaseKnobID+20,
0x40003,0,0,0,
}
};
#define kPitchFollows kBaseResID+1
#define kVEnables kBaseResID+2
#define kStructures kBaseResID+3
resource 'KSLs' (kPitchFollows)
{
{
"-1",0,
"-1/2",0,
"-1/4",0,
"0",0,
"1/8",0,
"1/4",0,
"3/8",0,
"1/2",0,
"5/8",0,
"3/4",0,
"7/8",0,
"1",0,
"5/4",0,
"3/2",0,
"2",0
}
};
resource 'KSLs' (kVEnables)
{
{
"1",0,"2",0,"3",0,"4",0
}
};
resource 'KSLs' (kStructures)
{
{
"S+S",0,
"S+SrS",0,
"P+S",0,
"P+PrS",0,
"S+SrP",0,
"P+P",0,
"P+PrP",0,
"S,S",0,
"P,P",0,
"SrS",0,
"PrS",0,
"SrP",0,
"PrP",0
}
};
resource 'Knob' (kBaseResID+kGenericMusicResInstrumentKnobDescriptionList,"Instrument Knobs")
{
{
"General",0,0,0,kKnobTypeGroupName,0,
0,0,0,0,
"Voice 1&2 Structure",0,0xC,0,kKnobTypeSetting,kBaseKnobID+38,
0x00A,0,0,kStructures,
"Voice 3&4 Structure",0,0xC,0,kKnobTypeSetting,kBaseKnobID+39,
0x00B,0,0,kStructures,
"Enable Voices",0,15,1,kKnobTypeBoolean,kBaseKnobID+40,
0x00C,0,0,kVEnables,
"Kill Sustain",0,1,0,kKnobTypeBoolean,kBaseKnobID+41,
0x00D,0,0,0,
"Assign Mode",1,4,1,kKnobTypeSetting,kBaseKnobID+42,
0x80000005,0,0,0,
"„„04",0,1,2,3,0x80,
0x03a,0,0,0,
"Voice # Oscillator",0,0,0,kKnobTypeGroupName,0,
0,0,0,0,
"V# Pitch Course",0,60,36,0,kBaseKnobID+76,
0x00e,0,0,0,
"V# Pitch Fine",-50,50,0,0,kBaseKnobID+77,
0x00f,0,0,0,
"V# Pitch Keyfollow",0,16,11,kKnobTypeSetting,kBaseKnobID+78,
0x010,0,0,kPitchFollows,
"V# Pitchbend",0,1,1,0,kBaseKnobID+79,
0x011,0,0,0,
"V# Waveform/PCM Bank",0,3,0,0,kBaseKnobID+80,
0x012,0,0,0,
"V# PCM Wave",0,127,0,0,kBaseKnobID+81,
0x013,0,0,0,
"V# Pulse Width",0,100,50,0,kBaseKnobID+82,
0x014,0,0,0,
"V# PW Velocity Sensitivity",-7,7,0,0,kBaseKnobID+83,
0x015,0,0,0,
"Voice # Pitch",0,0,0,kKnobTypeGroupName,0,
0,0,0,0,
"V# TVP Depth",0,10,5,0,kBaseKnobID+101,
0x016,0,0,0,
"V# TVP Velocity Sensitivity",0,3,0,0,kBaseKnobID+102,
0x017,0,0,0,
"V# TVP Time Keyfollow",0,4,0,0,kBaseKnobID+103,
0x018,0,0,0,
"V# TVP Level 0",-50,50,0,kKnobGroupStart,kBaseKnobID+104,
0x01d,0,0,0,
"V# TVP Time 1",0,100,0,0,kBaseKnobID+105,
0x019,0,0,0,
"V# TVP Level 1",-50,50,0,0,kBaseKnobID+106,
0x01e,0,0,0,
"V# TVP Time 2",0,100,0,0,kBaseKnobID+107,
0x01a,0,0,0,
"V# TVP Level 2",-50,50,0,0,kBaseKnobID+108,
0x01f,0,0,0,
"V# TVP Time 3",0,100,0,0,kBaseKnobID+109,
0x01b,0,0,0,
"V# TVP Sustain",-50,50,0,0,kBaseKnobID+110,
0x020,0,0,0,
"V# TVP Time 4",0,100,0,0,kBaseKnobID+111,
0x01c,0,0,0,
"V# TVP End",-50,50,0,0,kBaseKnobID+112,
0x021,0,0,0,
"V# TVP LFO Rate",0,100,60,kKnobGroupStart,kBaseKnobID+113,
0x022,0,0,0,
"V# TVP LFO Level",0,100,0,0,kBaseKnobID+114,
0x023,0,0,0,
"V# TVP LFO Mod Sensitivity",0,100,50,0,kBaseKnobID+115,
0x024,0,0,0,
"Voice # Filter",0,0,0,kKnobTypeGroupName,0,
0,0,0,0,
"V# TVF Cutoff",0,100,100,0,kBaseKnobID+133,
0x025,0,0,0,
"V# TVF Resonance",0,30,0,0,kBaseKnobID+134,
0x026,0,0,0,
"V# TVF Key Tracking",0,14,11,kKnobTypeSetting,kBaseKnobID+135,
0x027,0,0,kPitchFollows,
"V# TVF Bias Point",0,127,60,0,kBaseKnobID+136,
0x028,0,0,0,
"V# TVF Bias Level",-7,7,0,0,kBaseKnobID+137,
0x029,0,0,0,
"V# TVF Velocity Sensitivity",0,100,0,0,kBaseKnobID+138,
0x02B,0,0,0,
"V# TVF Depth Keyfollow",0,4,0,0,kBaseKnobID+139,
0x02C,0,0,0,
"V# TVF Time Keyfollow",0,4,0,0,kBaseKnobID+140,
0x02D,0,0,0,
"V# TVF Time 1",0,100,0,kKnobGroupStart,kBaseKnobID+141,
0x02E,0,0,0,
"V# TVF Level 1",0,100,0,0,kBaseKnobID+142,
0x033,0,0,0,
"V# TVF Time 2",0,100,0,0,kBaseKnobID+143,
0x02f,0,0,0,
"V# TVF Level 2",0,100,0,0,kBaseKnobID+144,
0x034,0,0,0,
"V# TVF Time 3",0,100,0,0,kBaseKnobID+145,
0x030,0,0,0,
"V# TVF Level 3",0,100,0,0,kBaseKnobID+146,
0x035,0,0,0,
"V# TVF Time 4",0,100,0,0,kBaseKnobID+147,
0x031,0,0,0,
"V# TVF Sustain",0,100,0,0,kBaseKnobID+148,
0x036,0,0,0,
"V# TVF Time 5",0,100,0,0,kBaseKnobID+149,
0x032,0,0,0,
"Voice # Amplitude",0,0,0,kKnobTypeGroupName,0,
0,0,0,0,
"V# TVA Level",0,100,100,0,kBaseKnobID+167,
0x037,0,0,0,
"V# TVA Velocity Sensitivity",-50,50,0,0,kBaseKnobID+168,
0x038,0,0,0,
"V# TVA Bias Point 1",0,127,0,0,kBaseKnobID+169,
0x039,0,0,0,
"V# TVA Bias Level 1",0,12,12,0,kBaseKnobID+170,
0x03A,0,0,0,
"V# TVA Bias Point 2",0,127,127,0,kBaseKnobID+171,
0x03B,0,0,0,
"V# TVA Bias Level 2",0,12,12,0,kBaseKnobID+172,
0x03C,0,0,0,
"V# TVA Time Keyfollow",0,4,0,0,kBaseKnobID+173,
0x03D,0,0,0,
"V# TVA Time Velocity Follow",0,4,0,0,kBaseKnobID+174,
0x03E,0,0,0,
"V# TVA Time 1",0,100,20,kKnobGroupStart,kBaseKnobID+175,
0x03F,0,0,0,
"V# TVA Level 1",0,100,100,0,kBaseKnobID+176,
0x044,0,0,0,
"V# TVA Time 2",0,100,0,0,kBaseKnobID+177,
0x040,0,0,0,
"V# TVA Level 2",0,100,100,0,kBaseKnobID+178,
0x045,0,0,0,
"V# TVA Time 3",0,100,0,0,kBaseKnobID+179,
0x041,0,0,0,
"V# TVA Level 3",0,100,100,0,kBaseKnobID+180,
0x046,0,0,0,
"V# TVA Time 4",0,100,0,0,kBaseKnobID+181,
0x042,0,0,0,
"V# TVA Sustain",0,100,100,0,kBaseKnobID+182,
0x047,0,0,0,
"V# TVA Time 5",0,100,20,0,kBaseKnobID+183,
0x043,0,0,0,
}
};
PM.7/22/96 - 8:43.PM