229 lines
7.1 KiB
C
229 lines
7.1 KiB
C
#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};
|
|
|
|
|
|
|
|
|
|
|