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 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193
|
/*
* BRLTTY - A background process providing access to the console screen (when in
* text mode) for a blind person using a refreshable braille display.
*
* Copyright (C) 1995-2014 by The BRLTTY Developers.
*
* BRLTTY comes with ABSOLUTELY NO WARRANTY.
*
* This is free software, placed under the terms of the
* GNU General Public License, as published by the Free Software
* Foundation; either version 2 of the License, or (at your option) any
* later version. Please see the file LICENSE-GPL for details.
*
* Web Page: http://mielke.cc/brltty/
*
* This software is maintained by Dave Mielke <dave@mielke.cc>.
*/
#include "prologue.h"
#include "midi.h"
static const char *const midiInstrumentTypes[] = {
[0X0] = strtext("Piano"),
[0X1] = strtext("Chromatic Percussion"),
[0X2] = strtext("Organ"),
[0X3] = strtext("Guitar"),
[0X4] = strtext("Bass"),
[0X5] = strtext("Strings"),
[0X6] = strtext("Ensemble"),
[0X7] = strtext("Brass"),
[0X8] = strtext("Reed"),
[0X9] = strtext("Pipe"),
[0XA] = strtext("Synth Lead"),
[0XB] = strtext("Synth Pad"),
[0XC] = strtext("Synth FM"),
[0XD] = strtext("Ethnic Instruments"),
[0XE] = strtext("Percussive Instruments"),
[0XF] = strtext("Sound Effects")
};
const char *const midiInstrumentTable[] = {
/* Piano */
[0X00] = strtext("Acoustic Grand Piano"),
[0X01] = strtext("Bright Acoustic Piano"),
[0X02] = strtext("Electric Grand Piano"),
[0X03] = strtext("Honkytonk Piano"),
[0X04] = strtext("Electric Piano 1"),
[0X05] = strtext("Electric Piano 2"),
[0X06] = strtext("Harpsichord"),
[0X07] = strtext("Clavi"),
/* Chromatic Percussion */
[0X08] = strtext("Celesta"),
[0X09] = strtext("Glockenspiel"),
[0X0A] = strtext("Music Box"),
[0X0B] = strtext("Vibraphone"),
[0X0C] = strtext("Marimba"),
[0X0D] = strtext("Xylophone"),
[0X0E] = strtext("Tubular Bells"),
[0X0F] = strtext("Dulcimer"),
/* Organ */
[0X10] = strtext("Drawbar Organ"),
[0X11] = strtext("Percussive Organ"),
[0X12] = strtext("Rock Organ"),
[0X13] = strtext("Church Organ"),
[0X14] = strtext("Reed Organ"),
[0X15] = strtext("Accordion"),
[0X16] = strtext("Harmonica"),
[0X17] = strtext("Tango Accordion"),
/* Guitar */
[0X18] = strtext("Acoustic Guitar (nylon)"),
[0X19] = strtext("Acoustic Guitar (steel)"),
[0X1A] = strtext("Electric Guitar (jazz)"),
[0X1B] = strtext("Electric Guitar (clean)"),
[0X1C] = strtext("Electric Guitar (muted)"),
[0X1D] = strtext("Overdriven Guitar"),
[0X1E] = strtext("Distortion Guitar"),
[0X1F] = strtext("Guitar Harmonics"),
/* Bass */
[0X20] = strtext("Acoustic Bass"),
[0X21] = strtext("Electric Bass (finger)"),
[0X22] = strtext("Electric Bass (pick)"),
[0X23] = strtext("Fretless Bass"),
[0X24] = strtext("Slap Bass 1"),
[0X25] = strtext("Slap Bass 2"),
[0X26] = strtext("Synth Bass 1"),
[0X27] = strtext("Synth Bass 2"),
/* Strings */
[0X28] = strtext("Violin"),
[0X29] = strtext("Viola"),
[0X2A] = strtext("Cello"),
[0X2B] = strtext("Contrabass"),
[0X2C] = strtext("Tremolo Strings"),
[0X2D] = strtext("Pizzicato Strings"),
[0X2E] = strtext("Orchestral Harp"),
[0X2F] = strtext("Timpani"),
/* Ensemble */
[0X30] = strtext("String Ensemble 1"),
[0X31] = strtext("String Ensemble 2"),
[0X32] = strtext("SynthStrings 1"),
[0X33] = strtext("SynthStrings 2"),
[0X34] = strtext("Choir Aahs"),
[0X35] = strtext("Voice Oohs"),
[0X36] = strtext("Synth Voice"),
[0X37] = strtext("Orchestra Hit"),
/* Brass */
[0X38] = strtext("Trumpet"),
[0X39] = strtext("Trombone"),
[0X3A] = strtext("Tuba"),
[0X3B] = strtext("Muted Trumpet"),
[0X3C] = strtext("French Horn"),
[0X3D] = strtext("Brass Section"),
[0X3E] = strtext("SynthBrass 1"),
[0X3F] = strtext("SynthBrass 2"),
/* Reed */
[0X40] = strtext("Soprano Sax"),
[0X41] = strtext("Alto Sax"),
[0X42] = strtext("Tenor Sax"),
[0X43] = strtext("Baritone Sax"),
[0X44] = strtext("Oboe"),
[0X45] = strtext("English Horn"),
[0X46] = strtext("Bassoon"),
[0X47] = strtext("Clarinet"),
/* Pipe */
[0X48] = strtext("Piccolo"),
[0X49] = strtext("Flute"),
[0X4A] = strtext("Recorder"),
[0X4B] = strtext("Pan Flute"),
[0X4C] = strtext("Blown Bottle"),
[0X4D] = strtext("Shakuhachi"),
[0X4E] = strtext("Whistle"),
[0X4F] = strtext("Ocarina"),
/* Synth Lead */
[0X50] = strtext("Lead 1 (square)"),
[0X51] = strtext("Lead 2 (sawtooth)"),
[0X52] = strtext("Lead 3 (calliope)"),
[0X53] = strtext("Lead 4 (chiff)"),
[0X54] = strtext("Lead 5 (charang)"),
[0X55] = strtext("Lead 6 (voice)"),
[0X56] = strtext("Lead 7 (fifths)"),
[0X57] = strtext("Lead 8 (bass + lead)"),
/* Synth Pad */
[0X58] = strtext("Pad 1 (new age)"),
[0X59] = strtext("Pad 2 (warm)"),
[0X5A] = strtext("Pad 3 (polysynth)"),
[0X5B] = strtext("Pad 4 (choir)"),
[0X5C] = strtext("Pad 5 (bowed)"),
[0X5D] = strtext("Pad 6 (metallic)"),
[0X5E] = strtext("Pad 7 (halo)"),
[0X5F] = strtext("Pad 8 (sweep)"),
/* Synth FM */
[0X60] = strtext("FX 1 (rain)"),
[0X61] = strtext("FX 2 (soundtrack)"),
[0X62] = strtext("FX 3 (crystal)"),
[0X63] = strtext("FX 4 (atmosphere)"),
[0X64] = strtext("FX 5 (brightness)"),
[0X65] = strtext("FX 6 (goblins)"),
[0X66] = strtext("FX 7 (echoes)"),
[0X67] = strtext("FX 8 (sci-fi)"),
/* Ethnic Instruments */
[0X68] = strtext("Sitar"),
[0X69] = strtext("Banjo"),
[0X6A] = strtext("Shamisen"),
[0X6B] = strtext("Koto"),
[0X6C] = strtext("Kalimba"),
[0X6D] = strtext("Bag Pipe"),
[0X6E] = strtext("Fiddle"),
[0X6F] = strtext("Shanai"),
/* Percussive Instruments */
[0X70] = strtext("Tinkle Bell"),
[0X71] = strtext("Agogo"),
[0X72] = strtext("Steel Drums"),
[0X73] = strtext("Woodblock"),
[0X74] = strtext("Taiko Drum"),
[0X75] = strtext("Melodic Tom"),
[0X76] = strtext("Synth Drum"),
[0X77] = strtext("Reverse Cymbal"),
/* Sound Effects */
[0X78] = strtext("Guitar Fret Noise"),
[0X79] = strtext("Breath Noise"),
[0X7A] = strtext("Seashore"),
[0X7B] = strtext("Bird Tweet"),
[0X7C] = strtext("Telephone Ring"),
[0X7D] = strtext("Helicopter"),
[0X7E] = strtext("Applause"),
[0X7F] = strtext("Gunshot")
};
const unsigned int midiInstrumentCount = ARRAY_COUNT(midiInstrumentTable);
const char *
midiGetInstrumentType (unsigned char instrument) {
return midiInstrumentTypes[instrument >> 3];
}
|