src/registry/midiActionDefs.ts
import { IInternalActionDef } from "../interfaces/IActions";
// WARNING!: Currently not in use.
/**
* This list is ment to be a short reference but could also
* be used as a lookup table for plugins (onChange).
* Control numbers 120 - 127 are in a seperate actionDef array.
* For a detailed list see
* https://www.midi.org/specifications-old/item/table-3-control-change-messages-data-bytes-2
*/
export const midiActionTypes: string[] = [
// Shouldn't this be an enum? Does it makes sense at all?
"00_BANK_SELECT",
"01_MODULATION_WHEEL",
"02_BREATH_CONTROLLER",
"03_UNDEFINED",
"04_FOOT_CONTROLLER",
"05_PORTAMENTO_TIME",
"06_DATA_ENTRY_MSB",
"07_CHANNEL_VOLUME",
"08_BALANCE",
"09_UNDEFINED",
"10_PAN",
"11_EXPRESSION_CONTROLLER",
"12_EFFECT_CONTROL_1",
"13_EFFECT_CONTROL_2",
"14_UNDEFINED",
"15_UNDEFINED",
"16_GENERAL_PURPOSE_CONTROLLER_1",
"17_GENERAL_PURPOSE_CONTROLLER_2",
"18_GENERAL_PURPOSE_CONTROLLER_3",
"19_GENERAL_PURPOSE_CONTROLLER_4",
"20_UNDEFINED",
"21_UNDEFINED",
"22_UNDEFINED",
"23_UNDEFINED",
"24_UNDEFINED",
"25_UNDEFINED",
"26_UNDEFINED",
"27_UNDEFINED",
"28_UNDEFINED",
"29_UNDEFINED",
"30_UNDEFINED",
"31_UNDEFINED",
"32_LSB_FOR_CONTROL_0",
"33_LSB_FOR_CONTROL_1",
"34_LSB_FOR_CONTROL_2",
"35_LSB_FOR_CONTROL_3",
"36_LSB_FOR_CONTROL_4",
"37_LSB_FOR_CONTROL_5",
"38_LSB_FOR_CONTROL_6",
"39_LSB_FOR_CONTROL_7",
"40_LSB_FOR_CONTROL_8",
"41_LSB_FOR_CONTROL_9",
"42_LSB_FOR_CONTROL_10",
"43_LSB_FOR_CONTROL_11",
"44_LSB_FOR_CONTROL_12",
"45_LSB_FOR_CONTROL_13",
"46_LSB_FOR_CONTROL_14",
"47_LSB_FOR_CONTROL_15",
"48_LSB_FOR_CONTROL_16",
"49_LSB_FOR_CONTROL_17",
"50_LSB_FOR_CONTROL_18",
"51_LSB_FOR_CONTROL_19",
"52_LSB_FOR_CONTROL_20",
"53_LSB_FOR_CONTROL_21",
"54_LSB_FOR_CONTROL_22",
"55_LSB_FOR_CONTROL_23",
"56_LSB_FOR_CONTROL_24",
"57_LSB_FOR_CONTROL_25",
"58_LSB_FOR_CONTROL_26",
"59_LSB_FOR_CONTROL_27",
"60_LSB_FOR_CONTROL_28",
"61_LSB_FOR_CONTROL_29",
"62_LSB_FOR_CONTROL_30",
"63_LSB_FOR_CONTROL_31",
"64_DAMPER_PEDAL_ON_OFF",
"65_PORTAMENTO_ON_OFF",
"66_SOSTENUTO_ON_OFF",
"67_SOFT_PEDAL_ON_OFF",
"68_LEGATO_FOOTSWITCH_ON_OFF",
"69_HOLD_2",
"70_SOUND_CONTROLLER_1",
"71_SOUND_CONTROLLER_2",
"72_SOUND_CONTROLLER_3",
"73_SOUND_CONTROLLER_4",
"74_SOUND_CONTROLLER_5",
"75_SOUND_CONTROLLER_6",
"76_SOUND_CONTROLLER_7",
"77_SOUND_CONTROLLER_8",
"78_SOUND_CONTROLLER_9",
"79_SOUND_CONTROLLER_10",
"80_GENERAL_PURPOSE_CONTROLLER_5",
"81_GENERAL_PURPOSE_CONTROLLER_6",
"82_GENERAL_PURPOSE_CONTROLLER_7",
"83_GENERAL_PURPOSE_CONTROLLER_8",
"84_PORTAMENTO_CONTROL",
"85_UNDEFINED",
"86_UNDEFINED",
"87_UNDEFINED",
"88_HIGH_RESOLUTION_VELOCITY_PREFIX",
"89_UNDEFINED",
"90_UNDEFINED",
"91_EFFECTS_1_DEPTH",
"92_EFFECTS_2_DEPTH",
"93_EFFECTS_3_DEPTH",
"94_EFFECTS_4_DEPTH",
"95_EFFECTS_5_DEPTH",
"96_DATA_INCREMENT",
"97_DATA_DECREMENT",
"98_NRPN-LSB",
"99_NRPN-MSB",
"100_RPN-LSB",
"101_RPN-MSB",
// channel mode messages below
"120_ALL_SOUND_OFF",
"121_RESET_ALL_CONTROLLERS",
"122_LOCAL_CONTROL_ON_OFF",
"123_ALL_NOTES_OFF",
"124_OMNI_MODE_OFF",
"125_OMNI_MODE_ON",
"126_MONO_MODE_ON",
"127_POLY_MODE_ON",
];
/**
* Sound based midi control messages.
* Controller numbers 102-119 are omited
* because they are not in use.
*/
export const midiActionDefs: IInternalActionDef[] = [
{
type: "00_BANK_SELECT",
desc: "",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "01_MODULATION_WHEEL",
desc: "also for lever",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "02_BREATH_CONTROLLER",
desc: "",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "03_UNDEFINED",
desc: "",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "04_FOOT_CONTROLLER",
desc: "",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "05_PORTAMENTO_TIME",
desc: "",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "06_DATA_ENTRY_MSB",
desc: "",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "07_CHANNEL_VOLUME",
desc: "formerly Main Volume",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "08_BALANCE",
desc: "",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "09_UNDEFINED",
desc: "",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "10_PAN",
desc: "",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "11_EXPRESSION_CONTROLLER",
desc: "",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "12_EFFECT_CONTROL_1",
desc: "",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "13_EFFECT_CONTROL_2",
desc: "",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "14_UNDEFINED",
desc: "",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "15_UNDEFINED",
desc: "",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "16_GENERAL_PURPOSE_CONTROLLER_1",
desc: "",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "17_GENERAL_PURPOSE_CONTROLLER_2",
desc: "",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "18_GENERAL_PURPOSE_CONTROLLER_3",
desc: "",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "19_GENERAL_PURPOSE_CONTROLLER_4",
desc: "",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "20_UNDEFINED",
desc: "",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "21_UNDEFINED",
desc: "",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "22_UNDEFINED",
desc: "",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "23_UNDEFINED",
desc: "",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "24_UNDEFINED",
desc: "",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "25_UNDEFINED",
desc: "",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "26_UNDEFINED",
desc: "",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "27_UNDEFINED",
desc: "",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "28_UNDEFINED",
desc: "",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "29_UNDEFINED",
desc: "",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "30_UNDEFINED",
desc: "",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "31_UNDEFINED",
desc: "",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "32_LSB_FOR_CONTROL_0",
desc: "Bank Select",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "33_LSB_FOR_CONTROL1",
desc: "Modulation Wheel or Lever",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "34_LSB_FOR_CONTROL2",
desc: "Breath Controller",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "35_LSB_FOR_CONTROL3",
desc: "Undefined",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "36_LSB_FOR_CONTROL4",
desc: "Foot Controller",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "37_LSB_FOR_CONTROL5",
desc: "Portamento Time",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "38_LSB_FOR_CONTROL6",
desc: "Data Entry",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "39_LSB_FOR_CONTROL7",
desc: "Channel Volume, formerly Main Volume",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "40_LSB_FOR_CONTROL8",
desc: "Balance",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "41_LSB_FOR_CONTROL9",
desc: "Undefined",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "42_LSB_FOR_CONTROL10",
desc: "Pan",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "43_LSB_FOR_CONTROL11",
desc: "Expression Controller",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "44_LSB_FOR_CONTROL12",
desc: "Effect control 1",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "45_LSB_FOR_CONTROL13",
desc: "Effect control 2",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "46_LSB_FOR_CONTROL14",
desc: "Undefined",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "47_LSB_FOR_CONTROL15",
desc: "Undefined",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "48_LSB_FOR_CONTROL16",
desc: "General Purpose Controller 1",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "49_LSB_FOR_CONTROL17",
desc: "General Purpose Controller 2",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "50_LSB_FOR_CONTROL18",
desc: "General Purpose Controller 3",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "51_LSB_FOR_CONTROL19",
desc: "General Purpose Controller 4",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "52_LSB_FOR_CONTROL20",
desc: "Undefined",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "53_LSB_FOR_CONTROL21",
desc: "Undefined",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "54_LSB_FOR_CONTROL22",
desc: "Undefined",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "55_LSB_FOR_CONTROL23",
desc: "Undefined",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "56_LSB_FOR_CONTROL24",
desc: "Undefined",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "57_LSB_FOR_CONTROL25",
desc: "Undefined",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "58_LSB_FOR_CONTROL26",
desc: "Undefined",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "59_LSB_FOR_CONTROL27",
desc: "Undefined",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "60_LSB_FOR_CONTROL28",
desc: "Undefined",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "61_LSB_FOR_CONTROL29",
desc: "Undefined",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "62_LSB_FOR_CONTROL30",
desc: "Undefined",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "63_LSB_FOR_CONTROL31",
desc: "Undefined",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "64_DAMPER_PEDAL_ON_OFF",
desc: "Sustain: <=63 off, >=64 on",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "65_PORTAMENTO_ON_OFF",
desc: "<=63 off, >=64 on",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "66_SOSTENUTO_ON_OFF",
desc: "<=63 off, >=64 on",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "67_SOFT_PEDAL_ON_OFF",
desc: "<=63 off, >=64 on",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "68_LEGATO_FOOTSWITCH_ON_OFF",
desc: "<=63 off, >=64 on",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "69_HOLD_2",
desc: "<=63 off, >=64 on",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "70_SOUND_CONTROLLER_1",
desc: "default: Sound Variation",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "71_SOUND_CONTROLLER_2",
desc: "default: Timbre/Harmonic Intens.",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "72_SOUND_CONTROLLER_3",
desc: "default: Release Time",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "73_SOUND_CONTROLLER_4",
desc: "default: Attack Time",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "74_SOUND_CONTROLLER_5",
desc: "default: Brightness",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "75_SOUND_CONTROLLER_6",
desc: "default: Decay Time",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "76_SOUND_CONTROLLER_7",
desc: "default: Vibrato Rate",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "77_SOUND_CONTROLLER_8",
desc: "default: Vibrato Depth",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "78_SOUND_CONTROLLER_9",
desc: "default: Vibrato Delay",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "79_SOUND_CONTROLLER_10",
desc: "default: undefined",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "80_GENERAL_PURPOSE_CONTROLLER_5",
desc: "",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "81_GENERAL_PURPOSE_CONTROLLER_6",
desc: "",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "82_GENERAL_PURPOSE_CONTROLLER_7",
desc: "",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "83_GENERAL_PURPOSE_CONTROLLER_8",
desc: "",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "84_PORTAMENTO_CONTROL",
desc: "",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "85_UNDEFINED",
desc: "",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "86_UNDEFINED",
desc: "",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "87_UNDEFINED",
desc: "",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "88_HIGH_RESOLUTION_VELOCITY_PREFIX",
desc: "",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "89_UNDEFINED",
desc: "",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "90_UNDEFINED",
desc: "",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "91_EFFECTS_1_DEPTH",
desc: "default: Reverb Send Level",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "92_EFFECTS_2_DEPTH",
desc: "",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "93_EFFECTS_3_DEPTH",
desc: "",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "94_EFFECTS_4_DEPTH",
desc: "",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "95_EFFECTS_5_DEPTH",
desc: "",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "96_DATA_INCREMENT",
desc: "Data Entry +1",
minVal: 0,
maxVal: 0,
defVal: 0,
steps: 0,
},
{
type: "97_DATA_DECREMENT",
desc: "Data Entry -1",
minVal: 0,
maxVal: 0,
defVal: 0,
steps: 0,
},
{
type: "98_NRPN-LSB",
desc: "Non-Registered Parameter Number",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "99_NRPN-MSB",
desc: "Non-Registered Parameter Number",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "100_RPN-LSB",
desc: "Registered Parameter Number",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "101_RPN-MSB",
desc: "Registered Parameter Number",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
];
/**
* Controller numbers 120-127 are reserved for
* channel mode messages (not for sound devices).
*/
export const midiChannelActionDefs: IActionDef[] = [
{
type: "120_ALL_SOUND_OFF",
desc: "Channel Mode Message",
minVal: 0,
maxVal: 0,
defVal: 0,
steps: 0,
},
{
type: "121_RESET_ALL_CONTROLLERS",
desc: "Channel Mode Message",
minVal: 0,
maxVal: 0,
defVal: 0,
steps: 0,
},
{
type: "122_LOCAL_CONTROL_ON_OFF",
desc: "0=off, 127=on (Channel Mode Message)",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "123_ALL_NOTES_OFF",
desc: "Channel Mode Message",
minVal: 0,
maxVal: 0,
defVal: 0,
steps: 0,
},
{
type: "124_OMNI_MODE_OFF",
desc: "+ all notes off (Channel Mode Message)",
minVal: 0,
maxVal: 0,
defVal: 0,
steps: 0,
},
{
type: "125_OMNI_MODE_ON",
desc: "+ all notes off (Channel Mode Message)",
minVal: 0,
maxVal: 0,
defVal: 0,
steps: 0,
},
{
type: "126_MONO_MODE_ON",
desc: "+ poly off, + all notes off (Channel Mode Message)",
minVal: 0,
maxVal: 127,
defVal: 0,
steps: 128,
},
{
type: "127_POLY_MODE_ON",
desc: "+ mono off, + all notes off (Channel Mode Message)",
minVal: 0,
maxVal: 0,
defVal: 0,
steps: 0,
},
];