#include "includes.h" /* 全局 USE_MIDI */ STRING_MIDI USE_MIDI = {0x2B,0x30,0x34,0x37,0x3C,0x40}; /* 指板按键与和弦指型映射表 */ CHORD_TYPE_INDEX chord_type_index_map[22] = { {0, 0, 1, 0}, // index 0 {0, 0, 1, 0}, // index 1 {0, 0, 1, 0}, // index 2 {0, 0, 1, 0}, // index 3 {1, 0, 1, 0}, // index 4 {1, 0, 1, 0}, // index 5 {1, 0, 1, 0}, // index 6 {1, 0, 1, 0}, // index 7 {1, 0, 1, 0}, // index 8 {1, 0, 1, 0}, // index 9 {0, 0, 1, 0}, // index 10 {0, 0, 1, 0}, // index 11 {0, 0, 1, 0}, // index 12 {0, 0, 1, 0}, // index 13 {0, 0, 1, 0}, // index 14 {0, 0, 1, 0}, // index 15 {1, 0, 1, 0}, // index 16 {1, 0, 1, 0}, // index 17 {1, 0, 1, 0}, // index 18 {0, 0, 1, 0}, // index 19 {0, 0, 1, 0}, // index 20 {0, 0, 1, 0}, // index 21 }; STRING_MIDI MIDI_1[] = { {0x2B, 0x30, 0x34, 0x37, 0x3C, 0x40,"C"}, // C {0x2B, 0x30, 0x33, 0x37, 0x3C, 0x3F,"Cm"}, // Cm {0x2B, 0x30, 0x33, 0x37, 0x3A, 0x3F,"Cm7"}, // Cm7 {0x2B, 0x30, 0x34, 0x37, 0x3A, 0x40,"C7"}, // C7 {0x2B, 0x30, 0x34, 0x37, 0x3B, 0x40,"CM7"}, // CM7 {0x2B, 0x30, 0x34, 0x37, 0x3E, 0x40,"Cad9"}, // Cad9 {0x2A, 0x30, 0x33, 0x36, 0x3A, 0x3F,"Cm7-5"}, // Cm7-5 {0x2B, 0x30, 0x32, 0x37, 0x3C, 0x3E,"Csus2"}, // Csus2 {0x2B, 0x30, 0x35, 0x37, 0x3C, 0x41,"Csus4"}, // Csus4 }; STRING_MIDI MIDI_2[] = { {0x2A,0x2D,0x32,0x39,0x3E,0x42,"D"}, {0x29,0x2D,0x32,0x39,0x3E,0x41,"Dm"}, {0x29,0x2D,0x32,0x39,0x3C,0x41,"Dm7"}, {0x2A,0x2D,0x32,0x39,0x3C,0x42,"D7"}, {0x2A,0x2D,0x32,0x39,0x3D,0x42,"DM7"}, {0x2A,0x2D,0x32,0x39,0x40,0x42,"Dad9"}, {0x29,0x2C,0x32,0x38,0x3C,0x41,"Dm7-5"}, {0x28,0x2D,0x32,0x39,0x3E,0x40,"Dsus2"}, {0x2B,0x2D,0x32,0x39,0x3E,0x43,"Dsus4"}, }; STRING_MIDI MIDI_3[] = { {0x28,0x2F,0x34,0x38,0x3B,0x40,"E"}, {0x28,0x2F,0x34,0x37,0x3B,0x40,"Em"}, {0x28,0x2F,0x34,0x37,0x3B,0x3E,"Em7"}, {0x28,0x2F,0x34,0x38,0x3B,0x3E,"E7"}, {0x28,0x2F,0x34,0x38,0x3B,0x3F,"EM7"}, {0x28,0x2F,0x34,0x38,0x3B,0x42,"Ead9"}, {0x28,0x2E,0x34,0x37,0x3A,0x3E,"Em7-5"}, {0x28,0x2F,0x34,0x36,0x3B,0x40,"Esus2"}, {0x28,0x2F,0x34,0x39,0x3B,0x40,"Esus4"}, }; STRING_MIDI MIDI_4[] = { {0x29,0x30,0x35,0x39,0x3C,0x41,"F"}, {0x29,0x30,0x35,0x38,0x3C,0x41,"Fm"}, {0x29,0x30,0x35,0x38,0x3C,0x3F,"Fm7"}, {0x29,0x30,0x35,0x39,0x3C,0x3F,"F7"}, {0x29,0x30,0x35,0x39,0x3C,0x40,"FM7"}, {0x29,0x30,0x35,0x39,0x3C,0x43,"Fad9"}, {0x29,0x2F,0x35,0x38,0x3B,0x3F,"Fm7-5"}, {0x29,0x30,0x35,0x37,0x3C,0x41,"Fsus2"}, {0x29,0x30,0x35,0x3A,0x3C,0x41,"Fsus4"}, }; STRING_MIDI MIDI_5[] = { {0x2B,0x2F,0x32,0x37,0x3B,0x43,"G"}, {0x2B,0x2E,0x32,0x37,0x3A,0x43,"Gm"}, {0x2B,0x2E,0x32,0x37,0x3A,0x41,"Gm7"}, {0x2B,0x2F,0x32,0x37,0x3B,0x41,"G7"}, {0x2B,0x2F,0x32,0x37,0x3B,0x42,"GM7"}, {0x2B,0x2F,0x32,0x37,0x3B,0x45,"Gad9"}, {0x2B,0x2E,0x31,0x37,0x3A,0x41,"Gm7-5"}, {0x2B,0x2D,0x32,0x37,0x39,0x43,"Gsus2"}, {0x2B,0x30,0x32,0x37,0x3C,0x43,"Gsus4"}, }; STRING_MIDI MIDI_6[] = { {0x28,0x2D,0x34,0x39,0x3D,0x40,"A"}, {0x28,0x2D,0x34,0x39,0x3C,0x40,"Am"}, {0x28,0x2D,0x34,0x37,0x3C,0x40,"Am7"}, {0x28,0x2D,0x34,0x37,0x3D,0x40,"A7"}, {0x28,0x2D,0x34,0x38,0x3D,0x40,"AM7"}, {0x28,0x2D,0x34,0x3B,0x3D,0x40,"Aad9"}, {0x27,0x2D,0x33,0x36,0x3C,0x3F,"Am7-5"}, {0x28,0x2D,0x34,0x39,0x3B,0x40,"Asus2"}, {0x28,0x2D,0x34,0x39,0x3E,0x40,"Asus4"}, }; STRING_MIDI MIDI_7[] = { {0x2A,0x2F,0x33,0x36,0x3B,0x3F,"B"}, {0x2A,0x2F,0x32,0x36,0x3B,0x3E,"Bm"}, {0x2A,0x2F,0x32,0x36,0x39,0x3E,"Bm7"}, {0x2A,0x2F,0x33,0x36,0x39,0x3F,"B7"}, {0x2A,0x2F,0x33,0x36,0x3A,0x3F,"BM7"}, {0x2A,0x2F,0x33,0x36,0x3D,0x3F,"Bad9"}, {0x29,0x2F,0x32,0x35,0x39,0x3E,"Bm7-5"}, {0x29,0x2F,0x31,0x36,0x3B,0x3D,"Bsus2"}, {0x29,0x2F,0x34,0x36,0x3B,0x40,"Bsus4"}, {0x29,0x2F,0x32,0x35,0x3B,0x3E,"Bdim"}, }; const STRING_MIDI OrganMIDI_1[] = { {0x2B, 0x30, 0x34, 0x37, 0x3C, 0x40, "C"}, // C {0x2B, 0x30, 0x33, 0x37, 0x3C, 0x3F, "Cm"}, // Cm {0x2B, 0x30, 0x33, 0x37, 0x3A, 0x3F, "Cm7"}, // Cm7 {0x2B, 0x30, 0x34, 0x37, 0x3A, 0x40, "C7"}, // C7 {0x2B, 0x30, 0x34, 0x37, 0x3B, 0x40, "CM7"}, // CM7 {0x2B, 0x30, 0x34, 0x37, 0x3E, 0x40, "Cad9"}, // Cad9 {0x2A, 0x30, 0x33, 0x36, 0x3A, 0x3F, "Cm7-5"}, // Cm7-5 {0x2B, 0x30, 0x32, 0x37, 0x3C, 0x3E, "Csus2"}, // Csus2 {0x2B, 0x30, 0x35, 0x37, 0x3C, 0x41, "Csus4"}, // Csus4 }; const STRING_MIDI OrganMIDI_2[] = { {0x2A,0x2D,0x32,0x39,0x3E,0x42,"D"}, {0x29,0x2D,0x32,0x39,0x3E,0x41,"Dm"}, {0x29,0x2D,0x32,0x39,0x3C,0x41,"Dm7"}, {0x2A,0x2D,0x32,0x39,0x3C,0x42,"D7"}, {0x2A,0x2D,0x32,0x39,0x3D,0x42,"DM7"}, {0x2A,0x2D,0x32,0x39,0x40,0x42,"Dad9"}, {0x29,0x2C,0x32,0x38,0x3C,0x41,"Dm7-5"}, {0x28,0x2D,0x32,0x39,0x3E,0x40,"Dsus2"}, {0x2B,0x2D,0x32,0x39,0x3E,0x43,"Dsus4"}, }; const STRING_MIDI OrganMIDI_3[] = { {0x28,0x2F,0x34,0x38,0x3B,0x40,"E"}, {0x28,0x2F,0x34,0x37,0x3B,0x40,"Em"}, {0x28,0x2F,0x34,0x37,0x3B,0x3E,"Em7"}, {0x28,0x2F,0x34,0x38,0x3B,0x3E,"E7"}, {0x28,0x2F,0x34,0x38,0x3B,0x3F,"EM7"}, {0x28,0x2F,0x34,0x38,0x3B,0x42,"Ead9"}, {0x28,0x2E,0x34,0x37,0x3A,0x3E,"Em7-5"}, {0x28,0x2F,0x34,0x36,0x3B,0x40,"Esus2"}, {0x28,0x2F,0x34,0x39,0x3B,0x40,"Esus4"}, }; const STRING_MIDI OrganMIDI_4[] = { {0x29,0x30,0x35,0x39,0x3C,0x41,"F"}, {0x29,0x30,0x35,0x38,0x3C,0x41,"Fm"}, {0x29,0x30,0x35,0x38,0x3C,0x3F,"Fm7"}, {0x29,0x30,0x35,0x39,0x3C,0x3F,"F7"}, {0x29,0x30,0x35,0x39,0x3C,0x40,"FM7"}, {0x29,0x30,0x35,0x39,0x3C,0x43,"Fad9"}, {0x29,0x2F,0x35,0x38,0x3B,0x3F,"Fm7-5"}, {0x29,0x30,0x35,0x37,0x3C,0x41,"Fsus2"}, {0x29,0x30,0x35,0x3A,0x3C,0x41,"Fsus4"}, }; const STRING_MIDI OrganMIDI_5[] = { {0x2B,0x2F,0x32,0x37,0x3B,0x43,"G"}, {0x2B,0x2E,0x32,0x37,0x3A,0x43,"Gm"}, {0x2B,0x2E,0x32,0x37,0x3A,0x41,"Gm7"}, {0x2B,0x2F,0x32,0x37,0x3B,0x41,"G7"}, {0x2B,0x2F,0x32,0x37,0x3B,0x42,"GM7"}, {0x2B,0x2F,0x32,0x37,0x3B,0x45,"Gad9"}, {0x2B,0x2E,0x31,0x37,0x3A,0x41,"Gm7-5"}, {0x2B,0x2D,0x32,0x37,0x39,0x43,"Gsus2"}, {0x2B,0x30,0x32,0x37,0x3C,0x43,"Gsus4"}, }; const STRING_MIDI OrganMIDI_6[] = { {0x28,0x2D,0x34,0x39,0x3D,0x40,"A"}, {0x28,0x2D,0x34,0x39,0x3C,0x40,"Am"}, {0x28,0x2D,0x34,0x37,0x3C,0x40,"Am7"}, {0x28,0x2D,0x34,0x37,0x3D,0x40,"A7"}, {0x28,0x2D,0x34,0x38,0x3D,0x40,"AM7"}, {0x28,0x2D,0x34,0x3B,0x3D,0x40,"Aad9"}, {0x27,0x2D,0x33,0x36,0x3C,0x3F,"Am7-5"}, {0x28,0x2D,0x34,0x39,0x3B,0x40,"Asus2"}, {0x28,0x2D,0x34,0x39,0x3E,0x40,"Asus4"}, }; const STRING_MIDI OrganMIDI_7[] = { {0x2A,0x2F,0x33,0x36,0x3B,0x3F,"B"}, {0x2A,0x2F,0x32,0x36,0x3B,0x3E,"Bm"}, {0x2A,0x2F,0x32,0x36,0x39,0x3E,"Bm7"}, {0x2A,0x2F,0x33,0x36,0x39,0x3F,"B7"}, {0x2A,0x2F,0x33,0x36,0x3A,0x3F,"BM7"}, {0x2A,0x2F,0x33,0x36,0x3D,0x3F,"Bad9"}, {0x29,0x2F,0x32,0x35,0x39,0x3E,"Bm7-5"}, {0x29,0x2F,0x31,0x36,0x3B,0x3D,"Bsus2"}, {0x29,0x2F,0x34,0x36,0x3B,0x40,"Bsus4"}, {0x29,0x2F,0x32,0x35,0x3B,0x3E,"Bdim"}, }; /* 和弦根音表索引 */ const STRING_MIDI *Chord_Midi_Table[7] = {MIDI_1, MIDI_2, MIDI_3, MIDI_4, MIDI_5, MIDI_6, MIDI_7}; const STRING_MIDI *OrganChord_Midi_Table[7] = { OrganMIDI_1,OrganMIDI_2,OrganMIDI_3,OrganMIDI_4,OrganMIDI_5,OrganMIDI_6, OrganMIDI_7 }; const uint8_t Timbre_index[5] = {0x18,0x19,0x1B,0x1E,0x22};