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
Jump to navigation Jump to search
/*
   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,
   }
};