- 0x00: 'bank select',
- 0x01: 'modulation wheel/lever',
- 0x02: 'breath controller',
- # 0x03: undefined
- 0x04: 'foot controller',
- 0x05: 'portamento time',
- 0x06: 'data entry MSB',
- 0x07: 'channel volume (formerly main volume)',
- 0x08: 'balance',
- # 0x09: undefined
- 0x0a: 'pan',
- 0x0b: 'expression controller',
- 0x0c: 'effect control 1',
- 0x0d: 'effect control 2',
- # 0x0e-0x0f: undefined
- 0x10: 'general purpose controller 1',
- 0x11: 'general purpose controller 2',
- 0x12: 'general purpose controller 3',
- 0x13: 'general purpose controller 4',
- # 0x14-0x1f: undefined
- # 0x20-0x3f: LSB for values 0x00-0x1f
- 0x40: 'damper pedal (sustain)',
- 0x41: 'portamento on/off',
- 0x42: 'sostenuto',
- 0x43: 'soft pedal',
- 0x44: 'legato footswitch', # vv: 00-3f = normal, 40-7f = legato
- 0x45: 'hold 2',
- 0x46: 'sound controller 1 (default: sound variation)',
- 0x47: 'sound controller 2 (default: timbre / harmonic intensity)',
- 0x48: 'sound controller 3 (default: release time)',
- 0x49: 'sound controller 4 (default: attack time)',
- 0x4a: 'sound controller 5 (default: brightness)',
- 0x4b: 'sound controller 6 (GM2 default: decay time)',
- 0x4c: 'sound controller 7 (GM2 default: vibrato rate)',
- 0x4d: 'sound controller 8 (GM2 default: vibrato depth)',
- 0x4e: 'sound controller 9 (GM2 default: vibrato delay)',
- 0x4f: 'sound controller 10',
- 0x50: 'general purpose controller 5',
- 0x51: 'general purpose controller 6',
- 0x52: 'general purpose controller 7',
- 0x53: 'general purpose controller 8',
- 0x54: 'portamento control',
+ 0x00: ['bank select MSB', 'bank MSB', 'bank-M'],
+ 0x01: ['modulation wheel/lever MSB', 'modulation MSB', 'mod-M'],
+ 0x02: ['breath controller MSB', 'breath MSB', 'breath-M'],
+ # 0x03: undefined MSB
+ 0x04: ['foot controller MSB', 'foot MSB', 'foot-M'],
+ 0x05: ['portamento time MSB', 'portamento MSB', 'porta-M'],
+ 0x06: ['data entry MSB', 'data entry MSB', 'data-M'],
+ 0x07: ['channel volume MSB (formerly main volume)', 'channel volume MSB', 'ch vol-M'],
+ 0x08: ['balance MSB', 'bal MSB', 'bal-M'],
+ # 0x09: undefined MSB
+ 0x0a: ['pan MSB', 'pan MSB', 'pan-M'],
+ 0x0b: ['expression controller MSB', 'expression MSB', 'expr-M'],
+ 0x0c: ['effect control 1 MSB', 'effect 1 MSB', 'eff-1-M'],
+ 0x0d: ['effect control 2 MSB', 'effect 2 MSB', 'eff-2-M'],
+ # 0x0e-0x0f: undefined MSB
+ 0x10: ['general purpose controller 1 MSB', 'GP ctrl 1 MSB', 'GPC-1-M'],
+ 0x11: ['general purpose controller 2 MSB', 'GP ctrl 2 MSB', 'GPC-2-M'],
+ 0x12: ['general purpose controller 3 MSB', 'GP ctrl 3 MSB', 'GPC-3-M'],
+ 0x13: ['general purpose controller 4 MSB', 'GP ctrl 4 MSB', 'GPC-4-M'],
+ # 0x14-0x1f: undefined MSB
+ 0x20: ['bank select LSB', 'bank LSB', 'bank-L'],
+ 0x21: ['modulation wheel/lever LSB', 'modulation LSB', 'mod-L'],
+ 0x22: ['breath controller LSB', 'breath LSB', 'breath-L'],
+ # 0x23: undefined LSB
+ 0x24: ['foot controller LSB', 'foot LSB', 'foot-L'],
+ 0x25: ['portamento time LSB', 'portamento LSB', 'porta-L'],
+ 0x26: ['data entry LSB', 'data entry LSB', 'data-L'],
+ 0x27: ['channel volume LSB (formerly main volume)', 'channel volume LSB', 'ch vol-L'],
+ 0x28: ['balance LSB', 'bal LSB', 'bal-L'],
+ # 0x29: undefined LSB
+ 0x2a: ['pan LSB', 'pan LSB', 'pan-L'],
+ 0x2b: ['expression controller LSB', 'expression LSB', 'expr-L'],
+ 0x2c: ['effect control 1 LSB', 'effect 1 LSB', 'eff-1-L'],
+ 0x2d: ['effect control 2 LSB', 'effect 2 LSB', 'eff-2-L'],
+ # 0x2e-0x2f: undefined LSB
+ 0x30: ['general purpose controller 1 LSB', 'GP ctrl 1 LSB', 'GPC-1-L'],
+ 0x31: ['general purpose controller 2 LSB', 'GP ctrl 2 LSB', 'GPC-2-L'],
+ 0x32: ['general purpose controller 3 LSB', 'GP ctrl 3 LSB', 'GPC-3-L'],
+ 0x33: ['general purpose controller 4 LSB', 'GP ctrl 4 LSB', 'GPC-4-L'],
+ # 0x34-0x3f: undefined LSB
+ 0x40: ['damper pedal (sustain)', 'sustain', 'sust'],
+ 0x41: ['portamento on/off', 'porta on/off', 'porta on/off'],
+ 0x42: ['sostenuto', 'sostenuto', 'sostenuto'],
+ 0x43: ['soft pedal', 'soft pedal', 'soft pedal'],
+ 0x44: ['legato footswitch', 'legato switch', 'legato'], # vv: 00-3f = normal, 40-7f = legato
+ 0x45: ['hold 2', 'hold 2', 'hold 2'],
+ 0x46: ['sound controller 1 (default: sound variation)', 'sound ctrl 1', 'snd ctrl 1'],
+ 0x47: ['sound controller 2 (default: timbre / harmonic intensity)', 'sound ctrl 2', 'snd ctrl 2'],
+ 0x48: ['sound controller 3 (default: release time)', 'sound ctrl 3', 'snd ctrl 3'],
+ 0x49: ['sound controller 4 (default: attack time)', 'sound ctrl 4', 'snd ctrl 4'],
+ 0x4a: ['sound controller 5 (default: brightness)', 'sound ctrl 5', 'snd ctrl 5'],
+ 0x4b: ['sound controller 6 (GM2 default: decay time)', 'sound ctrl 6', 'snd ctrl 6'],
+ 0x4c: ['sound controller 7 (GM2 default: vibrato rate)', 'sound ctrl 7', 'snd ctrl 7'],
+ 0x4d: ['sound controller 8 (GM2 default: vibrato depth)', 'sound ctrl 8', 'snd ctrl 8'],
+ 0x4e: ['sound controller 9 (GM2 default: vibrato delay)', 'sound ctrl 9', 'snd ctrl 9'],
+ 0x4f: ['sound controller 10', 'sound ctrl 10', 'snd ctrl 10'],
+ 0x50: ['general purpose controller 5', 'GP controller 5', 'GPC-5'],
+ 0x51: ['general purpose controller 6', 'GP controller 6', 'GPC-6'],
+ 0x52: ['general purpose controller 7', 'GP controller 7', 'GPC-7'],
+ 0x53: ['general purpose controller 8', 'GP controller 8', 'GPC-8'],
+ 0x54: ['portamento control', 'portamento ctrl', 'porta ctrl'],