Please consider a donation to the Higher Intellect project. See https://preterhuman.net/donate.php or the Donate to Higher Intellect page for more info. |
MT32MusicComponent.r
From Higher Intellect Vintage Wiki
/* 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, } };