~ruther/qmk_firmware

8b658dcc9a826b03fedb1ef2bfcc692f3e25da1b — Ryan 2 years ago 442e765
Normalise MIDI keycodes (#18972)

* `MI_ON`, `MI_OFF`, `MI_TOG` -> `MI_TOGG`

* `MI_CH*`, `MI_CHU` -> `MI_CHNU`, `MI_CHD` -> `MI_CHND`

* `MI_VEL_*` -> `MI_VL*`, `MI_VELU`, `MI_VELD`

* `MI_TRNS_*` -> `MI_TR*`, `MI_TRNSU` -> `MI_TRSU`, `MI_TRNSD` -> `MI_TRSD`

* `MI_OCT_*` -> `MI_OC*`, `MI_OCTU`, `MI_OCTD`

* Misc controls

* Note keycodes

* Add legacy keycodes

* Regenerate keycodes

* Typo
39 files changed, 1815 insertions(+), 1170 deletions(-)

M data/constants/keycodes/keycodes_0.0.1_midi.hjson
M docs/feature_midi.md
M docs/keycodes.md
M keyboards/40percentclub/gherkin/keymaps/midi/keymap.c
M keyboards/bandominedoni/keymaps/default/keymap.c
M keyboards/bandominedoni/keymaps/led/keymap.c
M keyboards/bandominedoni/keymaps/lednotg/keymap.c
M keyboards/bandominedoni/keymaps/via/keymap.c
M keyboards/chromatonemini/keymaps/default/keymap.c
M keyboards/chromatonemini/keymaps/led/keymap.c
M keyboards/chromatonemini/keymaps/party/keymap.c
M keyboards/chromatonemini/keymaps/via/keymap.c
M keyboards/ckeys/thedora/keymaps/default/keymap.c
M keyboards/clueboard/66/keymaps/magicmonty/keymap.c
M keyboards/contra/keymaps/dana/keymap.c
M keyboards/gh60/satan/keymaps/midi/keymap.c
M keyboards/giabalanai/keymaps/2firmware/keymap.c
M keyboards/giabalanai/keymaps/3araht/keymap.c
M keyboards/giabalanai/keymaps/default/keymap.c
M keyboards/giabalanai/keymaps/default_giabarinaix2/keymap.c
M keyboards/giabalanai/keymaps/giabarinaix2led/keymap.c
M keyboards/giabalanai/keymaps/party/keymap.c
M keyboards/giabalanai/keymaps/via/keymap.c
M keyboards/giabalanai/keymaps/via_giabarinaix2/keymap.c
M keyboards/keebio/nyquist/keymaps/shovelpaw/keymap.c
M keyboards/kprepublic/bm40hsrgb/keymaps/wolff_abnt2/keymap.c
M keyboards/miuni32/keymaps/cassdelacruzmunoz/keymap.c
M keyboards/preonic/keymaps/mverteuil/keymap.c
M keyboards/preonic/keymaps/mverteuil_2x2u/keymap.c
M keyboards/sofle/keymaps/michal/keymap.c
M keyboards/tempo_turtle/bradpad/keymaps/4brad/keymap.c
M keyboards/tempo_turtle/bradpad/keymaps/midi_demo/keymap.c
M quantum/keycodes.h
M quantum/process_keycode/process_midi.c
M quantum/process_keycode/process_music.c
M quantum/quantum_keycodes.h
M quantum/quantum_keycodes_legacy.h
M quantum/sequencer/tests/sequencer_tests.cpp
M users/muppetjones/wrappers.h
M data/constants/keycodes/keycodes_0.0.1_midi.hjson => data/constants/keycodes/keycodes_0.0.1_midi.hjson +541 -169
@@ 2,669 2,1041 @@
    "keycodes": {
        "0x7100": {
            "group": "midi",
            "key": "MI_ON"
            "key": "QK_MIDI_ON",
            "aliases": [
                "MI_ON"
            ]
        },
        "0x7101": {
            "group": "midi",
            "key": "MI_OFF"
            "key": "QK_MIDI_OFF",
            "aliases": [
                "MI_OFF"
            ]
        },
        "0x7102": {
            "group": "midi",
            "key": "MI_TOG"
            "key": "QK_MIDI_TOGGLE",
            "aliases": [
                "MI_TOGG"
            ]
        },
        "0x7110": {
            "group": "midi",
            "key": "MI_C"
            "key": "QK_MIDI_NOTE_C_0",
            "aliases": [
                "MI_C"
            ]
        },
        "0x7111": {
            "group": "midi",
            "key": "MI_Cs",
            "key": "QK_MIDI_NOTE_C_SHARP_0",
            "aliases": [
                "MI_Cs",
                "MI_Db"
            ]
        },
        "0x7112": {
            "group": "midi",
            "key": "MI_D"
            "key": "QK_MIDI_NOTE_D_0",
            "aliases": [
                "MI_D"
            ]
        },
        "0x7113": {
            "group": "midi",
            "key": "MI_Ds",
            "key": "QK_MIDI_NOTE_D_SHARP_0",
            "aliases": [
                "MI_Ds",
                "MI_Eb"
            ]
        },
        "0x7114": {
            "group": "midi",
            "key": "MI_E"
            "key": "QK_MIDI_NOTE_E_0",
            "aliases": [
                "MI_E"
            ]
        },
        "0x7115": {
            "group": "midi",
            "key": "MI_F"
            "key": "QK_MIDI_NOTE_F_0",
            "aliases": [
                "MI_F"
            ]
        },
        "0x7116": {
            "group": "midi",
            "key": "MI_Fs",
            "key": "QK_MIDI_NOTE_F_SHARP_0",
            "aliases": [
                "MI_Fs",
                "MI_Gb"
            ]
        },
        "0x7117": {
            "group": "midi",
            "key": "MI_G"
            "key": "QK_MIDI_NOTE_G_0",
            "aliases": [
                "MI_G"
            ]
        },
        "0x7118": {
            "group": "midi",
            "key": "MI_Gs",
            "key": "QK_MIDI_NOTE_G_SHARP_0",
            "aliases": [
                "MI_Gs"
                "MI_Ab"
            ]
        },
        "0x7119": {
            "group": "midi",
            "key": "MI_A"
            "key": "QK_MIDI_NOTE_A_0",
            "aliases": [
                "MI_A"
            ]
        },
        "0x711A": {
            "group": "midi",
            "key": "MI_As",
            "key": "QK_MIDI_NOTE_A_SHARP_0",
            "aliases": [
                "MI_As"
                "MI_Bb"
            ]
        },
        "0x711B": {
            "group": "midi",
            "key": "MI_B"
            "key": "QK_MIDI_NOTE_B_0",
            "aliases": [
                "MI_B"
            ]
        },
        "0x7120": {
            "group": "midi",
            "key": "MI_C_1"
            "key": "QK_MIDI_NOTE_C_1",
            "aliases": [
                "MI_C1"
            ]
        },
        "0x7121": {
            "group": "midi",
            "key": "MI_Cs_1",
            "key": "QK_MIDI_NOTE_C_SHARP_1",
            "aliases": [
                "MI_Db_1"
                "MI_Cs1",
                "MI_Db1"
            ]
        },
        "0x7122": {
            "group": "midi",
            "key": "MI_D_1"
            "key": "QK_MIDI_NOTE_D_1",
            "aliases": [
                "MI_D1"
            ]
        },
        "0x7123": {
            "group": "midi",
            "key": "MI_Ds_1",
            "key": "QK_MIDI_NOTE_D_SHARP_1",
            "aliases": [
                "MI_Eb_1"
                "MI_Ds1",
                "MI_Eb1"
            ]
        },
        "0x7124": {
            "group": "midi",
            "key": "MI_E_1"
            "key": "QK_MIDI_NOTE_E_1",
            "aliases": [
                "MI_E1"
            ]
        },
        "0x7125": {
            "group": "midi",
            "key": "MI_F_1"
            "key": "QK_MIDI_NOTE_F_1",
            "aliases": [
                "MI_F1"
            ]
        },
        "0x7126": {
            "group": "midi",
            "key": "MI_Fs_1",
            "key": "QK_MIDI_NOTE_F_SHARP_1",
            "aliases": [
                "MI_Gb_1"
                "MI_Fs1",
                "MI_Gb1"
            ]
        },
        "0x7127": {
            "group": "midi",
            "key": "MI_G_1"
            "key": "QK_MIDI_NOTE_G_1",
            "aliases": [
                "MI_G1"
            ]
        },
        "0x7128": {
            "group": "midi",
            "key": "MI_Gs_1",
            "key": "QK_MIDI_NOTE_G_SHARP_1",
            "aliases": [
                "MI_Ab_1"
                "MI_Gs1",
                "MI_Ab1"
            ]
        },
        "0x7129": {
            "group": "midi",
            "key": "MI_A_1"
            "key": "QK_MIDI_NOTE_A_1",
            "aliases": [
                "MI_A1"
            ]
        },
        "0x712A": {
            "group": "midi",
            "key": "MI_As_1",
            "key": "QK_MIDI_NOTE_A_SHARP_1",
            "aliases": [
                "MI_Bb_1"
                "MI_As1",
                "MI_Bb1"
            ]
        },
        "0x712B": {
            "group": "midi",
            "key": "MI_B_1"
            "key": "QK_MIDI_NOTE_B_1",
            "aliases": [
                "MI_B1"
            ]
        },
        "0x7130": {
            "group": "midi",
            "key": "MI_C_2"
            "key": "QK_MIDI_NOTE_C_2",
            "aliases": [
                "MI_C2"
            ]
        },
        "0x7131": {
            "group": "midi",
            "key": "MI_Cs_2",
            "key": "QK_MIDI_NOTE_C_SHARP_2",
            "aliases": [
                "MI_Db_2"
                "MI_Cs2",
                "MI_Db2"
            ]
        },
        "0x7132": {
            "group": "midi",
            "key": "MI_D_2"
            "key": "QK_MIDI_NOTE_D_2",
            "aliases": [
                "MI_D2"
            ]
        },
        "0x7133": {
            "group": "midi",
            "key": "MI_Ds_2",
            "key": "QK_MIDI_NOTE_D_SHARP_2",
            "aliases": [
                "MI_Eb_2"
                "MI_Ds2",
                "MI_Eb2"
            ]
        },
        "0x7134": {
            "group": "midi",
            "key": "MI_E_2"
            "key": "QK_MIDI_NOTE_E_2",
            "aliases": [
                "MI_E2"
            ]
        },
        "0x7135": {
            "group": "midi",
            "key": "MI_F_2"
            "key": "QK_MIDI_NOTE_F_2",
            "aliases": [
                "MI_F2"
            ]
        },
        "0x7136": {
            "group": "midi",
            "key": "MI_Fs_2",
            "key": "QK_MIDI_NOTE_F_SHARP_2",
            "aliases": [
                "MI_Gb_2"
                "MI_Fs2",
                "MI_Gb2"
            ]
        },
        "0x7137": {
            "group": "midi",
            "key": "MI_G_2"
            "key": "QK_MIDI_NOTE_G_2",
            "aliases": [
                "MI_G2"
            ]
        },
        "0x7138": {
            "group": "midi",
            "key": "MI_Gs_2",
            "key": "QK_MIDI_NOTE_G_SHARP_2",
            "aliases": [
                "MI_Ab_2"
                "MI_Gs2",
                "MI_Ab2"
            ]
        },
        "0x7139": {
            "group": "midi",
            "key": "MI_A_2"
            "key": "QK_MIDI_NOTE_A_2",
            "aliases": [
                "MI_A2"
            ]
        },
        "0x713A": {
            "group": "midi",
            "key": "MI_As_2",
            "key": "QK_MIDI_NOTE_A_SHARP_2",
            "aliases": [
                "MI_Bb_2"
                "MI_As2",
                "MI_Bb2"
            ]
        },
        "0x713B": {
            "group": "midi",
            "key": "MI_B_2"
            "key": "QK_MIDI_NOTE_B_2",
            "aliases": [
                "MI_B2"
            ]
        },
        "0x7140": {
            "group": "midi",
            "key": "MI_C_3"
            "key": "QK_MIDI_NOTE_C_3",
            "aliases": [
                "MI_C3"
            ]
        },
        "0x7141": {
            "group": "midi",
            "key": "MI_Cs_3",
            "key": "QK_MIDI_NOTE_C_SHARP_3",
            "aliases": [
                "MI_Db_3"
                "MI_Cs3",
                "MI_Db3"
            ]
        },
        "0x7142": {
            "group": "midi",
            "key": "MI_D_3"
            "key": "QK_MIDI_NOTE_D_3",
            "aliases": [
                "MI_D3"
            ]
        },
        "0x7143": {
            "group": "midi",
            "key": "MI_Ds_3",
            "key": "QK_MIDI_NOTE_D_SHARP_3",
            "aliases": [
                "MI_Eb_3"
                "MI_Ds3",
                "MI_Eb3"
            ]
        },
        "0x7144": {
            "group": "midi",
            "key": "MI_E_3"
            "key": "QK_MIDI_NOTE_E_3",
            "aliases": [
                "MI_E3"
            ]
        },
        "0x7145": {
            "group": "midi",
            "key": "MI_F_3"
            "key": "QK_MIDI_NOTE_F_3",
            "aliases": [
                "MI_F3"
            ]
        },
        "0x7146": {
            "group": "midi",
            "key": "MI_Fs_3",
            "key": "QK_MIDI_NOTE_F_SHARP_3",
            "aliases": [
                "MI_Gb_3"
                "MI_Fs3",
                "MI_Gb3"
            ]
        },
        "0x7147": {
            "group": "midi",
            "key": "MI_G_3"
            "key": "QK_MIDI_NOTE_G_3",
            "aliases": [
                "MI_G3"
            ]
        },
        "0x7148": {
            "group": "midi",
            "key": "MI_Gs_3",
            "key": "QK_MIDI_NOTE_G_SHARP_3",
            "aliases": [
                "MI_Ab_3"
                "MI_Gs3",
                "MI_Ab3"
            ]
        },
        "0x7149": {
            "group": "midi",
            "key": "MI_A_3"
            "key": "QK_MIDI_NOTE_A_3",
            "aliases": [
                "MI_A3"
            ]
        },
        "0x714A": {
            "group": "midi",
            "key": "MI_As_3",
            "key": "QK_MIDI_NOTE_A_SHARP_3",
            "aliases": [
                "MI_Bb_3"
                "MI_As3",
                "MI_Bb3"
            ]
        },
        "0x714B": {
            "group": "midi",
            "key": "MI_B_3"
            "key": "QK_MIDI_NOTE_B_3",
            "aliases": [
                "MI_B3"
            ]
        },
        "0x7150": {
            "group": "midi",
            "key": "MI_C_4"
            "key": "QK_MIDI_NOTE_C_4",
            "aliases": [
                "MI_C4"
            ]
        },
        "0x7151": {
            "group": "midi",
            "key": "MI_Cs_4",
            "key": "QK_MIDI_NOTE_C_SHARP_4",
            "aliases": [
                "MI_Db_4"
                "MI_Cs4",
                "MI_Db4"
            ]
        },
        "0x7152": {
            "group": "midi",
            "key": "MI_D_4"
            "key": "QK_MIDI_NOTE_D_4",
            "aliases": [
                "MI_D4"
            ]
        },
        "0x7153": {
            "group": "midi",
            "key": "MI_Ds_4",
            "key": "QK_MIDI_NOTE_D_SHARP_4",
            "aliases": [
                "MI_Eb_4"
                "MI_Ds4",
                "MI_Eb4"
            ]
        },
        "0x7154": {
            "group": "midi",
            "key": "MI_E_4"
            "key": "QK_MIDI_NOTE_E_4",
            "aliases": [
                "MI_E4"
            ]
        },
        "0x7155": {
            "group": "midi",
            "key": "MI_F_4"
            "key": "QK_MIDI_NOTE_F_4",
            "aliases": [
                "MI_F4"
            ]
        },
        "0x7156": {
            "group": "midi",
            "key": "MI_Fs_4",
            "key": "QK_MIDI_NOTE_F_SHARP_4",
            "aliases": [
                "MI_Gb_4"
                "MI_Fs4",
                "MI_Gb4"
            ]
        },
        "0x7157": {
            "group": "midi",
            "key": "MI_G_4"
            "key": "QK_MIDI_NOTE_G_4",
            "aliases": [
                "MI_G4"
            ]
        },
        "0x7158": {
            "group": "midi",
            "key": "MI_Gs_4",
            "key": "QK_MIDI_NOTE_G_SHARP_4",
            "aliases": [
                "MI_Ab_4"
                "MI_Gs4",
                "MI_Ab4"
            ]
        },
        "0x7159": {
            "group": "midi",
            "key": "MI_A_4"
            "key": "QK_MIDI_NOTE_A_4",
            "aliases": [
                "MI_A4"
            ]
        },
        "0x715A": {
            "group": "midi",
            "key": "MI_As_4",
            "key": "QK_MIDI_NOTE_A_SHARP_4",
            "aliases": [
                "MI_Bb_4"
                "MI_As4",
                "MI_Bb4"
            ]
        },
        "0x715B": {
            "group": "midi",
            "key": "MI_B_4"
            "key": "QK_MIDI_NOTE_B_4",
            "aliases": [
                "MI_B4"
            ]
        },
        "0x7160": {
            "group": "midi",
            "key": "MI_C_5"
            "key": "QK_MIDI_NOTE_C_5",
            "aliases": [
                "MI_C5"
            ]
        },
        "0x7161": {
            "group": "midi",
            "key": "MI_Cs_5",
            "key": "QK_MIDI_NOTE_C_SHARP_5",
            "aliases": [
                "MI_Db_5"
                "MI_Cs5",
                "MI_Db5"
            ]
        },
        "0x7162": {
            "group": "midi",
            "key": "MI_D_5"
            "key": "QK_MIDI_NOTE_D_5",
            "aliases": [
                "MI_D5"
            ]
        },
        "0x7163": {
            "group": "midi",
            "key": "MI_Ds_5",
            "key": "QK_MIDI_NOTE_D_SHARP_5",
            "aliases": [
                "MI_Eb_5"
                "MI_Ds5",
                "MI_Eb5"
            ]
        },
        "0x7164": {
            "group": "midi",
            "key": "MI_E_5"
            "key": "QK_MIDI_NOTE_E_5",
            "aliases": [
                "MI_E5"
            ]
        },
        "0x7165": {
            "group": "midi",
            "key": "MI_F_5"
            "key": "QK_MIDI_NOTE_F_5",
            "aliases": [
                "MI_F5"
            ]
        },
        "0x7166": {
            "group": "midi",
            "key": "MI_Fs_5",
            "key": "QK_MIDI_NOTE_F_SHARP_5",
            "aliases": [
                "MI_Gb_5"
                "MI_Fs5",
                "MI_Gb5"
            ]
        },
        "0x7167": {
            "group": "midi",
            "key": "MI_G_5"
            "key": "QK_MIDI_NOTE_G_5",
            "aliases": [
                "MI_G5"
            ]
        },
        "0x7168": {
            "group": "midi",
            "key": "MI_Gs_5",
            "key": "QK_MIDI_NOTE_G_SHARP_5",
            "aliases": [
                "MI_Ab_5"
                "MI_Gs5",
                "MI_Ab5"
            ]
        },
        "0x7169": {
            "group": "midi",
            "key": "MI_A_5"
            "key": "QK_MIDI_NOTE_A_5",
            "aliases": [
                "MI_A5"
            ]
        },
        "0x716A": {
            "group": "midi",
            "key": "MI_As_5",
            "key": "QK_MIDI_NOTE_A_SHARP_5",
            "aliases": [
                "MI_Bb_5"
                "MI_As5",
                "MI_Bb5"
            ]
        },
        "0x716B": {
            "group": "midi",
            "key": "MI_B_5"
            "key": "QK_MIDI_NOTE_B_5",
            "aliases": [
                "MI_B5"
            ]
        },
        "0x7170": {
            "group": "midi",
            "key": "MI_OCT_N2"
            "key": "QK_MIDI_OCTAVE_N2",
            "aliases": [
                "MI_OCN2"
            ]
        },
        "0x7171": {
            "group": "midi",
            "key": "MI_OCT_N1"
            "key": "QK_MIDI_OCTAVE_N1",
            "aliases": [
                "MI_OCN1"
            ]
        },
        "0x7172": {
            "group": "midi",
            "key": "MI_OCT_0"
            "key": "QK_MIDI_OCTAVE_0",
            "aliases": [
                "MI_OC0"
            ]
        },
        "0x7173": {
            "group": "midi",
            "key": "MI_OCT_1"
            "key": "QK_MIDI_OCTAVE_1",
            "aliases": [
                "MI_OC1"
            ]
        },
        "0x7174": {
            "group": "midi",
            "key": "MI_OCT_2"
            "key": "QK_MIDI_OCTAVE_2",
            "aliases": [
                "MI_OC2"
            ]
        },
        "0x7175": {
            "group": "midi",
            "key": "MI_OCT_3"
            "key": "QK_MIDI_OCTAVE_3",
            "aliases": [
                "MI_OC3"
            ]
        },
        "0x7176": {
            "group": "midi",
            "key": "MI_OCT_4"
            "key": "QK_MIDI_OCTAVE_4",
            "aliases": [
                "MI_OC4"
            ]
        },
        "0x7177": {
            "group": "midi",
            "key": "MI_OCT_5"
            "key": "QK_MIDI_OCTAVE_5",
            "aliases": [
                "MI_OC5"
            ]
        },
        "0x7178": {
            "group": "midi",
            "key": "MI_OCT_6"
            "key": "QK_MIDI_OCTAVE_6",
            "aliases": [
                "MI_OC6"
            ]
        },
        "0x7179": {
            "group": "midi",
            "key": "MI_OCT_7"
            "key": "QK_MIDI_OCTAVE_7",
            "aliases": [
                "MI_OC7"
            ]
        },
        "0x717A": {
            "group": "midi",
            "key": "MI_OCTD"
            "key": "QK_MIDI_OCTAVE_DOWN",
            "aliases": [
                "MI_OCTD"
            ]
        },
        "0x717B": {
            "group": "midi",
            "key": "MI_OCTU"
            "key": "QK_MIDI_OCTAVE_UP",
            "aliases": [
                "MI_OCTU"
            ]
        },
        "0x7180": {
            "group": "midi",
            "key": "MI_TRNS_N6"
            "key": "QK_MIDI_TRANSPOSE_N6",
            "aliases": [
                "MI_TRN6"
            ]
        },
        "0x7181": {
            "group": "midi",
            "key": "MI_TRNS_N5"
            "key": "QK_MIDI_TRANSPOSE_N5",
            "aliases": [
                "MI_TRN5"
            ]
        },
        "0x7182": {
            "group": "midi",
            "key": "MI_TRNS_N4"
            "key": "QK_MIDI_TRANSPOSE_N4",
            "aliases": [
                "MI_TRN4"
            ]
        },
        "0x7183": {
            "group": "midi",
            "key": "MI_TRNS_N3"
            "key": "QK_MIDI_TRANSPOSE_N3",
            "aliases": [
                "MI_TRN3"
            ]
        },
        "0x7184": {
            "group": "midi",
            "key": "MI_TRNS_N2"
            "key": "QK_MIDI_TRANSPOSE_N2",
            "aliases": [
                "MI_TRN2"
            ]
        },
        "0x7185": {
            "group": "midi",
            "key": "MI_TRNS_N1"
            "key": "QK_MIDI_TRANSPOSE_N1",
            "aliases": [
                "MI_TRN1"
            ]
        },
        "0x7186": {
            "group": "midi",
            "key": "MI_TRNS_0"
            "key": "QK_MIDI_TRANSPOSE_0",
            "aliases": [
                "MI_TR0"
            ]
        },
        "0x7187": {
            "group": "midi",
            "key": "MI_TRNS_1"
            "key": "QK_MIDI_TRANSPOSE_1",
            "aliases": [
                "MI_TR1"
            ]
        },
        "0x7188": {
            "group": "midi",
            "key": "MI_TRNS_2"
            "key": "QK_MIDI_TRANSPOSE_2",
            "aliases": [
                "MI_TR2"
            ]
        },
        "0x7189": {
            "group": "midi",
            "key": "MI_TRNS_3"
            "key": "QK_MIDI_TRANSPOSE_3",
            "aliases": [
                "MI_TR3"
            ]
        },
        "0x718A": {
            "group": "midi",
            "key": "MI_TRNS_4"
            "key": "QK_MIDI_TRANSPOSE_4",
            "aliases": [
                "MI_TR4"
            ]
        },
        "0x718B": {
            "group": "midi",
            "key": "MI_TRNS_5"
            "key": "QK_MIDI_TRANSPOSE_5",
            "aliases": [
                "MI_TR5"
            ]
        },
        "0x718C": {
            "group": "midi",
            "key": "MI_TRNS_6"
            "key": "QK_MIDI_TRANSPOSE_6",
            "aliases": [
                "MI_TR6"
            ]
        },
        "0x718D": {
            "group": "midi",
            "key": "MI_TRNSD"
            "key": "QK_MIDI_TRANSPOSE_DOWN",
            "aliases": [
                "MI_TRSD"
            ]
        },
        "0x718E": {
            "group": "midi",
            "key": "MI_TRNSU"
            "key": "QK_MIDI_TRANSPOSE_UP",
            "aliases": [
                "MI_TRSU"
            ]
        },
        "0x7190": {
            "group": "midi",
            "key": "MI_VEL_0"
            "key": "QK_MIDI_VELOCITY_0",
            "aliases": [
                "MI_VL0"
            ]
        },
        "0x7191": {
            "group": "midi",
            "key": "MI_VEL_1"
            "key": "QK_MIDI_VELOCITY_1",
            "aliases": [
                "MI_VL1"
            ]
        },
        "0x7192": {
            "group": "midi",
            "key": "MI_VEL_2"
            "key": "QK_MIDI_VELOCITY_2",
            "aliases": [
                "MI_VL2"
            ]
        },
        "0x7193": {
            "group": "midi",
            "key": "MI_VEL_3"
            "key": "QK_MIDI_VELOCITY_3",
            "aliases": [
                "MI_VL3"
            ]
        },
        "0x7194": {
            "group": "midi",
            "key": "MI_VEL_4"
            "key": "QK_MIDI_VELOCITY_4",
            "aliases": [
                "MI_VL4"
            ]
        },
        "0x7195": {
            "group": "midi",
            "key": "MI_VEL_5"
            "key": "QK_MIDI_VELOCITY_5",
            "aliases": [
                "MI_VL5"
            ]
        },
        "0x7196": {
            "group": "midi",
            "key": "MI_VEL_6"
            "key": "QK_MIDI_VELOCITY_6",
            "aliases": [
                "MI_VL6"
            ]
        },
        "0x7197": {
            "group": "midi",
            "key": "MI_VEL_7"
            "key": "QK_MIDI_VELOCITY_7",
            "aliases": [
                "MI_VL7"
            ]
        },
        "0x7198": {
            "group": "midi",
            "key": "MI_VEL_8"
            "key": "QK_MIDI_VELOCITY_8",
            "aliases": [
                "MI_VL8"
            ]
        },
        "0x7199": {
            "group": "midi",
            "key": "MI_VEL_9"
            "key": "QK_MIDI_VELOCITY_9",
            "aliases": [
                "MI_VL9"
            ]
        },
        "0x719A": {
            "group": "midi",
            "key": "MI_VEL_10"
            "key": "QK_MIDI_VELOCITY_10",
            "aliases": [
                "MI_VL10"
            ]
        },
        "0x719B": {
            "group": "midi",
            "key": "MI_VELD"
            "key": "QK_MIDI_VELOCITY_DOWN",
            "aliases": [
                "MI_VELD"
            ]
        },
        "0x719C": {
            "group": "midi",
            "key": "MI_VELU"
            "key": "QK_MIDI_VELOCITY_UP",
            "aliases": [
                "MI_VELU"
            ]
        },
        "0x71A0": {
            "group": "midi",
            "key": "MI_CH1"
            "key": "QK_MIDI_CHANNEL_1",
            "aliases": [
                "MI_CH1"
            ]
        },
        "0x71A1": {
            "group": "midi",
            "key": "MI_CH2"
            "key": "QK_MIDI_CHANNEL_2",
            "aliases": [
                "MI_CH2"
            ]
        },
        "0x71A2": {
            "group": "midi",
            "key": "MI_CH3"
            "key": "QK_MIDI_CHANNEL_3",
            "aliases": [
                "MI_CH3"
            ]
        },
        "0x71A3": {
            "group": "midi",
            "key": "MI_CH4"
            "key": "QK_MIDI_CHANNEL_4",
            "aliases": [
                "MI_CH4"
            ]
        },
        "0x71A4": {
            "group": "midi",
            "key": "MI_CH5"
            "key": "QK_MIDI_CHANNEL_5",
            "aliases": [
                "MI_CH5"
            ]
        },
        "0x71A5": {
            "group": "midi",
            "key": "MI_CH6"
            "key": "QK_MIDI_CHANNEL_6",
            "aliases": [
                "MI_CH6"
            ]
        },
        "0x71A6": {
            "group": "midi",
            "key": "MI_CH7"
            "key": "QK_MIDI_CHANNEL_7",
            "aliases": [
                "MI_CH7"
            ]
        },
        "0x71A7": {
            "group": "midi",
            "key": "MI_CH8"
            "key": "QK_MIDI_CHANNEL_8",
            "aliases": [
                "MI_CH8"
            ]
        },
        "0x71A8": {
            "group": "midi",
            "key": "MI_CH9"
            "key": "QK_MIDI_CHANNEL_9",
            "aliases": [
                "MI_CH9"
            ]
        },
        "0x71A9": {
            "group": "midi",
            "key": "MI_CH10"
            "key": "QK_MIDI_CHANNEL_10",
            "aliases": [
                "MI_CH10"
            ]
        },
        "0x71AA": {
            "group": "midi",
            "key": "MI_CH11"
            "key": "QK_MIDI_CHANNEL_11",
            "aliases": [
                "MI_CH11"
            ]
        },
        "0x71AB": {
            "group": "midi",
            "key": "MI_CH12"
            "key": "QK_MIDI_CHANNEL_12",
            "aliases": [
                "MI_CH12"
            ]
        },
        "0x71AC": {
            "group": "midi",
            "key": "MI_CH13"
            "key": "QK_MIDI_CHANNEL_13",
            "aliases": [
                "MI_CH13"
            ]
        },
        "0x71AD": {
            "group": "midi",
            "key": "MI_CH14"
            "key": "QK_MIDI_CHANNEL_14",
            "aliases": [
                "MI_CH14"
            ]
        },
        "0x71AE": {
            "group": "midi",
            "key": "MI_CH15"
            "key": "QK_MIDI_CHANNEL_15",
            "aliases": [
                "MI_CH15"
            ]
        },
        "0x71AF": {
            "group": "midi",
            "key": "MI_CH16"
            "key": "QK_MIDI_CHANNEL_16",
            "aliases": [
                "MI_CH16"
            ]
        },
        "0x71B0": {
            "group": "midi",
            "key": "MI_CHD"
            "key": "QK_MIDI_CHANNEL_DOWN",
            "aliases": [
                "MI_CHND"
            ]
        },
        "0x71B1": {
            "group": "midi",
            "key": "MI_CHU"
            "key": "QK_MIDI_CHANNEL_UP",
            "aliases": [
                "MI_CHNU"
            ]
        },
        "0x71C0": {
            "group": "midi",
            "key": "MI_ALLOFF"
            "key": "QK_MIDI_ALL_NOTES_OFF",
            "aliases": [
                "MI_AOFF"
            ]
        },
        "0x71C1": {
            "group": "midi",
            "key": "MI_SUS"
            "key": "QK_MIDI_SUSTAIN",
            "aliases": [
                "MI_SUST"
            ]
        },
        "0x71C2": {
            "group": "midi",
            "key": "MI_PORT"
            "key": "QK_MIDI_PORTAMENTO",
            "aliases": [
                "MI_PORT"
            ]
        },
        "0x71C3": {
            "group": "midi",
            "key": "MI_SOST"
            "key": "QK_MIDI_SOSTENUTO",
            "aliases": [
                "MI_SOST"
            ]
        },
        "0x71C4": {
            "group": "midi",
            "key": "MI_SOFT"
            "key": "QK_MIDI_SOFT",
            "aliases": [
                "MI_SOFT"
            ]
        },
        "0x71C5": {
            "group": "midi",
            "key": "MI_LEG"
            "key": "QK_MIDI_LEGATO",
            "aliases": [
                "MI_LEG"
            ]
        },
        "0x71C6": {
            "group": "midi",
            "key": "MI_MOD"
            "key": "QK_MIDI_MODULATION",
            "aliases": [
                "MI_MOD"
            ]
        },
        "0x71C7": {
            "group": "midi",
            "key": "MI_MODSD"
            "key": "QK_MIDI_MODULATION_SPEED_DOWN",
            "aliases": [
                "MI_MODD"
            ]
        },
        "0x71C8": {
            "group": "midi",
            "key": "MI_MODSU"
            "key": "QK_MIDI_MODULATION_SPEED_UP",
            "aliases": [
                "MI_MODU"
            ]
        },
        "0x71C9": {
            "group": "midi",
            "key": "MI_BENDD"
            "key": "QK_MIDI_PITCH_BEND_DOWN",
            "aliases": [
                "MI_BNDD"
            ]
        },
        "0x71CA": {
            "group": "midi",
            "key": "MI_BENDU"
            "key": "QK_MIDI_PITCH_BEND_UP",
            "aliases": [
                "MI_BNDU"
            ]
        }
    }
}

M docs/feature_midi.md => docs/feature_midi.md +153 -153
@@ 80,164 80,164 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

### Keycodes

|Keycode     |Aliases  |Description                      |
|------------|---------|---------------------------------|
|`MI_ON`     |         |Turn MIDI on                     |
|`MI_OFF`    |         |Turn MIDI off                    |
|`MI_TOG`    |         |Toggle MIDI enabled              |
|`MI_C`      |         |C octave 0                       |
|`MI_Cs`     |`MI_Db`  |C♯/D♭ octave 0                   |
|`MI_D`      |         |D octave 0                       |
|`MI_Ds`     |`MI_Eb`  |D♯/E♭ octave 0                   |
|`MI_E`      |         |E octave 0                       |
|`MI_F`      |         |F octave 0                       |
|`MI_Fs`     |`MI_Gb`  |F♯/G♭ octave 0                   |
|`MI_G`      |         |G octave 0                       |
|`MI_Gs`     |`MI_Gs`  |G♯/A♭ octave 0                   |
|`MI_A`      |         |A octave 0                       |
|`MI_As`     |`MI_Bb`  |A♯/B♭ octave 0                   |
|`MI_B`      |         |B octave 0                       |
|`MI_C_1`    |         |C octave 1                       |
|`MI_Cs_1`   |`MI_Db_1`|C♯/D♭ octave 1                   |
|`MI_D_1`    |         |D octave 1                       |
|`MI_Ds_1`   |`MI_Eb_1`|D♯/E♭ octave 1                   |
|`MI_E_1`    |         |E octave 1                       |
|`MI_F_1`    |         |F octave 1                       |
|`MI_Fs_1`   |`MI_Gb_1`|F♯/G♭ octave 1                   |
|`MI_G_1`    |         |G octave 1                       |
|`MI_Gs_1`   |`MI_Ab_1`|G♯/A♭ octave 1                   |
|`MI_A_1`    |         |A octave 1                       |
|`MI_As_1`   |`MI_Bb_1`|A♯/B♭ octave 1                   |
|`MI_B_1`    |         |B octave 1                       |
|`MI_C_2`    |         |C octave 2                       |
|`MI_Cs_2`   |`MI_Db_2`|C♯/D♭ octave 2                   |
|`MI_D_2`    |         |D octave 2                       |
|`MI_Ds_2`   |`MI_Eb_2`|D♯/E♭ octave 2                   |
|`MI_E_2`    |         |E octave 2                       |
|`MI_F_2`    |         |F octave 2                       |
|`MI_Fs_2`   |`MI_Gb_2`|F♯/G♭ octave 2                   |
|`MI_G_2`    |         |G octave 2                       |
|`MI_Gs_2`   |`MI_Ab_2`|G♯/A♭ octave 2                   |
|`MI_A_2`    |         |A octave 2                       |
|`MI_As_2`   |`MI_Bb_2`|A♯/B♭ octave 2                   |
|`MI_B_2`    |         |B octave 2                       |
|`MI_C_3`    |         |C octave 3                       |
|`MI_Cs_3`   |`MI_Db_3`|C♯/D♭ octave 3                   |
|`MI_D_3`    |         |D octave 3                       |
|`MI_Ds_3`   |`MI_Eb_3`|D♯/E♭ octave 3                   |
|`MI_E_3`    |         |E octave 3                       |
|`MI_F_3`    |         |F octave 3                       |
|`MI_Fs_3`   |`MI_Gb_3`|F♯/G♭ octave 3                   |
|`MI_G_3`    |         |G octave 3                       |
|`MI_Gs_3`   |`MI_Ab_3`|G♯/A♭ octave 3                   |
|`MI_A_3`    |         |A octave 3                       |
|`MI_As_3`   |`MI_Bb_3`|A♯/B♭ octave 3                   |
|`MI_B_3`    |         |B octave 3                       |
|`MI_C_4`    |         |C octave 4                       |
|`MI_Cs_4`   |`MI_Db_4`|C♯/D♭ octave 4                   |
|`MI_D_4`    |         |D octave 4                       |
|`MI_Ds_4`   |`MI_Eb_4`|D♯/E♭ octave 4                   |
|`MI_E_4`    |         |E octave 4                       |
|`MI_F_4`    |         |F octave 4                       |
|`MI_Fs_4`   |`MI_Gb_4`|F♯/G♭ octave 4                   |
|`MI_G_4`    |         |G octave 4                       |
|`MI_Gs_4`   |`MI_Ab_4`|G♯/A♭ octave 4                   |
|`MI_A_4`    |         |A octave 4                       |
|`MI_As_4`   |`MI_Bb_4`|A♯/B♭ octave 4                   |
|`MI_B_4`    |         |B octave 4                       |
|`MI_C_5`    |         |C octave 5                       |
|`MI_Cs_5`   |`MI_Db_5`|C♯/D♭ octave 5                   |
|`MI_D_5`    |         |D octave 5                       |
|`MI_Ds_5`   |`MI_Eb_5`|D♯/E♭ octave 5                   |
|`MI_E_5`    |         |E octave 5                       |
|`MI_F_5`    |         |F octave 5                       |
|`MI_Fs_5`   |`MI_Gb_5`|F♯/G♭ octave 5                   |
|`MI_G_5`    |         |G octave 5                       |
|`MI_Gs_5`   |`MI_Ab_5`|G♯/A♭ octave 5                   |
|`MI_A_5`    |         |A octave 5                       |
|`MI_As_5`   |`MI_Bb_5`|A♯/B♭ octave 5                   |
|`MI_B_5`    |         |B octave 5                       |
|`MI_OCT_N2` |         |Set octave to -2                 |
|`MI_OCT_N1` |         |Set octave to -1                 |
|`MI_OCT_0`  |         |Set octave to 0                  |
|`MI_OCT_1`  |         |Set octave to 1                  |
|`MI_OCT_2`  |         |Set octave to 2                  |
|`MI_OCT_3`  |         |Set octave to 3                  |
|`MI_OCT_4`  |         |Set octave to 4                  |
|`MI_OCT_5`  |         |Set octave to 5                  |
|`MI_OCT_6`  |         |Set octave to 6                  |
|`MI_OCT_7`  |         |Set octave to 7                  |
|`MI_OCTD`   |         |Move down an octave              |
|`MI_OCTU`   |         |Move up an octave                |
|`MI_TRNS_N6`|         |Set transposition to -6 semitones|
|`MI_TRNS_N5`|         |Set transposition to -5 semitones|
|`MI_TRNS_N4`|         |Set transposition to -4 semitones|
|`MI_TRNS_N3`|         |Set transposition to -3 semitones|
|`MI_TRNS_N2`|         |Set transposition to -2 semitones|
|`MI_TRNS_N1`|         |Set transposition to -1 semitone |
|`MI_TRNS_0` |         |No transposition                 |
|`MI_TRNS_1` |         |Set transposition to +1 semitone |
|`MI_TRNS_2` |         |Set transposition to +2 semitones|
|`MI_TRNS_3` |         |Set transposition to +3 semitones|
|`MI_TRNS_4` |         |Set transposition to +4 semitones|
|`MI_TRNS_5` |         |Set transposition to +5 semitones|
|`MI_TRNS_6` |         |Set transposition to +6 semitones|
|`MI_TRNSD`  |         |Decrease transposition           |
|`MI_TRNSU`  |         |Increase transposition           |
|`MI_VEL_0`  |         |Set velocity to 0                |
|`MI_VEL_1`  |         |Set velocity to 12               |
|`MI_VEL_2`  |         |Set velocity to 25               |
|`MI_VEL_3`  |         |Set velocity to 38               |
|`MI_VEL_4`  |         |Set velocity to 51               |
|`MI_VEL_5`  |         |Set velocity to 64               |
|`MI_VEL_6`  |         |Set velocity to 76               |
|`MI_VEL_7`  |         |Set velocity to 89               |
|`MI_VEL_8`  |         |Set velocity to 102              |
|`MI_VEL_9`  |         |Set velocity to 114              |
|`MI_VEL_10` |         |Set velocity to 127              |
|`MI_VELD`   |         |Decrease velocity                |
|`MI_VELU`   |         |Increase velocity                |
|`MI_CH1`    |         |Set channel to 1                 |
|`MI_CH2`    |         |Set channel to 2                 |
|`MI_CH3`    |         |Set channel to 3                 |
|`MI_CH4`    |         |Set channel to 4                 |
|`MI_CH5`    |         |Set channel to 5                 |
|`MI_CH6`    |         |Set channel to 6                 |
|`MI_CH7`    |         |Set channel to 7                 |
|`MI_CH8`    |         |Set channel to 8                 |
|`MI_CH9`    |         |Set channel to 9                 |
|`MI_CH10`   |         |Set channel to 10                |
|`MI_CH11`   |         |Set channel to 11                |
|`MI_CH12`   |         |Set channel to 12                |
|`MI_CH13`   |         |Set channel to 13                |
|`MI_CH14`   |         |Set channel to 14                |
|`MI_CH15`   |         |Set channel to 15                |
|`MI_CH16`   |         |Set channel to 16                |
|`MI_CHD`    |         |Decrease channel                 |
|`MI_CHU`    |         |Increase channel                 |
|`MI_ALLOFF` |         |Stop all notes                   |
|`MI_SUS`    |         |Sustain                          |
|`MI_PORT`   |         |Portmento                        |
|`MI_SOST`   |         |Sostenuto                        |
|`MI_SOFT`   |         |Soft Pedal                       |
|`MI_LEG`    |         |Legato                           |
|`MI_MOD`    |         |Modulation                       |
|`MI_MODSD`  |         |Decrease modulation speed        |
|`MI_MODSU`  |         |Increase modulation speed        |
|`MI_BENDD`  |         |Bend pitch down                  |
|`MI_BENDU`  |         |Bend pitch up                    |
|Keycode                        |Aliases           |Description                      |
|-------------------------------|------------------|---------------------------------|
|`QK_MIDI_ON`                   |`MI_ON`           |Turn MIDI on                     |
|`QK_MIDI_OFF`                  |`MI_OFF`          |Turn MIDI off                    |
|`QK_MIDI_TOGGLE`               |`MI_TOGG`         |Toggle MIDI enabled              |
|`QK_MIDI_NOTE_C_0`             |`MI_C`            |C octave 0                       |
|`QK_MIDI_NOTE_C_SHARP_0`       |`MI_Cs`, `MI_Db`  |C♯/D♭ octave 0                   |
|`QK_MIDI_NOTE_D_0`             |`MI_D`            |D octave 0                       |
|`QK_MIDI_NOTE_D_SHARP_0`       |`MI_Ds`, `MI_Eb`  |D♯/E♭ octave 0                   |
|`QK_MIDI_NOTE_E_0`             |`MI_E`            |E octave 0                       |
|`QK_MIDI_NOTE_F_0`             |`MI_F`            |F octave 0                       |
|`QK_MIDI_NOTE_F_SHARP_0`       |`MI_Fs`, `MI_Gb`  |F♯/G♭ octave 0                   |
|`QK_MIDI_NOTE_G_0`             |`MI_G`            |G octave 0                       |
|`QK_MIDI_NOTE_G_SHARP_0`       |`MI_Gs`, `MI_Ab`  |G♯/A♭ octave 0                   |
|`QK_MIDI_NOTE_A_0`             |`MI_A`            |A octave 0                       |
|`QK_MIDI_NOTE_A_SHARP_0`       |`MI_As`, `MI_Bb`  |A♯/B♭ octave 0                   |
|`QK_MIDI_NOTE_B_0`             |`MI_B`            |B octave 0                       |
|`QK_MIDI_NOTE_C_1`             |`MI_C1`           |C octave 1                       |
|`QK_MIDI_NOTE_C_SHARP_1`       |`MI_Cs1`, `MI_Db1`|C♯/D♭ octave 1                   |
|`QK_MIDI_NOTE_D_1`             |`MI_D1`           |D octave 1                       |
|`QK_MIDI_NOTE_D_SHARP_1`       |`MI_Ds1`, `MI_Eb1`|D♯/E♭ octave 1                   |
|`QK_MIDI_NOTE_E_1`             |`MI_E1`           |E octave 1                       |
|`QK_MIDI_NOTE_F_1`             |`MI_F1`           |F octave 1                       |
|`QK_MIDI_NOTE_F_SHARP_1`       |`MI_Fs1`, `MI_Gb1`|F♯/G♭ octave 1                   |
|`QK_MIDI_NOTE_G_1`             |`MI_G1`           |G octave 1                       |
|`QK_MIDI_NOTE_G_SHARP_1`       |`MI_Gs1`, `MI_Ab1`|G♯/A♭ octave 1                   |
|`QK_MIDI_NOTE_A_1`             |`MI_A1`           |A octave 1                       |
|`QK_MIDI_NOTE_A_SHARP_1`       |`MI_As1`, `MI_Bb1`|A♯/B♭ octave 1                   |
|`QK_MIDI_NOTE_B_1`             |`MI_B1`           |B octave 1                       |
|`QK_MIDI_NOTE_C_2`             |`MI_C2`           |C octave 2                       |
|`QK_MIDI_NOTE_C_SHARP_2`       |`MI_Cs2`, `MI_Db2`|C♯/D♭ octave 2                   |
|`QK_MIDI_NOTE_D_2`             |`MI_D2`           |D octave 2                       |
|`QK_MIDI_NOTE_D_SHARP_2`       |`MI_Ds2`, `MI_Eb2`|D♯/E♭ octave 2                   |
|`QK_MIDI_NOTE_E_2`             |`MI_E2`           |E octave 2                       |
|`QK_MIDI_NOTE_F_2`             |`MI_F2`           |F octave 2                       |
|`QK_MIDI_NOTE_F_SHARP_2`       |`MI_Fs2`, `MI_Gb2`|F♯/G♭ octave 2                   |
|`QK_MIDI_NOTE_G_2`             |`MI_G2`           |G octave 2                       |
|`QK_MIDI_NOTE_G_SHARP_2`       |`MI_Gs2`, `MI_Ab2`|G♯/A♭ octave 2                   |
|`QK_MIDI_NOTE_A_2`             |`MI_A2`           |A octave 2                       |
|`QK_MIDI_NOTE_A_SHARP_2`       |`MI_As2`, `MI_Bb2`|A♯/B♭ octave 2                   |
|`QK_MIDI_NOTE_B_2`             |`MI_B2`           |B octave 2                       |
|`QK_MIDI_NOTE_C_3`             |`MI_C3`           |C octave 3                       |
|`QK_MIDI_NOTE_C_SHARP_3`       |`MI_Cs3`, `MI_Db3`|C♯/D♭ octave 3                   |
|`QK_MIDI_NOTE_D_3`             |`MI_D3`           |D octave 3                       |
|`QK_MIDI_NOTE_D_SHARP_3`       |`MI_Ds3`, `MI_Eb3`|D♯/E♭ octave 3                   |
|`QK_MIDI_NOTE_E_3`             |`MI_E3`           |E octave 3                       |
|`QK_MIDI_NOTE_F_3`             |`MI_F3`           |F octave 3                       |
|`QK_MIDI_NOTE_F_SHARP_3`       |`MI_Fs3`, `MI_Gb3`|F♯/G♭ octave 3                   |
|`QK_MIDI_NOTE_G_3`             |`MI_G3`           |G octave 3                       |
|`QK_MIDI_NOTE_G_SHARP_3`       |`MI_Gs3`, `MI_Ab3`|G♯/A♭ octave 3                   |
|`QK_MIDI_NOTE_A_3`             |`MI_A3`           |A octave 3                       |
|`QK_MIDI_NOTE_A_SHARP_3`       |`MI_As3`, `MI_Bb3`|A♯/B♭ octave 3                   |
|`QK_MIDI_NOTE_B_3`             |`MI_B3`           |B octave 3                       |
|`QK_MIDI_NOTE_C_4`             |`MI_C4`           |C octave 4                       |
|`QK_MIDI_NOTE_C_SHARP_4`       |`MI_Cs4`, `MI_Db4`|C♯/D♭ octave 4                   |
|`QK_MIDI_NOTE_D_4`             |`MI_D4`           |D octave 4                       |
|`QK_MIDI_NOTE_D_SHARP_4`       |`MI_Ds4`, `MI_Eb4`|D♯/E♭ octave 4                   |
|`QK_MIDI_NOTE_E_4`             |`MI_E4`           |E octave 4                       |
|`QK_MIDI_NOTE_F_4`             |`MI_F4`           |F octave 4                       |
|`QK_MIDI_NOTE_F_SHARP_4`       |`MI_Fs4`, `MI_Gb4`|F♯/G♭ octave 4                   |
|`QK_MIDI_NOTE_G_4`             |`MI_G4`           |G octave 4                       |
|`QK_MIDI_NOTE_G_SHARP_4`       |`MI_Gs4`, `MI_Ab4`|G♯/A♭ octave 4                   |
|`QK_MIDI_NOTE_A_4`             |`MI_A4`           |A octave 4                       |
|`QK_MIDI_NOTE_A_SHARP_4`       |`MI_As4`, `MI_Bb4`|A♯/B♭ octave 4                   |
|`QK_MIDI_NOTE_B_4`             |`MI_B4`           |B octave 4                       |
|`QK_MIDI_NOTE_C_5`             |`MI_C5`           |C octave 5                       |
|`QK_MIDI_NOTE_C_SHARP_5`       |`MI_Cs5`, `MI_Db5`|C♯/D♭ octave 5                   |
|`QK_MIDI_NOTE_D_5`             |`MI_D5`           |D octave 5                       |
|`QK_MIDI_NOTE_D_SHARP_5`       |`MI_Ds5`, `MI_Eb5`|D♯/E♭ octave 5                   |
|`QK_MIDI_NOTE_E_5`             |`MI_E5`           |E octave 5                       |
|`QK_MIDI_NOTE_F_5`             |`MI_F5`           |F octave 5                       |
|`QK_MIDI_NOTE_F_SHARP_5`       |`MI_Fs5`, `MI_Gb5`|F♯/G♭ octave 5                   |
|`QK_MIDI_NOTE_G_5`             |`MI_G5`           |G octave 5                       |
|`QK_MIDI_NOTE_G_SHARP_5`       |`MI_Gs5`, `MI_Ab5`|G♯/A♭ octave 5                   |
|`QK_MIDI_NOTE_A_5`             |`MI_A5`           |A octave 5                       |
|`QK_MIDI_NOTE_A_SHARP_5`       |`MI_As5`, `MI_Bb5`|A♯/B♭ octave 5                   |
|`QK_MIDI_NOTE_B_5`             |`MI_B5`           |B octave 5                       |
|`QK_MIDI_OCTAVE_N2`            |`MI_OCN2`         |Set octave to -2                 |
|`QK_MIDI_OCTAVE_N1`            |`MI_OCN1`         |Set octave to -1                 |
|`QK_MIDI_OCTAVE_0`             |`MI_OC0`          |Set octave to 0                  |
|`QK_MIDI_OCTAVE_1`             |`MI_OC1`          |Set octave to 1                  |
|`QK_MIDI_OCTAVE_2`             |`MI_OC2`          |Set octave to 2                  |
|`QK_MIDI_OCTAVE_3`             |`MI_OC3`          |Set octave to 3                  |
|`QK_MIDI_OCTAVE_4`             |`MI_OC4`          |Set octave to 4                  |
|`QK_MIDI_OCTAVE_5`             |`MI_OC5`          |Set octave to 5                  |
|`QK_MIDI_OCTAVE_6`             |`MI_OC6`          |Set octave to 6                  |
|`QK_MIDI_OCTAVE_7`             |`MI_OC7`          |Set octave to 7                  |
|`QK_MIDI_OCTAVE_DOWN`          |`MI_OCTD`         |Move down an octave              |
|`QK_MIDI_OCTAVE_UP`            |`MI_OCTU`         |Move up an octave                |
|`QK_MIDI_TRANSPOSE_N6`         |`MI_TRN6`         |Set transposition to -6 semitones|
|`QK_MIDI_TRANSPOSE_N5`         |`MI_TRN5`         |Set transposition to -5 semitones|
|`QK_MIDI_TRANSPOSE_N4`         |`MI_TRN4`         |Set transposition to -4 semitones|
|`QK_MIDI_TRANSPOSE_N3`         |`MI_TRN3`         |Set transposition to -3 semitones|
|`QK_MIDI_TRANSPOSE_N2`         |`MI_TRN2`         |Set transposition to -2 semitones|
|`QK_MIDI_TRANSPOSE_N1`         |`MI_TRN1`         |Set transposition to -1 semitone |
|`QK_MIDI_TRANSPOSE_0`          |`MI_TR0`          |No transposition                 |
|`QK_MIDI_TRANSPOSE_1`          |`MI_TR1`          |Set transposition to +1 semitone |
|`QK_MIDI_TRANSPOSE_2`          |`MI_TR2`          |Set transposition to +2 semitones|
|`QK_MIDI_TRANSPOSE_3`          |`MI_TR3`          |Set transposition to +3 semitones|
|`QK_MIDI_TRANSPOSE_4`          |`MI_TR4`          |Set transposition to +4 semitones|
|`QK_MIDI_TRANSPOSE_5`          |`MI_TR5`          |Set transposition to +5 semitones|
|`QK_MIDI_TRANSPOSE_6`          |`MI_TR6`          |Set transposition to +6 semitones|
|`QK_MIDI_TRANSPOSE_DOWN`       |`MI_TRSD`         |Decrease transposition           |
|`QK_MIDI_TRANSPOSE_UP`         |`MI_TRSU`         |Increase transposition           |
|`QK_MIDI_VELOCITY_0`           |`MI_VL0`          |Set velocity to 0                |
|`QK_MIDI_VELOCITY_1`           |`MI_VL1`          |Set velocity to 12               |
|`QK_MIDI_VELOCITY_2`           |`MI_VL2`          |Set velocity to 25               |
|`QK_MIDI_VELOCITY_3`           |`MI_VL3`          |Set velocity to 38               |
|`QK_MIDI_VELOCITY_4`           |`MI_VL4`          |Set velocity to 51               |
|`QK_MIDI_VELOCITY_5`           |`MI_VL5`          |Set velocity to 64               |
|`QK_MIDI_VELOCITY_6`           |`MI_VL6`          |Set velocity to 76               |
|`QK_MIDI_VELOCITY_7`           |`MI_VL7`          |Set velocity to 89               |
|`QK_MIDI_VELOCITY_8`           |`MI_VL8`          |Set velocity to 102              |
|`QK_MIDI_VELOCITY_9`           |`MI_VL9`          |Set velocity to 114              |
|`QK_MIDI_VELOCITY_10`          |`MI_VL10`         |Set velocity to 127              |
|`QK_MIDI_VELOCITY_DOWN`        |`MI_VELD`         |Decrease velocity                |
|`QK_MIDI_VELOCITY_UP`          |`MI_VELU`         |Increase velocity                |
|`QK_MIDI_CHANNEL_1`            |`MI_CH1`          |Set channel to 1                 |
|`QK_MIDI_CHANNEL_2`            |`MI_CH2`          |Set channel to 2                 |
|`QK_MIDI_CHANNEL_3`            |`MI_CH3`          |Set channel to 3                 |
|`QK_MIDI_CHANNEL_4`            |`MI_CH4`          |Set channel to 4                 |
|`QK_MIDI_CHANNEL_5`            |`MI_CH5`          |Set channel to 5                 |
|`QK_MIDI_CHANNEL_6`            |`MI_CH6`          |Set channel to 6                 |
|`QK_MIDI_CHANNEL_7`            |`MI_CH7`          |Set channel to 7                 |
|`QK_MIDI_CHANNEL_8`            |`MI_CH8`          |Set channel to 8                 |
|`QK_MIDI_CHANNEL_9`            |`MI_CH9`          |Set channel to 9                 |
|`QK_MIDI_CHANNEL_10`           |`MI_CH10`         |Set channel to 10                |
|`QK_MIDI_CHANNEL_11`           |`MI_CH11`         |Set channel to 11                |
|`QK_MIDI_CHANNEL_12`           |`MI_CH12`         |Set channel to 12                |
|`QK_MIDI_CHANNEL_13`           |`MI_CH13`         |Set channel to 13                |
|`QK_MIDI_CHANNEL_14`           |`MI_CH14`         |Set channel to 14                |
|`QK_MIDI_CHANNEL_15`           |`MI_CH15`         |Set channel to 15                |
|`QK_MIDI_CHANNEL_16`           |`MI_CH16`         |Set channel to 16                |
|`QK_MIDI_CHANNEL_DOWN`         |`MI_CHND`         |Decrease channel                 |
|`QK_MIDI_CHANNEL_UP`           |`MI_CHNU`         |Increase channel                 |
|`QK_MIDI_ALL_NOTES_OFF`        |`MI_AOFF`         |Stop all notes                   |
|`QK_MIDI_SUSTAIN`              |`MI_SUST`         |Sustain                          |
|`QK_MIDI_PORTAMENTO`           |`MI_PORT`         |Portmento                        |
|`QK_MIDI_SOSTENUTO`            |`MI_SOST`         |Sostenuto                        |
|`QK_MIDI_SOFT`                 |`MI_SOFT`         |Soft Pedal                       |
|`QK_MIDI_LEGATO`               |`MI_LEG`          |Legato                           |
|`QK_MIDI_MODULATION`           |`MI_MOD`          |Modulation                       |
|`QK_MIDI_MODULATION_SPEED_DOWN`|`MI_MODD`         |Decrease modulation speed        |
|`QK_MIDI_MODULATION_SPEED_UP`  |`MI_MODU`         |Increase modulation speed        |
|`QK_MIDI_PITCH_BEND_DOWN`      |`MI_BNDD`         |Bend pitch down                  |
|`QK_MIDI_PITCH_BEND_UP`        |`MI_BNDU`         |Bend pitch up                    |

### Configuration

Certain values are stored in the `midi_config` struct. This configuration is not persisted to EEPROM. By default, these values are:

|Configuration      |Value|Comments                 |
|-------------------|-----|-------------------------|
|Octave             |`4`  |Corresponds to `MI_OCT_2`|
|Transposition      |`0`  |                         |
|Velocity           |`127`|                         |
|Channel            |`0`  |                         |
|Modulation Interval|`8`  |                         |
|Configuration      |Value|Comments               |
|-------------------|-----|-----------------------|
|Octave             |`4`  |Corresponds to `MI_OC2`|
|Transposition      |`0`  |                       |
|Velocity           |`127`|                       |
|Channel            |`0`  |                       |
|Modulation Interval|`8`  |                       |

For the above, the `MI_C` keycode will produce a C3 (note number 48), and so on.


M docs/keycodes.md => docs/keycodes.md +146 -146
@@ 442,152 442,152 @@ See also: [Magic Keycodes](keycodes_magic.md)

See also: [MIDI](feature_midi.md)

|Key         |Aliases  |Description                      |
|------------|---------|---------------------------------|
|`MI_ON`     |         |Turn MIDI on                     |
|`MI_OFF`    |         |Turn MIDI off                    |
|`MI_TOG`    |         |Toggle MIDI enabled              |
|`MI_C`      |         |C octave 0                       |
|`MI_Cs`     |`MI_Db`  |C♯/D♭ octave 0                   |
|`MI_D`      |         |D octave 0                       |
|`MI_Ds`     |`MI_Eb`  |D♯/E♭ octave 0                   |
|`MI_E`      |         |E octave 0                       |
|`MI_F`      |         |F octave 0                       |
|`MI_Fs`     |`MI_Gb`  |F♯/G♭ octave 0                   |
|`MI_G`      |         |G octave 0                       |
|`MI_Gs`     |`MI_Gs`  |G♯/A♭ octave 0                   |
|`MI_A`      |         |A octave 0                       |
|`MI_As`     |`MI_Bb`  |A♯/B♭ octave 0                   |
|`MI_B`      |         |B octave 0                       |
|`MI_C_1`    |         |C octave 1                       |
|`MI_Cs_1`   |`MI_Db_1`|C♯/D♭ octave 1                   |
|`MI_D_1`    |         |D octave 1                       |
|`MI_Ds_1`   |`MI_Eb_1`|D♯/E♭ octave 1                   |
|`MI_E_1`    |         |E octave 1                       |
|`MI_F_1`    |         |F octave 1                       |
|`MI_Fs_1`   |`MI_Gb_1`|F♯/G♭ octave 1                   |
|`MI_G_1`    |         |G octave 1                       |
|`MI_Gs_1`   |`MI_Ab_1`|G♯/A♭ octave 1                   |
|`MI_A_1`    |         |A octave 1                       |
|`MI_As_1`   |`MI_Bb_1`|A♯/B♭ octave 1                   |
|`MI_B_1`    |         |B octave 1                       |
|`MI_C_2`    |         |C octave 2                       |
|`MI_Cs_2`   |`MI_Db_2`|C♯/D♭ octave 2                   |
|`MI_D_2`    |         |D octave 2                       |
|`MI_Ds_2`   |`MI_Eb_2`|D♯/E♭ octave 2                   |
|`MI_E_2`    |         |E octave 2                       |
|`MI_F_2`    |         |F octave 2                       |
|`MI_Fs_2`   |`MI_Gb_2`|F♯/G♭ octave 2                   |
|`MI_G_2`    |         |G octave 2                       |
|`MI_Gs_2`   |`MI_Ab_2`|G♯/A♭ octave 2                   |
|`MI_A_2`    |         |A octave 2                       |
|`MI_As_2`   |`MI_Bb_2`|A♯/B♭ octave 2                   |
|`MI_B_2`    |         |B octave 2                       |
|`MI_C_3`    |         |C octave 3                       |
|`MI_Cs_3`   |`MI_Db_3`|C♯/D♭ octave 3                   |
|`MI_D_3`    |         |D octave 3                       |
|`MI_Ds_3`   |`MI_Eb_3`|D♯/E♭ octave 3                   |
|`MI_E_3`    |         |E octave 3                       |
|`MI_F_3`    |         |F octave 3                       |
|`MI_Fs_3`   |`MI_Gb_3`|F♯/G♭ octave 3                   |
|`MI_G_3`    |         |G octave 3                       |
|`MI_Gs_3`   |`MI_Ab_3`|G♯/A♭ octave 3                   |
|`MI_A_3`    |         |A octave 3                       |
|`MI_As_3`   |`MI_Bb_3`|A♯/B♭ octave 3                   |
|`MI_B_3`    |         |B octave 3                       |
|`MI_C_4`    |         |C octave 4                       |
|`MI_Cs_4`   |`MI_Db_4`|C♯/D♭ octave 4                   |
|`MI_D_4`    |         |D octave 4                       |
|`MI_Ds_4`   |`MI_Eb_4`|D♯/E♭ octave 4                   |
|`MI_E_4`    |         |E octave 4                       |
|`MI_F_4`    |         |F octave 4                       |
|`MI_Fs_4`   |`MI_Gb_4`|F♯/G♭ octave 4                   |
|`MI_G_4`    |         |G octave 4                       |
|`MI_Gs_4`   |`MI_Ab_4`|G♯/A♭ octave 4                   |
|`MI_A_4`    |         |A octave 4                       |
|`MI_As_4`   |`MI_Bb_4`|A♯/B♭ octave 4                   |
|`MI_B_4`    |         |B octave 4                       |
|`MI_C_5`    |         |C octave 5                       |
|`MI_Cs_5`   |`MI_Db_5`|C♯/D♭ octave 5                   |
|`MI_D_5`    |         |D octave 5                       |
|`MI_Ds_5`   |`MI_Eb_5`|D♯/E♭ octave 5                   |
|`MI_E_5`    |         |E octave 5                       |
|`MI_F_5`    |         |F octave 5                       |
|`MI_Fs_5`   |`MI_Gb_5`|F♯/G♭ octave 5                   |
|`MI_G_5`    |         |G octave 5                       |
|`MI_Gs_5`   |`MI_Ab_5`|G♯/A♭ octave 5                   |
|`MI_A_5`    |         |A octave 5                       |
|`MI_As_5`   |`MI_Bb_5`|A♯/B♭ octave 5                   |
|`MI_B_5`    |         |B octave 5                       |
|`MI_OCT_N2` |         |Set octave to -2                 |
|`MI_OCT_N1` |         |Set octave to -1                 |
|`MI_OCT_0`  |         |Set octave to 0                  |
|`MI_OCT_1`  |         |Set octave to 1                  |
|`MI_OCT_2`  |         |Set octave to 2                  |
|`MI_OCT_3`  |         |Set octave to 3                  |
|`MI_OCT_4`  |         |Set octave to 4                  |
|`MI_OCT_5`  |         |Set octave to 5                  |
|`MI_OCT_6`  |         |Set octave to 6                  |
|`MI_OCT_7`  |         |Set octave to 7                  |
|`MI_OCTD`   |         |Move down an octave              |
|`MI_OCTU`   |         |Move up an octave                |
|`MI_TRNS_N6`|         |Set transposition to -6 semitones|
|`MI_TRNS_N5`|         |Set transposition to -5 semitones|
|`MI_TRNS_N4`|         |Set transposition to -4 semitones|
|`MI_TRNS_N3`|         |Set transposition to -3 semitones|
|`MI_TRNS_N2`|         |Set transposition to -2 semitones|
|`MI_TRNS_N1`|         |Set transposition to -1 semitone |
|`MI_TRNS_0` |         |No transposition                 |
|`MI_TRNS_1` |         |Set transposition to +1 semitone |
|`MI_TRNS_2` |         |Set transposition to +2 semitones|
|`MI_TRNS_3` |         |Set transposition to +3 semitones|
|`MI_TRNS_4` |         |Set transposition to +4 semitones|
|`MI_TRNS_5` |         |Set transposition to +5 semitones|
|`MI_TRNS_6` |         |Set transposition to +6 semitones|
|`MI_TRNSD`  |         |Decrease transposition           |
|`MI_TRNSU`  |         |Increase transposition           |
|`MI_VEL_0`  |         |Set velocity to 0                |
|`MI_VEL_1`  |         |Set velocity to 12               |
|`MI_VEL_2`  |         |Set velocity to 25               |
|`MI_VEL_3`  |         |Set velocity to 38               |
|`MI_VEL_4`  |         |Set velocity to 51               |
|`MI_VEL_5`  |         |Set velocity to 64               |
|`MI_VEL_6`  |         |Set velocity to 76               |
|`MI_VEL_7`  |         |Set velocity to 89               |
|`MI_VEL_8`  |         |Set velocity to 102              |
|`MI_VEL_9`  |         |Set velocity to 114              |
|`MI_VEL_10` |         |Set velocity to 127              |
|`MI_VELD`   |         |Decrease velocity                |
|`MI_VELU`   |         |Increase velocity                |
|`MI_CH1`    |         |Set channel to 1                 |
|`MI_CH2`    |         |Set channel to 2                 |
|`MI_CH3`    |         |Set channel to 3                 |
|`MI_CH4`    |         |Set channel to 4                 |
|`MI_CH5`    |         |Set channel to 5                 |
|`MI_CH6`    |         |Set channel to 6                 |
|`MI_CH7`    |         |Set channel to 7                 |
|`MI_CH8`    |         |Set channel to 8                 |
|`MI_CH9`    |         |Set channel to 9                 |
|`MI_CH10`   |         |Set channel to 10                |
|`MI_CH11`   |         |Set channel to 11                |
|`MI_CH12`   |         |Set channel to 12                |
|`MI_CH13`   |         |Set channel to 13                |
|`MI_CH14`   |         |Set channel to 14                |
|`MI_CH15`   |         |Set channel to 15                |
|`MI_CH16`   |         |Set channel to 16                |
|`MI_CHD`    |         |Decrease channel                 |
|`MI_CHU`    |         |Increase channel                 |
|`MI_ALLOFF` |         |Stop all notes                   |
|`MI_SUS`    |         |Sustain                          |
|`MI_PORT`   |         |Portmento                        |
|`MI_SOST`   |         |Sostenuto                        |
|`MI_SOFT`   |         |Soft Pedal                       |
|`MI_LEG`    |         |Legato                           |
|`MI_MOD`    |         |Modulation                       |
|`MI_MODSD`  |         |Decrease modulation speed        |
|`MI_MODSU`  |         |Increase modulation speed        |
|`MI_BENDD`  |         |Bend pitch down                  |
|`MI_BENDU`  |         |Bend pitch up                    |
|Key                            |Aliases           |Description                      |
|-------------------------------|------------------|---------------------------------|
|`QK_MIDI_ON`                   |`MI_ON`           |Turn MIDI on                     |
|`QK_MIDI_OFF`                  |`MI_OFF`          |Turn MIDI off                    |
|`QK_MIDI_TOGGLE`               |`MI_TOGG`         |Toggle MIDI enabled              |
|`QK_MIDI_NOTE_C_0`             |`MI_C`            |C octave 0                       |
|`QK_MIDI_NOTE_C_SHARP_0`       |`MI_Cs`, `MI_Db`  |C♯/D♭ octave 0                   |
|`QK_MIDI_NOTE_D_0`             |`MI_D`            |D octave 0                       |
|`QK_MIDI_NOTE_D_SHARP_0`       |`MI_Ds`, `MI_Eb`  |D♯/E♭ octave 0                   |
|`QK_MIDI_NOTE_E_0`             |`MI_E`            |E octave 0                       |
|`QK_MIDI_NOTE_F_0`             |`MI_F`            |F octave 0                       |
|`QK_MIDI_NOTE_F_SHARP_0`       |`MI_Fs`, `MI_Gb`  |F♯/G♭ octave 0                   |
|`QK_MIDI_NOTE_G_0`             |`MI_G`            |G octave 0                       |
|`QK_MIDI_NOTE_G_SHARP_0`       |`MI_Gs`, `MI_Ab`  |G♯/A♭ octave 0                   |
|`QK_MIDI_NOTE_A_0`             |`MI_A`            |A octave 0                       |
|`QK_MIDI_NOTE_A_SHARP_0`       |`MI_As`, `MI_Bb`  |A♯/B♭ octave 0                   |
|`QK_MIDI_NOTE_B_0`             |`MI_B`            |B octave 0                       |
|`QK_MIDI_NOTE_C_1`             |`MI_C1`           |C octave 1                       |
|`QK_MIDI_NOTE_C_SHARP_1`       |`MI_Cs1`, `MI_Db1`|C♯/D♭ octave 1                   |
|`QK_MIDI_NOTE_D_1`             |`MI_D1`           |D octave 1                       |
|`QK_MIDI_NOTE_D_SHARP_1`       |`MI_Ds1`, `MI_Eb1`|D♯/E♭ octave 1                   |
|`QK_MIDI_NOTE_E_1`             |`MI_E1`           |E octave 1                       |
|`QK_MIDI_NOTE_F_1`             |`MI_F1`           |F octave 1                       |
|`QK_MIDI_NOTE_F_SHARP_1`       |`MI_Fs1`, `MI_Gb1`|F♯/G♭ octave 1                   |
|`QK_MIDI_NOTE_G_1`             |`MI_G1`           |G octave 1                       |
|`QK_MIDI_NOTE_G_SHARP_1`       |`MI_Gs1`, `MI_Ab1`|G♯/A♭ octave 1                   |
|`QK_MIDI_NOTE_A_1`             |`MI_A1`           |A octave 1                       |
|`QK_MIDI_NOTE_A_SHARP_1`       |`MI_As1`, `MI_Bb1`|A♯/B♭ octave 1                   |
|`QK_MIDI_NOTE_B_1`             |`MI_B1`           |B octave 1                       |
|`QK_MIDI_NOTE_C_2`             |`MI_C2`           |C octave 2                       |
|`QK_MIDI_NOTE_C_SHARP_2`       |`MI_Cs2`, `MI_Db2`|C♯/D♭ octave 2                   |
|`QK_MIDI_NOTE_D_2`             |`MI_D2`           |D octave 2                       |
|`QK_MIDI_NOTE_D_SHARP_2`       |`MI_Ds2`, `MI_Eb2`|D♯/E♭ octave 2                   |
|`QK_MIDI_NOTE_E_2`             |`MI_E2`           |E octave 2                       |
|`QK_MIDI_NOTE_F_2`             |`MI_F2`           |F octave 2                       |
|`QK_MIDI_NOTE_F_SHARP_2`       |`MI_Fs2`, `MI_Gb2`|F♯/G♭ octave 2                   |
|`QK_MIDI_NOTE_G_2`             |`MI_G2`           |G octave 2                       |
|`QK_MIDI_NOTE_G_SHARP_2`       |`MI_Gs2`, `MI_Ab2`|G♯/A♭ octave 2                   |
|`QK_MIDI_NOTE_A_2`             |`MI_A2`           |A octave 2                       |
|`QK_MIDI_NOTE_A_SHARP_2`       |`MI_As2`, `MI_Bb2`|A♯/B♭ octave 2                   |
|`QK_MIDI_NOTE_B_2`             |`MI_B2`           |B octave 2                       |
|`QK_MIDI_NOTE_C_3`             |`MI_C3`           |C octave 3                       |
|`QK_MIDI_NOTE_C_SHARP_3`       |`MI_Cs3`, `MI_Db3`|C♯/D♭ octave 3                   |
|`QK_MIDI_NOTE_D_3`             |`MI_D3`           |D octave 3                       |
|`QK_MIDI_NOTE_D_SHARP_3`       |`MI_Ds3`, `MI_Eb3`|D♯/E♭ octave 3                   |
|`QK_MIDI_NOTE_E_3`             |`MI_E3`           |E octave 3                       |
|`QK_MIDI_NOTE_F_3`             |`MI_F3`           |F octave 3                       |
|`QK_MIDI_NOTE_F_SHARP_3`       |`MI_Fs3`, `MI_Gb3`|F♯/G♭ octave 3                   |
|`QK_MIDI_NOTE_G_3`             |`MI_G3`           |G octave 3                       |
|`QK_MIDI_NOTE_G_SHARP_3`       |`MI_Gs3`, `MI_Ab3`|G♯/A♭ octave 3                   |
|`QK_MIDI_NOTE_A_3`             |`MI_A3`           |A octave 3                       |
|`QK_MIDI_NOTE_A_SHARP_3`       |`MI_As3`, `MI_Bb3`|A♯/B♭ octave 3                   |
|`QK_MIDI_NOTE_B_3`             |`MI_B3`           |B octave 3                       |
|`QK_MIDI_NOTE_C_4`             |`MI_C4`           |C octave 4                       |
|`QK_MIDI_NOTE_C_SHARP_4`       |`MI_Cs4`, `MI_Db4`|C♯/D♭ octave 4                   |
|`QK_MIDI_NOTE_D_4`             |`MI_D4`           |D octave 4                       |
|`QK_MIDI_NOTE_D_SHARP_4`       |`MI_Ds4`, `MI_Eb4`|D♯/E♭ octave 4                   |
|`QK_MIDI_NOTE_E_4`             |`MI_E4`           |E octave 4                       |
|`QK_MIDI_NOTE_F_4`             |`MI_F4`           |F octave 4                       |
|`QK_MIDI_NOTE_F_SHARP_4`       |`MI_Fs4`, `MI_Gb4`|F♯/G♭ octave 4                   |
|`QK_MIDI_NOTE_G_4`             |`MI_G4`           |G octave 4                       |
|`QK_MIDI_NOTE_G_SHARP_4`       |`MI_Gs4`, `MI_Ab4`|G♯/A♭ octave 4                   |
|`QK_MIDI_NOTE_A_4`             |`MI_A4`           |A octave 4                       |
|`QK_MIDI_NOTE_A_SHARP_4`       |`MI_As4`, `MI_Bb4`|A♯/B♭ octave 4                   |
|`QK_MIDI_NOTE_B_4`             |`MI_B4`           |B octave 4                       |
|`QK_MIDI_NOTE_C_5`             |`MI_C5`           |C octave 5                       |
|`QK_MIDI_NOTE_C_SHARP_5`       |`MI_Cs5`, `MI_Db5`|C♯/D♭ octave 5                   |
|`QK_MIDI_NOTE_D_5`             |`MI_D5`           |D octave 5                       |
|`QK_MIDI_NOTE_D_SHARP_5`       |`MI_Ds5`, `MI_Eb5`|D♯/E♭ octave 5                   |
|`QK_MIDI_NOTE_E_5`             |`MI_E5`           |E octave 5                       |
|`QK_MIDI_NOTE_F_5`             |`MI_F5`           |F octave 5                       |
|`QK_MIDI_NOTE_F_SHARP_5`       |`MI_Fs5`, `MI_Gb5`|F♯/G♭ octave 5                   |
|`QK_MIDI_NOTE_G_5`             |`MI_G5`           |G octave 5                       |
|`QK_MIDI_NOTE_G_SHARP_5`       |`MI_Gs5`, `MI_Ab5`|G♯/A♭ octave 5                   |
|`QK_MIDI_NOTE_A_5`             |`MI_A5`           |A octave 5                       |
|`QK_MIDI_NOTE_A_SHARP_5`       |`MI_As5`, `MI_Bb5`|A♯/B♭ octave 5                   |
|`QK_MIDI_NOTE_B_5`             |`MI_B5`           |B octave 5                       |
|`QK_MIDI_OCTAVE_N2`            |`MI_OCN2`         |Set octave to -2                 |
|`QK_MIDI_OCTAVE_N1`            |`MI_OCN1`         |Set octave to -1                 |
|`QK_MIDI_OCTAVE_0`             |`MI_OC0`          |Set octave to 0                  |
|`QK_MIDI_OCTAVE_1`             |`MI_OC1`          |Set octave to 1                  |
|`QK_MIDI_OCTAVE_2`             |`MI_OC2`          |Set octave to 2                  |
|`QK_MIDI_OCTAVE_3`             |`MI_OC3`          |Set octave to 3                  |
|`QK_MIDI_OCTAVE_4`             |`MI_OC4`          |Set octave to 4                  |
|`QK_MIDI_OCTAVE_5`             |`MI_OC5`          |Set octave to 5                  |
|`QK_MIDI_OCTAVE_6`             |`MI_OC6`          |Set octave to 6                  |
|`QK_MIDI_OCTAVE_7`             |`MI_OC7`          |Set octave to 7                  |
|`QK_MIDI_OCTAVE_DOWN`          |`MI_OCTD`         |Move down an octave              |
|`QK_MIDI_OCTAVE_UP`            |`MI_OCTU`         |Move up an octave                |
|`QK_MIDI_TRANSPOSE_N6`         |`MI_TRN6`         |Set transposition to -6 semitones|
|`QK_MIDI_TRANSPOSE_N5`         |`MI_TRN5`         |Set transposition to -5 semitones|
|`QK_MIDI_TRANSPOSE_N4`         |`MI_TRN4`         |Set transposition to -4 semitones|
|`QK_MIDI_TRANSPOSE_N3`         |`MI_TRN3`         |Set transposition to -3 semitones|
|`QK_MIDI_TRANSPOSE_N2`         |`MI_TRN2`         |Set transposition to -2 semitones|
|`QK_MIDI_TRANSPOSE_N1`         |`MI_TRN1`         |Set transposition to -1 semitone |
|`QK_MIDI_TRANSPOSE_0`          |`MI_TR0`          |No transposition                 |
|`QK_MIDI_TRANSPOSE_1`          |`MI_TR1`          |Set transposition to +1 semitone |
|`QK_MIDI_TRANSPOSE_2`          |`MI_TR2`          |Set transposition to +2 semitones|
|`QK_MIDI_TRANSPOSE_3`          |`MI_TR3`          |Set transposition to +3 semitones|
|`QK_MIDI_TRANSPOSE_4`          |`MI_TR4`          |Set transposition to +4 semitones|
|`QK_MIDI_TRANSPOSE_5`          |`MI_TR5`          |Set transposition to +5 semitones|
|`QK_MIDI_TRANSPOSE_6`          |`MI_TR6`          |Set transposition to +6 semitones|
|`QK_MIDI_TRANSPOSE_DOWN`       |`MI_TRSD`         |Decrease transposition           |
|`QK_MIDI_TRANSPOSE_UP`         |`MI_TRSU`         |Increase transposition           |
|`QK_MIDI_VELOCITY_0`           |`MI_VL0`          |Set velocity to 0                |
|`QK_MIDI_VELOCITY_1`           |`MI_VL1`          |Set velocity to 12               |
|`QK_MIDI_VELOCITY_2`           |`MI_VL2`          |Set velocity to 25               |
|`QK_MIDI_VELOCITY_3`           |`MI_VL3`          |Set velocity to 38               |
|`QK_MIDI_VELOCITY_4`           |`MI_VL4`          |Set velocity to 51               |
|`QK_MIDI_VELOCITY_5`           |`MI_VL5`          |Set velocity to 64               |
|`QK_MIDI_VELOCITY_6`           |`MI_VL6`          |Set velocity to 76               |
|`QK_MIDI_VELOCITY_7`           |`MI_VL7`          |Set velocity to 89               |
|`QK_MIDI_VELOCITY_8`           |`MI_VL8`          |Set velocity to 102              |
|`QK_MIDI_VELOCITY_9`           |`MI_VL9`          |Set velocity to 114              |
|`QK_MIDI_VELOCITY_10`          |`MI_VL10`         |Set velocity to 127              |
|`QK_MIDI_VELOCITY_DOWN`        |`MI_VELD`         |Decrease velocity                |
|`QK_MIDI_VELOCITY_UP`          |`MI_VELU`         |Increase velocity                |
|`QK_MIDI_CHANNEL_1`            |`MI_CH1`          |Set channel to 1                 |
|`QK_MIDI_CHANNEL_2`            |`MI_CH2`          |Set channel to 2                 |
|`QK_MIDI_CHANNEL_3`            |`MI_CH3`          |Set channel to 3                 |
|`QK_MIDI_CHANNEL_4`            |`MI_CH4`          |Set channel to 4                 |
|`QK_MIDI_CHANNEL_5`            |`MI_CH5`          |Set channel to 5                 |
|`QK_MIDI_CHANNEL_6`            |`MI_CH6`          |Set channel to 6                 |
|`QK_MIDI_CHANNEL_7`            |`MI_CH7`          |Set channel to 7                 |
|`QK_MIDI_CHANNEL_8`            |`MI_CH8`          |Set channel to 8                 |
|`QK_MIDI_CHANNEL_9`            |`MI_CH9`          |Set channel to 9                 |
|`QK_MIDI_CHANNEL_10`           |`MI_CH10`         |Set channel to 10                |
|`QK_MIDI_CHANNEL_11`           |`MI_CH11`         |Set channel to 11                |
|`QK_MIDI_CHANNEL_12`           |`MI_CH12`         |Set channel to 12                |
|`QK_MIDI_CHANNEL_13`           |`MI_CH13`         |Set channel to 13                |
|`QK_MIDI_CHANNEL_14`           |`MI_CH14`         |Set channel to 14                |
|`QK_MIDI_CHANNEL_15`           |`MI_CH15`         |Set channel to 15                |
|`QK_MIDI_CHANNEL_16`           |`MI_CH16`         |Set channel to 16                |
|`QK_MIDI_CHANNEL_DOWN`         |`MI_CHND`         |Decrease channel                 |
|`QK_MIDI_CHANNEL_UP`           |`MI_CHNU`         |Increase channel                 |
|`QK_MIDI_ALL_NOTES_OFF`        |`MI_AOFF`         |Stop all notes                   |
|`QK_MIDI_SUSTAIN`              |`MI_SUST`         |Sustain                          |
|`QK_MIDI_PORTAMENTO`           |`MI_PORT`         |Portmento                        |
|`QK_MIDI_SOSTENUTO`            |`MI_SOST`         |Sostenuto                        |
|`QK_MIDI_SOFT`                 |`MI_SOFT`         |Soft Pedal                       |
|`QK_MIDI_LEGATO`               |`MI_LEG`          |Legato                           |
|`QK_MIDI_MODULATION`           |`MI_MOD`          |Modulation                       |
|`QK_MIDI_MODULATION_SPEED_DOWN`|`MI_MODD`         |Decrease modulation speed        |
|`QK_MIDI_MODULATION_SPEED_UP`  |`MI_MODU`         |Increase modulation speed        |
|`QK_MIDI_PITCH_BEND_DOWN`      |`MI_BNDD`         |Bend pitch down                  |
|`QK_MIDI_PITCH_BEND_UP`        |`MI_BNDU`         |Bend pitch up                    |

## Mouse Keys :id=mouse-keys


M keyboards/40percentclub/gherkin/keymaps/midi/keymap.c => keyboards/40percentclub/gherkin/keymaps/midi/keymap.c +21 -21
@@ 25,45 25,45 @@ enum custom_keycodes {

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  [_IONIAN] = LAYOUT_ortho_3x10(
    MI_C_1,  MI_F_1,  MI_B_1,  MI_E_2,  MI_A_2,  MI_D_3,  MI_G_3,  MI_C_4,  MI_OCTD,  MI_OCTU,
    MI_D_1,  MI_G_1,  MI_C_2,  MI_F_2,  MI_B_2,  MI_E_3,  MI_A_3,  MI_D_4,  MI_TRNSD, MI_TRNSU,
    MI_E_1,  MI_A_1,  MI_D_2,  MI_G_2,  MI_C_3,  MI_F_3,  MI_B_3,  MI_E_4,  MI_SUS, MENU
    MI_C1,  MI_F1,  MI_B1,  MI_E2,  MI_A2,  MI_D3,  MI_G3,  MI_C4,  MI_OCTD, MI_OCTU,
    MI_D1,  MI_G1,  MI_C2,  MI_F2,  MI_B2,  MI_E3,  MI_A3,  MI_D4,  MI_TRSD, MI_TRSU,
    MI_E1,  MI_A1,  MI_D2,  MI_G2,  MI_C3,  MI_F3,  MI_B3,  MI_E4,  MI_SUST, MENU
  ),

  [_DORIAN] = LAYOUT_ortho_3x10(
    MI_C_1,  MI_F_1,  MI_As_1, MI_Ds_2, MI_A_2,  MI_D_3,  MI_G_3,  MI_C_4,  _______, _______,
    MI_D_1,  MI_G_1,  MI_C_2,  MI_F_2,  MI_As_2, MI_Ds_3, MI_A_3,  MI_D_4,  _______, _______,
    MI_Ds_1, MI_A_1,  MI_D_2,  MI_G_2,  MI_C_3,  MI_F_3,  MI_As_3, MI_Ds_4, _______, _______
    MI_C1,  MI_F1,  MI_As1, MI_Ds2, MI_A2,  MI_D3,  MI_G3,  MI_C4,  _______, _______,
    MI_D1,  MI_G1,  MI_C2,  MI_F2,  MI_As2, MI_Ds3, MI_A3,  MI_D4,  _______, _______,
    MI_Ds1, MI_A1,  MI_D2,  MI_G2,  MI_C3,  MI_F3,  MI_As3, MI_Ds4, _______, _______
  ),

  [_PHRYGIAN] = LAYOUT_ortho_3x10(
    MI_C_1,  MI_F_1,  MI_As_1, MI_Ds_2, MI_Gs_2, MI_Cs_3, MI_G_3,  MI_C_4,  _______, _______,
    MI_Cs_1, MI_G_1,  MI_C_2,  MI_F_2,  MI_As_2, MI_Ds_3, MI_Gs_3, MI_Cs_4, _______, _______,
    MI_Ds_1, MI_Gs_1, MI_Cs_2, MI_G_2,  MI_C_3,  MI_F_3,  MI_As_3, MI_Ds_4, _______, _______
    MI_C1,  MI_F1,  MI_As1, MI_Ds2, MI_Gs2, MI_Cs3, MI_G3,  MI_C4,  _______, _______,
    MI_Cs1, MI_G1,  MI_C2,  MI_F2,  MI_As2, MI_Ds3, MI_Gs3, MI_Cs4, _______, _______,
    MI_Ds1, MI_Gs1, MI_Cs2, MI_G2,  MI_C3,  MI_F3,  MI_As3, MI_Ds4, _______, _______
  ),

  [_LYDIAN] = LAYOUT_ortho_3x10(
    MI_C_1,  MI_Fs_1, MI_B_1,  MI_E_2,  MI_A_2,  MI_D_3,  MI_G_3,  MI_C_4,  _______, _______,
    MI_D_1,  MI_G_1,  MI_C_2,  MI_Fs_2, MI_B_2,  MI_E_3,  MI_A_3,  MI_D_4,  _______, _______,
    MI_E_1,  MI_A_1,  MI_D_2,  MI_G_2,  MI_C_3,  MI_Fs_3, MI_B_3,  MI_E_4,  _______, _______
    MI_C1,  MI_Fs1, MI_B1,  MI_E2,  MI_A2,  MI_D3,  MI_G3,  MI_C4,  _______, _______,
    MI_D1,  MI_G1,  MI_C2,  MI_Fs2, MI_B2,  MI_E3,  MI_A3,  MI_D4,  _______, _______,
    MI_E1,  MI_A1,  MI_D2,  MI_G2,  MI_C3,  MI_Fs3, MI_B3,  MI_E4,  _______, _______
  ),

  [_MIXOLYDIAN] = LAYOUT_ortho_3x10(
    MI_C_1,  MI_F_1,  MI_As_1, MI_E_2,  MI_A_2,  MI_D_3,  MI_G_3,  MI_C_4,  _______, _______,
    MI_D_1,  MI_G_1,  MI_C_2,  MI_F_2,  MI_As_2, MI_E_3,  MI_A_3,  MI_D_4,  _______, _______,
    MI_E_1,  MI_A_1,  MI_D_2,  MI_G_2,  MI_C_3,  MI_F_3,  MI_As_3, MI_E_4,  _______, _______
    MI_C1,  MI_F1,  MI_As1, MI_E2,  MI_A2,  MI_D3,  MI_G3,  MI_C4,  _______, _______,
    MI_D1,  MI_G1,  MI_C2,  MI_F2,  MI_As2, MI_E3,  MI_A3,  MI_D4,  _______, _______,
    MI_E1,  MI_A1,  MI_D2,  MI_G2,  MI_C3,  MI_F3,  MI_As3, MI_E4,  _______, _______
  ),

  [_AEOLIAN] = LAYOUT_ortho_3x10(
    MI_C_1,  MI_F_1,  MI_As_1, MI_Ds_2, MI_Gs_2, MI_D_3,  MI_G_3,  MI_C_4,  _______, _______,
    MI_D_1,  MI_G_1,  MI_C_2,  MI_F_2,  MI_As_2, MI_Ds_3, MI_Gs_3, MI_D_4,  _______, _______,
    MI_Ds_1, MI_Gs_1, MI_D_2,  MI_G_2,  MI_C_3,  MI_F_3,  MI_As_3, MI_Ds_4, _______, _______
    MI_C1,  MI_F1,  MI_As1, MI_Ds2, MI_Gs2, MI_D3,  MI_G3,  MI_C4,  _______, _______,
    MI_D1,  MI_G1,  MI_C2,  MI_F2,  MI_As2, MI_Ds3, MI_Gs3, MI_D4,  _______, _______,
    MI_Ds1, MI_Gs1, MI_D2,  MI_G2,  MI_C3,  MI_F3,  MI_As3, MI_Ds4, _______, _______
  ),

  [_LOCRIAN] = LAYOUT_ortho_3x10(
    MI_C_1,  MI_F_1,  MI_As_1, MI_Ds_2, MI_Gs_2, MI_Cs_3, MI_Fs_3, MI_C_4,  _______, _______,
    MI_Cs_1, MI_Fs_1, MI_C_2,  MI_F_2,  MI_As_2, MI_Ds_3, MI_Gs_3, MI_Cs_4, _______, _______,
    MI_Ds_1, MI_Gs_1, MI_Cs_2, MI_Fs_2, MI_C_3,  MI_F_3,  MI_As_3, MI_Ds_4, _______, _______
    MI_C1,  MI_F1,  MI_As1, MI_Ds2, MI_Gs2, MI_Cs3, MI_Fs3, MI_C4,  _______, _______,
    MI_Cs1, MI_Fs1, MI_C2,  MI_F2,  MI_As2, MI_Ds3, MI_Gs3, MI_Cs4, _______, _______,
    MI_Ds1, MI_Gs1, MI_Cs2, MI_Fs2, MI_C3,  MI_F3,  MI_As3, MI_Ds4, _______, _______
  ),

  [_MENU] = LAYOUT_ortho_3x10(

M keyboards/bandominedoni/keymaps/default/keymap.c => keyboards/bandominedoni/keymaps/default/keymap.c +24 -24
@@ 34,33 34,33 @@ enum custom_keycodes {

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
    [_OPEN] = LAYOUT(
                  MI_Gs_1, MI_As_1, MI_Cs_2, MI_F_2, MI_Gs_3,
       MI_E_1, MI_A_1, MI_G_2, MI_Ds_2, MI_F_3, MI_As_2, MI_F_1,
         MI_D_2, MI_A_2, MI_C_3, MI_E_3, MI_C_2, MI_G_1, TG_SWAP,
       MI_E_2, MI_Gs_2, MI_B_2, MI_D_3, MI_Fs_3, MI_Cs_3, MI_Fs_1,
     MI_D_1, MI_B_1, MI_G_3, MI_A_3, MI_Ds_3, MI_Fs_2, MI_Ds_1, MI_C_1,
                  MI_Gs1, MI_As1, MI_Cs2, MI_F2, MI_Gs3,
       MI_E1, MI_A1, MI_G2, MI_Ds2, MI_F3, MI_As2, MI_F1,
         MI_D2, MI_A2, MI_C3, MI_E3, MI_C2, MI_G1, TG_SWAP,
       MI_E2, MI_Gs2, MI_B2, MI_D3, MI_Fs3, MI_Cs3, MI_Fs1,
     MI_D1, MI_B1, MI_G3, MI_A3, MI_Ds3, MI_Fs2, MI_Ds1, MI_C1,

     MO_SWAP,    MI_B_5, MI_Gs_5, MI_G_5, MI_F_5,     FN_MUTE,
         MI_Cs_3, MI_A_5, MI_Fs_5, MI_E_5, MI_Ds_5,
        MI_C_3, MI_D_3, MI_G_3, MI_As_4, MI_C_5, MI_D_5,
     TG_SWAP, MI_B_2, MI_E_3, MI_Cs_4, MI_Fs_3, MI_A_3, MI_C_4, MI_E_4,
       MI_A_2, MI_F_3, MI_As_3, MI_Gs_3, MI_B_3, MI_D_4, MI_Gs_4, MI_B_4,
     MI_Gs_2, MI_As_2, MI_Ds_3, MI_F_4, MI_Ds_4, MI_Fs_4, MI_A_4, MI_Cs_5, MI_G_4
     MO_SWAP,    MI_B5, MI_Gs5, MI_G5, MI_F5,     FN_MUTE,
         MI_Cs3, MI_A5, MI_Fs5, MI_E5, MI_Ds5,
        MI_C3, MI_D3, MI_G3, MI_As4, MI_C5, MI_D5,
     TG_SWAP, MI_B2, MI_E3, MI_Cs4, MI_Fs3, MI_A3, MI_C4, MI_E4,
       MI_A2, MI_F3, MI_As3, MI_Gs3, MI_B3, MI_D4, MI_Gs4, MI_B4,
     MI_Gs2, MI_As2, MI_Ds3, MI_F4, MI_Ds4, MI_Fs4, MI_A4, MI_Cs5, MI_G4
    ),

    [_CLOSE] = LAYOUT(
                  MI_Gs_1, MI_As_1, MI_Ds_2, MI_Ds_3, MI_G_3,
       MI_D_1, MI_D_2, MI_As_2, MI_C_3, MI_Cs_2, MI_C_2, MI_Fs_1,
         MI_G_1, MI_G_2, MI_B_2, MI_D_3, MI_F_3, MI_Fs_2, TG_SWAP,
       MI_A_1, MI_E_2, MI_A_2, MI_Cs_3, MI_E_3, MI_Gs_2, MI_B_1,
     MI_E_1, MI_E_2, MI_Fs_3, MI_Gs_3, MI_B_3, MI_F_2, MI_Cs_1, MI_F_1,
                  MI_Gs1, MI_As1, MI_Ds2, MI_Ds3, MI_G3,
       MI_D1, MI_D2, MI_As2, MI_C3, MI_Cs2, MI_C2, MI_Fs1,
         MI_G1, MI_G2, MI_B2, MI_D3, MI_F3, MI_Fs2, TG_SWAP,
       MI_A1, MI_E2, MI_A2, MI_Cs3, MI_E3, MI_Gs2, MI_B1,
     MI_E1, MI_E2, MI_Fs3, MI_Gs3, MI_B3, MI_F2, MI_Cs1, MI_F1,

     MO_SWAP,    MI_A_5, MI_Gs_5, MI_Fs_5, MI_F_5,     FN_MUTE,
         MI_C_3, MI_G_5, MI_As_4, MI_C_5, MI_Ds_5,
        MI_D_3, MI_Cs_3, MI_Gs_3, MI_As_3, MI_C_4, MI_D_5,
     TG_SWAP, MI_B_2, MI_Fs_3, MI_Fs_4, MI_G_3, MI_B_3, MI_D_4, MI_G_4,
       MI_A_2, MI_F_3, MI_E_3, MI_A_3, MI_Cs_4, MI_E_4, MI_A_4, MI_Cs_5,
     MI_Gs_2, MI_As_2, MI_Ds_3, MI_F_4, MI_E_4, MI_Gs_4, MI_B_4, MI_E_5, MI_Ds_4
     MO_SWAP,    MI_A5, MI_Gs5, MI_Fs5, MI_F5,     FN_MUTE,
         MI_C3, MI_G5, MI_As4, MI_C5, MI_Ds5,
        MI_D3, MI_Cs3, MI_Gs3, MI_As3, MI_C4, MI_D5,
     TG_SWAP, MI_B2, MI_Fs3, MI_Fs4, MI_G3, MI_B3, MI_D4, MI_G4,
       MI_A2, MI_F3, MI_E3, MI_A3, MI_Cs4, MI_E4, MI_A4, MI_Cs5,
     MI_Gs2, MI_As2, MI_Ds3, MI_F4, MI_E4, MI_Gs4, MI_B4, MI_E5, MI_Ds4
    ),

    [_FN] = LAYOUT(


@@ 88,8 88,8 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
#endif

void keyboard_post_init_user(void) {
    //  Set octave to MI_OCT_0
    midi_config.octave = MI_OCT_0 - MIDI_OCTAVE_MIN;
    //  Set octave to 0
    midi_config.octave = QK_MIDI_OCTAVE_0 - MIDI_OCTAVE_MIN;

    // avoid using 127 since it is used as a special number in some sound sources.
    midi_config.velocity = MIDI_INITIAL_VELOCITY;

M keyboards/bandominedoni/keymaps/led/keymap.c => keyboards/bandominedoni/keymaps/led/keymap.c +26 -26
@@ 64,33 64,33 @@ enum custom_keycodes {

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
    [_OPEN] = LAYOUT(
                  MI_Gs_1, MI_As_1, MI_Cs_2, MI_F_2, MI_Gs_3,
       MI_E_1, MI_A_1, MI_G_2, MI_Ds_2, MI_F_3, MI_As_2, MI_F_1,
         MI_D_2, MI_A_2, MI_C_3, MI_E_3, MI_C_2, MI_G_1, TG_SWAP,
       MI_E_2, MI_Gs_2, MI_B_2, MI_D_3, MI_Fs_3, MI_Cs_3, MI_Fs_1,
     MI_D_1, MI_B_1, MI_G_3, MI_A_3, MI_Ds_3, MI_Fs_2, MI_Ds_1, MI_C_1,

     MO_SWAP,    MI_B_5, MI_Gs_5, MI_G_5, MI_F_5,     FN_MUTE,
         MI_Cs_3, MI_A_5, MI_Fs_5, MI_E_5, MI_Ds_5,
        MI_C_3, MI_D_3, MI_G_3, MI_As_4, MI_C_5, MI_D_5,
     TG_SWAP, MI_B_2, MI_E_3, MI_Cs_4, MI_Fs_3, MI_A_3, MI_C_4, MI_E_4,
       MI_A_2, MI_F_3, MI_As_3, MI_Gs_3, MI_B_3, MI_D_4, MI_Gs_4, MI_B_4,
     MI_Gs_2, MI_As_2, MI_Ds_3, MI_F_4, MI_Ds_4, MI_Fs_4, MI_A_4, MI_Cs_5, MI_G_4
                  MI_Gs1, MI_As1, MI_Cs2, MI_F2, MI_Gs3,
       MI_E1, MI_A1, MI_G2, MI_Ds2, MI_F3, MI_As2, MI_F1,
         MI_D2, MI_A2, MI_C3, MI_E3, MI_C2, MI_G1, TG_SWAP,
       MI_E2, MI_Gs2, MI_B2, MI_D3, MI_Fs3, MI_Cs3, MI_Fs1,
     MI_D1, MI_B1, MI_G3, MI_A3, MI_Ds3, MI_Fs2, MI_Ds1, MI_C1,

     MO_SWAP,    MI_B5, MI_Gs5, MI_G5, MI_F5,     FN_MUTE,
         MI_Cs3, MI_A5, MI_Fs5, MI_E5, MI_Ds5,
        MI_C3, MI_D3, MI_G3, MI_As4, MI_C5, MI_D5,
     TG_SWAP, MI_B2, MI_E3, MI_Cs4, MI_Fs3, MI_A3, MI_C4, MI_E4,
       MI_A2, MI_F3, MI_As3, MI_Gs3, MI_B3, MI_D4, MI_Gs4, MI_B4,
     MI_Gs2, MI_As2, MI_Ds3, MI_F4, MI_Ds4, MI_Fs4, MI_A4, MI_Cs5, MI_G4
    ),

    [_CLOSE] = LAYOUT(
                  MI_Gs_1, MI_As_1, MI_Ds_2, MI_Ds_3, MI_G_3,
       MI_D_1, MI_D_2, MI_As_2, MI_C_3, MI_Cs_2, MI_C_2, MI_Fs_1,
         MI_G_1, MI_G_2, MI_B_2, MI_D_3, MI_F_3, MI_Fs_2, TG_SWAP,
       MI_A_1, MI_E_2, MI_A_2, MI_Cs_3, MI_E_3, MI_Gs_2, MI_B_1,
     MI_E_1, MI_E_2, MI_Fs_3, MI_Gs_3, MI_B_3, MI_F_2, MI_Cs_1, MI_F_1,

     MO_SWAP,    MI_A_5, MI_Gs_5, MI_Fs_5, MI_F_5,     FN_MUTE,
         MI_C_3, MI_G_5, MI_As_4, MI_C_5, MI_Ds_5,
        MI_D_3, MI_Cs_3, MI_Gs_3, MI_As_3, MI_C_4, MI_D_5,
     TG_SWAP, MI_B_2, MI_Fs_3, MI_Fs_4, MI_G_3, MI_B_3, MI_D_4, MI_G_4,
       MI_A_2, MI_F_3, MI_E_3, MI_A_3, MI_Cs_4, MI_E_4, MI_A_4, MI_Cs_5,
     MI_Gs_2, MI_As_2, MI_Ds_3, MI_F_4, MI_E_4, MI_Gs_4, MI_B_4, MI_E_5, MI_Ds_4
                  MI_Gs1, MI_As1, MI_Ds2, MI_Ds3, MI_G3,
       MI_D1, MI_D2, MI_As2, MI_C3, MI_Cs2, MI_C2, MI_Fs1,
         MI_G1, MI_G2, MI_B2, MI_D3, MI_F3, MI_Fs2, TG_SWAP,
       MI_A1, MI_E2, MI_A2, MI_Cs3, MI_E3, MI_Gs2, MI_B1,
     MI_E1, MI_E2, MI_Fs3, MI_Gs3, MI_B3, MI_F2, MI_Cs1, MI_F1,

     MO_SWAP,    MI_A5, MI_Gs5, MI_Fs5, MI_F5,     FN_MUTE,
         MI_C3, MI_G5, MI_As4, MI_C5, MI_Ds5,
        MI_D3, MI_Cs3, MI_Gs3, MI_As3, MI_C4, MI_D5,
     TG_SWAP, MI_B2, MI_Fs3, MI_Fs4, MI_G3, MI_B3, MI_D4, MI_G4,
       MI_A2, MI_F3, MI_E3, MI_A3, MI_Cs4, MI_E4, MI_A4, MI_Cs5,
     MI_Gs2, MI_As2, MI_Ds3, MI_F4, MI_E4, MI_Gs4, MI_B4, MI_E5, MI_Ds4
    ),

    [_QWERTY] = LAYOUT_wrapper(


@@ 166,8 166,8 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
#endif

void my_init(void){
    //  Set octave to MI_OCT_0
    midi_config.octave = MI_OCT_0 - MIDI_OCTAVE_MIN;
    //  Set octave to 0
    midi_config.octave = QK_MIDI_OCTAVE_0 - MIDI_OCTAVE_MIN;

    // avoid using 127 since it is used as a special number in some sound sources.
    midi_config.velocity = MIDI_INITIAL_VELOCITY;

M keyboards/bandominedoni/keymaps/lednotg/keymap.c => keyboards/bandominedoni/keymaps/lednotg/keymap.c +26 -26
@@ 64,33 64,33 @@ enum custom_keycodes {

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
    [_OPEN] = LAYOUT(
                  MI_Gs_1, MI_As_1, MI_Cs_2, MI_F_2, MI_Gs_3,
       MI_E_1, MI_A_1, MI_G_2, MI_Ds_2, MI_F_3, MI_As_2, MI_F_1,
         MI_D_2, MI_A_2, MI_C_3, MI_E_3, MI_C_2, MI_G_1, MI_B,
       MI_E_2, MI_Gs_2, MI_B_2, MI_D_3, MI_Fs_3, MI_Cs_3, MI_Fs_1,
     MI_D_1, MI_B_1, MI_G_3, MI_A_3, MI_Ds_3, MI_Fs_2, MI_Ds_1, MI_C_1,

     MO_SWAP,    MI_B_5, MI_Gs_5, MI_G_5, MI_F_5,     FN_MUTE,
         MI_Cs_3, MI_A_5, MI_Fs_5, MI_E_5, MI_Ds_5,
        MI_C_3, MI_D_3, MI_G_3, MI_As_4, MI_C_5, MI_D_5,
     MI_G_2, MI_B_2, MI_E_3, MI_Cs_4, MI_Fs_3, MI_A_3, MI_C_4, MI_E_4,
       MI_A_2, MI_F_3, MI_As_3, MI_Gs_3, MI_B_3, MI_D_4, MI_Gs_4, MI_B_4,
     MI_Gs_2, MI_As_2, MI_Ds_3, MI_F_4, MI_Ds_4, MI_Fs_4, MI_A_4, MI_Cs_5, MI_G_4
                  MI_Gs1, MI_As1, MI_Cs2, MI_F2, MI_Gs3,
       MI_E1, MI_A1, MI_G2, MI_Ds2, MI_F3, MI_As2, MI_F1,
         MI_D2, MI_A2, MI_C3, MI_E3, MI_C2, MI_G1, MI_B,
       MI_E2, MI_Gs2, MI_B2, MI_D3, MI_Fs3, MI_Cs3, MI_Fs1,
     MI_D1, MI_B1, MI_G3, MI_A3, MI_Ds3, MI_Fs2, MI_Ds1, MI_C1,

     MO_SWAP,    MI_B5, MI_Gs5, MI_G5, MI_F5,     FN_MUTE,
         MI_Cs3, MI_A5, MI_Fs5, MI_E5, MI_Ds5,
        MI_C3, MI_D3, MI_G3, MI_As4, MI_C5, MI_D5,
     MI_G2, MI_B2, MI_E3, MI_Cs4, MI_Fs3, MI_A3, MI_C4, MI_E4,
       MI_A2, MI_F3, MI_As3, MI_Gs3, MI_B3, MI_D4, MI_Gs4, MI_B4,
     MI_Gs2, MI_As2, MI_Ds3, MI_F4, MI_Ds4, MI_Fs4, MI_A4, MI_Cs5, MI_G4
    ),

    [_CLOSE] = LAYOUT(
                  MI_Gs_1, MI_As_1, MI_Ds_2, MI_Ds_3, MI_G_3,
       MI_D_1, MI_D_2, MI_As_2, MI_C_3, MI_Cs_2, MI_C_2, MI_Fs_1,
         MI_G_1, MI_G_2, MI_B_2, MI_D_3, MI_F_3, MI_Fs_2, MI_B,
       MI_A_1, MI_E_2, MI_A_2, MI_Cs_3, MI_E_3, MI_Gs_2, MI_B_1,
     MI_E_1, MI_E_2, MI_Fs_3, MI_Gs_3, MI_B_3, MI_F_2, MI_Cs_1, MI_F_1,

     MO_SWAP,    MI_A_5, MI_Gs_5, MI_Fs_5, MI_F_5,     FN_MUTE,
         MI_C_3, MI_G_5, MI_As_4, MI_C_5, MI_Ds_5,
        MI_D_3, MI_Cs_3, MI_Gs_3, MI_As_3, MI_C_4, MI_D_5,
     MI_G_2, MI_B_2, MI_Fs_3, MI_Fs_4, MI_G_3, MI_B_3, MI_D_4, MI_G_4,
       MI_A_2, MI_F_3, MI_E_3, MI_A_3, MI_Cs_4, MI_E_4, MI_A_4, MI_Cs_5,
     MI_Gs_2, MI_As_2, MI_Ds_3, MI_F_4, MI_E_4, MI_Gs_4, MI_B_4, MI_E_5, MI_Ds_4
                  MI_Gs1, MI_As1, MI_Ds2, MI_Ds3, MI_G3,
       MI_D1, MI_D2, MI_As2, MI_C3, MI_Cs2, MI_C2, MI_Fs1,
         MI_G1, MI_G2, MI_B2, MI_D3, MI_F3, MI_Fs2, MI_B,
       MI_A1, MI_E2, MI_A2, MI_Cs3, MI_E3, MI_Gs2, MI_B1,
     MI_E1, MI_E2, MI_Fs3, MI_Gs3, MI_B3, MI_F2, MI_Cs1, MI_F1,

     MO_SWAP,    MI_A5, MI_Gs5, MI_Fs5, MI_F5,     FN_MUTE,
         MI_C3, MI_G5, MI_As4, MI_C5, MI_Ds5,
        MI_D3, MI_Cs3, MI_Gs3, MI_As3, MI_C4, MI_D5,
     MI_G2, MI_B2, MI_Fs3, MI_Fs4, MI_G3, MI_B3, MI_D4, MI_G4,
       MI_A2, MI_F3, MI_E3, MI_A3, MI_Cs4, MI_E4, MI_A4, MI_Cs5,
     MI_Gs2, MI_As2, MI_Ds3, MI_F4, MI_E4, MI_Gs4, MI_B4, MI_E5, MI_Ds4
    ),

    [_QWERTY] = LAYOUT_wrapper(


@@ 166,8 166,8 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
#endif

void my_init(void){
    //  Set octave to MI_OCT_0
    midi_config.octave = MI_OCT_0 - MIDI_OCTAVE_MIN;
    //  Set octave to 0
    midi_config.octave = QK_MIDI_OCTAVE_0 - MIDI_OCTAVE_MIN;

    // avoid using 127 since it is used as a special number in some sound sources.
    midi_config.velocity = MIDI_INITIAL_VELOCITY;

M keyboards/bandominedoni/keymaps/via/keymap.c => keyboards/bandominedoni/keymaps/via/keymap.c +26 -26
@@ 35,33 35,33 @@ enum custom_keycodes {

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
    [_OPEN] = LAYOUT(
                  MI_Gs_1, MI_As_1, MI_Cs_2, MI_F_2, MI_Gs_3,
       MI_E_1, MI_A_1, MI_G_2, MI_Ds_2, MI_F_3, MI_As_2, MI_F_1,
         MI_D_2, MI_A_2, MI_C_3, MI_E_3, MI_C_2, MI_G_1, TG_SWAP,
       MI_E_2, MI_Gs_2, MI_B_2, MI_D_3, MI_Fs_3, MI_Cs_3, MI_Fs_1,
     MI_D_1, MI_B_1, MI_G_3, MI_A_3, MI_Ds_3, MI_Fs_2, MI_Ds_1, MI_C_1,

     MO_SWAP,    MI_B_5, MI_Gs_5, MI_G_5, MI_F_5,     FN_MUTE,
         MI_Cs_3, MI_A_5, MI_Fs_5, MI_E_5, MI_Ds_5,
        MI_C_3, MI_D_3, MI_G_3, MI_As_4, MI_C_5, MI_D_5,
     TG_SWAP, MI_B_2, MI_E_3, MI_Cs_4, MI_Fs_3, MI_A_3, MI_C_4, MI_E_4,
       MI_A_2, MI_F_3, MI_As_3, MI_Gs_3, MI_B_3, MI_D_4, MI_Gs_4, MI_B_4,
     MI_Gs_2, MI_As_2, MI_Ds_3, MI_F_4, MI_Ds_4, MI_Fs_4, MI_A_4, MI_Cs_5, MI_G_4
                  MI_Gs1, MI_As1, MI_Cs2, MI_F2, MI_Gs3,
       MI_E1, MI_A1, MI_G2, MI_Ds2, MI_F3, MI_As2, MI_F1,
         MI_D2, MI_A2, MI_C3, MI_E3, MI_C2, MI_G1, TG_SWAP,
       MI_E2, MI_Gs2, MI_B2, MI_D3, MI_Fs3, MI_Cs3, MI_Fs1,
     MI_D1, MI_B1, MI_G3, MI_A3, MI_Ds3, MI_Fs2, MI_Ds1, MI_C1,

     MO_SWAP,    MI_B5, MI_Gs5, MI_G5, MI_F5,     FN_MUTE,
         MI_Cs3, MI_A5, MI_Fs5, MI_E5, MI_Ds5,
        MI_C3, MI_D3, MI_G3, MI_As4, MI_C5, MI_D5,
     TG_SWAP, MI_B2, MI_E3, MI_Cs4, MI_Fs3, MI_A3, MI_C4, MI_E4,
       MI_A2, MI_F3, MI_As3, MI_Gs3, MI_B3, MI_D4, MI_Gs4, MI_B4,
     MI_Gs2, MI_As2, MI_Ds3, MI_F4, MI_Ds4, MI_Fs4, MI_A4, MI_Cs5, MI_G4
    ),

    [_CLOSE] = LAYOUT(
                  MI_Gs_1, MI_As_1, MI_Ds_2, MI_Ds_3, MI_G_3,
       MI_D_1, MI_D_2, MI_As_2, MI_C_3, MI_Cs_2, MI_C_2, MI_Fs_1,
         MI_G_1, MI_G_2, MI_B_2, MI_D_3, MI_F_3, MI_Fs_2, TG_SWAP,
       MI_A_1, MI_E_2, MI_A_2, MI_Cs_3, MI_E_3, MI_Gs_2, MI_B_1,
     MI_E_1, MI_E_2, MI_Fs_3, MI_Gs_3, MI_B_3, MI_F_2, MI_Cs_1, MI_F_1,

     MO_SWAP,    MI_A_5, MI_Gs_5, MI_Fs_5, MI_F_5,     FN_MUTE,
         MI_C_3, MI_G_5, MI_As_4, MI_C_5, MI_Ds_5,
        MI_D_3, MI_Cs_3, MI_Gs_3, MI_As_3, MI_C_4, MI_D_5,
     TG_SWAP, MI_B_2, MI_Fs_3, MI_Fs_4, MI_G_3, MI_B_3, MI_D_4, MI_G_4,
       MI_A_2, MI_F_3, MI_E_3, MI_A_3, MI_Cs_4, MI_E_4, MI_A_4, MI_Cs_5,
     MI_Gs_2, MI_As_2, MI_Ds_3, MI_F_4, MI_E_4, MI_Gs_4, MI_B_4, MI_E_5, MI_Ds_4
                  MI_Gs1, MI_As1, MI_Ds2, MI_Ds3, MI_G3,
       MI_D1, MI_D2, MI_As2, MI_C3, MI_Cs2, MI_C2, MI_Fs1,
         MI_G1, MI_G2, MI_B2, MI_D3, MI_F3, MI_Fs2, TG_SWAP,
       MI_A1, MI_E2, MI_A2, MI_Cs3, MI_E3, MI_Gs2, MI_B1,
     MI_E1, MI_E2, MI_Fs3, MI_Gs3, MI_B3, MI_F2, MI_Cs1, MI_F1,

     MO_SWAP,    MI_A5, MI_Gs5, MI_Fs5, MI_F5,     FN_MUTE,
         MI_C3, MI_G5, MI_As4, MI_C5, MI_Ds5,
        MI_D3, MI_Cs3, MI_Gs3, MI_As3, MI_C4, MI_D5,
     TG_SWAP, MI_B2, MI_Fs3, MI_Fs4, MI_G3, MI_B3, MI_D4, MI_G4,
       MI_A2, MI_F3, MI_E3, MI_A3, MI_Cs4, MI_E4, MI_A4, MI_Cs5,
     MI_Gs2, MI_As2, MI_Ds3, MI_F4, MI_E4, MI_Gs4, MI_B4, MI_E5, MI_Ds4
    ),

    [_MISC] = LAYOUT(


@@ 105,8 105,8 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
#endif

void my_init(void){
    //  Set octave to MI_OCT_0
    midi_config.octave = MI_OCT_0 - MIDI_OCTAVE_MIN;
    //  Set octave to 0
    midi_config.octave = QK_MIDI_OCTAVE_0 - MIDI_OCTAVE_MIN;

    // avoid using 127 since it is used as a special number in some sound sources.
    midi_config.velocity = MIDI_INITIAL_VELOCITY;

M keyboards/chromatonemini/keymaps/default/keymap.c => keyboards/chromatonemini/keymaps/default/keymap.c +7 -7
@@ 33,16 33,16 @@ enum custom_keycodes {
// Long press: go to _FN layer, tap: MUTE
#define FN_MUTE LT(_FN, KC_MUTE)

// Used to set octave to MI_OCT_0
// Used to set octave to 0
extern midi_config_t midi_config;

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
    /* Base */
    [_BASE] = LAYOUT(
            FN_MUTE,          MI_SUS,
            MI_BENDU,
        MI_TRNSD, MI_TRNSU,  MI_C_2, MI_D_2, MI_E_2,  MI_Fs_2, MI_Ab_2, MI_Bb_2, MI_C_3, MI_D_3, MI_E_3, MI_Fs_3, MI_Ab_3, MI_Bb_3, MI_C_4,  MI_D_4,  MI_E_4, MI_Fs_4, MI_Ab_4, MI_Bb_4, MI_C_5,
            MI_BENDD,           MI_Db_2, MI_Eb_2, MI_F_2,  MI_G_2,  MI_A_2,  MI_B_2, MI_Db_3, MI_Eb_3, MI_F_3,  MI_G_3, MI_A_3,  MI_B_3, MI_Db_4, MI_Eb_4, MI_F_4,  MI_G_4,  MI_A_4,  MI_B_4
            FN_MUTE,          MI_SUST,
            MI_BNDU,
        MI_TRSD,  MI_TRSU,   MI_C2, MI_D2, MI_E2,  MI_Fs2, MI_Ab2, MI_Bb2, MI_C3, MI_D3, MI_E3, MI_Fs3, MI_Ab3, MI_Bb3, MI_C4,  MI_D4,  MI_E4, MI_Fs4, MI_Ab4, MI_Bb4, MI_C5,
            MI_BNDD,            MI_Db2, MI_Eb2, MI_F2,  MI_G2,  MI_A2,  MI_B2, MI_Db3, MI_Eb3, MI_F3,  MI_G3, MI_A3,  MI_B3, MI_Db4, MI_Eb4, MI_F4,  MI_G4,  MI_A4,  MI_B4
    ),

    /* RESERVE */


@@ 71,8 71,8 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {

// commom codes called from eeconfig_init_user() and keyboard_post_init_user().
void my_init(void){
    //  Set octave to MI_OCT_1
    midi_config.octave = MI_OCT_0 - MIDI_OCTAVE_MIN;
    //  Set octave to 0
    midi_config.octave = QK_MIDI_OCTAVE_0 - MIDI_OCTAVE_MIN;
    // avoid using 127 since it is used as a special number in some sound sources.
    midi_config.velocity = MIDI_INITIAL_VELOCITY;
    default_layer_set(1UL << _BASE);

M keyboards/chromatonemini/keymaps/led/keymap.c => keyboards/chromatonemini/keymaps/led/keymap.c +20 -20
@@ 206,7 206,7 @@ static uint8_t my_tone_status[MY_TONE_COUNT];
// Long press: go to _FN layer, tap: MUTE
#define FN_MUTE LT(_FN, KC_MUTE)

// Used to set octave to MI_OCT_0
// Used to set octave to 0
extern midi_config_t midi_config;
static bool is_trans_mode = false;     //  By default, shift mode is chosen.



@@ 215,57 215,57 @@ static uint8_t key_separator_col = _KEY01;  //  (_KEY01 .. _KEY37).     By defau
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
    /* Base */
    [_BASE] = LAYOUT(
            FN_MUTE,         MI_SUS,
            MI_BENDU,
        SHIFT_L, SHIFT_R,    MI_C_2, MI_D_2, MI_E_2,  MI_Fs_2, MI_Ab_2, MI_Bb_2, MI_C_3, MI_D_3, MI_E_3, MI_Fs_3, MI_Ab_3, MI_Bb_3, MI_C_4,  MI_D_4,  MI_E_4, MI_Fs_4, MI_Ab_4, MI_Bb_4, MI_C_5,
            MI_BENDD,           MI_Db_2, MI_Eb_2, MI_F_2,  MI_G_2,  MI_A_2,  MI_B_2, MI_Db_3, MI_Eb_3, MI_F_3,  MI_G_3, MI_A_3,  MI_B_3, MI_Db_4, MI_Eb_4, MI_F_4,  MI_G_4,  MI_A_4,  MI_B_4
            FN_MUTE,         MI_SUST,
            MI_BNDU,
        SHIFT_L, SHIFT_R,    MI_C2, MI_D2, MI_E2,  MI_Fs2, MI_Ab2, MI_Bb2, MI_C3, MI_D3, MI_E3, MI_Fs3, MI_Ab3, MI_Bb3, MI_C4,  MI_D4,  MI_E4, MI_Fs4, MI_Ab4, MI_Bb4, MI_C5,
            MI_BNDD,            MI_Db2, MI_Eb2, MI_F2,  MI_G2,  MI_A2,  MI_B2, MI_Db3, MI_Eb3, MI_F3,  MI_G3, MI_A3,  MI_B3, MI_Db4, MI_Eb4, MI_F4,  MI_G4,  MI_A4,  MI_B4
    ),

    /* 1 octave on the left side is ch2, others are ch1 (normal) */
    [_SEPALEFTOCT] = LAYOUT(
            _______,          _______,
            _______,
        SHIFT_L, SHIFT_R,     YM_C_2, YM_D_2, YM_E_2,  YM_Fs_2, YM_Ab_2, YM_Bb_2,     MI_C_3, MI_D_3, MI_E_3, MI_Fs_3, MI_Ab_3, MI_Bb_3, MI_C_4,  MI_D_4,  MI_E_4, MI_Fs_4, MI_Ab_4, MI_Bb_4, MI_C_5,
            _______,             YM_Db_2, YM_Eb_2, YM_F_2,  YM_G_2,  YM_A_2,  YM_B_2,     MI_Db_3, MI_Eb_3, MI_F_3,  MI_G_3, MI_A_3,  MI_B_3, MI_Db_4, MI_Eb_4, MI_F_4,  MI_G_4,  MI_A_4,  MI_B_4
        SHIFT_L, SHIFT_R,     YM_C_2, YM_D_2, YM_E_2,  YM_Fs_2, YM_Ab_2, YM_Bb_2,     MI_C3, MI_D3, MI_E3, MI_Fs3, MI_Ab3, MI_Bb3, MI_C4,  MI_D4,  MI_E4, MI_Fs4, MI_Ab4, MI_Bb4, MI_C5,
            _______,             YM_Db_2, YM_Eb_2, YM_F_2,  YM_G_2,  YM_A_2,  YM_B_2,     MI_Db3, MI_Eb3, MI_F3,  MI_G3, MI_A3,  MI_B3, MI_Db4, MI_Eb4, MI_F4,  MI_G4,  MI_A4,  MI_B4
    ),

    /* Half ch2, half ch1 (normal) */
    [_SEPAHALF] = LAYOUT(
            _______,           _______,
            _______,
        SHIFT_L, SHIFT_R,      YM_C_2, YM_D_2, YM_E_2,  YM_Fs_2, YM_Ab_2, YM_Bb_2, YM_C_3, YM_D_3, YM_E_3,       MI_Fs_3, MI_Ab_3, MI_Bb_3, MI_C_4,  MI_D_4,  MI_E_4, MI_Fs_4, MI_Ab_4, MI_Bb_4, MI_C_5,
            _______,               YM_Db_2, YM_Eb_2, YM_F_2,  YM_G_2,  YM_A_2,  YM_B_2, YM_Db_3, YM_Eb_3, YM_F_3,    MI_G_3, MI_A_3,  MI_B_3, MI_Db_4, MI_Eb_4, MI_F_4,  MI_G_4,  MI_A_4,  MI_B_4
        SHIFT_L, SHIFT_R,      YM_C_2, YM_D_2, YM_E_2,  YM_Fs_2, YM_Ab_2, YM_Bb_2, YM_C_3, YM_D_3, YM_E_3,       MI_Fs3, MI_Ab3, MI_Bb3, MI_C4,  MI_D4,  MI_E4, MI_Fs4, MI_Ab4, MI_Bb4, MI_C5,
            _______,               YM_Db_2, YM_Eb_2, YM_F_2,  YM_G_2,  YM_A_2,  YM_B_2, YM_Db_3, YM_Eb_3, YM_F_3,    MI_G3, MI_A3,  MI_B3, MI_Db4, MI_Eb4, MI_F4,  MI_G4,  MI_A4,  MI_B4
    ),

    /* 2 octave on the left side is ch2, others are ch1 (normal) */
    [_SEPARIGHTOCT] = LAYOUT(
            _______,           _______,
            _______,
        SHIFT_L, SHIFT_R,      YM_C_2, YM_D_2, YM_E_2,  YM_Fs_2, YM_Ab_2, YM_Bb_2, YM_C_3, YM_D_3, YM_E_3, YM_Fs_3, YM_Ab_3, YM_Bb_3,      MI_C_4,  MI_D_4,  MI_E_4, MI_Fs_4, MI_Ab_4, MI_Bb_4, MI_C_5,
            _______,               YM_Db_2, YM_Eb_2, YM_F_2,  YM_G_2,  YM_A_2,  YM_B_2, YM_Db_3, YM_Eb_3, YM_F_3,  YM_G_3, YM_A_3,  YM_B_3,     MI_Db_4, MI_Eb_4, MI_F_4,  MI_G_4,  MI_A_4,  MI_B_4
        SHIFT_L, SHIFT_R,      YM_C_2, YM_D_2, YM_E_2,  YM_Fs_2, YM_Ab_2, YM_Bb_2, YM_C_3, YM_D_3, YM_E_3, YM_Fs_3, YM_Ab_3, YM_Bb_3,      MI_C4,  MI_D4,  MI_E4, MI_Fs4, MI_Ab4, MI_Bb4, MI_C5,
            _______,               YM_Db_2, YM_Eb_2, YM_F_2,  YM_G_2,  YM_A_2,  YM_B_2, YM_Db_3, YM_Eb_3, YM_F_3,  YM_G_3, YM_A_3,  YM_B_3,     MI_Db4, MI_Eb4, MI_F4,  MI_G4,  MI_A4,  MI_B4
    ),

    /* TRANS   This layer must locate 1 layer below _FN layer. */
    [_TRANS] = LAYOUT(
            _______,           _______,
            _______,
        MI_TRNSD, MI_TRNSU,   _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
        MI_TRSD,  MI_TRSU,    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
            _______,               _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
    ),

    /* Flip Base    SFIFTUP and SHIFT_L are swapped. */
    [_FLIPBASE] = LAYOUT(
            FN_MUTE,          MI_SUS,
            MI_BENDU,
        SHIFT_L, SHIFT_R,     MI_C_5, MI_Bb_4, MI_Ab_4,  MI_Fs_4, MI_E_4, MI_D_4, MI_C_4, MI_Bb_3, MI_Ab_3, MI_Fs_3, MI_E_3, MI_D_3, MI_C_3,  MI_Bb_2,  MI_Ab_2, MI_Fs_2, MI_E_2, MI_D_2, MI_C_2,
            MI_BENDD,           MI_B_4, MI_A_4, MI_G_4,  MI_F_4,  MI_Eb_4,  MI_Db_4, MI_B_3, MI_A_3, MI_G_3,  MI_F_3, MI_Eb_3,  MI_Db_3, MI_B_2, MI_A_2, MI_G_2,  MI_F_2,  MI_Eb_2,  MI_Db_2
            FN_MUTE,          MI_SUST,
            MI_BNDU,
        SHIFT_L, SHIFT_R,     MI_C5, MI_Bb4, MI_Ab4,  MI_Fs4, MI_E4, MI_D4, MI_C4, MI_Bb3, MI_Ab3, MI_Fs3, MI_E3, MI_D3, MI_C3,  MI_Bb2,  MI_Ab2, MI_Fs2, MI_E2, MI_D2, MI_C2,
            MI_BNDD,            MI_B4, MI_A4, MI_G4,  MI_F4,  MI_Eb4,  MI_Db4, MI_B3, MI_A3, MI_G3,  MI_F3, MI_Eb3,  MI_Db3, MI_B2, MI_A2, MI_G2,  MI_F2,  MI_Eb2,  MI_Db2
    ),

    /* Flip Trans   This layer must locate 1 layer above _FLIPBASE layer.  MI_TRNSU and MI_TRNSD are swapped. */
    /* Flip Trans   This layer must locate 1 layer above _FLIPBASE layer.  MI_TRSU and MI_TRSD are swapped. */
    [_FLIPTRANS] = LAYOUT(
            _______,          _______,
            _______,
        MI_TRNSU, MI_TRNSD,   _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
        MI_TRSU,  MI_TRSD,    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
            _______,               _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
    ),



@@ 292,8 292,8 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {

// commom codes called from eeconfig_init_user() and keyboard_post_init_user().
void my_init(void){
    //  Set octave to MI_OCT_1
    midi_config.octave = MI_OCT_0 - MIDI_OCTAVE_MIN;
    //  Set octave to 0
    midi_config.octave = QK_MIDI_OCTAVE_0 - MIDI_OCTAVE_MIN;
    // avoid using 127 since it is used as a special number in some sound sources.
    midi_config.velocity = MIDI_INITIAL_VELOCITY;
    default_layer_set(_LS_BASE);

M keyboards/chromatonemini/keymaps/party/keymap.c => keyboards/chromatonemini/keymaps/party/keymap.c +20 -20
@@ 206,7 206,7 @@ static uint8_t my_tone_status[MY_TONE_COUNT];
// Long press: go to _FN layer, tap: MUTE
#define FN_MUTE LT(_FN, KC_MUTE)

// Used to set octave to MI_OCT_0
// Used to set octave to 0
extern midi_config_t midi_config;
static bool is_trans_mode = false;     //  By default, shift mode is chosen.



@@ 215,57 215,57 @@ static uint8_t key_separator_col = _KEY01;  //  (_KEY01 .. _KEY37).     By defau
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
    /* Base */
    [_BASE] = LAYOUT(
            FN_MUTE,         MI_SUS,
            MI_BENDU,
        SHIFT_L, SHIFT_R,    MI_C_2, MI_D_2, MI_E_2,  MI_Fs_2, MI_Ab_2, MI_Bb_2, MI_C_3, MI_D_3, MI_E_3, MI_Fs_3, MI_Ab_3, MI_Bb_3, MI_C_4,  MI_D_4,  MI_E_4, MI_Fs_4, MI_Ab_4, MI_Bb_4, MI_C_5,
            MI_BENDD,           MI_Db_2, MI_Eb_2, MI_F_2,  MI_G_2,  MI_A_2,  MI_B_2, MI_Db_3, MI_Eb_3, MI_F_3,  MI_G_3, MI_A_3,  MI_B_3, MI_Db_4, MI_Eb_4, MI_F_4,  MI_G_4,  MI_A_4,  MI_B_4
            FN_MUTE,         MI_SUST,
            MI_BNDU,
        SHIFT_L, SHIFT_R,    MI_C2, MI_D2, MI_E2,  MI_Fs2, MI_Ab2, MI_Bb2, MI_C3, MI_D3, MI_E3, MI_Fs3, MI_Ab3, MI_Bb3, MI_C4,  MI_D4,  MI_E4, MI_Fs4, MI_Ab4, MI_Bb4, MI_C5,
            MI_BNDD,            MI_Db2, MI_Eb2, MI_F2,  MI_G2,  MI_A2,  MI_B2, MI_Db3, MI_Eb3, MI_F3,  MI_G3, MI_A3,  MI_B3, MI_Db4, MI_Eb4, MI_F4,  MI_G4,  MI_A4,  MI_B4
    ),

    /* 1 octave on the left side is ch2, others are ch1 (normal) */
    [_SEPALEFTOCT] = LAYOUT(
            _______,          _______,
            _______,
        SHIFT_L, SHIFT_R,     YM_C_2, YM_D_2, YM_E_2,  YM_Fs_2, YM_Ab_2, YM_Bb_2,     MI_C_3, MI_D_3, MI_E_3, MI_Fs_3, MI_Ab_3, MI_Bb_3, MI_C_4,  MI_D_4,  MI_E_4, MI_Fs_4, MI_Ab_4, MI_Bb_4, MI_C_5,
            _______,             YM_Db_2, YM_Eb_2, YM_F_2,  YM_G_2,  YM_A_2,  YM_B_2,     MI_Db_3, MI_Eb_3, MI_F_3,  MI_G_3, MI_A_3,  MI_B_3, MI_Db_4, MI_Eb_4, MI_F_4,  MI_G_4,  MI_A_4,  MI_B_4
        SHIFT_L, SHIFT_R,     YM_C_2, YM_D_2, YM_E_2,  YM_Fs_2, YM_Ab_2, YM_Bb_2,     MI_C3, MI_D3, MI_E3, MI_Fs3, MI_Ab3, MI_Bb3, MI_C4,  MI_D4,  MI_E4, MI_Fs4, MI_Ab4, MI_Bb4, MI_C5,
            _______,             YM_Db_2, YM_Eb_2, YM_F_2,  YM_G_2,  YM_A_2,  YM_B_2,     MI_Db3, MI_Eb3, MI_F3,  MI_G3, MI_A3,  MI_B3, MI_Db4, MI_Eb4, MI_F4,  MI_G4,  MI_A4,  MI_B4
    ),

    /* Half ch2, half ch1 (normal) */
    [_SEPAHALF] = LAYOUT(
            _______,           _______,
            _______,
        SHIFT_L, SHIFT_R,      YM_C_2, YM_D_2, YM_E_2,  YM_Fs_2, YM_Ab_2, YM_Bb_2, YM_C_3, YM_D_3, YM_E_3,       MI_Fs_3, MI_Ab_3, MI_Bb_3, MI_C_4,  MI_D_4,  MI_E_4, MI_Fs_4, MI_Ab_4, MI_Bb_4, MI_C_5,
            _______,               YM_Db_2, YM_Eb_2, YM_F_2,  YM_G_2,  YM_A_2,  YM_B_2, YM_Db_3, YM_Eb_3, YM_F_3,    MI_G_3, MI_A_3,  MI_B_3, MI_Db_4, MI_Eb_4, MI_F_4,  MI_G_4,  MI_A_4,  MI_B_4
        SHIFT_L, SHIFT_R,      YM_C_2, YM_D_2, YM_E_2,  YM_Fs_2, YM_Ab_2, YM_Bb_2, YM_C_3, YM_D_3, YM_E_3,       MI_Fs3, MI_Ab3, MI_Bb3, MI_C4,  MI_D4,  MI_E4, MI_Fs4, MI_Ab4, MI_Bb4, MI_C5,
            _______,               YM_Db_2, YM_Eb_2, YM_F_2,  YM_G_2,  YM_A_2,  YM_B_2, YM_Db_3, YM_Eb_3, YM_F_3,    MI_G3, MI_A3,  MI_B3, MI_Db4, MI_Eb4, MI_F4,  MI_G4,  MI_A4,  MI_B4
    ),

    /* 2 octave on the left side is ch2, others are ch1 (normal) */
    [_SEPARIGHTOCT] = LAYOUT(
            _______,           _______,
            _______,
        SHIFT_L, SHIFT_R,      YM_C_2, YM_D_2, YM_E_2,  YM_Fs_2, YM_Ab_2, YM_Bb_2, YM_C_3, YM_D_3, YM_E_3, YM_Fs_3, YM_Ab_3, YM_Bb_3,      MI_C_4,  MI_D_4,  MI_E_4, MI_Fs_4, MI_Ab_4, MI_Bb_4, MI_C_5,
            _______,               YM_Db_2, YM_Eb_2, YM_F_2,  YM_G_2,  YM_A_2,  YM_B_2, YM_Db_3, YM_Eb_3, YM_F_3,  YM_G_3, YM_A_3,  YM_B_3,     MI_Db_4, MI_Eb_4, MI_F_4,  MI_G_4,  MI_A_4,  MI_B_4
        SHIFT_L, SHIFT_R,      YM_C_2, YM_D_2, YM_E_2,  YM_Fs_2, YM_Ab_2, YM_Bb_2, YM_C_3, YM_D_3, YM_E_3, YM_Fs_3, YM_Ab_3, YM_Bb_3,      MI_C4,  MI_D4,  MI_E4, MI_Fs4, MI_Ab4, MI_Bb4, MI_C5,
            _______,               YM_Db_2, YM_Eb_2, YM_F_2,  YM_G_2,  YM_A_2,  YM_B_2, YM_Db_3, YM_Eb_3, YM_F_3,  YM_G_3, YM_A_3,  YM_B_3,     MI_Db4, MI_Eb4, MI_F4,  MI_G4,  MI_A4,  MI_B4
    ),

    /* TRANS   This layer must locate 1 layer below _FN layer. */
    [_TRANS] = LAYOUT(
            _______,           _______,
            _______,
        MI_TRNSD, MI_TRNSU,   _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
        MI_TRSD,  MI_TRSU,    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
            _______,               _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
    ),

    /* Flip Base    SFIFTUP and SHIFT_L are swapped. */
    [_FLIPBASE] = LAYOUT(
            FN_MUTE,          MI_SUS,
            MI_BENDU,
        SHIFT_L, SHIFT_R,     MI_C_5, MI_Bb_4, MI_Ab_4,  MI_Fs_4, MI_E_4, MI_D_4, MI_C_4, MI_Bb_3, MI_Ab_3, MI_Fs_3, MI_E_3, MI_D_3, MI_C_3,  MI_Bb_2,  MI_Ab_2, MI_Fs_2, MI_E_2, MI_D_2, MI_C_2,
            MI_BENDD,           MI_B_4, MI_A_4, MI_G_4,  MI_F_4,  MI_Eb_4,  MI_Db_4, MI_B_3, MI_A_3, MI_G_3,  MI_F_3, MI_Eb_3,  MI_Db_3, MI_B_2, MI_A_2, MI_G_2,  MI_F_2,  MI_Eb_2,  MI_Db_2
            FN_MUTE,          MI_SUST,
            MI_BNDU,
        SHIFT_L, SHIFT_R,     MI_C5, MI_Bb4, MI_Ab4,  MI_Fs4, MI_E4, MI_D4, MI_C4, MI_Bb3, MI_Ab3, MI_Fs3, MI_E3, MI_D3, MI_C3,  MI_Bb2,  MI_Ab2, MI_Fs2, MI_E2, MI_D2, MI_C2,
            MI_BNDD,            MI_B4, MI_A4, MI_G4,  MI_F4,  MI_Eb4,  MI_Db4, MI_B3, MI_A3, MI_G3,  MI_F3, MI_Eb3,  MI_Db3, MI_B2, MI_A2, MI_G2,  MI_F2,  MI_Eb2,  MI_Db2
    ),

    /* Flip Trans   This layer must locate 1 layer above _FLIPBASE layer.  MI_TRNSU and MI_TRNSD are swapped. */
    /* Flip Trans   This layer must locate 1 layer above _FLIPBASE layer.  MI_TRSU and MI_TRSD are swapped. */
    [_FLIPTRANS] = LAYOUT(
            _______,          _______,
            _______,
        MI_TRNSU, MI_TRNSD,   _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
        MI_TRSU,  MI_TRSD,    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
            _______,               _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
    ),



@@ 293,8 293,8 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {

// commom codes called from eeconfig_init_user() and keyboard_post_init_user().
void my_init(void){
    //  Set octave to MI_OCT_1
    midi_config.octave = MI_OCT_0 - MIDI_OCTAVE_MIN;
    //  Set octave to 0
    midi_config.octave = QK_MIDI_OCTAVE_0 - MIDI_OCTAVE_MIN;
    // avoid using 127 since it is used as a special number in some sound sources.
    midi_config.velocity = MIDI_INITIAL_VELOCITY;
    default_layer_set(_LS_BASE);

M keyboards/chromatonemini/keymaps/via/keymap.c => keyboards/chromatonemini/keymaps/via/keymap.c +8 -8
@@ 54,24 54,24 @@ enum custom_keycodes {
// Long press: go to _FN layer, tap: MUTE
#define FN_MUTE LT(_FN, KC_MUTE)

// Used to set octave to MI_OCT_0
// Used to set octave to 0
extern midi_config_t midi_config;
static bool is_trans_mode = false;     //  By default, shift mode is chosen.

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
    /* Base */
    [_BASE] = LAYOUT(
            FN_MUTE,         MI_SUS,
            MI_BENDU,
        SHIFT_L, SHIFT_R,    MI_C_2, MI_D_2, MI_E_2,  MI_Fs_2, MI_Ab_2, MI_Bb_2, MI_C_3, MI_D_3, MI_E_3, MI_Fs_3, MI_Ab_3, MI_Bb_3, MI_C_4,  MI_D_4,  MI_E_4, MI_Fs_4, MI_Ab_4, MI_Bb_4, MI_C_5,
            MI_BENDD,           MI_Db_2, MI_Eb_2, MI_F_2,  MI_G_2,  MI_A_2,  MI_B_2, MI_Db_3, MI_Eb_3, MI_F_3,  MI_G_3, MI_A_3,  MI_B_3, MI_Db_4, MI_Eb_4, MI_F_4,  MI_G_4,  MI_A_4,  MI_B_4
            FN_MUTE,         MI_SUST,
            MI_BNDU,
        SHIFT_L, SHIFT_R,    MI_C2, MI_D2, MI_E2,  MI_Fs2, MI_Ab2, MI_Bb2, MI_C3, MI_D3, MI_E3, MI_Fs3, MI_Ab3, MI_Bb3, MI_C4,  MI_D4,  MI_E4, MI_Fs4, MI_Ab4, MI_Bb4, MI_C5,
            MI_BNDD,            MI_Db2, MI_Eb2, MI_F2,  MI_G2,  MI_A2,  MI_B2, MI_Db3, MI_Eb3, MI_F3,  MI_G3, MI_A3,  MI_B3, MI_Db4, MI_Eb4, MI_F4,  MI_G4,  MI_A4,  MI_B4
    ),

    /* TRANS   This layer must locate 1 layer below _FN layer. */
    [_TRANS] = LAYOUT(
            _______,           _______,
            _______,
        MI_TRNSD, MI_TRNSU,   _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
        MI_TRSD,  MI_TRSU,    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
            _______,               _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
    ),



@@ 102,8 102,8 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {

// commom codes called from eeconfig_init_user() and keyboard_post_init_user().
void my_init(void){
    //  Set octave to MI_OCT_1
    midi_config.octave = MI_OCT_0 - MIDI_OCTAVE_MIN;
    //  Set octave to 0
    midi_config.octave = QK_MIDI_OCTAVE_0 - MIDI_OCTAVE_MIN;
    // avoid using 127 since it is used as a special number in some sound sources.
    midi_config.velocity = MIDI_INITIAL_VELOCITY;
    default_layer_set(_LS_BASE);

M keyboards/ckeys/thedora/keymaps/default/keymap.c => keyboards/ckeys/thedora/keymaps/default/keymap.c +4 -4
@@ 97,10 97,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
    // └─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘

    [_MIDI] = LAYOUT(
                 MI_Ds_3, MI_E_3,  MI_F_3,  MI_Fs_3, MI_G_3,
                 MI_As_2, MI_B_2,  MI_C_3,  MI_Cs_3, MI_D_3,
                 MI_F_2,  MI_Fs_2, MI_G_2,  MI_Gs_2, TG(_MIDI),
        _______, MI_C_2,  MI_Cs_2, MI_D_2,  MI_Ds_2, MI_E_2
                 MI_Ds3, MI_E3,  MI_F3,  MI_Fs3, MI_G3,
                 MI_As2, MI_B2,  MI_C3,  MI_Cs3, MI_D3,
                 MI_F2,  MI_Fs2, MI_G2,  MI_Gs2, TG(_MIDI),
        _______, MI_C2,  MI_Cs2, MI_D2,  MI_Ds2, MI_E2
    ),

    // MOUSE LAYER

M keyboards/clueboard/66/keymaps/magicmonty/keymap.c => keyboards/clueboard/66/keymaps/magicmonty/keymap.c +5 -5
@@ 88,11 88,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
#if defined(MIDI_ENABLE) && defined(MIDI_ADVANCED)
  /* Keymap _MI: MIDI layer (Advanced)*/
  [_MI] = LAYOUT(
    TO_BASE,MI_VEL_1,MI_VEL_2,MI_VEL_3,MI_VEL_4,MI_VEL_5,MI_VEL_6,MI_VEL_7,MI_VEL_8,MI_VEL_9,MI_VEL_10,  MI_CHD,   MI_CHU, XXXXXXX, XXXXXXX,          XXXXXXX,
    XXXXXXX, XXXXXXX,   MI_Cs,   MI_Ds, XXXXXXX,   MI_Fs,   MI_Gs,   MI_As, XXXXXXX, MI_Cs_1,  MI_Ds_1, XXXXXXX,  MI_Fs_1, XXXXXXX,                   XXXXXXX,
     MI_MOD,    MI_C,    MI_D,    MI_E,    MI_F,    MI_G,    MI_A,    MI_B,  MI_C_1,  MI_D_1,   MI_E_1,  MI_F_1,   MI_G_1, XXXXXXX,
     MI_SUS, XXXXXXX, MI_OCTD, MI_OCTU,MI_MODSD,MI_MODSU, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, MI_TRNSD,MI_TRNSU,MI_TRNS_0,  MI_SUS,          XXXXXXX,
    XXXXXXX, XXXXXXX, XXXXXXX,XXXXXXX,                 MI_ALLOFF, MI_ALLOFF,                   XXXXXXX, XXXXXXX,  XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX),
    TO_BASE,  MI_VL1,  MI_VL2,  MI_VL3,  MI_VL4,  MI_VL5,  MI_VL6,  MI_VL7,  MI_VL8,  MI_VL9,  MI_VL10, MI_CHND,  MI_CHNU, XXXXXXX, XXXXXXX,          XXXXXXX,
    XXXXXXX, XXXXXXX,   MI_Cs,   MI_Ds, XXXXXXX,   MI_Fs,   MI_Gs,   MI_As, XXXXXXX, MI_Cs1,  MI_Ds1, XXXXXXX,  MI_Fs1, XXXXXXX,                   XXXXXXX,
     MI_MOD,    MI_C,    MI_D,    MI_E,    MI_F,    MI_G,    MI_A,    MI_B,  MI_C1,  MI_D1,   MI_E1,  MI_F1,   MI_G1, XXXXXXX,
    MI_SUST, XXXXXXX, MI_OCTD, MI_OCTU, MI_MODD, MI_MODU, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,  MI_TRSD, MI_TRSU,   MI_TR0, MI_SUST,          XXXXXXX,
    XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,                   MI_AOFF, MI_AOFF,                    XXXXXXX, XXXXXXX,  XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX),
#elif defined(MIDI_ENABLE) && defined(MIDI_BASIC)
  /* Keymap _MI: MIDI layer (Basic)*/
  [_MI] = LAYOUT(

M keyboards/contra/keymaps/dana/keymap.c => keyboards/contra/keymaps/dana/keymap.c +4 -4
@@ 19,10 19,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
   * `-----------------------------------------------------------------------------------'
   */
  [0] = LAYOUT_ortho_4x12(
      MI_C_4, MI_Cs_4, MI_D_4, MI_Ds_4, MI_E_4, MI_F_4, MI_Fs_4, MI_G_4, MI_Gs_4, MI_A_4, MI_As_4, MI_B_4,
      MI_C_3, MI_Cs_3, MI_D_3, MI_Ds_3, MI_E_3, MI_F_3, MI_Fs_3, MI_G_3, MI_Gs_3, MI_A_3, MI_As_3, MI_B_3,
      MI_C_2, MI_Cs_2, MI_D_2, MI_Ds_2, MI_E_2, MI_F_2, MI_Fs_2, MI_G_2, MI_Gs_2, MI_A_2, MI_As_2, MI_B_2,
      MI_C_1, MI_Cs_1, MI_D_1, MI_Ds_1, MI_E_1, MI_F_1, MI_Fs_1, MI_G_1, MI_Gs_1, MI_A_1, MI_As_1, MI_B_1
      MI_C4, MI_Cs4, MI_D4, MI_Ds4, MI_E4, MI_F4, MI_Fs4, MI_G4, MI_Gs4, MI_A4, MI_As4, MI_B4,
      MI_C3, MI_Cs3, MI_D3, MI_Ds3, MI_E3, MI_F3, MI_Fs3, MI_G3, MI_Gs3, MI_A3, MI_As3, MI_B3,
      MI_C2, MI_Cs2, MI_D2, MI_Ds2, MI_E2, MI_F2, MI_Fs2, MI_G2, MI_Gs2, MI_A2, MI_As2, MI_B2,
      MI_C1, MI_Cs1, MI_D1, MI_Ds1, MI_E1, MI_F1, MI_Fs1, MI_G1, MI_Gs1, MI_A1, MI_As1, MI_B1
  )

};

M keyboards/gh60/satan/keymaps/midi/keymap.c => keyboards/gh60/satan/keymaps/midi/keymap.c +5 -5
@@ 45,11 45,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
   * `------------------------------------------------------------------------'
   */
  [_ML] = LAYOUT_60_ansi(
    TG(_ML), MI_VEL_1, MI_VEL_2, MI_VEL_3,  MI_VEL_4, MI_VEL_5, MI_VEL_6, MI_VEL_7, MI_VEL_8, MI_VEL_9, MI_VEL_10, XXXXXXX,   XXXXXXX, XXXXXXX,
    MI_CHU,  XXXXXXX,  MI_Cs,    MI_Ds,     XXXXXXX,  MI_Fs,    MI_Gs,    MI_As,    XXXXXXX,  MI_Cs_1,  MI_Ds_1,   XXXXXXX,   XXXXXXX, XXXXXXX,
    MI_MOD,  MI_C,     MI_D,     MI_E,      MI_F,     MI_G,     MI_A,     MI_B,     MI_C_1,   MI_D_1,   MI_E_1,    MI_F_1,             _______,
    MI_SUS,            MI_OCTD,  MI_OCTU,   MI_MODSD, MI_MODSU, XXXXXXX,  XXXXXXX,  XXXXXXX,  MI_TRNSD, MI_TRNSU,  MI_TRNS_0,          MI_SUS,
    _______, _______,  _______,                       MI_ALLOFF,                                        _______,   _______,   _______, _______
    TG(_ML), MI_VL1,   MI_VL2,   MI_VL3,    MI_VL4,   MI_VL5,   MI_VL6,   MI_VL7,   MI_VL8,   MI_VL9,   MI_VL10,   XXXXXXX,   XXXXXXX, XXXXXXX,
    MI_CHU,  XXXXXXX,  MI_Cs,    MI_Ds,     XXXXXXX,  MI_Fs,    MI_Gs,    MI_As,    XXXXXXX,  MI_Cs1,  MI_Ds1,   XXXXXXX,   XXXXXXX, XXXXXXX,
    MI_MOD,  MI_C,     MI_D,     MI_E,      MI_F,     MI_G,     MI_A,     MI_B,     MI_C1,   MI_D1,   MI_E1,    MI_F1,             _______,
    MI_SUST,           MI_OCTD,  MI_OCTU,   MI_MODD,  MI_MODU,  XXXXXXX,  XXXXXXX,  XXXXXXX,  MI_TRSD,  MI_TRSU,   MI_TR0,             MI_SUST,
    _______, _______,  _______,                       MI_AOFF,                                          _______,   _______,   _______, _______
  ),
  #elif defined(MIDI_ENABLE) && defined(MIDI_BASIC)
  /* Keymap _ML: MIDI Layer (Advanced)

M keyboards/giabalanai/keymaps/2firmware/keymap.c => keyboards/giabalanai/keymaps/2firmware/keymap.c +46 -46
@@ 30,7 30,7 @@
#define ADJ_EIS  LT(_ADJUST,KC_LNG2)
#define MIS_KAN  LT(_MISC,KC_LNG1)

// Used to set octave to MI_OCT_0
// Used to set octave to 0
extern midi_config_t midi_config;
uint8_t midi_bass_ch = 0, midi_chord_ch = 0;  // By default, all use the same channel.



@@ 205,10 205,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
          MI_CH_DbDom7, MI_CH_AbDom7, MI_CH_EbDom7, MI_CH_BbDom7, MI_CH_FDom7, MI_CH_CDom7, MI_CH_GDom7, MI_CH_DDom7, MI_CH_ADom7, MI_CH_EDom7, MI_CH_BDom7, MI_CH_FsDom7,
            MI_CH_DbDim7, MI_CH_AbDim7, MI_CH_EbDim7, MI_CH_BbDim7, MI_CH_FDim7, MI_CH_CDim7, MI_CH_GDim7, MI_CH_DDim7, MI_CH_ADim7, MI_CH_EDim7, MI_CH_BDim7, MI_CH_FsDim7,

    MI_Fs_2,
      MI_Ab_2, MI_B_2,  MI_D_3,  MI_F_3,  MI_Ab_3, MI_B_3,  MI_D_4,  MI_F_4,  MI_Ab_4, MI_B_4,  MI_D_5,  MI_F_5,    FN_MUTE,
    MI_G_2,  MI_Bb_2, MI_Db_3, MI_E_3,  MI_G_3,  MI_Bb_3, MI_Db_4, MI_E_4,  MI_G_4,  MI_Bb_4, MI_Db_5, MI_E_5,  MI_G_5,
      MI_A_2,  MI_C_3,  MI_Eb_3, MI_Fs_3, MI_A_3,  MI_C_4,  MI_Eb_4, MI_Fs_4, MI_A_4,  MI_C_5,  MI_Eb_5, MI_Fs_5
    MI_Fs2,
      MI_Ab2, MI_B2,  MI_D3,  MI_F3,  MI_Ab3, MI_B3,  MI_D4,  MI_F4,  MI_Ab4, MI_B4,  MI_D5,  MI_F5,    FN_MUTE,
    MI_G2,  MI_Bb2, MI_Db3, MI_E3,  MI_G3,  MI_Bb3, MI_Db4, MI_E4,  MI_G4,  MI_Bb4, MI_Db5, MI_E5,  MI_G5,
      MI_A2,  MI_C3,  MI_Eb3, MI_Fs3, MI_A3,  MI_C4,  MI_Eb4, MI_Fs4, MI_A4,  MI_C5,  MI_Eb5, MI_Fs5
  ),

  /* fake B-system */


@@ 219,10 219,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
          _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
            _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,

    MI_Ab_2,
      MI_A_2,  MI_C_3,  MI_Eb_3, MI_Gb_3, MI_A_3, MI_C_4,  MI_Eb_4, MI_Gb_4, MI_A_4, MI_C_5,  MI_Eb_5, MI_Gb_5,     _______,
    MI_G_2,  MI_Bb_2, MI_Db_3, MI_E_3,  MI_G_3, MI_Bb_3, MI_Db_4, MI_E_4,  MI_G_4, MI_Bb_4, MI_Db_5, MI_E_5,  MI_G_5,
      MI_Ab_2, MI_B_2,  MI_D_3,  MI_F_3, MI_Ab_3, MI_B_3,  MI_D_4,  MI_F_4, MI_Ab_4, MI_B_4,  MI_D_5,  MI_F_5
    MI_Ab2,
      MI_A2,  MI_C3,  MI_Eb3, MI_Gb3, MI_A3, MI_C4,  MI_Eb4, MI_Gb4, MI_A4, MI_C5,  MI_Eb5, MI_Gb5,     _______,
    MI_G2,  MI_Bb2, MI_Db3, MI_E3,  MI_G3, MI_Bb3, MI_Db4, MI_E4,  MI_G4, MI_Bb4, MI_Db5, MI_E5,  MI_G5,
      MI_Ab2, MI_B2,  MI_D3,  MI_F3, MI_Ab3, MI_B3,  MI_D4,  MI_F4, MI_Ab4, MI_B4,  MI_D5,  MI_F5
  ),

  /* BASS2row */


@@ 233,38 233,38 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
          MI_CH_Dbm,    MI_CH_Abm,    MI_CH_Ebm,    MI_CH_Bbm,    MI_CH_Fm,    MI_CH_Cm,    MI_CH_Gm,    MI_CH_Dm,    MI_CH_Am,    MI_CH_Em,    MI_CH_Bm,    MI_CH_Fsm,
            MI_CH_DbDom7, MI_CH_AbDom7, MI_CH_EbDom7, MI_CH_BbDom7, MI_CH_FDom7, MI_CH_CDom7, MI_CH_GDom7, MI_CH_DDom7, MI_CH_ADom7, MI_CH_EDom7, MI_CH_BDom7, MI_CH_FsDom7,

    MI_Fs_2,
      MI_Ab_2, MI_B_2,  MI_D_3,  MI_F_3,  MI_Ab_3, MI_B_3,  MI_D_4,  MI_F_4,  MI_Ab_4, MI_B_4,  MI_D_5,  MI_F_5,    _______,
    MI_G_2,  MI_Bb_2, MI_Db_3, MI_E_3,  MI_G_3,  MI_Bb_3, MI_Db_4, MI_E_4,  MI_G_4,  MI_Bb_4, MI_Db_5, MI_E_5,  MI_G_5,
      MI_A_2,  MI_C_3,  MI_Eb_3, MI_Fs_3, MI_A_3,  MI_C_4,  MI_Eb_4, MI_Fs_4, MI_A_4,  MI_C_5,  MI_Eb_5, MI_Fs_5
    MI_Fs2,
      MI_Ab2, MI_B2,  MI_D3,  MI_F3,  MI_Ab3, MI_B3,  MI_D4,  MI_F4,  MI_Ab4, MI_B4,  MI_D5,  MI_F5,    _______,
    MI_G2,  MI_Bb2, MI_Db3, MI_E3,  MI_G3,  MI_Bb3, MI_Db4, MI_E4,  MI_G4,  MI_Bb4, MI_Db5, MI_E5,  MI_G5,
      MI_A2,  MI_C3,  MI_Eb3, MI_Fs3, MI_A3,  MI_C4,  MI_Eb4, MI_Fs4, MI_A4,  MI_C5,  MI_Eb5, MI_Fs5
  ),

  /* C-system entirely */
  [_C_SYSTEM_ENTIRELY] = LAYOUT(
    MI_BENDU, XXXXXXX, XXXXXXX, MI_Db,   MI_E,    MI_G,    MI_Bb,   MI_Db_1, MI_E_1,  MI_G_1,  MI_Bb_1, MI_Db_2,
      MI_BENDD, XXXXXXX, MI_C,    MI_Eb,   MI_Fs,   MI_A,    MI_C_1,  MI_Eb_1, MI_Fs_1, MI_A_1,  MI_C_2,  MI_Eb_2,
        XXXXXXX, XXXXXXX, MI_D,    MI_F,    MI_Ab,   MI_B,    MI_D_1,  MI_F_1,  MI_Ab_1, MI_B_1,  MI_D_2,  MI_F_2,
          XXXXXXX, MI_Db,   MI_E,    MI_G,    MI_Bb,   MI_Db_1, MI_E_1,  MI_G_1,  MI_Bb_1, MI_Db_2, MI_E_2,  MI_G_2,
            MI_C,    MI_Eb,   MI_Fs,   MI_A,    MI_C_1,  MI_Eb_1, MI_Fs_1, MI_A_1,  MI_C_2,  MI_Eb_2, MI_Fs_2, MI_A_2,

    MI_Fs_2,
      MI_Ab_2, MI_B_2,  MI_D_3,  MI_F_3,  MI_Ab_3, MI_B_3,  MI_D_4,  MI_F_4,  MI_Ab_4, MI_B_4,  MI_D_5,  MI_F_5,    FN_MUTE,
    MI_G_2,  MI_Bb_2, MI_Db_3, MI_E_3,  MI_G_3,  MI_Bb_3, MI_Db_4, MI_E_4,  MI_G_4,  MI_Bb_4, MI_Db_5, MI_E_5,  MI_G_5,
      MI_A_2,  MI_C_3,  MI_Eb_3, MI_Fs_3, MI_A_3,  MI_C_4,  MI_Eb_4, MI_Fs_4, MI_A_4,  MI_C_5,  MI_Eb_5, MI_Fs_5
    MI_BNDU, XXXXXXX, XXXXXXX, MI_Db,   MI_E,    MI_G,    MI_Bb,   MI_Db1, MI_E1,  MI_G1,  MI_Bb1, MI_Db2,
      MI_BNDD, XXXXXXX, MI_C,    MI_Eb,   MI_Fs,   MI_A,    MI_C1,  MI_Eb1, MI_Fs1, MI_A1,  MI_C2,  MI_Eb2,
        XXXXXXX, XXXXXXX, MI_D,    MI_F,    MI_Ab,   MI_B,    MI_D1,  MI_F1,  MI_Ab1, MI_B1,  MI_D2,  MI_F2,
          XXXXXXX, MI_Db,   MI_E,    MI_G,    MI_Bb,   MI_Db1, MI_E1,  MI_G1,  MI_Bb1, MI_Db2, MI_E2,  MI_G2,
            MI_C,    MI_Eb,   MI_Fs,   MI_A,    MI_C1,  MI_Eb1, MI_Fs1, MI_A1,  MI_C2,  MI_Eb2, MI_Fs2, MI_A2,

    MI_Fs2,
      MI_Ab2, MI_B2,  MI_D3,  MI_F3,  MI_Ab3, MI_B3,  MI_D4,  MI_F4,  MI_Ab4, MI_B4,  MI_D5,  MI_F5,    FN_MUTE,
    MI_G2,  MI_Bb2, MI_Db3, MI_E3,  MI_G3,  MI_Bb3, MI_Db4, MI_E4,  MI_G4,  MI_Bb4, MI_Db5, MI_E5,  MI_G5,
      MI_A2,  MI_C3,  MI_Eb3, MI_Fs3, MI_A3,  MI_C4,  MI_Eb4, MI_Fs4, MI_A4,  MI_C5,  MI_Eb5, MI_Fs5
  ),

  /* Chromatone */
  [_CHROMATONE] = LAYOUT(
    MI_Db,   MI_Eb,   MI_F,    MI_G,    MI_A,    MI_B,    MI_Db_1, MI_Eb_1, MI_F_1,  MI_G_1,  MI_A_1,  MI_B_1,
      MI_D,    MI_E,    MI_Fs,   MI_Ab,   MI_Bb,   MI_C_1,  MI_D_1,  MI_E_1,  MI_Fs_1, MI_Ab_1, MI_Bb_1, MI_C_2,
        MI_Eb,   MI_F,    MI_G,    MI_A,    MI_B,    MI_Db_1, MI_Eb_1, MI_F_1,  MI_G_1,  MI_A_1,  MI_B_1,  MI_Db_2,
          MI_E,    MI_Fs,   MI_Ab,   MI_Bb,   MI_C_1,  MI_D_1,  MI_E_1,  MI_Fs_1, MI_Ab_1, MI_Bb_1, MI_C_2,  MI_D_2,
            MI_F,    MI_G,    MI_A,    MI_B,    MI_Db_1, MI_Eb_1, MI_F_1,  MI_G_1,  MI_A_1,  MI_B_1,  MI_Db_2, MI_Eb_2,

    MI_C_2,
      MI_Db_2, MI_Eb_2, MI_F_2,  MI_G_2,  MI_A_2,  MI_B_2,  MI_Db_3, MI_Eb_3, MI_F_3,  MI_G_3,  MI_A_3,  MI_B_3,    FN_MUTE,
    MI_C_2,  MI_D_2,  MI_E_2,  MI_Gb_2, MI_Ab_2, MI_Bb_2, MI_C_3,  MI_D_3,  MI_E_3,  MI_Gb_3, MI_Ab_3, MI_Bb_3, MI_C_4,
      MI_Db_2, MI_Eb_2, MI_F_2,  MI_G_2,  MI_A_2,  MI_B_2,  MI_Db_3, MI_Eb_3, MI_F_3,  MI_G_3,  MI_A_3,  MI_B_3
    MI_Db,   MI_Eb,   MI_F,    MI_G,    MI_A,    MI_B,    MI_Db1, MI_Eb1, MI_F1,  MI_G1,  MI_A1,  MI_B1,
      MI_D,    MI_E,    MI_Fs,   MI_Ab,   MI_Bb,   MI_C1,  MI_D1,  MI_E1,  MI_Fs1, MI_Ab1, MI_Bb1, MI_C2,
        MI_Eb,   MI_F,    MI_G,    MI_A,    MI_B,    MI_Db1, MI_Eb1, MI_F1,  MI_G1,  MI_A1,  MI_B1,  MI_Db2,
          MI_E,    MI_Fs,   MI_Ab,   MI_Bb,   MI_C1,  MI_D1,  MI_E1,  MI_Fs1, MI_Ab1, MI_Bb1, MI_C2,  MI_D2,
            MI_F,    MI_G,    MI_A,    MI_B,    MI_Db1, MI_Eb1, MI_F1,  MI_G1,  MI_A1,  MI_B1,  MI_Db2, MI_Eb2,

    MI_C2,
      MI_Db2, MI_Eb2, MI_F2,  MI_G2,  MI_A2,  MI_B2,  MI_Db3, MI_Eb3, MI_F3,  MI_G3,  MI_A3,  MI_B3,    FN_MUTE,
    MI_C2,  MI_D2,  MI_E2,  MI_Gb2, MI_Ab2, MI_Bb2, MI_C3,  MI_D3,  MI_E3,  MI_Gb3, MI_Ab3, MI_Bb3, MI_C4,
      MI_Db2, MI_Eb2, MI_F2,  MI_G2,  MI_A2,  MI_B2,  MI_Db3, MI_Eb3, MI_F3,  MI_G3,  MI_A3,  MI_B3
  ),

  [_CFLIP_BASS2ROW] = LAYOUT(


@@ 274,10 274,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
          MI_CH_Dbm,    MI_CH_Abm,    MI_CH_Ebm,    MI_CH_Bbm,    MI_CH_Fm,    MI_CH_Cm,    MI_CH_Gm,    MI_CH_Dm,    MI_CH_Am,    MI_CH_Em,    MI_CH_Bm,    MI_CH_Fsm,
            MI_CH_DbDom7, MI_CH_AbDom7, MI_CH_EbDom7, MI_CH_BbDom7, MI_CH_FDom7, MI_CH_CDom7, MI_CH_GDom7, MI_CH_DDom7, MI_CH_ADom7, MI_CH_EDom7, MI_CH_BDom7, MI_CH_FsDom7,

    MI_G_5,
      MI_F_5,  MI_D_5,  MI_B_4,  MI_Ab_4, MI_F_4,  MI_D_4,  MI_B_3,  MI_Ab_3, MI_F_3,  MI_D_3,  MI_B_2,  MI_Ab_2,   FN_MUTE,
    MI_Fs_5, MI_Eb_5, MI_C_5,  MI_A_4,  MI_Fs_4, MI_Eb_4, MI_C_4,  MI_A_3,  MI_Fs_3, MI_Eb_3, MI_C_3,  MI_A_2,  MI_Fs_2,
      MI_E_5,  MI_Db_5, MI_Bb_4, MI_G_4,  MI_E_4,  MI_Db_4, MI_Bb_3, MI_G_3,  MI_E_3,  MI_Db_3, MI_Bb_2, MI_G_2
    MI_G5,
      MI_F5,  MI_D5,  MI_B4,  MI_Ab4, MI_F4,  MI_D4,  MI_B3,  MI_Ab3, MI_F3,  MI_D3,  MI_B2,  MI_Ab2,   FN_MUTE,
    MI_Fs5, MI_Eb5, MI_C5,  MI_A4,  MI_Fs4, MI_Eb4, MI_C4,  MI_A3,  MI_Fs3, MI_Eb3, MI_C3,  MI_A2,  MI_Fs2,
      MI_E5,  MI_Db5, MI_Bb4, MI_G4,  MI_E4,  MI_Db4, MI_Bb3, MI_G3,  MI_E3,  MI_Db3, MI_Bb2, MI_G2
  ),

  /* QWERTY */


@@ 332,7 332,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
            XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,

    XXXXXXX,
      MI_OCT_N2, MI_OCT_N1, MI_OCT_0, MI_OCT_1, MI_OCT_2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, VERSION, EE_CLR, _______,
      MI_OCN2, MI_OCN1, MI_OC0,  MI_OC1,  MI_OC2,  XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, VERSION, EE_CLR, _______,
    CSYSTEM, BSYSTEM,  CNTBASC,  CSYSALL,  CHRTONE,  CFLIP2B, XXXXXXX, XXXXXXX, XXXXXXX, MI_VELD, MI_VELU, XXXXXXX, RGB_TOG,
      XXXXXXX,   TGLBASS,   XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX, XXXXXXX, XXXXXXX, TGLUVEL, MELDYAL, MELODYS, MELDYAH
  )


@@ 428,8 428,8 @@ layer_state_t layer_state_set_user(layer_state_t state) {
#endif  //  RGBLIGHT_ENABLE

void my_init(void){
    //  Set octave to MI_OCT_0
    midi_config.octave = MI_OCT_0 - MIDI_OCTAVE_MIN;
    //  Set octave to 0
    midi_config.octave = QK_MIDI_OCTAVE_0 - MIDI_OCTAVE_MIN;
    // avoid using 127 since it is used as a special number in some sound sources.
    midi_config.velocity = MIDI_INITIAL_VELOCITY;
}


@@ 438,7 438,7 @@ void eeconfig_init_user(void) {
    midi_init();
    my_init();

    // Used to set octave to MI_OCT_0
    // Used to set octave to 0
    midi_bass_ch = 0, midi_chord_ch = 0;  // By default, all use the same channel.

    // UNISON flags


@@ 646,7 646,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {

        // MIDI Chord Keycodes, on the left side.
        case MI_CH_Cr ... MI_CH_Br:  // Root Notes
            root_note = keycode - MI_CH_Cr + MI_C_1;
            root_note = keycode - MI_CH_Cr + MI_C1;
            my_process_midi4Bass(midi_bass_ch, record, chord_status, chord, root_note, IS_SINGLE_BASS());
#ifdef RGBLIGHT_ENABLE
            switch_keylight_color4bass(record, keylocation);


@@ 654,7 654,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
            break;

        case MI_CH_C ... MI_CH_B:  // Major Chords
            root_note = keycode - MI_CH_C + MI_C_2;
            root_note = keycode - MI_CH_C + MI_C2;
            // Root, Major Third, and Fifth Notes
            my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 0, 4, 7);
#ifdef RGBLIGHT_ENABLE


@@ 663,7 663,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
            break;

        case MI_CH_Cm ... MI_CH_Bm:  // Minor Chord
            root_note = keycode - MI_CH_Cm + MI_C_2;
            root_note = keycode - MI_CH_Cm + MI_C2;
            // Root, Minor Third, and Fifth Notes
            my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 0, 3, 7);
#ifdef RGBLIGHT_ENABLE


@@ 672,7 672,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
            break;

        case MI_CH_CDom7 ... MI_CH_BDom7:  // Dominant 7th Chord
            root_note = keycode - MI_CH_CDom7 + MI_C_2;
            root_note = keycode - MI_CH_CDom7 + MI_C2;
            // Major Third, Major Fifth, and Minor Seventh Notes
            my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 4, 7, 10);
#ifdef RGBLIGHT_ENABLE


@@ 681,7 681,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
            break;

        case MI_CH_CDim7 ... MI_CH_BDim7:                // Diminished 7th Chord
            root_note = keycode - MI_CH_CDim7 + MI_C_2;
            root_note = keycode - MI_CH_CDim7 + MI_C2;
            // Root, Minor Third, and Diminished 5th Note
            my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 0, 3, 6);
#ifdef RGBLIGHT_ENABLE

M keyboards/giabalanai/keymaps/3araht/keymap.c => keyboards/giabalanai/keymaps/3araht/keymap.c +56 -56
@@ 29,7 29,7 @@
#define ADJ_EIS  LT(_ADJUST,KC_LNG2)
#define MIS_KAN  LT(_MISC,KC_LNG1)

// Used to set octave to MI_OCT_0
// Used to set octave to 0
extern midi_config_t midi_config;
uint8_t midi_bass_ch = 0, midi_chord_ch = 0;  // By default, all use the same channel.



@@ 206,10 206,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
          MI_CH_DbDom7, MI_CH_AbDom7, MI_CH_EbDom7, MI_CH_BbDom7, MI_CH_FDom7, MI_CH_CDom7, MI_CH_GDom7, MI_CH_DDom7, MI_CH_ADom7, MI_CH_EDom7, MI_CH_BDom7, MI_CH_FsDom7,
            MI_CH_DbDim7, MI_CH_AbDim7, MI_CH_EbDim7, MI_CH_BbDim7, MI_CH_FDim7, MI_CH_CDim7, MI_CH_GDim7, MI_CH_DDim7, MI_CH_ADim7, MI_CH_EDim7, MI_CH_BDim7, MI_CH_FsDim7,

    MI_Fs_2,
      MI_Ab_2, MI_B_2,  MI_D_3,  MI_F_3,  MI_Ab_3, MI_B_3,  MI_D_4,  MI_F_4,  MI_Ab_4, MI_B_4,  MI_D_5,  MI_F_5,    FN_MUTE,
    MI_G_2,  MI_Bb_2, MI_Db_3, MI_E_3,  MI_G_3,  MI_Bb_3, MI_Db_4, MI_E_4,  MI_G_4,  MI_Bb_4, MI_Db_5, MI_E_5,  MI_G_5,
      MI_A_2,  MI_C_3,  MI_Eb_3, MI_Fs_3, MI_A_3,  MI_C_4,  MI_Eb_4, MI_Fs_4, MI_A_4,  MI_C_5,  MI_Eb_5, MI_Fs_5
    MI_Fs2,
      MI_Ab2, MI_B2,  MI_D3,  MI_F3,  MI_Ab3, MI_B3,  MI_D4,  MI_F4,  MI_Ab4, MI_B4,  MI_D5,  MI_F5,    FN_MUTE,
    MI_G2,  MI_Bb2, MI_Db3, MI_E3,  MI_G3,  MI_Bb3, MI_Db4, MI_E4,  MI_G4,  MI_Bb4, MI_Db5, MI_E5,  MI_G5,
      MI_A2,  MI_C3,  MI_Eb3, MI_Fs3, MI_A3,  MI_C4,  MI_Eb4, MI_Fs4, MI_A4,  MI_C5,  MI_Eb5, MI_Fs5
  ),

  /* fake B-system */


@@ 220,10 220,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
          _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
            _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,

    MI_Ab_2,
      MI_A_2,  MI_C_3,  MI_Eb_3, MI_Gb_3, MI_A_3, MI_C_4,  MI_Eb_4, MI_Gb_4, MI_A_4, MI_C_5,  MI_Eb_5, MI_Gb_5,     _______,
    MI_G_2,  MI_Bb_2, MI_Db_3, MI_E_3,  MI_G_3, MI_Bb_3, MI_Db_4, MI_E_4,  MI_G_4, MI_Bb_4, MI_Db_5, MI_E_5,  MI_G_5,
      MI_Ab_2, MI_B_2,  MI_D_3,  MI_F_3, MI_Ab_3, MI_B_3,  MI_D_4,  MI_F_4, MI_Ab_4, MI_B_4,  MI_D_5,  MI_F_5
    MI_Ab2,
      MI_A2,  MI_C3,  MI_Eb3, MI_Gb3, MI_A3, MI_C4,  MI_Eb4, MI_Gb4, MI_A4, MI_C5,  MI_Eb5, MI_Gb5,     _______,
    MI_G2,  MI_Bb2, MI_Db3, MI_E3,  MI_G3, MI_Bb3, MI_Db4, MI_E4,  MI_G4, MI_Bb4, MI_Db5, MI_E5,  MI_G5,
      MI_Ab2, MI_B2,  MI_D3,  MI_F3, MI_Ab3, MI_B3,  MI_D4,  MI_F4, MI_Ab4, MI_B4,  MI_D5,  MI_F5
  ),

  /* BASS2row */


@@ 234,52 234,52 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
          MI_CH_Dbm,    MI_CH_Abm,    MI_CH_Ebm,    MI_CH_Bbm,    MI_CH_Fm,    MI_CH_Cm,    MI_CH_Gm,    MI_CH_Dm,    MI_CH_Am,    MI_CH_Em,    MI_CH_Bm,    MI_CH_Fsm,
            MI_CH_DbDom7, MI_CH_AbDom7, MI_CH_EbDom7, MI_CH_BbDom7, MI_CH_FDom7, MI_CH_CDom7, MI_CH_GDom7, MI_CH_DDom7, MI_CH_ADom7, MI_CH_EDom7, MI_CH_BDom7, MI_CH_FsDom7,

    MI_Fs_2,
      MI_Ab_2, MI_B_2,  MI_D_3,  MI_F_3,  MI_Ab_3, MI_B_3,  MI_D_4,  MI_F_4,  MI_Ab_4, MI_B_4,  MI_D_5,  MI_F_5,    _______,
    MI_G_2,  MI_Bb_2, MI_Db_3, MI_E_3,  MI_G_3,  MI_Bb_3, MI_Db_4, MI_E_4,  MI_G_4,  MI_Bb_4, MI_Db_5, MI_E_5,  MI_G_5,
      MI_A_2,  MI_C_3,  MI_Eb_3, MI_Fs_3, MI_A_3,  MI_C_4,  MI_Eb_4, MI_Fs_4, MI_A_4,  MI_C_5,  MI_Eb_5, MI_Fs_5
    MI_Fs2,
      MI_Ab2, MI_B2,  MI_D3,  MI_F3,  MI_Ab3, MI_B3,  MI_D4,  MI_F4,  MI_Ab4, MI_B4,  MI_D5,  MI_F5,    _______,
    MI_G2,  MI_Bb2, MI_Db3, MI_E3,  MI_G3,  MI_Bb3, MI_Db4, MI_E4,  MI_G4,  MI_Bb4, MI_Db5, MI_E5,  MI_G5,
      MI_A2,  MI_C3,  MI_Eb3, MI_Fs3, MI_A3,  MI_C4,  MI_Eb4, MI_Fs4, MI_A4,  MI_C5,  MI_Eb5, MI_Fs5
  ),

  /* C-system entirely */
  [_C_SYSTEM_ENTIRELY] = LAYOUT(
    MI_BENDU, XXXXXXX, XXXXXXX, MI_Db,   MI_E,    MI_G,    MI_Bb,   MI_Db_1, MI_E_1,  MI_G_1,  MI_Bb_1, MI_Db_2,
      MI_BENDD, XXXXXXX, MI_C,    MI_Eb,   MI_Fs,   MI_A,    MI_C_1,  MI_Eb_1, MI_Fs_1, MI_A_1,  MI_C_2,  MI_Eb_2,
        XXXXXXX, XXXXXXX, MI_D,    MI_F,    MI_Ab,   MI_B,    MI_D_1,  MI_F_1,  MI_Ab_1, MI_B_1,  MI_D_2,  MI_F_2,
          XXXXXXX, MI_Db,   MI_E,    MI_G,    MI_Bb,   MI_Db_1, MI_E_1,  MI_G_1,  MI_Bb_1, MI_Db_2, MI_E_2,  MI_G_2,
            MI_C,    MI_Eb,   MI_Fs,   MI_A,    MI_C_1,  MI_Eb_1, MI_Fs_1, MI_A_1,  MI_C_2,  MI_Eb_2, MI_Fs_2, MI_A_2,

    MI_Fs_2,
      MI_Ab_2, MI_B_2,  MI_D_3,  MI_F_3,  MI_Ab_3, MI_B_3,  MI_D_4,  MI_F_4,  MI_Ab_4, MI_B_4,  MI_D_5,  MI_F_5,    FN_MUTE,
    MI_G_2,  MI_Bb_2, MI_Db_3, MI_E_3,  MI_G_3,  MI_Bb_3, MI_Db_4, MI_E_4,  MI_G_4,  MI_Bb_4, MI_Db_5, MI_E_5,  MI_G_5,
      MI_A_2,  MI_C_3,  MI_Eb_3, MI_Fs_3, MI_A_3,  MI_C_4,  MI_Eb_4, MI_Fs_4, MI_A_4,  MI_C_5,  MI_Eb_5, MI_Fs_5
    MI_BNDU, XXXXXXX, XXXXXXX, MI_Db,   MI_E,    MI_G,    MI_Bb,   MI_Db1, MI_E1,  MI_G1,  MI_Bb1, MI_Db2,
      MI_BNDD, XXXXXXX, MI_C,    MI_Eb,   MI_Fs,   MI_A,    MI_C1,  MI_Eb1, MI_Fs1, MI_A1,  MI_C2,  MI_Eb2,
        XXXXXXX, XXXXXXX, MI_D,    MI_F,    MI_Ab,   MI_B,    MI_D1,  MI_F1,  MI_Ab1, MI_B1,  MI_D2,  MI_F2,
          XXXXXXX, MI_Db,   MI_E,    MI_G,    MI_Bb,   MI_Db1, MI_E1,  MI_G1,  MI_Bb1, MI_Db2, MI_E2,  MI_G2,
            MI_C,    MI_Eb,   MI_Fs,   MI_A,    MI_C1,  MI_Eb1, MI_Fs1, MI_A1,  MI_C2,  MI_Eb2, MI_Fs2, MI_A2,

    MI_Fs2,
      MI_Ab2, MI_B2,  MI_D3,  MI_F3,  MI_Ab3, MI_B3,  MI_D4,  MI_F4,  MI_Ab4, MI_B4,  MI_D5,  MI_F5,    FN_MUTE,
    MI_G2,  MI_Bb2, MI_Db3, MI_E3,  MI_G3,  MI_Bb3, MI_Db4, MI_E4,  MI_G4,  MI_Bb4, MI_Db5, MI_E5,  MI_G5,
      MI_A2,  MI_C3,  MI_Eb3, MI_Fs3, MI_A3,  MI_C4,  MI_Eb4, MI_Fs4, MI_A4,  MI_C5,  MI_Eb5, MI_Fs5
  ),

  /* C-system free bass */
  [_C_SYSTEM_FREEBASS] = LAYOUT(
    MI_Db_3,  MI_Bb_2,  MI_G_2,   MI_E_2,   MI_Db_2,  MI_Bb_1, MI_G_1,   MI_E_1,  MI_Db_1,  MI_Bb,  MI_G,  MI_E,
      MI_C_3,   MI_A_2,   MI_Fs_2,  MI_Eb_2,  MI_C_2,   MI_A_1,  MI_Fs_1,  MI_Eb_1,  MI_C_1,  MI_A,   MI_Fs, MI_Eb,
        MI_B_2,   MI_Ab_2,  MI_F_2,   MI_D_2,   MI_B_1,  MI_Ab_1,   MI_F_1,  MI_D_1,   MI_B,    MI_Ab,  MI_F,  MI_D,
          MI_Bb_2, MI_G_2,   MI_E_2,   MI_Db_2,  MI_Bb_1, MI_G_1,    MI_E_1,  MI_Db_1,   MI_Bb,  MI_G,   MI_E,  MI_Db,
            MI_A_2,  MI_Fs_2,  MI_Eb_2,  MI_C_2,   MI_A_1,  MI_Fs_1,   MI_Eb_1,  MI_C_1,   MI_A,   MI_Fs,  MI_Eb, MI_C,

    MI_Fs_2,
      MI_Ab_2, MI_B_2,  MI_D_3,  MI_F_3,  MI_Ab_3, MI_B_3,  MI_D_4,  MI_F_4,  MI_Ab_4, MI_B_4,  MI_D_5,  MI_F_5,    FN_MUTE,
    MI_G_2,  MI_Bb_2, MI_Db_3, MI_E_3,  MI_G_3,  MI_Bb_3, MI_Db_4, MI_E_4,  MI_G_4,  MI_Bb_4, MI_Db_5, MI_E_5,  MI_G_5,
      MI_A_2,  MI_C_3,  MI_Eb_3, MI_Fs_3, MI_A_3,  MI_C_4,  MI_Eb_4, MI_Fs_4, MI_A_4,  MI_C_5,  MI_Eb_5, MI_Fs_5
    MI_Db3,  MI_Bb2,  MI_G2,   MI_E2,   MI_Db2,  MI_Bb1, MI_G1,   MI_E1,  MI_Db1,  MI_Bb,  MI_G,  MI_E,
      MI_C3,   MI_A2,   MI_Fs2,  MI_Eb2,  MI_C2,   MI_A1,  MI_Fs1,  MI_Eb1,  MI_C1,  MI_A,   MI_Fs, MI_Eb,
        MI_B2,   MI_Ab2,  MI_F2,   MI_D2,   MI_B1,  MI_Ab1,   MI_F1,  MI_D1,   MI_B,    MI_Ab,  MI_F,  MI_D,
          MI_Bb2, MI_G2,   MI_E2,   MI_Db2,  MI_Bb1, MI_G1,    MI_E1,  MI_Db1,   MI_Bb,  MI_G,   MI_E,  MI_Db,
            MI_A2,  MI_Fs2,  MI_Eb2,  MI_C2,   MI_A1,  MI_Fs1,   MI_Eb1,  MI_C1,   MI_A,   MI_Fs,  MI_Eb, MI_C,

    MI_Fs2,
      MI_Ab2, MI_B2,  MI_D3,  MI_F3,  MI_Ab3, MI_B3,  MI_D4,  MI_F4,  MI_Ab4, MI_B4,  MI_D5,  MI_F5,    FN_MUTE,
    MI_G2,  MI_Bb2, MI_Db3, MI_E3,  MI_G3,  MI_Bb3, MI_Db4, MI_E4,  MI_G4,  MI_Bb4, MI_Db5, MI_E5,  MI_G5,
      MI_A2,  MI_C3,  MI_Eb3, MI_Fs3, MI_A3,  MI_C4,  MI_Eb4, MI_Fs4, MI_A4,  MI_C5,  MI_Eb5, MI_Fs5
  ),

  /* Chromatone */
  [_CHROMATONE] = LAYOUT(
    MI_Db,   MI_Eb,   MI_F,    MI_G,    MI_A,    MI_B,    MI_Db_1, MI_Eb_1, MI_F_1,  MI_G_1,  MI_A_1,  MI_B_1,
      MI_D,    MI_E,    MI_Fs,   MI_Ab,   MI_Bb,   MI_C_1,  MI_D_1,  MI_E_1,  MI_Fs_1, MI_Ab_1, MI_Bb_1, MI_C_2,
        MI_Eb,   MI_F,    MI_G,    MI_A,    MI_B,    MI_Db_1, MI_Eb_1, MI_F_1,  MI_G_1,  MI_A_1,  MI_B_1,  MI_Db_2,
          MI_E,    MI_Fs,   MI_Ab,   MI_Bb,   MI_C_1,  MI_D_1,  MI_E_1,  MI_Fs_1, MI_Ab_1, MI_Bb_1, MI_C_2,  MI_D_2,
            MI_F,    MI_G,    MI_A,    MI_B,    MI_Db_1, MI_Eb_1, MI_F_1,  MI_G_1,  MI_A_1,  MI_B_1,  MI_Db_2, MI_Eb_2,

    MI_C_2,
      MI_Db_2, MI_Eb_2, MI_F_2,  MI_G_2,  MI_A_2,  MI_B_2,  MI_Db_3, MI_Eb_3, MI_F_3,  MI_G_3,  MI_A_3,  MI_B_3,    FN_MUTE,
    MI_C_2,  MI_D_2,  MI_E_2,  MI_Gb_2, MI_Ab_2, MI_Bb_2, MI_C_3,  MI_D_3,  MI_E_3,  MI_Gb_3, MI_Ab_3, MI_Bb_3, MI_C_4,
      MI_Db_2, MI_Eb_2, MI_F_2,  MI_G_2,  MI_A_2,  MI_B_2,  MI_Db_3, MI_Eb_3, MI_F_3,  MI_G_3,  MI_A_3,  MI_B_3
    MI_Db,   MI_Eb,   MI_F,    MI_G,    MI_A,    MI_B,    MI_Db1, MI_Eb1, MI_F1,  MI_G1,  MI_A1,  MI_B1,
      MI_D,    MI_E,    MI_Fs,   MI_Ab,   MI_Bb,   MI_C1,  MI_D1,  MI_E1,  MI_Fs1, MI_Ab1, MI_Bb1, MI_C2,
        MI_Eb,   MI_F,    MI_G,    MI_A,    MI_B,    MI_Db1, MI_Eb1, MI_F1,  MI_G1,  MI_A1,  MI_B1,  MI_Db2,
          MI_E,    MI_Fs,   MI_Ab,   MI_Bb,   MI_C1,  MI_D1,  MI_E1,  MI_Fs1, MI_Ab1, MI_Bb1, MI_C2,  MI_D2,
            MI_F,    MI_G,    MI_A,    MI_B,    MI_Db1, MI_Eb1, MI_F1,  MI_G1,  MI_A1,  MI_B1,  MI_Db2, MI_Eb2,

    MI_C2,
      MI_Db2, MI_Eb2, MI_F2,  MI_G2,  MI_A2,  MI_B2,  MI_Db3, MI_Eb3, MI_F3,  MI_G3,  MI_A3,  MI_B3,    FN_MUTE,
    MI_C2,  MI_D2,  MI_E2,  MI_Gb2, MI_Ab2, MI_Bb2, MI_C3,  MI_D3,  MI_E3,  MI_Gb3, MI_Ab3, MI_Bb3, MI_C4,
      MI_Db2, MI_Eb2, MI_F2,  MI_G2,  MI_A2,  MI_B2,  MI_Db3, MI_Eb3, MI_F3,  MI_G3,  MI_A3,  MI_B3
  ),

  [_CFLIP_BASS2ROW] = LAYOUT(


@@ 289,10 289,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
          MI_CH_Dbm,    MI_CH_Abm,    MI_CH_Ebm,    MI_CH_Bbm,    MI_CH_Fm,    MI_CH_Cm,    MI_CH_Gm,    MI_CH_Dm,    MI_CH_Am,    MI_CH_Em,    MI_CH_Bm,    MI_CH_Fsm,
            MI_CH_DbDom7, MI_CH_AbDom7, MI_CH_EbDom7, MI_CH_BbDom7, MI_CH_FDom7, MI_CH_CDom7, MI_CH_GDom7, MI_CH_DDom7, MI_CH_ADom7, MI_CH_EDom7, MI_CH_BDom7, MI_CH_FsDom7,

    MI_G_5,
      MI_F_5,  MI_D_5,  MI_B_4,  MI_Ab_4, MI_F_4,  MI_D_4,  MI_B_3,  MI_Ab_3, MI_F_3,  MI_D_3,  MI_B_2,  MI_Ab_2,   FN_MUTE,
    MI_Fs_5, MI_Eb_5, MI_C_5,  MI_A_4,  MI_Fs_4, MI_Eb_4, MI_C_4,  MI_A_3,  MI_Fs_3, MI_Eb_3, MI_C_3,  MI_A_2,  MI_Fs_2,
      MI_E_5,  MI_Db_5, MI_Bb_4, MI_G_4,  MI_E_4,  MI_Db_4, MI_Bb_3, MI_G_3,  MI_E_3,  MI_Db_3, MI_Bb_2, MI_G_2
    MI_G5,
      MI_F5,  MI_D5,  MI_B4,  MI_Ab4, MI_F4,  MI_D4,  MI_B3,  MI_Ab3, MI_F3,  MI_D3,  MI_B2,  MI_Ab2,   FN_MUTE,
    MI_Fs5, MI_Eb5, MI_C5,  MI_A4,  MI_Fs4, MI_Eb4, MI_C4,  MI_A3,  MI_Fs3, MI_Eb3, MI_C3,  MI_A2,  MI_Fs2,
      MI_E5,  MI_Db5, MI_Bb4, MI_G4,  MI_E4,  MI_Db4, MI_Bb3, MI_G3,  MI_E3,  MI_Db3, MI_Bb2, MI_G2
  ),

  /* QWERTY */


@@ 347,7 347,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
            XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,

    XXXXXXX,
      MI_OCT_N2, MI_OCT_N1, MI_OCT_0, MI_OCT_1, MI_OCT_2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, VERSION, EE_CLR, _______,
      MI_OCN2, MI_OCN1, MI_OC0,  MI_OC1,  MI_OC2,  XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, VERSION, EE_CLR, _______,
    CSYSTEM, BSYSTEM,  CNTBASC,  CSYSALL,  CHRTONE,  CFLIP2B, CSYSFBS, XXXXXXX, XXXXXXX, MI_VELD, MI_VELU, XXXXXXX, RGB_TOG,
      XXXXXXX,   TGLBASS,   XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX, XXXXXXX, XXXXXXX, TGLUVEL, MELDYAL, MELODYS, MELDYAH
  )


@@ 442,8 442,8 @@ layer_state_t layer_state_set_user(layer_state_t state) {
#endif  //  RGBLIGHT_ENABLE

void my_init(void){
    //  Set octave to MI_OCT_0
    midi_config.octave = MI_OCT_0 - MIDI_OCTAVE_MIN;
    //  Set octave to 0
    midi_config.octave = QK_MIDI_OCTAVE_0 - MIDI_OCTAVE_MIN;
    // avoid using 127 since it is used as a special number in some sound sources.
    midi_config.velocity = MIDI_INITIAL_VELOCITY;
}


@@ 452,7 452,7 @@ void eeconfig_init_user(void) {
    midi_init();
    my_init();

    // Used to set octave to MI_OCT_0
    // Used to set octave to 0
    midi_bass_ch = 0, midi_chord_ch = 0;  // By default, all use the same channel.

    // UNISON flags


@@ 661,7 661,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {

        // MIDI Chord Keycodes, on the left side.
        case MI_CH_Cr ... MI_CH_Br:  // Root Notes
            root_note = keycode - MI_CH_Cr + MI_C_1;
            root_note = keycode - MI_CH_Cr + MI_C1;
            my_process_midi4Bass(midi_bass_ch, record, chord_status, chord, root_note, IS_SINGLE_BASS());
#ifdef RGBLIGHT_ENABLE
            switch_keylight_color4bass(record, keylocation);


@@ 669,7 669,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
            break;

        case MI_CH_C ... MI_CH_B:  // Major Chords
            root_note = keycode - MI_CH_C + MI_C_2;
            root_note = keycode - MI_CH_C + MI_C2;
            // Root, Major Third, and Fifth Notes
            my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 0, 4, 7);
#ifdef RGBLIGHT_ENABLE


@@ 678,7 678,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
            break;

        case MI_CH_Cm ... MI_CH_Bm:  // Minor Chord
            root_note = keycode - MI_CH_Cm + MI_C_2;
            root_note = keycode - MI_CH_Cm + MI_C2;
            // Root, Minor Third, and Fifth Notes
            my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 0, 3, 7);
#ifdef RGBLIGHT_ENABLE


@@ 687,7 687,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
            break;

        case MI_CH_CDom7 ... MI_CH_BDom7:  // Dominant 7th Chord
            root_note = keycode - MI_CH_CDom7 + MI_C_2;
            root_note = keycode - MI_CH_CDom7 + MI_C2;
            // Major Third, Major Fifth, and Minor Seventh Notes
            my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 4, 7, 10);
#ifdef RGBLIGHT_ENABLE


@@ 696,7 696,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
            break;

        case MI_CH_CDim7 ... MI_CH_BDim7:                // Diminished 7th Chord
            root_note = keycode - MI_CH_CDim7 + MI_C_2;
            root_note = keycode - MI_CH_CDim7 + MI_C2;
            // Root, Minor Third, and Diminished 5th Note
            my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 0, 3, 6);
#ifdef RGBLIGHT_ENABLE

M keyboards/giabalanai/keymaps/default/keymap.c => keyboards/giabalanai/keymaps/default/keymap.c +12 -12
@@ 24,7 24,7 @@
// Long press: go to _FN layer, tap: MUTE
#define FN_MUTE LT(_FN, KC_MUTE)

// Used to set octave to MI_OCT_0
// Used to set octave to 0
extern midi_config_t midi_config;
uint8_t midi_bass_ch = 0, midi_chord_ch = 0;  // By default, all use the same channel.



@@ 156,10 156,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
          MI_CH_DbDom7, MI_CH_AbDom7, MI_CH_EbDom7, MI_CH_BbDom7, MI_CH_FDom7, MI_CH_CDom7, MI_CH_GDom7, MI_CH_DDom7, MI_CH_ADom7, MI_CH_EDom7, MI_CH_BDom7, MI_CH_FsDom7,
            MI_CH_DbDim7, MI_CH_AbDim7, MI_CH_EbDim7, MI_CH_BbDim7, MI_CH_FDim7, MI_CH_CDim7, MI_CH_GDim7, MI_CH_DDim7, MI_CH_ADim7, MI_CH_EDim7, MI_CH_BDim7, MI_CH_FsDim7,

    MI_Fs_2,
      MI_Ab_2, MI_B_2,  MI_D_3,  MI_F_3,  MI_Ab_3, MI_B_3,  MI_D_4,  MI_F_4,  MI_Ab_4, MI_B_4,  MI_D_5,  MI_F_5,    FN_MUTE,
    MI_G_2,  MI_Bb_2, MI_Db_3, MI_E_3,  MI_G_3,  MI_Bb_3, MI_Db_4, MI_E_4,  MI_G_4,  MI_Bb_4, MI_Db_5, MI_E_5,  MI_G_5,
      MI_A_2,  MI_C_3,  MI_Eb_3, MI_Fs_3, MI_A_3,  MI_C_4,  MI_Eb_4, MI_Fs_4, MI_A_4,  MI_C_5,  MI_Eb_5, MI_Fs_5
    MI_Fs2,
      MI_Ab2, MI_B2,  MI_D3,  MI_F3,  MI_Ab3, MI_B3,  MI_D4,  MI_F4,  MI_Ab4, MI_B4,  MI_D5,  MI_F5,    FN_MUTE,
    MI_G2,  MI_Bb2, MI_Db3, MI_E3,  MI_G3,  MI_Bb3, MI_Db4, MI_E4,  MI_G4,  MI_Bb4, MI_Db5, MI_E5,  MI_G5,
      MI_A2,  MI_C3,  MI_Eb3, MI_Fs3, MI_A3,  MI_C4,  MI_Eb4, MI_Fs4, MI_A4,  MI_C5,  MI_Eb5, MI_Fs5
  ),

  /* QWERTY */


@@ 200,8 200,8 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
#endif

void keyboard_post_init_user(void) {
    //  Set otave to MI_OCT_0
    midi_config.octave = MI_OCT_0 - MIDI_OCTAVE_MIN;
    //  Set octave to 0
    midi_config.octave = QK_MIDI_OCTAVE_0 - MIDI_OCTAVE_MIN;

    // avoid using 127 since it is used as a special number in some sound sources.
    midi_config.velocity = MIDI_INITIAL_VELOCITY;


@@ 227,30 227,30 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {

        // MIDI Chord Keycodes, on the left side.
        case MI_CH_Cr ... MI_CH_Br:  // Root Notes
            root_note = keycode - MI_CH_Cr + MI_C_1;
            root_note = keycode - MI_CH_Cr + MI_C1;
            my_process_midi4Bass(midi_bass_ch, record, chord_status, chord, root_note, false);
            break;

        case MI_CH_C ... MI_CH_B:  // Major Chords
            root_note = keycode - MI_CH_C + MI_C_2;
            root_note = keycode - MI_CH_C + MI_C2;
            // Root, Major Third, and Fifth Notes
            my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 0, 4, 7);
            break;

        case MI_CH_Cm ... MI_CH_Bm:  // Minor Chord
            root_note = keycode - MI_CH_Cm + MI_C_2;
            root_note = keycode - MI_CH_Cm + MI_C2;
            // Root, Minor Third, and Fifth Notes
            my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 0, 3, 7);
            break;

        case MI_CH_CDom7 ... MI_CH_BDom7:  // Dominant 7th Chord
            root_note = keycode - MI_CH_CDom7 + MI_C_2;
            root_note = keycode - MI_CH_CDom7 + MI_C2;
            // Major Third, Major Fifth, and Minor Seventh Notes
            my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 4, 7, 10);
            break;

        case MI_CH_CDim7 ... MI_CH_BDim7:                // Diminished 7th Chord
            root_note = keycode - MI_CH_CDim7 + MI_C_2;
            root_note = keycode - MI_CH_CDim7 + MI_C2;
            // Root, Minor Third, and Diminished 5th Note
            my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 0, 3, 6);
            break;

M keyboards/giabalanai/keymaps/default_giabarinaix2/keymap.c => keyboards/giabalanai/keymaps/default_giabarinaix2/keymap.c +13 -13
@@ 24,7 24,7 @@
// Long press: go to _FN layer, tap: MUTE
#define FN_MUTE LT(_FN, KC_MUTE)

// Used to set octave to MI_OCT_0
// Used to set octave to 0
extern midi_config_t midi_config;
uint8_t midi_bass_ch = 0, midi_chord_ch = 0;  // By default, all use the same channel.



@@ 156,11 156,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
          MI_CH_DbDom7, MI_CH_AbDom7, MI_CH_EbDom7, MI_CH_BbDom7, MI_CH_FDom7, MI_CH_CDom7, MI_CH_GDom7, MI_CH_DDom7, MI_CH_ADom7, MI_CH_EDom7, MI_CH_BDom7, MI_CH_FsDom7,
            MI_CH_DbDim7, MI_CH_AbDim7, MI_CH_EbDim7, MI_CH_BbDim7, MI_CH_FDim7, MI_CH_CDim7, MI_CH_GDim7, MI_CH_DDim7, MI_CH_ADim7, MI_CH_EDim7, MI_CH_BDim7, MI_CH_FsDim7,

    MI_Db_2,      MI_E_2,       MI_G_2,       MI_Bb_2,      MI_Db_3,     MI_E_3,      MI_G_3,      MI_Bb_3,     MI_Db_4,     MI_E_4,      MI_G_4,      MI_Bb_4,
      MI_Eb_2,      MI_Fs_2,      MI_A_2,       MI_C_3,       MI_Eb_3,     MI_Fs_3,     MI_A_3,      MI_C_4,      MI_Eb_4,     MI_Fs_4,     MI_A_4,      MI_C_5,
        MI_F_2,       MI_Ab_2,      MI_B_2,       MI_D_3,       MI_F_3,      MI_Ab_3,     MI_B_3,      MI_D_4,      MI_F_4,      MI_Ab_4,     MI_B_4,      MI_D_5,
          MI_G_2,       MI_Bb_2,      MI_Db_3,      MI_E_3,       MI_G_3,      MI_Bb_3,     MI_Db_4,     MI_E_4,      MI_G_4,      MI_Bb_4,     MI_Db_5,     MI_E_5,
            MI_A_2,       MI_C_3,       MI_Eb_3,      MI_Fs_3,      MI_A_3,      MI_C_4,      MI_Eb_4,     MI_Fs_4,     MI_A_4,      MI_C_5,      MI_Eb_5,     FN_MUTE
    MI_Db2,      MI_E2,       MI_G2,       MI_Bb2,      MI_Db3,     MI_E3,      MI_G3,      MI_Bb3,     MI_Db4,     MI_E4,      MI_G4,      MI_Bb4,
      MI_Eb2,      MI_Fs2,      MI_A2,       MI_C3,       MI_Eb3,     MI_Fs3,     MI_A3,      MI_C4,      MI_Eb4,     MI_Fs4,     MI_A4,      MI_C5,
        MI_F2,       MI_Ab2,      MI_B2,       MI_D3,       MI_F3,      MI_Ab3,     MI_B3,      MI_D4,      MI_F4,      MI_Ab4,     MI_B4,      MI_D5,
          MI_G2,       MI_Bb2,      MI_Db3,      MI_E3,       MI_G3,      MI_Bb3,     MI_Db4,     MI_E4,      MI_G4,      MI_Bb4,     MI_Db5,     MI_E5,
            MI_A2,       MI_C3,       MI_Eb3,      MI_Fs3,      MI_A3,      MI_C4,      MI_Eb4,     MI_Fs4,     MI_A4,      MI_C5,      MI_Eb5,     FN_MUTE
  ),

  /* QWERTY */


@@ 203,8 203,8 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
#endif

void keyboard_post_init_user(void) {
    //  Set otave to MI_OCT_0
    midi_config.octave = MI_OCT_0 - MIDI_OCTAVE_MIN;
    //  Set octave to 0
    midi_config.octave = QK_MIDI_OCTAVE_0 - MIDI_OCTAVE_MIN;

    // avoid using 127 since it is used as a special number in some sound sources.
    midi_config.velocity = MIDI_INITIAL_VELOCITY;


@@ 230,30 230,30 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {

        // MIDI Chord Keycodes, on the left side.
        case MI_CH_Cr ... MI_CH_Br:  // Root Notes
            root_note = keycode - MI_CH_Cr + MI_C_1;
            root_note = keycode - MI_CH_Cr + MI_C1;
            my_process_midi4Bass(midi_bass_ch, record, chord_status, chord, root_note, false);
            break;

        case MI_CH_C ... MI_CH_B:  // Major Chords
            root_note = keycode - MI_CH_C + MI_C_2;
            root_note = keycode - MI_CH_C + MI_C2;
            // Root, Major Third, and Fifth Notes
            my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 0, 4, 7);
            break;

        case MI_CH_Cm ... MI_CH_Bm:  // Minor Chord
            root_note = keycode - MI_CH_Cm + MI_C_2;
            root_note = keycode - MI_CH_Cm + MI_C2;
            // Root, Minor Third, and Fifth Notes
            my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 0, 3, 7);
            break;

        case MI_CH_CDom7 ... MI_CH_BDom7:  // Dominant 7th Chord
            root_note = keycode - MI_CH_CDom7 + MI_C_2;
            root_note = keycode - MI_CH_CDom7 + MI_C2;
            // Major Third, Major Fifth, and Minor Seventh Notes
            my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 4, 7, 10);
            break;

        case MI_CH_CDim7 ... MI_CH_BDim7:                // Diminished 7th Chord
            root_note = keycode - MI_CH_CDim7 + MI_C_2;
            root_note = keycode - MI_CH_CDim7 + MI_C2;
            // Root, Minor Third, and Diminished 5th Note
            my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 0, 3, 6);
            break;

M keyboards/giabalanai/keymaps/giabarinaix2led/keymap.c => keyboards/giabalanai/keymaps/giabarinaix2led/keymap.c +40 -40
@@ 24,7 24,7 @@
// Long press: go to _FN layer, tap: MUTE
#define FN_MUTE LT(_FN, KC_MUTE)

// Used to set octave to MI_OCT_0
// Used to set octave to 0
extern midi_config_t midi_config;
uint8_t midi_bass_ch = 0, midi_chord_ch = 0;  // By default, all use the same channel.



@@ 168,11 168,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
          MI_CH_DbDom7, MI_CH_AbDom7, MI_CH_EbDom7, MI_CH_BbDom7, MI_CH_FDom7, MI_CH_CDom7, MI_CH_GDom7, MI_CH_DDom7, MI_CH_ADom7, MI_CH_EDom7, MI_CH_BDom7, MI_CH_FsDom7,
            MI_CH_DbDim7, MI_CH_AbDim7, MI_CH_EbDim7, MI_CH_BbDim7, MI_CH_FDim7, MI_CH_CDim7, MI_CH_GDim7, MI_CH_DDim7, MI_CH_ADim7, MI_CH_EDim7, MI_CH_BDim7, MI_CH_FsDim7,

    MI_Db_2,      MI_E_2,       MI_G_2,       MI_Bb_2,      MI_Db_3,     MI_E_3,      MI_G_3,      MI_Bb_3,     MI_Db_4,     MI_E_4,      MI_G_4,      MI_Bb_4,
      MI_Eb_2,      MI_Fs_2,      MI_A_2,       MI_C_3,       MI_Eb_3,     MI_Fs_3,     MI_A_3,      MI_C_4,      MI_Eb_4,     MI_Fs_4,     MI_A_4,      MI_C_5,
        MI_F_2,       MI_Ab_2,      MI_B_2,       MI_D_3,       MI_F_3,      MI_Ab_3,     MI_B_3,      MI_D_4,      MI_F_4,      MI_Ab_4,     MI_B_4,      MI_D_5,
          MI_G_2,       MI_Bb_2,      MI_Db_3,      MI_E_3,       MI_G_3,      MI_Bb_3,     MI_Db_4,     MI_E_4,      MI_G_4,      MI_Bb_4,     MI_Db_5,     MI_E_5,
            MI_A_2,       MI_C_3,       MI_Eb_3,      MI_Fs_3,      MI_A_3,      MI_C_4,      MI_Eb_4,     MI_Fs_4,     MI_A_4,      MI_C_5,      MI_Eb_5,     FN_MUTE
    MI_Db2,      MI_E2,       MI_G2,       MI_Bb2,      MI_Db3,     MI_E3,      MI_G3,      MI_Bb3,     MI_Db4,     MI_E4,      MI_G4,      MI_Bb4,
      MI_Eb2,      MI_Fs2,      MI_A2,       MI_C3,       MI_Eb3,     MI_Fs3,     MI_A3,      MI_C4,      MI_Eb4,     MI_Fs4,     MI_A4,      MI_C5,
        MI_F2,       MI_Ab2,      MI_B2,       MI_D3,       MI_F3,      MI_Ab3,     MI_B3,      MI_D4,      MI_F4,      MI_Ab4,     MI_B4,      MI_D5,
          MI_G2,       MI_Bb2,      MI_Db3,      MI_E3,       MI_G3,      MI_Bb3,     MI_Db4,     MI_E4,      MI_G4,      MI_Bb4,     MI_Db5,     MI_E5,
            MI_A2,       MI_C3,       MI_Eb3,      MI_Fs3,      MI_A3,      MI_C4,      MI_Eb4,     MI_Fs4,     MI_A4,      MI_C5,      MI_Eb5,     FN_MUTE
  ),

  /* BASS2row */


@@ 184,41 184,41 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
            MI_CH_DbDom7, MI_CH_AbDom7, MI_CH_EbDom7, MI_CH_BbDom7, MI_CH_FDom7, MI_CH_CDom7, MI_CH_GDom7, MI_CH_DDom7, MI_CH_ADom7, MI_CH_EDom7, MI_CH_BDom7, MI_CH_FsDom7,


    MI_Db_2,      MI_E_2,       MI_G_2,       MI_Bb_2,      MI_Db_3,     MI_E_3,      MI_G_3,      MI_Bb_3,     MI_Db_4,     MI_E_4,      MI_G_4,      MI_Bb_4,
      MI_Eb_2,      MI_Fs_2,      MI_A_2,       MI_C_3,       MI_Eb_3,     MI_Fs_3,     MI_A_3,      MI_C_4,      MI_Eb_4,     MI_Fs_4,     MI_A_4,      MI_C_5,
        MI_F_2,       MI_Ab_2,      MI_B_2,       MI_D_3,       MI_F_3,      MI_Ab_3,     MI_B_3,      MI_D_4,      MI_F_4,      MI_Ab_4,     MI_B_4,      MI_D_5,
          MI_G_2,       MI_Bb_2,      MI_Db_3,      MI_E_3,       MI_G_3,      MI_Bb_3,     MI_Db_4,     MI_E_4,      MI_G_4,      MI_Bb_4,     MI_Db_5,     MI_E_5,
            MI_A_2,       MI_C_3,       MI_Eb_3,      MI_Fs_3,      MI_A_3,      MI_C_4,      MI_Eb_4,     MI_Fs_4,     MI_A_4,      MI_C_5,      MI_Eb_5,     FN_MUTE
    MI_Db2,      MI_E2,       MI_G2,       MI_Bb2,      MI_Db3,     MI_E3,      MI_G3,      MI_Bb3,     MI_Db4,     MI_E4,      MI_G4,      MI_Bb4,
      MI_Eb2,      MI_Fs2,      MI_A2,       MI_C3,       MI_Eb3,     MI_Fs3,     MI_A3,      MI_C4,      MI_Eb4,     MI_Fs4,     MI_A4,      MI_C5,
        MI_F2,       MI_Ab2,      MI_B2,       MI_D3,       MI_F3,      MI_Ab3,     MI_B3,      MI_D4,      MI_F4,      MI_Ab4,     MI_B4,      MI_D5,
          MI_G2,       MI_Bb2,      MI_Db3,      MI_E3,       MI_G3,      MI_Bb3,     MI_Db4,     MI_E4,      MI_G4,      MI_Bb4,     MI_Db5,     MI_E5,
            MI_A2,       MI_C3,       MI_Eb3,      MI_Fs3,      MI_A3,      MI_C4,      MI_Eb4,     MI_Fs4,     MI_A4,      MI_C5,      MI_Eb5,     FN_MUTE
  ),

  /* C-system entirely */
  [_C_SYSTEM_ENTIRELY] = LAYOUT_giabarinaix2(
    XXXXXXX, XXXXXXX, XXXXXXX, MI_Db,   MI_E,    MI_G,    MI_Bb,   MI_Db_1, MI_E_1,  MI_G_1,  MI_Bb_1, MI_Db_2,
      XXXXXXX, XXXXXXX, MI_C,    MI_Eb,   MI_Fs,   MI_A,    MI_C_1,  MI_Eb_1, MI_Fs_1, MI_A_1,  MI_C_2,  MI_Eb_2,
        XXXXXXX, XXXXXXX, MI_D,    MI_F,    MI_Ab,   MI_B,    MI_D_1,  MI_F_1,  MI_Ab_1, MI_B_1,  MI_D_2,  MI_F_2,
          XXXXXXX, MI_Db,   MI_E,    MI_G,    MI_Bb,   MI_Db_1, MI_E_1,  MI_G_1,  MI_Bb_1, MI_Db_2, MI_E_2,  MI_G_2,
            MI_C,    MI_Eb,   MI_Fs,   MI_A,    MI_C_1,  MI_Eb_1, MI_Fs_1, MI_A_1,  MI_C_2,  MI_Eb_2, MI_Fs_2, MI_A_2,

    MI_E_2,  MI_G_2,  MI_Bb_2, MI_Db_3, MI_E_3,  MI_G_3,  MI_Bb_3, MI_Db_4, MI_E_4,   MI_G_4, MI_Bb_4, MI_Db_5,
      MI_Fs_2, MI_A_2,  MI_C_3,  MI_Eb_3, MI_Fs_3, MI_A_3,  MI_C_4,  MI_Eb_4, MI_Fs_4,  MI_A_4, MI_C_5,  MI_Eb_5,
        MI_Ab_2, MI_B_2,  MI_D_3,  MI_F_3,  MI_Ab_3, MI_B_3,  MI_D_4,  MI_F_4,  MI_Ab_4, MI_B_4,  MI_D_5,  MI_F_5,
          MI_Bb_2, MI_Db_3, MI_E_3,  MI_G_3,  MI_Bb_3, MI_Db_4, MI_E_4,  MI_G_4,  MI_Bb_4, MI_Db_5, MI_E_5,  MI_G_5,
            MI_C_3,  MI_Eb_3, MI_Fs_3, MI_A_3,  MI_C_4,  MI_Eb_4, MI_Fs_4, MI_A_4,  MI_C_5,  MI_Eb_5, MI_Fs_5,  FN_MUTE
    XXXXXXX, XXXXXXX, XXXXXXX, MI_Db,   MI_E,    MI_G,    MI_Bb,   MI_Db1, MI_E1,  MI_G1,  MI_Bb1, MI_Db2,
      XXXXXXX, XXXXXXX, MI_C,    MI_Eb,   MI_Fs,   MI_A,    MI_C1,  MI_Eb1, MI_Fs1, MI_A1,  MI_C2,  MI_Eb2,
        XXXXXXX, XXXXXXX, MI_D,    MI_F,    MI_Ab,   MI_B,    MI_D1,  MI_F1,  MI_Ab1, MI_B1,  MI_D2,  MI_F2,
          XXXXXXX, MI_Db,   MI_E,    MI_G,    MI_Bb,   MI_Db1, MI_E1,  MI_G1,  MI_Bb1, MI_Db2, MI_E2,  MI_G2,
            MI_C,    MI_Eb,   MI_Fs,   MI_A,    MI_C1,  MI_Eb1, MI_Fs1, MI_A1,  MI_C2,  MI_Eb2, MI_Fs2, MI_A2,

    MI_E2,  MI_G2,  MI_Bb2, MI_Db3, MI_E3,  MI_G3,  MI_Bb3, MI_Db4, MI_E4,   MI_G4, MI_Bb4, MI_Db5,
      MI_Fs2, MI_A2,  MI_C3,  MI_Eb3, MI_Fs3, MI_A3,  MI_C4,  MI_Eb4, MI_Fs4,  MI_A4, MI_C5,  MI_Eb5,
        MI_Ab2, MI_B2,  MI_D3,  MI_F3,  MI_Ab3, MI_B3,  MI_D4,  MI_F4,  MI_Ab4, MI_B4,  MI_D5,  MI_F5,
          MI_Bb2, MI_Db3, MI_E3,  MI_G3,  MI_Bb3, MI_Db4, MI_E4,  MI_G4,  MI_Bb4, MI_Db5, MI_E5,  MI_G5,
            MI_C3,  MI_Eb3, MI_Fs3, MI_A3,  MI_C4,  MI_Eb4, MI_Fs4, MI_A4,  MI_C5,  MI_Eb5, MI_Fs5,  FN_MUTE
  ),

  /* Chromatone */
  [_CHROMATONE] = LAYOUT_giabarinaix2(
    XXXXXXX, XXXXXXX, MI_Db,   MI_Eb,   MI_F,    MI_G,    MI_A,    MI_B,    MI_Db_1,  MI_Eb_1,  MI_F_1,   MI_G_1,
        XXXXXXX,  MI_C,    MI_D,    MI_E,    MI_Fs,   MI_Ab,   MI_Bb,   MI_C_1,  MI_D_1,  MI_E_1,  MI_Fs_1, MI_Ab_1,
             XXXXXXX, MI_Db,   MI_Eb,   MI_F,    MI_G,    MI_A,    MI_B,    MI_Db_1,  MI_Eb_1,  MI_F_1,   MI_G_1,   MI_A_1,
                  MI_C,    MI_D,    MI_E,    MI_Fs,   MI_Ab,   MI_Bb,   MI_C_1,  MI_D_1,  MI_E_1,  MI_Fs_1, MI_Ab_1, MI_Bb_1,
                      MI_Db,   MI_Eb,   MI_F,    MI_G,    MI_A,    MI_B,    MI_Db_1,  MI_Eb_1,  MI_F_1,   MI_G_1,   MI_A_1,  MI_B_1,

    MI_A_1,  MI_B_1, MI_Db_2, MI_Eb_2, MI_F_2,  MI_G_2,  MI_A_2,  MI_B_2,  MI_Db_3,  MI_Eb_3,  MI_F_3,   MI_G_3,
         MI_Bb_1, MI_C_2,  MI_D_2,  MI_E_2,  MI_Gb_2, MI_Ab_2, MI_Bb_2, MI_C_3,  MI_D_3,  MI_E_3,  MI_Gb_3, MI_Ab_3,
             MI_B_1, MI_Db_2, MI_Eb_2, MI_F_2,  MI_G_2,  MI_A_2,  MI_B_2,  MI_Db_3,  MI_Eb_3,  MI_F_3,   MI_G_3,   MI_A_3,
                  MI_C_2,  MI_D_2,  MI_E_2,  MI_Gb_2, MI_Ab_2, MI_Bb_2, MI_C_3,  MI_D_3,  MI_E_3,  MI_Gb_3, MI_Ab_3, MI_Bb_3,
                     MI_Db_2, MI_Eb_2, MI_F_2,  MI_G_2,  MI_A_2,  MI_B_2,  MI_Db_3,  MI_Eb_3,  MI_F_3,   MI_G_3,   MI_A_3,  FN_MUTE
    XXXXXXX, XXXXXXX, MI_Db,   MI_Eb,   MI_F,    MI_G,    MI_A,    MI_B,    MI_Db1,  MI_Eb1,  MI_F1,   MI_G1,
        XXXXXXX,  MI_C,    MI_D,    MI_E,    MI_Fs,   MI_Ab,   MI_Bb,   MI_C1,  MI_D1,  MI_E1,  MI_Fs1, MI_Ab1,
             XXXXXXX, MI_Db,   MI_Eb,   MI_F,    MI_G,    MI_A,    MI_B,    MI_Db1,  MI_Eb1,  MI_F1,   MI_G1,   MI_A1,
                  MI_C,    MI_D,    MI_E,    MI_Fs,   MI_Ab,   MI_Bb,   MI_C1,  MI_D1,  MI_E1,  MI_Fs1, MI_Ab1, MI_Bb1,
                      MI_Db,   MI_Eb,   MI_F,    MI_G,    MI_A,    MI_B,    MI_Db1,  MI_Eb1,  MI_F1,   MI_G1,   MI_A1,  MI_B1,

    MI_A1,  MI_B1, MI_Db2, MI_Eb2, MI_F2,  MI_G2,  MI_A2,  MI_B2,  MI_Db3,  MI_Eb3,  MI_F3,   MI_G3,
         MI_Bb1, MI_C2,  MI_D2,  MI_E2,  MI_Gb2, MI_Ab2, MI_Bb2, MI_C3,  MI_D3,  MI_E3,  MI_Gb3, MI_Ab3,
             MI_B1, MI_Db2, MI_Eb2, MI_F2,  MI_G2,  MI_A2,  MI_B2,  MI_Db3,  MI_Eb3,  MI_F3,   MI_G3,   MI_A3,
                  MI_C2,  MI_D2,  MI_E2,  MI_Gb2, MI_Ab2, MI_Bb2, MI_C3,  MI_D3,  MI_E3,  MI_Gb3, MI_Ab3, MI_Bb3,
                     MI_Db2, MI_Eb2, MI_F2,  MI_G2,  MI_A2,  MI_B2,  MI_Db3,  MI_Eb3,  MI_F3,   MI_G3,   MI_A3,  FN_MUTE
  ),

  /* QWERTY */


@@ 291,8 291,8 @@ layer_state_t layer_state_set_user(layer_state_t state) {

#endif  //  RGBLIGHT_ENABLE
void keyboard_post_init_user(void) {
    //  Set otave to MI_OCT_0
    midi_config.octave = MI_OCT_0 - MIDI_OCTAVE_MIN;
    //  Set octave to 0
    midi_config.octave = QK_MIDI_OCTAVE_0 - MIDI_OCTAVE_MIN;

    // avoid using 127 since it is used as a special number in some sound sources.
    midi_config.velocity = MIDI_INITIAL_VELOCITY;


@@ 404,14 404,14 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {

        // MIDI Chord Keycodes, on the left side.
        case MI_CH_Cr ... MI_CH_Br:  // Root Notes
            root_note = keycode - MI_CH_Cr + MI_C_1;
            root_note = keycode - MI_CH_Cr + MI_C1;
            my_process_midi4Bass(midi_bass_ch, record, chord_status, chord, root_note, false);
#ifdef RGBLIGHT_ENABLE
            switch_keylight_color4bass(record, keylocation);
#endif
            break;
        case MI_CH_C ... MI_CH_B:  // Major Chords
            root_note = keycode - MI_CH_C + MI_C_2;
            root_note = keycode - MI_CH_C + MI_C2;
            // Root, Major Third, and Fifth Notes
            my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 0, 4, 7);
#ifdef RGBLIGHT_ENABLE


@@ 419,7 419,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
#endif
            break;
        case MI_CH_Cm ... MI_CH_Bm:  // Minor Chord
            root_note = keycode - MI_CH_Cm + MI_C_2;
            root_note = keycode - MI_CH_Cm + MI_C2;
            // Root, Minor Third, and Fifth Notes
            my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 0, 3, 7);
#ifdef RGBLIGHT_ENABLE


@@ 427,7 427,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
#endif
            break;
        case MI_CH_CDom7 ... MI_CH_BDom7:  // Dominant 7th Chord
            root_note = keycode - MI_CH_CDom7 + MI_C_2;
            root_note = keycode - MI_CH_CDom7 + MI_C2;
            // Major Third, Major Fifth, and Minor Seventh Notes
            my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 4, 7, 10);
#ifdef RGBLIGHT_ENABLE


@@ 435,7 435,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
#endif
            break;
        case MI_CH_CDim7 ... MI_CH_BDim7:                // Diminished 7th Chord
            root_note = keycode - MI_CH_CDim7 + MI_C_2;
            root_note = keycode - MI_CH_CDim7 + MI_C2;
            // Root, Minor Third, and Diminished 5th Note
            my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 0, 3, 6);
#ifdef RGBLIGHT_ENABLE

M keyboards/giabalanai/keymaps/party/keymap.c => keyboards/giabalanai/keymaps/party/keymap.c +56 -56
@@ 29,7 29,7 @@
#define ADJ_EIS  LT(_ADJUST,KC_LNG2)
#define MIS_KAN  LT(_MISC,KC_LNG1)

// Used to set octave to MI_OCT_0
// Used to set octave to 0
extern midi_config_t midi_config;
uint8_t midi_bass_ch = 0, midi_chord_ch = 0;  // By default, all use the same channel.



@@ 206,10 206,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
          MI_CH_DbDom7, MI_CH_AbDom7, MI_CH_EbDom7, MI_CH_BbDom7, MI_CH_FDom7, MI_CH_CDom7, MI_CH_GDom7, MI_CH_DDom7, MI_CH_ADom7, MI_CH_EDom7, MI_CH_BDom7, MI_CH_FsDom7,
            MI_CH_DbDim7, MI_CH_AbDim7, MI_CH_EbDim7, MI_CH_BbDim7, MI_CH_FDim7, MI_CH_CDim7, MI_CH_GDim7, MI_CH_DDim7, MI_CH_ADim7, MI_CH_EDim7, MI_CH_BDim7, MI_CH_FsDim7,

    MI_Fs_2,
      MI_Ab_2, MI_B_2,  MI_D_3,  MI_F_3,  MI_Ab_3, MI_B_3,  MI_D_4,  MI_F_4,  MI_Ab_4, MI_B_4,  MI_D_5,  MI_F_5,    FN_MUTE,
    MI_G_2,  MI_Bb_2, MI_Db_3, MI_E_3,  MI_G_3,  MI_Bb_3, MI_Db_4, MI_E_4,  MI_G_4,  MI_Bb_4, MI_Db_5, MI_E_5,  MI_G_5,
      MI_A_2,  MI_C_3,  MI_Eb_3, MI_Fs_3, MI_A_3,  MI_C_4,  MI_Eb_4, MI_Fs_4, MI_A_4,  MI_C_5,  MI_Eb_5, MI_Fs_5
    MI_Fs2,
      MI_Ab2, MI_B2,  MI_D3,  MI_F3,  MI_Ab3, MI_B3,  MI_D4,  MI_F4,  MI_Ab4, MI_B4,  MI_D5,  MI_F5,    FN_MUTE,
    MI_G2,  MI_Bb2, MI_Db3, MI_E3,  MI_G3,  MI_Bb3, MI_Db4, MI_E4,  MI_G4,  MI_Bb4, MI_Db5, MI_E5,  MI_G5,
      MI_A2,  MI_C3,  MI_Eb3, MI_Fs3, MI_A3,  MI_C4,  MI_Eb4, MI_Fs4, MI_A4,  MI_C5,  MI_Eb5, MI_Fs5
  ),

  /* fake B-system */


@@ 220,10 220,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
          _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
            _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,

    MI_Ab_2,
      MI_A_2,  MI_C_3,  MI_Eb_3, MI_Gb_3, MI_A_3, MI_C_4,  MI_Eb_4, MI_Gb_4, MI_A_4, MI_C_5,  MI_Eb_5, MI_Gb_5,     _______,
    MI_G_2,  MI_Bb_2, MI_Db_3, MI_E_3,  MI_G_3, MI_Bb_3, MI_Db_4, MI_E_4,  MI_G_4, MI_Bb_4, MI_Db_5, MI_E_5,  MI_G_5,
      MI_Ab_2, MI_B_2,  MI_D_3,  MI_F_3, MI_Ab_3, MI_B_3,  MI_D_4,  MI_F_4, MI_Ab_4, MI_B_4,  MI_D_5,  MI_F_5
    MI_Ab2,
      MI_A2,  MI_C3,  MI_Eb3, MI_Gb3, MI_A3, MI_C4,  MI_Eb4, MI_Gb4, MI_A4, MI_C5,  MI_Eb5, MI_Gb5,     _______,
    MI_G2,  MI_Bb2, MI_Db3, MI_E3,  MI_G3, MI_Bb3, MI_Db4, MI_E4,  MI_G4, MI_Bb4, MI_Db5, MI_E5,  MI_G5,
      MI_Ab2, MI_B2,  MI_D3,  MI_F3, MI_Ab3, MI_B3,  MI_D4,  MI_F4, MI_Ab4, MI_B4,  MI_D5,  MI_F5
  ),

  /* BASS2row */


@@ 234,52 234,52 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
          MI_CH_Dbm,    MI_CH_Abm,    MI_CH_Ebm,    MI_CH_Bbm,    MI_CH_Fm,    MI_CH_Cm,    MI_CH_Gm,    MI_CH_Dm,    MI_CH_Am,    MI_CH_Em,    MI_CH_Bm,    MI_CH_Fsm,
            MI_CH_DbDom7, MI_CH_AbDom7, MI_CH_EbDom7, MI_CH_BbDom7, MI_CH_FDom7, MI_CH_CDom7, MI_CH_GDom7, MI_CH_DDom7, MI_CH_ADom7, MI_CH_EDom7, MI_CH_BDom7, MI_CH_FsDom7,

    MI_Fs_2,
      MI_Ab_2, MI_B_2,  MI_D_3,  MI_F_3,  MI_Ab_3, MI_B_3,  MI_D_4,  MI_F_4,  MI_Ab_4, MI_B_4,  MI_D_5,  MI_F_5,    _______,
    MI_G_2,  MI_Bb_2, MI_Db_3, MI_E_3,  MI_G_3,  MI_Bb_3, MI_Db_4, MI_E_4,  MI_G_4,  MI_Bb_4, MI_Db_5, MI_E_5,  MI_G_5,
      MI_A_2,  MI_C_3,  MI_Eb_3, MI_Fs_3, MI_A_3,  MI_C_4,  MI_Eb_4, MI_Fs_4, MI_A_4,  MI_C_5,  MI_Eb_5, MI_Fs_5
    MI_Fs2,
      MI_Ab2, MI_B2,  MI_D3,  MI_F3,  MI_Ab3, MI_B3,  MI_D4,  MI_F4,  MI_Ab4, MI_B4,  MI_D5,  MI_F5,    _______,
    MI_G2,  MI_Bb2, MI_Db3, MI_E3,  MI_G3,  MI_Bb3, MI_Db4, MI_E4,  MI_G4,  MI_Bb4, MI_Db5, MI_E5,  MI_G5,
      MI_A2,  MI_C3,  MI_Eb3, MI_Fs3, MI_A3,  MI_C4,  MI_Eb4, MI_Fs4, MI_A4,  MI_C5,  MI_Eb5, MI_Fs5
  ),

  /* C-system entirely */
  [_C_SYSTEM_ENTIRELY] = LAYOUT(
    MI_BENDU, XXXXXXX, XXXXXXX, MI_Db,   MI_E,    MI_G,    MI_Bb,   MI_Db_1, MI_E_1,  MI_G_1,  MI_Bb_1, MI_Db_2,
      MI_BENDD, XXXXXXX, MI_C,    MI_Eb,   MI_Fs,   MI_A,    MI_C_1,  MI_Eb_1, MI_Fs_1, MI_A_1,  MI_C_2,  MI_Eb_2,
        XXXXXXX, XXXXXXX, MI_D,    MI_F,    MI_Ab,   MI_B,    MI_D_1,  MI_F_1,  MI_Ab_1, MI_B_1,  MI_D_2,  MI_F_2,
          XXXXXXX, MI_Db,   MI_E,    MI_G,    MI_Bb,   MI_Db_1, MI_E_1,  MI_G_1,  MI_Bb_1, MI_Db_2, MI_E_2,  MI_G_2,
            MI_C,    MI_Eb,   MI_Fs,   MI_A,    MI_C_1,  MI_Eb_1, MI_Fs_1, MI_A_1,  MI_C_2,  MI_Eb_2, MI_Fs_2, MI_A_2,

    MI_Fs_2,
      MI_Ab_2, MI_B_2,  MI_D_3,  MI_F_3,  MI_Ab_3, MI_B_3,  MI_D_4,  MI_F_4,  MI_Ab_4, MI_B_4,  MI_D_5,  MI_F_5,    FN_MUTE,
    MI_G_2,  MI_Bb_2, MI_Db_3, MI_E_3,  MI_G_3,  MI_Bb_3, MI_Db_4, MI_E_4,  MI_G_4,  MI_Bb_4, MI_Db_5, MI_E_5,  MI_G_5,
      MI_A_2,  MI_C_3,  MI_Eb_3, MI_Fs_3, MI_A_3,  MI_C_4,  MI_Eb_4, MI_Fs_4, MI_A_4,  MI_C_5,  MI_Eb_5, MI_Fs_5
    MI_BNDU, XXXXXXX, XXXXXXX, MI_Db,   MI_E,    MI_G,    MI_Bb,   MI_Db1, MI_E1,  MI_G1,  MI_Bb1, MI_Db2,
      MI_BNDD, XXXXXXX, MI_C,    MI_Eb,   MI_Fs,   MI_A,    MI_C1,  MI_Eb1, MI_Fs1, MI_A1,  MI_C2,  MI_Eb2,
        XXXXXXX, XXXXXXX, MI_D,    MI_F,    MI_Ab,   MI_B,    MI_D1,  MI_F1,  MI_Ab1, MI_B1,  MI_D2,  MI_F2,
          XXXXXXX, MI_Db,   MI_E,    MI_G,    MI_Bb,   MI_Db1, MI_E1,  MI_G1,  MI_Bb1, MI_Db2, MI_E2,  MI_G2,
            MI_C,    MI_Eb,   MI_Fs,   MI_A,    MI_C1,  MI_Eb1, MI_Fs1, MI_A1,  MI_C2,  MI_Eb2, MI_Fs2, MI_A2,

    MI_Fs2,
      MI_Ab2, MI_B2,  MI_D3,  MI_F3,  MI_Ab3, MI_B3,  MI_D4,  MI_F4,  MI_Ab4, MI_B4,  MI_D5,  MI_F5,    FN_MUTE,
    MI_G2,  MI_Bb2, MI_Db3, MI_E3,  MI_G3,  MI_Bb3, MI_Db4, MI_E4,  MI_G4,  MI_Bb4, MI_Db5, MI_E5,  MI_G5,
      MI_A2,  MI_C3,  MI_Eb3, MI_Fs3, MI_A3,  MI_C4,  MI_Eb4, MI_Fs4, MI_A4,  MI_C5,  MI_Eb5, MI_Fs5
  ),

  /* C-system free bass */
  [_C_SYSTEM_FREEBASS] = LAYOUT(
    MI_Db_3,  MI_Bb_2,  MI_G_2,   MI_E_2,   MI_Db_2,  MI_Bb_1, MI_G_1,   MI_E_1,  MI_Db_1,  MI_Bb,  MI_G,  MI_E,
      MI_C_3,   MI_A_2,   MI_Fs_2,  MI_Eb_2,  MI_C_2,   MI_A_1,  MI_Fs_1,  MI_Eb_1,  MI_C_1,  MI_A,   MI_Fs, MI_Eb,
        MI_B_2,   MI_Ab_2,  MI_F_2,   MI_D_2,   MI_B_1,  MI_Ab_1,   MI_F_1,  MI_D_1,   MI_B,    MI_Ab,  MI_F,  MI_D,
          MI_Bb_2, MI_G_2,   MI_E_2,   MI_Db_2,  MI_Bb_1, MI_G_1,    MI_E_1,  MI_Db_1,   MI_Bb,  MI_G,   MI_E,  MI_Db,
            MI_A_2,  MI_Fs_2,  MI_Eb_2,  MI_C_2,   MI_A_1,  MI_Fs_1,   MI_Eb_1,  MI_C_1,   MI_A,   MI_Fs,  MI_Eb, MI_C,

    MI_Fs_2,
      MI_Ab_2, MI_B_2,  MI_D_3,  MI_F_3,  MI_Ab_3, MI_B_3,  MI_D_4,  MI_F_4,  MI_Ab_4, MI_B_4,  MI_D_5,  MI_F_5,    FN_MUTE,
    MI_G_2,  MI_Bb_2, MI_Db_3, MI_E_3,  MI_G_3,  MI_Bb_3, MI_Db_4, MI_E_4,  MI_G_4,  MI_Bb_4, MI_Db_5, MI_E_5,  MI_G_5,
      MI_A_2,  MI_C_3,  MI_Eb_3, MI_Fs_3, MI_A_3,  MI_C_4,  MI_Eb_4, MI_Fs_4, MI_A_4,  MI_C_5,  MI_Eb_5, MI_Fs_5
    MI_Db3,  MI_Bb2,  MI_G2,   MI_E2,   MI_Db2,  MI_Bb1, MI_G1,   MI_E1,  MI_Db1,  MI_Bb,  MI_G,  MI_E,
      MI_C3,   MI_A2,   MI_Fs2,  MI_Eb2,  MI_C2,   MI_A1,  MI_Fs1,  MI_Eb1,  MI_C1,  MI_A,   MI_Fs, MI_Eb,
        MI_B2,   MI_Ab2,  MI_F2,   MI_D2,   MI_B1,  MI_Ab1,   MI_F1,  MI_D1,   MI_B,    MI_Ab,  MI_F,  MI_D,
          MI_Bb2, MI_G2,   MI_E2,   MI_Db2,  MI_Bb1, MI_G1,    MI_E1,  MI_Db1,   MI_Bb,  MI_G,   MI_E,  MI_Db,
            MI_A2,  MI_Fs2,  MI_Eb2,  MI_C2,   MI_A1,  MI_Fs1,   MI_Eb1,  MI_C1,   MI_A,   MI_Fs,  MI_Eb, MI_C,

    MI_Fs2,
      MI_Ab2, MI_B2,  MI_D3,  MI_F3,  MI_Ab3, MI_B3,  MI_D4,  MI_F4,  MI_Ab4, MI_B4,  MI_D5,  MI_F5,    FN_MUTE,
    MI_G2,  MI_Bb2, MI_Db3, MI_E3,  MI_G3,  MI_Bb3, MI_Db4, MI_E4,  MI_G4,  MI_Bb4, MI_Db5, MI_E5,  MI_G5,
      MI_A2,  MI_C3,  MI_Eb3, MI_Fs3, MI_A3,  MI_C4,  MI_Eb4, MI_Fs4, MI_A4,  MI_C5,  MI_Eb5, MI_Fs5
  ),

  /* Chromatone */
  [_CHROMATONE] = LAYOUT(
    MI_Db,   MI_Eb,   MI_F,    MI_G,    MI_A,    MI_B,    MI_Db_1, MI_Eb_1, MI_F_1,  MI_G_1,  MI_A_1,  MI_B_1,
      MI_D,    MI_E,    MI_Fs,   MI_Ab,   MI_Bb,   MI_C_1,  MI_D_1,  MI_E_1,  MI_Fs_1, MI_Ab_1, MI_Bb_1, MI_C_2,
        MI_Eb,   MI_F,    MI_G,    MI_A,    MI_B,    MI_Db_1, MI_Eb_1, MI_F_1,  MI_G_1,  MI_A_1,  MI_B_1,  MI_Db_2,
          MI_E,    MI_Fs,   MI_Ab,   MI_Bb,   MI_C_1,  MI_D_1,  MI_E_1,  MI_Fs_1, MI_Ab_1, MI_Bb_1, MI_C_2,  MI_D_2,
            MI_F,    MI_G,    MI_A,    MI_B,    MI_Db_1, MI_Eb_1, MI_F_1,  MI_G_1,  MI_A_1,  MI_B_1,  MI_Db_2, MI_Eb_2,

    MI_C_2,
      MI_Db_2, MI_Eb_2, MI_F_2,  MI_G_2,  MI_A_2,  MI_B_2,  MI_Db_3, MI_Eb_3, MI_F_3,  MI_G_3,  MI_A_3,  MI_B_3,    FN_MUTE,
    MI_C_2,  MI_D_2,  MI_E_2,  MI_Gb_2, MI_Ab_2, MI_Bb_2, MI_C_3,  MI_D_3,  MI_E_3,  MI_Gb_3, MI_Ab_3, MI_Bb_3, MI_C_4,
      MI_Db_2, MI_Eb_2, MI_F_2,  MI_G_2,  MI_A_2,  MI_B_2,  MI_Db_3, MI_Eb_3, MI_F_3,  MI_G_3,  MI_A_3,  MI_B_3
    MI_Db,   MI_Eb,   MI_F,    MI_G,    MI_A,    MI_B,    MI_Db1, MI_Eb1, MI_F1,  MI_G1,  MI_A1,  MI_B1,
      MI_D,    MI_E,    MI_Fs,   MI_Ab,   MI_Bb,   MI_C1,  MI_D1,  MI_E1,  MI_Fs1, MI_Ab1, MI_Bb1, MI_C2,
        MI_Eb,   MI_F,    MI_G,    MI_A,    MI_B,    MI_Db1, MI_Eb1, MI_F1,  MI_G1,  MI_A1,  MI_B1,  MI_Db2,
          MI_E,    MI_Fs,   MI_Ab,   MI_Bb,   MI_C1,  MI_D1,  MI_E1,  MI_Fs1, MI_Ab1, MI_Bb1, MI_C2,  MI_D2,
            MI_F,    MI_G,    MI_A,    MI_B,    MI_Db1, MI_Eb1, MI_F1,  MI_G1,  MI_A1,  MI_B1,  MI_Db2, MI_Eb2,

    MI_C2,
      MI_Db2, MI_Eb2, MI_F2,  MI_G2,  MI_A2,  MI_B2,  MI_Db3, MI_Eb3, MI_F3,  MI_G3,  MI_A3,  MI_B3,    FN_MUTE,
    MI_C2,  MI_D2,  MI_E2,  MI_Gb2, MI_Ab2, MI_Bb2, MI_C3,  MI_D3,  MI_E3,  MI_Gb3, MI_Ab3, MI_Bb3, MI_C4,
      MI_Db2, MI_Eb2, MI_F2,  MI_G2,  MI_A2,  MI_B2,  MI_Db3, MI_Eb3, MI_F3,  MI_G3,  MI_A3,  MI_B3
  ),

  [_CFLIP_BASS2ROW] = LAYOUT(


@@ 289,10 289,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
          MI_CH_Dbm,    MI_CH_Abm,    MI_CH_Ebm,    MI_CH_Bbm,    MI_CH_Fm,    MI_CH_Cm,    MI_CH_Gm,    MI_CH_Dm,    MI_CH_Am,    MI_CH_Em,    MI_CH_Bm,    MI_CH_Fsm,
            MI_CH_DbDom7, MI_CH_AbDom7, MI_CH_EbDom7, MI_CH_BbDom7, MI_CH_FDom7, MI_CH_CDom7, MI_CH_GDom7, MI_CH_DDom7, MI_CH_ADom7, MI_CH_EDom7, MI_CH_BDom7, MI_CH_FsDom7,

    MI_G_5,
      MI_F_5,  MI_D_5,  MI_B_4,  MI_Ab_4, MI_F_4,  MI_D_4,  MI_B_3,  MI_Ab_3, MI_F_3,  MI_D_3,  MI_B_2,  MI_Ab_2,   FN_MUTE,
    MI_Fs_5, MI_Eb_5, MI_C_5,  MI_A_4,  MI_Fs_4, MI_Eb_4, MI_C_4,  MI_A_3,  MI_Fs_3, MI_Eb_3, MI_C_3,  MI_A_2,  MI_Fs_2,
      MI_E_5,  MI_Db_5, MI_Bb_4, MI_G_4,  MI_E_4,  MI_Db_4, MI_Bb_3, MI_G_3,  MI_E_3,  MI_Db_3, MI_Bb_2, MI_G_2
    MI_G5,
      MI_F5,  MI_D5,  MI_B4,  MI_Ab4, MI_F4,  MI_D4,  MI_B3,  MI_Ab3, MI_F3,  MI_D3,  MI_B2,  MI_Ab2,   FN_MUTE,
    MI_Fs5, MI_Eb5, MI_C5,  MI_A4,  MI_Fs4, MI_Eb4, MI_C4,  MI_A3,  MI_Fs3, MI_Eb3, MI_C3,  MI_A2,  MI_Fs2,
      MI_E5,  MI_Db5, MI_Bb4, MI_G4,  MI_E4,  MI_Db4, MI_Bb3, MI_G3,  MI_E3,  MI_Db3, MI_Bb2, MI_G2
  ),

  /* QWERTY */


@@ 347,7 347,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
            XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,

    XXXXXXX,
      MI_OCT_N2, MI_OCT_N1, MI_OCT_0, MI_OCT_1, MI_OCT_2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, VERSION, EE_CLR, _______,
      MI_OCN2, MI_OCN1, MI_OC0,  MI_OC1,  MI_OC2,  XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, VERSION, EE_CLR, _______,
    CSYSTEM, BSYSTEM,  CNTBASC,  CSYSALL,  CHRTONE,  CFLIP2B, CSYSFBS, XXXXXXX, XXXXXXX, MI_VELD, MI_VELU, RGB_MOD, RGB_TOG,
      XXXXXXX,   TGLBASS,   XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX, XXXXXXX, XXXXXXX, TGLUVEL, MELDYAL, MELODYS, MELDYAH
  )


@@ 442,8 442,8 @@ layer_state_t layer_state_set_user(layer_state_t state) {
#endif  //  RGBLIGHT_ENABLE

void my_init(void){
    //  Set octave to MI_OCT_0
    midi_config.octave = MI_OCT_0 - MIDI_OCTAVE_MIN;
    //  Set octave to 0
    midi_config.octave = QK_MIDI_OCTAVE_0 - MIDI_OCTAVE_MIN;
    // avoid using 127 since it is used as a special number in some sound sources.
    midi_config.velocity = MIDI_INITIAL_VELOCITY;
}


@@ 452,7 452,7 @@ void eeconfig_init_user(void) {
    midi_init();
    my_init();

    // Used to set octave to MI_OCT_0
    // Used to set octave to 0
    midi_bass_ch = 0, midi_chord_ch = 0;  // By default, all use the same channel.

    // UNISON flags


@@ 710,7 710,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {

        // MIDI Chord Keycodes, on the left side.
        case MI_CH_Cr ... MI_CH_Br:  // Root Notes
            root_note = keycode - MI_CH_Cr + MI_C_1;
            root_note = keycode - MI_CH_Cr + MI_C1;
            my_process_midi4Bass(midi_bass_ch, record, chord_status, chord, root_note, IS_SINGLE_BASS());
#ifdef RGBLIGHT_ENABLE
            keylight_manager(record, HSV_GOLDENROD, keylocation);


@@ 718,7 718,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
            break;

        case MI_CH_C ... MI_CH_B:  // Major Chords
            root_note = keycode - MI_CH_C + MI_C_2;
            root_note = keycode - MI_CH_C + MI_C2;
            // Root, Major Third, and Fifth Notes
            my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 0, 4, 7);
#ifdef RGBLIGHT_ENABLE


@@ 727,7 727,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
            break;

        case MI_CH_Cm ... MI_CH_Bm:  // Minor Chord
            root_note = keycode - MI_CH_Cm + MI_C_2;
            root_note = keycode - MI_CH_Cm + MI_C2;
            // Root, Minor Third, and Fifth Notes
            my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 0, 3, 7);
#ifdef RGBLIGHT_ENABLE


@@ 736,7 736,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
            break;

        case MI_CH_CDom7 ... MI_CH_BDom7:  // Dominant 7th Chord
            root_note = keycode - MI_CH_CDom7 + MI_C_2;
            root_note = keycode - MI_CH_CDom7 + MI_C2;
            // Major Third, Major Fifth, and Minor Seventh Notes
            my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 4, 7, 10);
#ifdef RGBLIGHT_ENABLE


@@ 745,7 745,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
            break;

        case MI_CH_CDim7 ... MI_CH_BDim7:                // Diminished 7th Chord
            root_note = keycode - MI_CH_CDim7 + MI_C_2;
            root_note = keycode - MI_CH_CDim7 + MI_C2;
            // Root, Minor Third, and Diminished 5th Note
            my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 0, 3, 6);
#ifdef RGBLIGHT_ENABLE

M keyboards/giabalanai/keymaps/via/keymap.c => keyboards/giabalanai/keymaps/via/keymap.c +12 -12
@@ 24,7 24,7 @@
// Long press: go to _FN layer, tap: MUTE
#define FN_MUTE LT(_FN, KC_MUTE)

// Used to set octave to MI_OCT_0
// Used to set octave to 0
extern midi_config_t midi_config;
uint8_t midi_bass_ch = 0, midi_chord_ch = 0;  // By default, all use the same channel.



@@ 156,10 156,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
          MI_CH_DbDom7, MI_CH_AbDom7, MI_CH_EbDom7, MI_CH_BbDom7, MI_CH_FDom7, MI_CH_CDom7, MI_CH_GDom7, MI_CH_DDom7, MI_CH_ADom7, MI_CH_EDom7, MI_CH_BDom7, MI_CH_FsDom7,
            MI_CH_DbDim7, MI_CH_AbDim7, MI_CH_EbDim7, MI_CH_BbDim7, MI_CH_FDim7, MI_CH_CDim7, MI_CH_GDim7, MI_CH_DDim7, MI_CH_ADim7, MI_CH_EDim7, MI_CH_BDim7, MI_CH_FsDim7,

    MI_Fs_2,
      MI_Ab_2, MI_B_2,  MI_D_3,  MI_F_3,  MI_Ab_3, MI_B_3,  MI_D_4,  MI_F_4,  MI_Ab_4, MI_B_4,  MI_D_5,  MI_F_5,    FN_MUTE,
    MI_G_2,  MI_Bb_2, MI_Db_3, MI_E_3,  MI_G_3,  MI_Bb_3, MI_Db_4, MI_E_4,  MI_G_4,  MI_Bb_4, MI_Db_5, MI_E_5,  MI_G_5,
      MI_A_2,  MI_C_3,  MI_Eb_3, MI_Fs_3, MI_A_3,  MI_C_4,  MI_Eb_4, MI_Fs_4, MI_A_4,  MI_C_5,  MI_Eb_5, MI_Fs_5
    MI_Fs2,
      MI_Ab2, MI_B2,  MI_D3,  MI_F3,  MI_Ab3, MI_B3,  MI_D4,  MI_F4,  MI_Ab4, MI_B4,  MI_D5,  MI_F5,    FN_MUTE,
    MI_G2,  MI_Bb2, MI_Db3, MI_E3,  MI_G3,  MI_Bb3, MI_Db4, MI_E4,  MI_G4,  MI_Bb4, MI_Db5, MI_E5,  MI_G5,
      MI_A2,  MI_C3,  MI_Eb3, MI_Fs3, MI_A3,  MI_C4,  MI_Eb4, MI_Fs4, MI_A4,  MI_C5,  MI_Eb5, MI_Fs5
  ),

  /* QWERTY */


@@ 200,8 200,8 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
#endif

void keyboard_post_init_user(void) {
    //  Set otave to MI_OCT_0
    midi_config.octave = MI_OCT_0 - MIDI_OCTAVE_MIN;
    //  Set octave to 0
    midi_config.octave = QK_MIDI_OCTAVE_0 - MIDI_OCTAVE_MIN;

    // avoid using 127 since it is used as a special number in some sound sources.
    midi_config.velocity = MIDI_INITIAL_VELOCITY;


@@ 228,30 228,30 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {

        // MIDI Chord Keycodes, on the left side.
        case MI_CH_Cr ... MI_CH_Br:  // Root Notes
            root_note = keycode - MI_CH_Cr + MI_C_1;
            root_note = keycode - MI_CH_Cr + MI_C1;
            my_process_midi4Bass(midi_bass_ch, record, chord_status, chord, root_note, false);
            break;

        case MI_CH_C ... MI_CH_B:  // Major Chords
            root_note = keycode - MI_CH_C + MI_C_2;
            root_note = keycode - MI_CH_C + MI_C2;
            // Root, Major Third, and Fifth Notes
            my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 0, 4, 7);
            break;

        case MI_CH_Cm ... MI_CH_Bm:  // Minor Chord
            root_note = keycode - MI_CH_Cm + MI_C_2;
            root_note = keycode - MI_CH_Cm + MI_C2;
            // Root, Minor Third, and Fifth Notes
            my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 0, 3, 7);
            break;

        case MI_CH_CDom7 ... MI_CH_BDom7:  // Dominant 7th Chord
            root_note = keycode - MI_CH_CDom7 + MI_C_2;
            root_note = keycode - MI_CH_CDom7 + MI_C2;
            // Major Third, Major Fifth, and Minor Seventh Notes
            my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 4, 7, 10);
            break;

        case MI_CH_CDim7 ... MI_CH_BDim7:                // Diminished 7th Chord
            root_note = keycode - MI_CH_CDim7 + MI_C_2;
            root_note = keycode - MI_CH_CDim7 + MI_C2;
            // Root, Minor Third, and Diminished 5th Note
            my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 0, 3, 6);
            break;

M keyboards/giabalanai/keymaps/via_giabarinaix2/keymap.c => keyboards/giabalanai/keymaps/via_giabarinaix2/keymap.c +13 -13
@@ 24,7 24,7 @@
// Long press: go to _FN layer, tap: MUTE
#define FN_MUTE LT(_FN, KC_MUTE)

// Used to set octave to MI_OCT_0
// Used to set octave to 0
extern midi_config_t midi_config;
uint8_t midi_bass_ch = 0, midi_chord_ch = 0;  // By default, all use the same channel.



@@ 156,11 156,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
          MI_CH_DbDom7, MI_CH_AbDom7, MI_CH_EbDom7, MI_CH_BbDom7, MI_CH_FDom7, MI_CH_CDom7, MI_CH_GDom7, MI_CH_DDom7, MI_CH_ADom7, MI_CH_EDom7, MI_CH_BDom7, MI_CH_FsDom7,
            MI_CH_DbDim7, MI_CH_AbDim7, MI_CH_EbDim7, MI_CH_BbDim7, MI_CH_FDim7, MI_CH_CDim7, MI_CH_GDim7, MI_CH_DDim7, MI_CH_ADim7, MI_CH_EDim7, MI_CH_BDim7, MI_CH_FsDim7,

    MI_Db_2,      MI_E_2,       MI_G_2,       MI_Bb_2,      MI_Db_3,     MI_E_3,      MI_G_3,      MI_Bb_3,     MI_Db_4,     MI_E_4,      MI_G_4,      MI_Bb_4,
      MI_Eb_2,      MI_Fs_2,      MI_A_2,       MI_C_3,       MI_Eb_3,     MI_Fs_3,     MI_A_3,      MI_C_4,      MI_Eb_4,     MI_Fs_4,     MI_A_4,      MI_C_5,
        MI_F_2,       MI_Ab_2,      MI_B_2,       MI_D_3,       MI_F_3,      MI_Ab_3,     MI_B_3,      MI_D_4,      MI_F_4,      MI_Ab_4,     MI_B_4,      MI_D_5,
          MI_G_2,       MI_Bb_2,      MI_Db_3,      MI_E_3,       MI_G_3,      MI_Bb_3,     MI_Db_4,     MI_E_4,      MI_G_4,      MI_Bb_4,     MI_Db_5,     MI_E_5,
            MI_A_2,       MI_C_3,       MI_Eb_3,      MI_Fs_3,      MI_A_3,      MI_C_4,      MI_Eb_4,     MI_Fs_4,     MI_A_4,      MI_C_5,      MI_Eb_5,     FN_MUTE
    MI_Db2,      MI_E2,       MI_G2,       MI_Bb2,      MI_Db3,     MI_E3,      MI_G3,      MI_Bb3,     MI_Db4,     MI_E4,      MI_G4,      MI_Bb4,
      MI_Eb2,      MI_Fs2,      MI_A2,       MI_C3,       MI_Eb3,     MI_Fs3,     MI_A3,      MI_C4,      MI_Eb4,     MI_Fs4,     MI_A4,      MI_C5,
        MI_F2,       MI_Ab2,      MI_B2,       MI_D3,       MI_F3,      MI_Ab3,     MI_B3,      MI_D4,      MI_F4,      MI_Ab4,     MI_B4,      MI_D5,
          MI_G2,       MI_Bb2,      MI_Db3,      MI_E3,       MI_G3,      MI_Bb3,     MI_Db4,     MI_E4,      MI_G4,      MI_Bb4,     MI_Db5,     MI_E5,
            MI_A2,       MI_C3,       MI_Eb3,      MI_Fs3,      MI_A3,      MI_C4,      MI_Eb4,     MI_Fs4,     MI_A4,      MI_C5,      MI_Eb5,     FN_MUTE
  ),

  /* QWERTY */


@@ 203,8 203,8 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
#endif

void keyboard_post_init_user(void) {
    //  Set otave to MI_OCT_0
    midi_config.octave = MI_OCT_0 - MIDI_OCTAVE_MIN;
    //  Set octave to 0
    midi_config.octave = QK_MIDI_OCTAVE_0 - MIDI_OCTAVE_MIN;

    // avoid using 127 since it is used as a special number in some sound sources.
    midi_config.velocity = MIDI_INITIAL_VELOCITY;


@@ 230,30 230,30 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {

        // MIDI Chord Keycodes, on the left side.
        case MI_CH_Cr ... MI_CH_Br:  // Root Notes
            root_note = keycode - MI_CH_Cr + MI_C_1;
            root_note = keycode - MI_CH_Cr + MI_C1;
            my_process_midi4Bass(midi_bass_ch, record, chord_status, chord, root_note, false);
            break;

        case MI_CH_C ... MI_CH_B:  // Major Chords
            root_note = keycode - MI_CH_C + MI_C_2;
            root_note = keycode - MI_CH_C + MI_C2;
            // Root, Major Third, and Fifth Notes
            my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 0, 4, 7);
            break;

        case MI_CH_Cm ... MI_CH_Bm:  // Minor Chord
            root_note = keycode - MI_CH_Cm + MI_C_2;
            root_note = keycode - MI_CH_Cm + MI_C2;
            // Root, Minor Third, and Fifth Notes
            my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 0, 3, 7);
            break;

        case MI_CH_CDom7 ... MI_CH_BDom7:  // Dominant 7th Chord
            root_note = keycode - MI_CH_CDom7 + MI_C_2;
            root_note = keycode - MI_CH_CDom7 + MI_C2;
            // Major Third, Major Fifth, and Minor Seventh Notes
            my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 4, 7, 10);
            break;

        case MI_CH_CDim7 ... MI_CH_BDim7:                // Diminished 7th Chord
            root_note = keycode - MI_CH_CDim7 + MI_C_2;
            root_note = keycode - MI_CH_CDim7 + MI_C2;
            // Root, Minor Third, and Diminished 5th Note
            my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 0, 3, 6);
            break;

M keyboards/keebio/nyquist/keymaps/shovelpaw/keymap.c => keyboards/keebio/nyquist/keymaps/shovelpaw/keymap.c +4 -4
@@ 91,10 91,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 */

[_MIDI] = LAYOUT( \
  QWERTY,   MI_C,    MI_D,    MI_E,    MI_F,    MI_G,    MI_A,    MI_B,    MI_C_1,  MI_C_2,  MI_C_3,  QWERTY, \
  MI_A_3,   MI_As_3, MI_B_3,  MI_C_3,  MI_Cs_3, MI_D_3,  MI_Ds_3, MI_E_3,  MI_F_3,  MI_Fs_3, MI_G_3,  MI_Gs_3, \
  MI_A_2,   MI_As_2, MI_B_2,  MI_C_2,  MI_Cs_2, MI_D_2,  MI_Ds_2, MI_E_2,  MI_F_2,  MI_Fs_2, MI_G_2,  MI_Gs_2, \
  MI_A_1,   MI_As_1, MI_B_1,  MI_C_1,  MI_Cs_1, MI_D_1,  MI_Ds_1, MI_E_1,  MI_F_1,  MI_Fs_1, MI_G_1,  MI_Gs_1, \
  QWERTY,   MI_C,    MI_D,    MI_E,    MI_F,    MI_G,    MI_A,    MI_B,    MI_C1,   MI_C2,   MI_C3,   QWERTY, \
  MI_A3,    MI_As3,  MI_B3,   MI_C3,   MI_Cs3,  MI_D3,   MI_Ds3,  MI_E3,   MI_F3,   MI_Fs3,  MI_G3,   MI_Gs3, \
  MI_A2,    MI_As2,  MI_B2,   MI_C2,   MI_Cs2,  MI_D2,   MI_Ds2,  MI_E2,   MI_F2,   MI_Fs2,  MI_G2,   MI_Gs2, \
  MI_A1,    MI_As1,  MI_B1,   MI_C1,   MI_Cs1,  MI_D1,   MI_Ds1,  MI_E1,   MI_F1,   MI_Fs1,  MI_G1,   MI_Gs1, \
  MI_A,     MI_As,   MI_B,    MI_C,    MI_Cs,   MI_D,    MI_Ds,   MI_E,    MI_F,    MI_Fs,   MI_G,    MI_Gs \
),


M keyboards/kprepublic/bm40hsrgb/keymaps/wolff_abnt2/keymap.c => keyboards/kprepublic/bm40hsrgb/keymaps/wolff_abnt2/keymap.c +3 -3
@@ 115,7 115,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_ADJUST] = LAYOUT_planck_mit(
    QK_BOOT, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, _______, _______, _______,
    KC_CAPS, RGB_RMOD,RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, QWERTY,  DVORAK,  COLEMAK, WORKMAN, MIDI,
    _______, MI_ON,   MI_OFF,  MI_TOG,  MU_ON,   MU_OFF,  MU_TOG,  MU_MOD,  AU_ON,   AU_OFF,  _______, _______,
    _______, MI_ON,   MI_OFF,  MI_TOGG, MU_ON,   MU_OFF,  MU_TOG,  MU_MOD,  AU_ON,   AU_OFF,  _______, _______,
    RGB_TOG, _______, _______, _______, _______,     _______,      _______, _______, _______, _______, _______
),



@@ 123,8 123,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_MIDI] = LAYOUT_planck_mit(
    MI_Cs,   MI_Ds,   _______, MI_Fs,   MI_Gs,   MI_As,   _______, MI_Cs,   MI_Ds,   _______, MI_Fs,   MI_Gs,
    MI_C,    MI_D,    MI_E,    MI_F,    MI_G,    MI_A,    MI_B,    MI_C,    MI_D,    MI_E,    MI_F,    MI_G,
    MI_BENDU,MI_OCTU, MI_TRNSU,MI_VELU, _______, _______, _______, _______, _______, MI_ON,   MI_CHU,  MI_TOG,
    MI_BENDD,MI_OCTD, MI_TRNSD,MI_VELD, MYNAV,       MI_SUS,       MYNUM, _______,   MI_OFF,  MI_CHD,  MI_ALLOFF
    MI_BNDU, MI_OCTU, MI_TRSU, MI_VELU, _______, _______, _______, _______, _______, MI_ON,   MI_CHNU, MI_TOG,
    MI_BNDD, MI_OCTD, MI_TRSD, MI_VELD, MYNAV,       MI_SUST,      MYNUM, _______,   MI_OFF,  MI_CHND, MI_AOFF
)
};


M keyboards/miuni32/keymaps/cassdelacruzmunoz/keymap.c => keyboards/miuni32/keymaps/cassdelacruzmunoz/keymap.c +3 -3
@@ 114,9 114,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
     * |---------------------------------------------------------------------------------------|
     */
  [6] = LAYOUT(
    MI_C_1,  MI_E_1,  MI_G_1,   MI_B_1,   MI_D_2,  MI_F_2, MI_A_2, MI_C_3, MI_E_3, MI_G_3, KC_NO,
    MI_D_1,  MI_F_1,  MI_A_1,   MI_C_2,   MI_E_2,  MI_G_2, MI_B_2, MI_D_3, MI_F_3, MI_A_3, TG(6),
    MI_OCTD, MI_OCTU, MI_TRNSD, MI_TRNSU,          KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO
    MI_C1,   MI_E1,   MI_G1,    MI_B1,    MI_D2,   MI_F2,  MI_A2,  MI_C3,  MI_E3,  MI_G3,  KC_NO,
    MI_D1,   MI_F1,   MI_A1,    MI_C2,    MI_E2,   MI_G2,  MI_B2,  MI_D3,  MI_F3,  MI_A3,  TG(6),
    MI_OCTD, MI_OCTU, MI_TRSD,  MI_TRSU,           KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO
  )
};


M keyboards/preonic/keymaps/mverteuil/keymap.c => keyboards/preonic/keymaps/mverteuil/keymap.c +1 -1
@@ 231,7 231,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  AU_TOG,  XXXXXXX, XXXXXXX, XXXXXXX, RGB_HUI, RGB_HUD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DB_TOGG, QK_BOOT,
  CK_TOGG, CK_DOWN, CK_UP,   XXXXXXX, RGB_SAI, RGB_SAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
  MU_TOG,  MUV_DE,  MUV_IN,  XXXXXXX, RGB_VAI, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, AG_NORM, AG_SWAP,
  MI_TOG,  RGB_M_P, RGB_M_B, RGB_M_R,RGB_M_SW,RGB_M_SN, RGB_M_K, RGB_M_X, RGB_M_G, RGB_M_T, RGB_SPI, KC_LSFT,
  MI_TOGG, RGB_M_P, RGB_M_B, RGB_M_R,RGB_M_SW,RGB_M_SN, RGB_M_K, RGB_M_X, RGB_M_G, RGB_M_T, RGB_SPI, KC_LSFT,
  XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______,      RGB_TOG,     _______, XXXXXXX,RGB_RMOD, RGB_SPD, RGB_MOD
)


M keyboards/preonic/keymaps/mverteuil_2x2u/keymap.c => keyboards/preonic/keymaps/mverteuil_2x2u/keymap.c +1 -1
@@ 207,7 207,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  AU_TOG,  XXXXXXX, XXXXXXX, XXXXXXX, RGB_HUI, RGB_HUD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DB_TOGG, QK_BOOT,
  CK_TOGG, CK_DOWN, CK_UP,   XXXXXXX, RGB_SAI, RGB_SAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
  MU_TOG,  MUV_DE,  MUV_IN,  XXXXXXX, RGB_VAI, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, AG_NORM, AG_SWAP,
  MI_TOG,  RGB_M_P, RGB_M_B, RGB_M_R,RGB_M_SW,RGB_M_SN, RGB_M_K, RGB_M_X, RGB_M_G, RGB_M_T, RGB_SPI, KC_LSFT,
  MI_TOGG, RGB_M_P, RGB_M_B, RGB_M_R,RGB_M_SW,RGB_M_SN, RGB_M_K, RGB_M_X, RGB_M_G, RGB_M_T, RGB_SPI, KC_LSFT,
  XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,     _______,          _______,      XXXXXXX,RGB_RMOD, RGB_SPD, RGB_MOD
)


M keyboards/sofle/keymaps/michal/keymap.c => keyboards/sofle/keymaps/michal/keymap.c +5 -5
@@ 86,11 86,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 *            `----------------------------------'           '------''---------------------------'
 */
[_MIDI] = LAYOUT(
  MI_ALLOFF, MI_OCT_0, MI_OCT_1, MI_OCT_2, MI_OCT_3, MI_OCT_4,                      MI_OCT_5, MI_OCT_6, MI_OCT_7, _______, _______, MI_TOG,
  _______,   MI_Gs,    MI_As,    _______,  MI_Cs_1,  MI_Ds_1,                       _______,  MI_Fs_1,  MI_Gs_1,  MI_As_1, _______, _______,
  _______,   MI_A,     MI_B,     MI_C_1,   MI_D_1,   MI_E_1,                        MI_F_1,   MI_G_1,   MI_A_1,   MI_B_1,  MI_C_2,  KC_WORKMAN,
  _______,   _______,  _______,  _______,  MI_TRNSD, MI_TRNSU, _______,    _______, MI_BENDD, MI_BENDU, _______,  _______, _______, _______,
                       _______,  _______,  _______,  MI_SUS,   MI_OCTD,    MI_OCTU, _______,  _______,  _______,  _______
  MI_AOFF,   MI_OC0,   MI_OC1,   MI_OC2,   MI_OC3,   MI_OC4,                        MI_OC5,   MI_OC6,   MI_OC7,   _______, _______, MI_TOGG,
  _______,   MI_Gs,    MI_As,    _______,  MI_Cs1,   MI_Ds1,                        _______,  MI_Fs1,   MI_Gs1,   MI_As1,  _______, _______,
  _______,   MI_A,     MI_B,     MI_C1,    MI_D1,    MI_E1,                         MI_F1,    MI_G1,    MI_A1,    MI_B1,   MI_C2,  KC_WORKMAN,
  _______,   _______,  _______,  _______,  MI_TRSD,  MI_TRSU,  _______,    _______, MI_BNDD,  MI_BNDU,  _______,  _______, _______, _______,
                       _______,  _______,  _______,  MI_SUST,  MI_OCTD,    MI_OCTU, _______,  _______,  _______,  _______
),

/* LOWER

M keyboards/tempo_turtle/bradpad/keymaps/4brad/keymap.c => keyboards/tempo_turtle/bradpad/keymaps/4brad/keymap.c +3 -3
@@ 128,7 128,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
    [_NATURAL] = LAYOUT(
        MI_C, MI_BENDD,   MI_BENDU,  MI_G,
        MI_C, MI_BNDD,    MI_BNDU,   MI_G,
        MI_D, MIDI_CC80,  MIDI_CC81, MI_A,
        MI_E, MIDI_CC82,  MIDI_CC83, MI_B,
        MI_F, MI_OCTD,    MI_OCTU,   MI_C,


@@ 137,12 137,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
        MI_Cs, KC_TRNS,  KC_TRNS,  MI_Gs,
        MI_Ds, KC_TRNS,  KC_TRNS,  MI_As,
        MI_F , KC_TRNS,  KC_TRNS,  MI_C ,
        MI_Fs, MI_TRNSD, MI_TRNSU, MI_Cs,
        MI_Fs, MI_TRSD,  MI_TRSU,  MI_Cs,
               KC_TRNS,  KC_TRNS),
    [_FLAT] = LAYOUT(
        MI_B , KC_TRNS,  KC_TRNS,  MI_Gb,
        MI_Db, KC_TRNS,  KC_TRNS,  MI_Ab,
        MI_Eb, KC_TRNS,  KC_TRNS,  MI_Bb,
        MI_E , MI_TRNSD, MI_TRNSU, MI_B,
        MI_E , MI_TRSD,  MI_TRSU,  MI_B,
               KC_TRNS,  KC_TRNS),
};

M keyboards/tempo_turtle/bradpad/keymaps/midi_demo/keymap.c => keyboards/tempo_turtle/bradpad/keymaps/midi_demo/keymap.c +2 -2
@@ 22,9 22,9 @@ enum layers {

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
    [_NATURAL] = LAYOUT(
        MI_C, MI_BENDD, MI_BENDU, MI_G,
        MI_C, MI_BNDD,  MI_BNDU,  MI_G,
        MI_D, MI_VELD,  MI_VELU,  MI_A,
        MI_E, MI_TRNSD, MI_TRNSU, MI_B,
        MI_E, MI_TRSD,  MI_TRSU,  MI_B,
        MI_F, MI_OCTD,  MI_OCTU,  MI_C,
             MO(_SHARP), MO(_FLAT)),
    [_SHARP] = LAYOUT(

M quantum/keycodes.h => quantum/keycodes.h +319 -176
@@ 346,150 346,150 @@ enum qk_keycode_defines {
    MAGIC_SWAP_ESCAPE_CAPSLOCK = 0x7020,
    MAGIC_UNSWAP_ESCAPE_CAPSLOCK = 0x7021,
    MAGIC_TOGGLE_ESCAPE_CAPSLOCK = 0x7022,
    MI_ON = 0x7100,
    MI_OFF = 0x7101,
    MI_TOG = 0x7102,
    MI_C = 0x7110,
    MI_Cs = 0x7111,
    MI_D = 0x7112,
    MI_Ds = 0x7113,
    MI_E = 0x7114,
    MI_F = 0x7115,
    MI_Fs = 0x7116,
    MI_G = 0x7117,
    MI_Gs = 0x7118,
    MI_A = 0x7119,
    MI_As = 0x711A,
    MI_B = 0x711B,
    MI_C_1 = 0x7120,
    MI_Cs_1 = 0x7121,
    MI_D_1 = 0x7122,
    MI_Ds_1 = 0x7123,
    MI_E_1 = 0x7124,
    MI_F_1 = 0x7125,
    MI_Fs_1 = 0x7126,
    MI_G_1 = 0x7127,
    MI_Gs_1 = 0x7128,
    MI_A_1 = 0x7129,
    MI_As_1 = 0x712A,
    MI_B_1 = 0x712B,
    MI_C_2 = 0x7130,
    MI_Cs_2 = 0x7131,
    MI_D_2 = 0x7132,
    MI_Ds_2 = 0x7133,
    MI_E_2 = 0x7134,
    MI_F_2 = 0x7135,
    MI_Fs_2 = 0x7136,
    MI_G_2 = 0x7137,
    MI_Gs_2 = 0x7138,
    MI_A_2 = 0x7139,
    MI_As_2 = 0x713A,
    MI_B_2 = 0x713B,
    MI_C_3 = 0x7140,
    MI_Cs_3 = 0x7141,
    MI_D_3 = 0x7142,
    MI_Ds_3 = 0x7143,
    MI_E_3 = 0x7144,
    MI_F_3 = 0x7145,
    MI_Fs_3 = 0x7146,
    MI_G_3 = 0x7147,
    MI_Gs_3 = 0x7148,
    MI_A_3 = 0x7149,
    MI_As_3 = 0x714A,
    MI_B_3 = 0x714B,
    MI_C_4 = 0x7150,
    MI_Cs_4 = 0x7151,
    MI_D_4 = 0x7152,
    MI_Ds_4 = 0x7153,
    MI_E_4 = 0x7154,
    MI_F_4 = 0x7155,
    MI_Fs_4 = 0x7156,
    MI_G_4 = 0x7157,
    MI_Gs_4 = 0x7158,
    MI_A_4 = 0x7159,
    MI_As_4 = 0x715A,
    MI_B_4 = 0x715B,
    MI_C_5 = 0x7160,
    MI_Cs_5 = 0x7161,
    MI_D_5 = 0x7162,
    MI_Ds_5 = 0x7163,
    MI_E_5 = 0x7164,
    MI_F_5 = 0x7165,
    MI_Fs_5 = 0x7166,
    MI_G_5 = 0x7167,
    MI_Gs_5 = 0x7168,
    MI_A_5 = 0x7169,
    MI_As_5 = 0x716A,
    MI_B_5 = 0x716B,
    MI_OCT_N2 = 0x7170,
    MI_OCT_N1 = 0x7171,
    MI_OCT_0 = 0x7172,
    MI_OCT_1 = 0x7173,
    MI_OCT_2 = 0x7174,
    MI_OCT_3 = 0x7175,
    MI_OCT_4 = 0x7176,
    MI_OCT_5 = 0x7177,
    MI_OCT_6 = 0x7178,
    MI_OCT_7 = 0x7179,
    MI_OCTD = 0x717A,
    MI_OCTU = 0x717B,
    MI_TRNS_N6 = 0x7180,
    MI_TRNS_N5 = 0x7181,
    MI_TRNS_N4 = 0x7182,
    MI_TRNS_N3 = 0x7183,
    MI_TRNS_N2 = 0x7184,
    MI_TRNS_N1 = 0x7185,
    MI_TRNS_0 = 0x7186,
    MI_TRNS_1 = 0x7187,
    MI_TRNS_2 = 0x7188,
    MI_TRNS_3 = 0x7189,
    MI_TRNS_4 = 0x718A,
    MI_TRNS_5 = 0x718B,
    MI_TRNS_6 = 0x718C,
    MI_TRNSD = 0x718D,
    MI_TRNSU = 0x718E,
    MI_VEL_0 = 0x7190,
    MI_VEL_1 = 0x7191,
    MI_VEL_2 = 0x7192,
    MI_VEL_3 = 0x7193,
    MI_VEL_4 = 0x7194,
    MI_VEL_5 = 0x7195,
    MI_VEL_6 = 0x7196,
    MI_VEL_7 = 0x7197,
    MI_VEL_8 = 0x7198,
    MI_VEL_9 = 0x7199,
    MI_VEL_10 = 0x719A,
    MI_VELD = 0x719B,
    MI_VELU = 0x719C,
    MI_CH1 = 0x71A0,
    MI_CH2 = 0x71A1,
    MI_CH3 = 0x71A2,
    MI_CH4 = 0x71A3,
    MI_CH5 = 0x71A4,
    MI_CH6 = 0x71A5,
    MI_CH7 = 0x71A6,
    MI_CH8 = 0x71A7,
    MI_CH9 = 0x71A8,
    MI_CH10 = 0x71A9,
    MI_CH11 = 0x71AA,
    MI_CH12 = 0x71AB,
    MI_CH13 = 0x71AC,
    MI_CH14 = 0x71AD,
    MI_CH15 = 0x71AE,
    MI_CH16 = 0x71AF,
    MI_CHD = 0x71B0,
    MI_CHU = 0x71B1,
    MI_ALLOFF = 0x71C0,
    MI_SUS = 0x71C1,
    MI_PORT = 0x71C2,
    MI_SOST = 0x71C3,
    MI_SOFT = 0x71C4,
    MI_LEG = 0x71C5,
    MI_MOD = 0x71C6,
    MI_MODSD = 0x71C7,
    MI_MODSU = 0x71C8,
    MI_BENDD = 0x71C9,
    MI_BENDU = 0x71CA,
    QK_MIDI_ON = 0x7100,
    QK_MIDI_OFF = 0x7101,
    QK_MIDI_TOGGLE = 0x7102,
    QK_MIDI_NOTE_C_0 = 0x7110,
    QK_MIDI_NOTE_C_SHARP_0 = 0x7111,
    QK_MIDI_NOTE_D_0 = 0x7112,
    QK_MIDI_NOTE_D_SHARP_0 = 0x7113,
    QK_MIDI_NOTE_E_0 = 0x7114,
    QK_MIDI_NOTE_F_0 = 0x7115,
    QK_MIDI_NOTE_F_SHARP_0 = 0x7116,
    QK_MIDI_NOTE_G_0 = 0x7117,
    QK_MIDI_NOTE_G_SHARP_0 = 0x7118,
    QK_MIDI_NOTE_A_0 = 0x7119,
    QK_MIDI_NOTE_A_SHARP_0 = 0x711A,
    QK_MIDI_NOTE_B_0 = 0x711B,
    QK_MIDI_NOTE_C_1 = 0x7120,
    QK_MIDI_NOTE_C_SHARP_1 = 0x7121,
    QK_MIDI_NOTE_D_1 = 0x7122,
    QK_MIDI_NOTE_D_SHARP_1 = 0x7123,
    QK_MIDI_NOTE_E_1 = 0x7124,
    QK_MIDI_NOTE_F_1 = 0x7125,
    QK_MIDI_NOTE_F_SHARP_1 = 0x7126,
    QK_MIDI_NOTE_G_1 = 0x7127,
    QK_MIDI_NOTE_G_SHARP_1 = 0x7128,
    QK_MIDI_NOTE_A_1 = 0x7129,
    QK_MIDI_NOTE_A_SHARP_1 = 0x712A,
    QK_MIDI_NOTE_B_1 = 0x712B,
    QK_MIDI_NOTE_C_2 = 0x7130,
    QK_MIDI_NOTE_C_SHARP_2 = 0x7131,
    QK_MIDI_NOTE_D_2 = 0x7132,
    QK_MIDI_NOTE_D_SHARP_2 = 0x7133,
    QK_MIDI_NOTE_E_2 = 0x7134,
    QK_MIDI_NOTE_F_2 = 0x7135,
    QK_MIDI_NOTE_F_SHARP_2 = 0x7136,
    QK_MIDI_NOTE_G_2 = 0x7137,
    QK_MIDI_NOTE_G_SHARP_2 = 0x7138,
    QK_MIDI_NOTE_A_2 = 0x7139,
    QK_MIDI_NOTE_A_SHARP_2 = 0x713A,
    QK_MIDI_NOTE_B_2 = 0x713B,
    QK_MIDI_NOTE_C_3 = 0x7140,
    QK_MIDI_NOTE_C_SHARP_3 = 0x7141,
    QK_MIDI_NOTE_D_3 = 0x7142,
    QK_MIDI_NOTE_D_SHARP_3 = 0x7143,
    QK_MIDI_NOTE_E_3 = 0x7144,
    QK_MIDI_NOTE_F_3 = 0x7145,
    QK_MIDI_NOTE_F_SHARP_3 = 0x7146,
    QK_MIDI_NOTE_G_3 = 0x7147,
    QK_MIDI_NOTE_G_SHARP_3 = 0x7148,
    QK_MIDI_NOTE_A_3 = 0x7149,
    QK_MIDI_NOTE_A_SHARP_3 = 0x714A,
    QK_MIDI_NOTE_B_3 = 0x714B,
    QK_MIDI_NOTE_C_4 = 0x7150,
    QK_MIDI_NOTE_C_SHARP_4 = 0x7151,
    QK_MIDI_NOTE_D_4 = 0x7152,
    QK_MIDI_NOTE_D_SHARP_4 = 0x7153,
    QK_MIDI_NOTE_E_4 = 0x7154,
    QK_MIDI_NOTE_F_4 = 0x7155,
    QK_MIDI_NOTE_F_SHARP_4 = 0x7156,
    QK_MIDI_NOTE_G_4 = 0x7157,
    QK_MIDI_NOTE_G_SHARP_4 = 0x7158,
    QK_MIDI_NOTE_A_4 = 0x7159,
    QK_MIDI_NOTE_A_SHARP_4 = 0x715A,
    QK_MIDI_NOTE_B_4 = 0x715B,
    QK_MIDI_NOTE_C_5 = 0x7160,
    QK_MIDI_NOTE_C_SHARP_5 = 0x7161,
    QK_MIDI_NOTE_D_5 = 0x7162,
    QK_MIDI_NOTE_D_SHARP_5 = 0x7163,
    QK_MIDI_NOTE_E_5 = 0x7164,
    QK_MIDI_NOTE_F_5 = 0x7165,
    QK_MIDI_NOTE_F_SHARP_5 = 0x7166,
    QK_MIDI_NOTE_G_5 = 0x7167,
    QK_MIDI_NOTE_G_SHARP_5 = 0x7168,
    QK_MIDI_NOTE_A_5 = 0x7169,
    QK_MIDI_NOTE_A_SHARP_5 = 0x716A,
    QK_MIDI_NOTE_B_5 = 0x716B,
    QK_MIDI_OCTAVE_N2 = 0x7170,
    QK_MIDI_OCTAVE_N1 = 0x7171,
    QK_MIDI_OCTAVE_0 = 0x7172,
    QK_MIDI_OCTAVE_1 = 0x7173,
    QK_MIDI_OCTAVE_2 = 0x7174,
    QK_MIDI_OCTAVE_3 = 0x7175,
    QK_MIDI_OCTAVE_4 = 0x7176,
    QK_MIDI_OCTAVE_5 = 0x7177,
    QK_MIDI_OCTAVE_6 = 0x7178,
    QK_MIDI_OCTAVE_7 = 0x7179,
    QK_MIDI_OCTAVE_DOWN = 0x717A,
    QK_MIDI_OCTAVE_UP = 0x717B,
    QK_MIDI_TRANSPOSE_N6 = 0x7180,
    QK_MIDI_TRANSPOSE_N5 = 0x7181,
    QK_MIDI_TRANSPOSE_N4 = 0x7182,
    QK_MIDI_TRANSPOSE_N3 = 0x7183,
    QK_MIDI_TRANSPOSE_N2 = 0x7184,
    QK_MIDI_TRANSPOSE_N1 = 0x7185,
    QK_MIDI_TRANSPOSE_0 = 0x7186,
    QK_MIDI_TRANSPOSE_1 = 0x7187,
    QK_MIDI_TRANSPOSE_2 = 0x7188,
    QK_MIDI_TRANSPOSE_3 = 0x7189,
    QK_MIDI_TRANSPOSE_4 = 0x718A,
    QK_MIDI_TRANSPOSE_5 = 0x718B,
    QK_MIDI_TRANSPOSE_6 = 0x718C,
    QK_MIDI_TRANSPOSE_DOWN = 0x718D,
    QK_MIDI_TRANSPOSE_UP = 0x718E,
    QK_MIDI_VELOCITY_0 = 0x7190,
    QK_MIDI_VELOCITY_1 = 0x7191,
    QK_MIDI_VELOCITY_2 = 0x7192,
    QK_MIDI_VELOCITY_3 = 0x7193,
    QK_MIDI_VELOCITY_4 = 0x7194,
    QK_MIDI_VELOCITY_5 = 0x7195,
    QK_MIDI_VELOCITY_6 = 0x7196,
    QK_MIDI_VELOCITY_7 = 0x7197,
    QK_MIDI_VELOCITY_8 = 0x7198,
    QK_MIDI_VELOCITY_9 = 0x7199,
    QK_MIDI_VELOCITY_10 = 0x719A,
    QK_MIDI_VELOCITY_DOWN = 0x719B,
    QK_MIDI_VELOCITY_UP = 0x719C,
    QK_MIDI_CHANNEL_1 = 0x71A0,
    QK_MIDI_CHANNEL_2 = 0x71A1,
    QK_MIDI_CHANNEL_3 = 0x71A2,
    QK_MIDI_CHANNEL_4 = 0x71A3,
    QK_MIDI_CHANNEL_5 = 0x71A4,
    QK_MIDI_CHANNEL_6 = 0x71A5,
    QK_MIDI_CHANNEL_7 = 0x71A6,
    QK_MIDI_CHANNEL_8 = 0x71A7,
    QK_MIDI_CHANNEL_9 = 0x71A8,
    QK_MIDI_CHANNEL_10 = 0x71A9,
    QK_MIDI_CHANNEL_11 = 0x71AA,
    QK_MIDI_CHANNEL_12 = 0x71AB,
    QK_MIDI_CHANNEL_13 = 0x71AC,
    QK_MIDI_CHANNEL_14 = 0x71AD,
    QK_MIDI_CHANNEL_15 = 0x71AE,
    QK_MIDI_CHANNEL_16 = 0x71AF,
    QK_MIDI_CHANNEL_DOWN = 0x71B0,
    QK_MIDI_CHANNEL_UP = 0x71B1,
    QK_MIDI_ALL_NOTES_OFF = 0x71C0,
    QK_MIDI_SUSTAIN = 0x71C1,
    QK_MIDI_PORTAMENTO = 0x71C2,
    QK_MIDI_SOSTENUTO = 0x71C3,
    QK_MIDI_SOFT = 0x71C4,
    QK_MIDI_LEGATO = 0x71C5,
    QK_MIDI_MODULATION = 0x71C6,
    QK_MIDI_MODULATION_SPEED_DOWN = 0x71C7,
    QK_MIDI_MODULATION_SPEED_UP = 0x71C8,
    QK_MIDI_PITCH_BEND_DOWN = 0x71C9,
    QK_MIDI_PITCH_BEND_UP = 0x71CA,
    SQ_ON = 0x7200,
    SQ_OFF = 0x7201,
    SQ_TOG = 0x7202,


@@ 898,36 898,180 @@ enum qk_keycode_defines {
    EC_SWAP    = MAGIC_SWAP_ESCAPE_CAPSLOCK,
    EC_NORM    = MAGIC_UNSWAP_ESCAPE_CAPSLOCK,
    EC_TOGG    = MAGIC_TOGGLE_ESCAPE_CAPSLOCK,
    MI_Db      = MI_Cs,
    MI_Eb      = MI_Ds,
    MI_Gb      = MI_Fs,
    MI_Ab      = MI_Gs,
    MI_Bb      = MI_As,
    MI_Db_1    = MI_Cs_1,
    MI_Eb_1    = MI_Ds_1,
    MI_Gb_1    = MI_Fs_1,
    MI_Ab_1    = MI_Gs_1,
    MI_Bb_1    = MI_As_1,
    MI_Db_2    = MI_Cs_2,
    MI_Eb_2    = MI_Ds_2,
    MI_Gb_2    = MI_Fs_2,
    MI_Ab_2    = MI_Gs_2,
    MI_Bb_2    = MI_As_2,
    MI_Db_3    = MI_Cs_3,
    MI_Eb_3    = MI_Ds_3,
    MI_Gb_3    = MI_Fs_3,
    MI_Ab_3    = MI_Gs_3,
    MI_Bb_3    = MI_As_3,
    MI_Db_4    = MI_Cs_4,
    MI_Eb_4    = MI_Ds_4,
    MI_Gb_4    = MI_Fs_4,
    MI_Ab_4    = MI_Gs_4,
    MI_Bb_4    = MI_As_4,
    MI_Db_5    = MI_Cs_5,
    MI_Eb_5    = MI_Ds_5,
    MI_Gb_5    = MI_Fs_5,
    MI_Ab_5    = MI_Gs_5,
    MI_Bb_5    = MI_As_5,
    MI_ON      = QK_MIDI_ON,
    MI_OFF     = QK_MIDI_OFF,
    MI_TOGG    = QK_MIDI_TOGGLE,
    MI_C       = QK_MIDI_NOTE_C_0,
    MI_Cs      = QK_MIDI_NOTE_C_SHARP_0,
    MI_Db      = QK_MIDI_NOTE_C_SHARP_0,
    MI_D       = QK_MIDI_NOTE_D_0,
    MI_Ds      = QK_MIDI_NOTE_D_SHARP_0,
    MI_Eb      = QK_MIDI_NOTE_D_SHARP_0,
    MI_E       = QK_MIDI_NOTE_E_0,
    MI_F       = QK_MIDI_NOTE_F_0,
    MI_Fs      = QK_MIDI_NOTE_F_SHARP_0,
    MI_Gb      = QK_MIDI_NOTE_F_SHARP_0,
    MI_G       = QK_MIDI_NOTE_G_0,
    MI_Gs      = QK_MIDI_NOTE_G_SHARP_0,
    MI_Ab      = QK_MIDI_NOTE_G_SHARP_0,
    MI_A       = QK_MIDI_NOTE_A_0,
    MI_As      = QK_MIDI_NOTE_A_SHARP_0,
    MI_Bb      = QK_MIDI_NOTE_A_SHARP_0,
    MI_B       = QK_MIDI_NOTE_B_0,
    MI_C1      = QK_MIDI_NOTE_C_1,
    MI_Cs1     = QK_MIDI_NOTE_C_SHARP_1,
    MI_Db1     = QK_MIDI_NOTE_C_SHARP_1,
    MI_D1      = QK_MIDI_NOTE_D_1,
    MI_Ds1     = QK_MIDI_NOTE_D_SHARP_1,
    MI_Eb1     = QK_MIDI_NOTE_D_SHARP_1,
    MI_E1      = QK_MIDI_NOTE_E_1,
    MI_F1      = QK_MIDI_NOTE_F_1,
    MI_Fs1     = QK_MIDI_NOTE_F_SHARP_1,
    MI_Gb1     = QK_MIDI_NOTE_F_SHARP_1,
    MI_G1      = QK_MIDI_NOTE_G_1,
    MI_Gs1     = QK_MIDI_NOTE_G_SHARP_1,
    MI_Ab1     = QK_MIDI_NOTE_G_SHARP_1,
    MI_A1      = QK_MIDI_NOTE_A_1,
    MI_As1     = QK_MIDI_NOTE_A_SHARP_1,
    MI_Bb1     = QK_MIDI_NOTE_A_SHARP_1,
    MI_B1      = QK_MIDI_NOTE_B_1,
    MI_C2      = QK_MIDI_NOTE_C_2,
    MI_Cs2     = QK_MIDI_NOTE_C_SHARP_2,
    MI_Db2     = QK_MIDI_NOTE_C_SHARP_2,
    MI_D2      = QK_MIDI_NOTE_D_2,
    MI_Ds2     = QK_MIDI_NOTE_D_SHARP_2,
    MI_Eb2     = QK_MIDI_NOTE_D_SHARP_2,
    MI_E2      = QK_MIDI_NOTE_E_2,
    MI_F2      = QK_MIDI_NOTE_F_2,
    MI_Fs2     = QK_MIDI_NOTE_F_SHARP_2,
    MI_Gb2     = QK_MIDI_NOTE_F_SHARP_2,
    MI_G2      = QK_MIDI_NOTE_G_2,
    MI_Gs2     = QK_MIDI_NOTE_G_SHARP_2,
    MI_Ab2     = QK_MIDI_NOTE_G_SHARP_2,
    MI_A2      = QK_MIDI_NOTE_A_2,
    MI_As2     = QK_MIDI_NOTE_A_SHARP_2,
    MI_Bb2     = QK_MIDI_NOTE_A_SHARP_2,
    MI_B2      = QK_MIDI_NOTE_B_2,
    MI_C3      = QK_MIDI_NOTE_C_3,
    MI_Cs3     = QK_MIDI_NOTE_C_SHARP_3,
    MI_Db3     = QK_MIDI_NOTE_C_SHARP_3,
    MI_D3      = QK_MIDI_NOTE_D_3,
    MI_Ds3     = QK_MIDI_NOTE_D_SHARP_3,
    MI_Eb3     = QK_MIDI_NOTE_D_SHARP_3,
    MI_E3      = QK_MIDI_NOTE_E_3,
    MI_F3      = QK_MIDI_NOTE_F_3,
    MI_Fs3     = QK_MIDI_NOTE_F_SHARP_3,
    MI_Gb3     = QK_MIDI_NOTE_F_SHARP_3,
    MI_G3      = QK_MIDI_NOTE_G_3,
    MI_Gs3     = QK_MIDI_NOTE_G_SHARP_3,
    MI_Ab3     = QK_MIDI_NOTE_G_SHARP_3,
    MI_A3      = QK_MIDI_NOTE_A_3,
    MI_As3     = QK_MIDI_NOTE_A_SHARP_3,
    MI_Bb3     = QK_MIDI_NOTE_A_SHARP_3,
    MI_B3      = QK_MIDI_NOTE_B_3,
    MI_C4      = QK_MIDI_NOTE_C_4,
    MI_Cs4     = QK_MIDI_NOTE_C_SHARP_4,
    MI_Db4     = QK_MIDI_NOTE_C_SHARP_4,
    MI_D4      = QK_MIDI_NOTE_D_4,
    MI_Ds4     = QK_MIDI_NOTE_D_SHARP_4,
    MI_Eb4     = QK_MIDI_NOTE_D_SHARP_4,
    MI_E4      = QK_MIDI_NOTE_E_4,
    MI_F4      = QK_MIDI_NOTE_F_4,
    MI_Fs4     = QK_MIDI_NOTE_F_SHARP_4,
    MI_Gb4     = QK_MIDI_NOTE_F_SHARP_4,
    MI_G4      = QK_MIDI_NOTE_G_4,
    MI_Gs4     = QK_MIDI_NOTE_G_SHARP_4,
    MI_Ab4     = QK_MIDI_NOTE_G_SHARP_4,
    MI_A4      = QK_MIDI_NOTE_A_4,
    MI_As4     = QK_MIDI_NOTE_A_SHARP_4,
    MI_Bb4     = QK_MIDI_NOTE_A_SHARP_4,
    MI_B4      = QK_MIDI_NOTE_B_4,
    MI_C5      = QK_MIDI_NOTE_C_5,
    MI_Cs5     = QK_MIDI_NOTE_C_SHARP_5,
    MI_Db5     = QK_MIDI_NOTE_C_SHARP_5,
    MI_D5      = QK_MIDI_NOTE_D_5,
    MI_Ds5     = QK_MIDI_NOTE_D_SHARP_5,
    MI_Eb5     = QK_MIDI_NOTE_D_SHARP_5,
    MI_E5      = QK_MIDI_NOTE_E_5,
    MI_F5      = QK_MIDI_NOTE_F_5,
    MI_Fs5     = QK_MIDI_NOTE_F_SHARP_5,
    MI_Gb5     = QK_MIDI_NOTE_F_SHARP_5,
    MI_G5      = QK_MIDI_NOTE_G_5,
    MI_Gs5     = QK_MIDI_NOTE_G_SHARP_5,
    MI_Ab5     = QK_MIDI_NOTE_G_SHARP_5,
    MI_A5      = QK_MIDI_NOTE_A_5,
    MI_As5     = QK_MIDI_NOTE_A_SHARP_5,
    MI_Bb5     = QK_MIDI_NOTE_A_SHARP_5,
    MI_B5      = QK_MIDI_NOTE_B_5,
    MI_OCN2    = QK_MIDI_OCTAVE_N2,
    MI_OCN1    = QK_MIDI_OCTAVE_N1,
    MI_OC0     = QK_MIDI_OCTAVE_0,
    MI_OC1     = QK_MIDI_OCTAVE_1,
    MI_OC2     = QK_MIDI_OCTAVE_2,
    MI_OC3     = QK_MIDI_OCTAVE_3,
    MI_OC4     = QK_MIDI_OCTAVE_4,
    MI_OC5     = QK_MIDI_OCTAVE_5,
    MI_OC6     = QK_MIDI_OCTAVE_6,
    MI_OC7     = QK_MIDI_OCTAVE_7,
    MI_OCTD    = QK_MIDI_OCTAVE_DOWN,
    MI_OCTU    = QK_MIDI_OCTAVE_UP,
    MI_TRN6    = QK_MIDI_TRANSPOSE_N6,
    MI_TRN5    = QK_MIDI_TRANSPOSE_N5,
    MI_TRN4    = QK_MIDI_TRANSPOSE_N4,
    MI_TRN3    = QK_MIDI_TRANSPOSE_N3,
    MI_TRN2    = QK_MIDI_TRANSPOSE_N2,
    MI_TRN1    = QK_MIDI_TRANSPOSE_N1,
    MI_TR0     = QK_MIDI_TRANSPOSE_0,
    MI_TR1     = QK_MIDI_TRANSPOSE_1,
    MI_TR2     = QK_MIDI_TRANSPOSE_2,
    MI_TR3     = QK_MIDI_TRANSPOSE_3,
    MI_TR4     = QK_MIDI_TRANSPOSE_4,
    MI_TR5     = QK_MIDI_TRANSPOSE_5,
    MI_TR6     = QK_MIDI_TRANSPOSE_6,
    MI_TRSD    = QK_MIDI_TRANSPOSE_DOWN,
    MI_TRSU    = QK_MIDI_TRANSPOSE_UP,
    MI_VL0     = QK_MIDI_VELOCITY_0,
    MI_VL1     = QK_MIDI_VELOCITY_1,
    MI_VL2     = QK_MIDI_VELOCITY_2,
    MI_VL3     = QK_MIDI_VELOCITY_3,
    MI_VL4     = QK_MIDI_VELOCITY_4,
    MI_VL5     = QK_MIDI_VELOCITY_5,
    MI_VL6     = QK_MIDI_VELOCITY_6,
    MI_VL7     = QK_MIDI_VELOCITY_7,
    MI_VL8     = QK_MIDI_VELOCITY_8,
    MI_VL9     = QK_MIDI_VELOCITY_9,
    MI_VL10    = QK_MIDI_VELOCITY_10,
    MI_VELD    = QK_MIDI_VELOCITY_DOWN,
    MI_VELU    = QK_MIDI_VELOCITY_UP,
    MI_CH1     = QK_MIDI_CHANNEL_1,
    MI_CH2     = QK_MIDI_CHANNEL_2,
    MI_CH3     = QK_MIDI_CHANNEL_3,
    MI_CH4     = QK_MIDI_CHANNEL_4,
    MI_CH5     = QK_MIDI_CHANNEL_5,
    MI_CH6     = QK_MIDI_CHANNEL_6,
    MI_CH7     = QK_MIDI_CHANNEL_7,
    MI_CH8     = QK_MIDI_CHANNEL_8,
    MI_CH9     = QK_MIDI_CHANNEL_9,
    MI_CH10    = QK_MIDI_CHANNEL_10,
    MI_CH11    = QK_MIDI_CHANNEL_11,
    MI_CH12    = QK_MIDI_CHANNEL_12,
    MI_CH13    = QK_MIDI_CHANNEL_13,
    MI_CH14    = QK_MIDI_CHANNEL_14,
    MI_CH15    = QK_MIDI_CHANNEL_15,
    MI_CH16    = QK_MIDI_CHANNEL_16,
    MI_CHND    = QK_MIDI_CHANNEL_DOWN,
    MI_CHNU    = QK_MIDI_CHANNEL_UP,
    MI_AOFF    = QK_MIDI_ALL_NOTES_OFF,
    MI_SUST    = QK_MIDI_SUSTAIN,
    MI_PORT    = QK_MIDI_PORTAMENTO,
    MI_SOST    = QK_MIDI_SOSTENUTO,
    MI_SOFT    = QK_MIDI_SOFT,
    MI_LEG     = QK_MIDI_LEGATO,
    MI_MOD     = QK_MIDI_MODULATION,
    MI_MODD    = QK_MIDI_MODULATION_SPEED_DOWN,
    MI_MODU    = QK_MIDI_MODULATION_SPEED_UP,
    MI_BNDD    = QK_MIDI_PITCH_BEND_DOWN,
    MI_BNDU    = QK_MIDI_PITCH_BEND_UP,
    JS_0       = QK_JOYSTICK_BUTTON_0,
    JS_1       = QK_JOYSTICK_BUTTON_1,
    JS_2       = QK_JOYSTICK_BUTTON_2,


@@ 1151,7 1295,7 @@ enum qk_keycode_defines {
#define IS_MODIFIERS_KEYCODE(code) ((code) >= KC_LEFT_CTRL && (code) <= KC_RIGHT_GUI)
#define IS_SWAP_HANDS_KEYCODE(code) ((code) >= SH_TG && (code) <= SH_OS)
#define IS_MAGIC_KEYCODE(code) ((code) >= MAGIC_SWAP_CONTROL_CAPSLOCK && (code) <= MAGIC_TOGGLE_ESCAPE_CAPSLOCK)
#define IS_MIDI_KEYCODE(code) ((code) >= MI_ON && (code) <= MI_BENDU)
#define IS_MIDI_KEYCODE(code) ((code) >= QK_MIDI_ON && (code) <= QK_MIDI_PITCH_BEND_UP)
#define IS_SEQUENCER_KEYCODE(code) ((code) >= SQ_ON && (code) <= SQ_SCLR)
#define IS_JOYSTICK_KEYCODE(code) ((code) >= QK_JOYSTICK_BUTTON_0 && (code) <= QK_JOYSTICK_BUTTON_31)
#define IS_PROGRAMMABLE_BUTTON_KEYCODE(code) ((code) >= QK_PROGRAMMABLE_BUTTON_1 && (code) <= QK_PROGRAMMABLE_BUTTON_32)


@@ 1161,4 1305,3 @@ enum qk_keycode_defines {
#define IS_BACKLIGHT_KEYCODE(code) ((code) >= QK_BACKLIGHT_ON && (code) <= QK_BACKLIGHT_TOGGLE_BREATHING)
#define IS_RGB_KEYCODE(code) ((code) >= RGB_TOG && (code) <= RGB_MODE_TWINKLE)
#define IS_QUANTUM_KEYCODE(code) ((code) >= QK_BOOTLOADER && (code) <= QK_AUTOCORRECT_TOGGLE)


M quantum/process_keycode/process_midi.c => quantum/process_keycode/process_midi.c +24 -24
@@ 52,7 52,7 @@ inline uint8_t compute_velocity(uint8_t setting) {
}

void midi_init(void) {
    midi_config.octave              = MI_OCT_2 - MIDI_OCTAVE_MIN;
    midi_config.octave              = QK_MIDI_OCTAVE_2 - MIDI_OCTAVE_MIN;
    midi_config.transpose           = 0;
    midi_config.velocity            = 127;
    midi_config.channel             = 0;


@@ 103,13 103,13 @@ bool process_midi(uint16_t keycode, keyrecord_t *record) {
                dprintf("midi octave %d\n", midi_config.octave);
            }
            return false;
        case MI_OCTD:
        case QK_MIDI_OCTAVE_DOWN:
            if (record->event.pressed && midi_config.octave > 0) {
                midi_config.octave--;
                dprintf("midi octave %d\n", midi_config.octave);
            }
            return false;
        case MI_OCTU:
        case QK_MIDI_OCTAVE_UP:
            if (record->event.pressed && midi_config.octave < (MIDI_OCTAVE_MAX - MIDI_OCTAVE_MIN)) {
                midi_config.octave++;
                dprintf("midi octave %d\n", midi_config.octave);


@@ 117,18 117,18 @@ bool process_midi(uint16_t keycode, keyrecord_t *record) {
            return false;
        case MIDI_TRANSPOSE_MIN ... MIDI_TRANSPOSE_MAX:
            if (record->event.pressed) {
                midi_config.transpose = keycode - MI_TRNS_0;
                midi_config.transpose = keycode - QK_MIDI_TRANSPOSE_0;
                dprintf("midi transpose %d\n", midi_config.transpose);
            }
            return false;
        case MI_TRNSD:
            if (record->event.pressed && midi_config.transpose > (MIDI_TRANSPOSE_MIN - MI_TRNS_0)) {
        case QK_MIDI_TRANSPOSE_DOWN:
            if (record->event.pressed && midi_config.transpose > (MIDI_TRANSPOSE_MIN - QK_MIDI_TRANSPOSE_0)) {
                midi_config.transpose--;
                dprintf("midi transpose %d\n", midi_config.transpose);
            }
            return false;
        case MI_TRNSU:
            if (record->event.pressed && midi_config.transpose < (MIDI_TRANSPOSE_MAX - MI_TRNS_0)) {
        case QK_MIDI_TRANSPOSE_UP:
            if (record->event.pressed && midi_config.transpose < (MIDI_TRANSPOSE_MAX - QK_MIDI_TRANSPOSE_0)) {
                const bool positive = midi_config.transpose > 0;
                midi_config.transpose++;
                if (positive && midi_config.transpose < 0) midi_config.transpose--;


@@ 141,7 141,7 @@ bool process_midi(uint16_t keycode, keyrecord_t *record) {
                dprintf("midi velocity %d\n", midi_config.velocity);
            }
            return false;
        case MI_VELD:
        case QK_MIDI_VELOCITY_DOWN:
            if (record->event.pressed && midi_config.velocity > 0) {
                if (midi_config.velocity == 127) {
                    midi_config.velocity -= 10;


@@ 154,7 154,7 @@ bool process_midi(uint16_t keycode, keyrecord_t *record) {
                dprintf("midi velocity %d\n", midi_config.velocity);
            }
            return false;
        case MI_VELU:
        case QK_MIDI_VELOCITY_UP:
            if (record->event.pressed && midi_config.velocity < 127) {
                if (midi_config.velocity < 115) {
                    midi_config.velocity += 13;


@@ 170,48 170,48 @@ bool process_midi(uint16_t keycode, keyrecord_t *record) {
                dprintf("midi channel %d\n", midi_config.channel);
            }
            return false;
        case MI_CHD:
        case QK_MIDI_CHANNEL_DOWN:
            if (record->event.pressed) {
                midi_config.channel--;
                dprintf("midi channel %d\n", midi_config.channel);
            }
            return false;
        case MI_CHU:
        case QK_MIDI_CHANNEL_UP:
            if (record->event.pressed) {
                midi_config.channel++;
                dprintf("midi channel %d\n", midi_config.channel);
            }
            return false;
        case MI_ALLOFF:
        case QK_MIDI_ALL_NOTES_OFF:
            if (record->event.pressed) {
                midi_send_cc(&midi_device, midi_config.channel, 0x7B, 0);
                dprintf("midi all notes off\n");
            }
            return false;
        case MI_SUS:
        case QK_MIDI_SUSTAIN:
            midi_send_cc(&midi_device, midi_config.channel, 0x40, record->event.pressed ? 127 : 0);
            dprintf("midi sustain %d\n", record->event.pressed);
            return false;
        case MI_PORT:
        case QK_MIDI_PORTAMENTO:
            midi_send_cc(&midi_device, midi_config.channel, 0x41, record->event.pressed ? 127 : 0);
            dprintf("midi portamento %d\n", record->event.pressed);
            return false;
        case MI_SOST:
        case QK_MIDI_SOSTENUTO:
            midi_send_cc(&midi_device, midi_config.channel, 0x42, record->event.pressed ? 127 : 0);
            dprintf("midi sostenuto %d\n", record->event.pressed);
            return false;
        case MI_SOFT:
        case QK_MIDI_SOFT:
            midi_send_cc(&midi_device, midi_config.channel, 0x43, record->event.pressed ? 127 : 0);
            dprintf("midi soft %d\n", record->event.pressed);
            return false;
        case MI_LEG:
            midi_send_cc(&midi_device, midi_config.channel, 0x43, record->event.pressed ? 127 : 0);
        case QK_MIDI_LEGATO:
            midi_send_cc(&midi_device, midi_config.channel, 0x44, record->event.pressed ? 127 : 0);
            dprintf("midi legato %d\n", record->event.pressed);
            return false;
        case MI_MOD:
        case QK_MIDI_MODULATION:
            midi_modulation_step = record->event.pressed ? 1 : -1;
            return false;
        case MI_MODSD:
        case QK_MIDI_MODULATION_SPEED_DOWN:
            if (record->event.pressed) {
                midi_config.modulation_interval++;
                // prevent overflow


@@ 219,13 219,13 @@ bool process_midi(uint16_t keycode, keyrecord_t *record) {
                dprintf("midi modulation interval %d\n", midi_config.modulation_interval);
            }
            return false;
        case MI_MODSU:
        case QK_MIDI_MODULATION_SPEED_UP:
            if (record->event.pressed && midi_config.modulation_interval > 0) {
                midi_config.modulation_interval--;
                dprintf("midi modulation interval %d\n", midi_config.modulation_interval);
            }
            return false;
        case MI_BENDD:
        case QK_MIDI_PITCH_BEND_DOWN:
            if (record->event.pressed) {
                midi_send_pitchbend(&midi_device, midi_config.channel, -0x2000);
                dprintf("midi pitchbend channel:%d amount:%d\n", midi_config.channel, -0x2000);


@@ 234,7 234,7 @@ bool process_midi(uint16_t keycode, keyrecord_t *record) {
                dprintf("midi pitchbend channel:%d amount:%d\n", midi_config.channel, 0);
            }
            return false;
        case MI_BENDU:
        case QK_MIDI_PITCH_BEND_UP:
            if (record->event.pressed) {
                midi_send_pitchbend(&midi_device, midi_config.channel, 0x1fff);
                dprintf("midi pitchbend channel:%d amount:%d\n", midi_config.channel, 0x1fff);

M quantum/process_keycode/process_music.c => quantum/process_keycode/process_music.c +3 -3
@@ 120,17 120,17 @@ bool process_music(uint16_t keycode, keyrecord_t *record) {
        return false;
    }

    if (keycode == MI_ON && record->event.pressed) {
    if (keycode == QK_MIDI_ON && record->event.pressed) {
        midi_on();
        return false;
    }

    if (keycode == MI_OFF && record->event.pressed) {
    if (keycode == QK_MIDI_OFF && record->event.pressed) {
        midi_off();
        return false;
    }

    if (keycode == MI_TOG && record->event.pressed) {
    if (keycode == QK_MIDI_TOGGLE && record->event.pressed) {
        if (midi_activated) {
            midi_off();
        } else {

M quantum/quantum_keycodes.h => quantum/quantum_keycodes.h +10 -10
@@ 193,16 193,16 @@
#define QK_SWAP_HANDS_GET_TAP_KEYCODE(kc) ((kc)&0xFF)

// MIDI aliases
#define MIDI_TONE_MIN MI_C
#define MIDI_TONE_MAX MI_B_5
#define MIDI_OCTAVE_MIN MI_OCT_N2
#define MIDI_OCTAVE_MAX MI_OCT_7
#define MIDI_TRANSPOSE_MIN MI_TRNS_N6
#define MIDI_TRANSPOSE_MAX MI_TRNS_6
#define MIDI_VELOCITY_MIN MI_VEL_0
#define MIDI_VELOCITY_MAX MI_VEL_10
#define MIDI_CHANNEL_MIN MI_CH1
#define MIDI_CHANNEL_MAX MI_CH16
#define MIDI_TONE_MIN QK_MIDI_NOTE_C_0
#define MIDI_TONE_MAX QK_MIDI_NOTE_B_5
#define MIDI_OCTAVE_MIN QK_MIDI_OCTAVE_N2
#define MIDI_OCTAVE_MAX QK_MIDI_OCTAVE_7
#define MIDI_TRANSPOSE_MIN QK_MIDI_TRANSPOSE_N6
#define MIDI_TRANSPOSE_MAX QK_MIDI_TRANSPOSE_6
#define MIDI_VELOCITY_MIN QK_MIDI_VELOCITY_0
#define MIDI_VELOCITY_MAX QK_MIDI_VELOCITY_10
#define MIDI_CHANNEL_MIN QK_MIDI_CHANNEL_1
#define MIDI_CHANNEL_MAX QK_MIDI_CHANNEL_16

// TODO: somehow migrate sequencer to DD?
#include "sequencer.h"

M quantum/quantum_keycodes_legacy.h => quantum/quantum_keycodes_legacy.h +130 -0
@@ 138,6 138,136 @@
#define MUV_IN QK_AUDIO_VOICE_NEXT
#define MUV_DE QK_AUDIO_VOICE_PREVIOUS

#define MI_TOG QK_MIDI_TOGGLE
#define MI_C_1 QK_MIDI_NOTE_C_1
#define MI_Cs_1 QK_MIDI_NOTE_C_SHARP_1
#define MI_Db_1 QK_MIDI_NOTE_C_SHARP_1
#define MI_D_1 QK_MIDI_NOTE_D_1
#define MI_Ds_1 QK_MIDI_NOTE_D_SHARP_1
#define MI_Eb_1 QK_MIDI_NOTE_D_SHARP_1
#define MI_E_1 QK_MIDI_NOTE_E_1
#define MI_F_1 QK_MIDI_NOTE_F_1
#define MI_Fs_1 QK_MIDI_NOTE_F_SHARP_1
#define MI_Gb_1 QK_MIDI_NOTE_F_SHARP_1
#define MI_G_1 QK_MIDI_NOTE_G_1
#define MI_Gs_1 QK_MIDI_NOTE_G_SHARP_1
#define MI_Ab_1 QK_MIDI_NOTE_G_SHARP_1
#define MI_A_1 QK_MIDI_NOTE_A_1
#define MI_As_1 QK_MIDI_NOTE_A_SHARP_1
#define MI_Bb_1 QK_MIDI_NOTE_A_SHARP_1
#define MI_B_1 QK_MIDI_NOTE_B_1
#define MI_C_2 QK_MIDI_NOTE_C_2
#define MI_Cs_2 QK_MIDI_NOTE_C_SHARP_2
#define MI_Db_2 QK_MIDI_NOTE_C_SHARP_2
#define MI_D_2 QK_MIDI_NOTE_D_2
#define MI_Ds_2 QK_MIDI_NOTE_D_SHARP_2
#define MI_Eb_2 QK_MIDI_NOTE_D_SHARP_2
#define MI_E_2 QK_MIDI_NOTE_E_2
#define MI_F_2 QK_MIDI_NOTE_F_2
#define MI_Fs_2 QK_MIDI_NOTE_F_SHARP_2
#define MI_Gb_2 QK_MIDI_NOTE_F_SHARP_2
#define MI_G_2 QK_MIDI_NOTE_G_2
#define MI_Gs_2 QK_MIDI_NOTE_G_SHARP_2
#define MI_Ab_2 QK_MIDI_NOTE_G_SHARP_2
#define MI_A_2 QK_MIDI_NOTE_A_2
#define MI_As_2 QK_MIDI_NOTE_A_SHARP_2
#define MI_Bb_2 QK_MIDI_NOTE_A_SHARP_2
#define MI_B_2 QK_MIDI_NOTE_B_2
#define MI_C_3 QK_MIDI_NOTE_C_3
#define MI_Cs_3 QK_MIDI_NOTE_C_SHARP_3
#define MI_Db_3 QK_MIDI_NOTE_C_SHARP_3
#define MI_D_3 QK_MIDI_NOTE_D_3
#define MI_Ds_3 QK_MIDI_NOTE_D_SHARP_3
#define MI_Eb_3 QK_MIDI_NOTE_D_SHARP_3
#define MI_E_3 QK_MIDI_NOTE_E_3
#define MI_F_3 QK_MIDI_NOTE_F_3
#define MI_Fs_3 QK_MIDI_NOTE_F_SHARP_3
#define MI_Gb_3 QK_MIDI_NOTE_F_SHARP_3
#define MI_G_3 QK_MIDI_NOTE_G_3
#define MI_Gs_3 QK_MIDI_NOTE_G_SHARP_3
#define MI_Ab_3 QK_MIDI_NOTE_G_SHARP_3
#define MI_A_3 QK_MIDI_NOTE_A_3
#define MI_As_3 QK_MIDI_NOTE_A_SHARP_3
#define MI_Bb_3 QK_MIDI_NOTE_A_SHARP_3
#define MI_B_3 QK_MIDI_NOTE_B_3
#define MI_C_4 QK_MIDI_NOTE_C_4
#define MI_Cs_4 QK_MIDI_NOTE_C_SHARP_4
#define MI_Db_4 QK_MIDI_NOTE_C_SHARP_4
#define MI_D_4 QK_MIDI_NOTE_D_4
#define MI_Ds_4 QK_MIDI_NOTE_D_SHARP_4
#define MI_Eb_4 QK_MIDI_NOTE_D_SHARP_4
#define MI_E_4 QK_MIDI_NOTE_E_4
#define MI_F_4 QK_MIDI_NOTE_F_4
#define MI_Fs_4 QK_MIDI_NOTE_F_SHARP_4
#define MI_Gb_4 QK_MIDI_NOTE_F_SHARP_4
#define MI_G_4 QK_MIDI_NOTE_G_4
#define MI_Gs_4 QK_MIDI_NOTE_G_SHARP_4
#define MI_Ab_4 QK_MIDI_NOTE_G_SHARP_4
#define MI_A_4 QK_MIDI_NOTE_A_4
#define MI_As_4 QK_MIDI_NOTE_A_SHARP_4
#define MI_Bb_4 QK_MIDI_NOTE_A_SHARP_4
#define MI_B_4 QK_MIDI_NOTE_B_4
#define MI_C_5 QK_MIDI_NOTE_C_5
#define MI_Cs_5 QK_MIDI_NOTE_C_SHARP_5
#define MI_Db_5 QK_MIDI_NOTE_C_SHARP_5
#define MI_D_5 QK_MIDI_NOTE_D_5
#define MI_Ds_5 QK_MIDI_NOTE_D_SHARP_5
#define MI_Eb_5 QK_MIDI_NOTE_D_SHARP_5
#define MI_E_5 QK_MIDI_NOTE_E_5
#define MI_F_5 QK_MIDI_NOTE_F_5
#define MI_Fs_5 QK_MIDI_NOTE_F_SHARP_5
#define MI_Gb_5 QK_MIDI_NOTE_F_SHARP_5
#define MI_G_5 QK_MIDI_NOTE_G_5
#define MI_Gs_5 QK_MIDI_NOTE_G_SHARP_5
#define MI_Ab_5 QK_MIDI_NOTE_G_SHARP_5
#define MI_A_5 QK_MIDI_NOTE_A_5
#define MI_As_5 QK_MIDI_NOTE_A_SHARP_5
#define MI_Bb_5 QK_MIDI_NOTE_A_SHARP_5
#define MI_B_5 QK_MIDI_NOTE_B_5
#define MI_OCT_N2 QK_MIDI_OCTAVE_N2
#define MI_OCT_N1 QK_MIDI_OCTAVE_N1
#define MI_OCT_0 QK_MIDI_OCTAVE_0
#define MI_OCT_1 QK_MIDI_OCTAVE_1
#define MI_OCT_2 QK_MIDI_OCTAVE_2
#define MI_OCT_3 QK_MIDI_OCTAVE_3
#define MI_OCT_4 QK_MIDI_OCTAVE_4
#define MI_OCT_5 QK_MIDI_OCTAVE_5
#define MI_OCT_6 QK_MIDI_OCTAVE_6
#define MI_OCT_7 QK_MIDI_OCTAVE_7
#define MI_TRNS_N6 QK_MIDI_TRANSPOSE_N6
#define MI_TRNS_N5 QK_MIDI_TRANSPOSE_N5
#define MI_TRNS_N4 QK_MIDI_TRANSPOSE_N4
#define MI_TRNS_N3 QK_MIDI_TRANSPOSE_N3
#define MI_TRNS_N2 QK_MIDI_TRANSPOSE_N2
#define MI_TRNS_N1 QK_MIDI_TRANSPOSE_N1
#define MI_TRNS_0 QK_MIDI_TRANSPOSE_0
#define MI_TRNS_1 QK_MIDI_TRANSPOSE_1
#define MI_TRNS_2 QK_MIDI_TRANSPOSE_2
#define MI_TRNS_3 QK_MIDI_TRANSPOSE_3
#define MI_TRNS_4 QK_MIDI_TRANSPOSE_4
#define MI_TRNS_5 QK_MIDI_TRANSPOSE_5
#define MI_TRNS_6 QK_MIDI_TRANSPOSE_6
#define MI_TRNSD QK_MIDI_TRANSPOSE_DOWN
#define MI_TRNSU QK_MIDI_TRANSPOSE_UP
#define MI_VEL_0 QK_MIDI_VELOCITY_0
#define MI_VEL_1 QK_MIDI_VELOCITY_1
#define MI_VEL_2 QK_MIDI_VELOCITY_2
#define MI_VEL_3 QK_MIDI_VELOCITY_3
#define MI_VEL_4 QK_MIDI_VELOCITY_4
#define MI_VEL_5 QK_MIDI_VELOCITY_5
#define MI_VEL_6 QK_MIDI_VELOCITY_6
#define MI_VEL_7 QK_MIDI_VELOCITY_7
#define MI_VEL_8 QK_MIDI_VELOCITY_8
#define MI_VEL_9 QK_MIDI_VELOCITY_9
#define MI_VEL_10 QK_MIDI_VELOCITY_10
#define MI_CHD QK_MIDI_CHANNEL_DOWN
#define MI_CHU QK_MIDI_CHANNEL_UP
#define MI_ALLOFF QK_MIDI_ALL_NOTES_OFF
#define MI_MODSD QK_MIDI_MODULATION_SPEED_DOWN
#define MI_MODSU QK_MIDI_MODULATION_SPEED_UP
#define MI_BENDD QK_MIDI_PITCH_BEND_DOWN
#define MI_BENDU QK_MIDI_PITCH_BEND_UP

#define TERM_ON _Static_assert(false, "The Terminal feature has been removed from QMK. Please remove use of TERM_ON/TERM_OFF from your keymap.")
#define TERM_OFF _Static_assert(false, "The Terminal feature has been removed from QMK.. Please remove use of TERM_ON/TERM_OFF from your keymap.")
// #define RESET _Static_assert(false, "The RESET keycode has been removed from QMK.. Please remove use from your keymap.")

M quantum/sequencer/tests/sequencer_tests.cpp => quantum/sequencer/tests/sequencer_tests.cpp +11 -11
@@ 371,14 371,14 @@ void setUpMatrixScanSequencerTest(void) {
    sequencer_config.resolution = SQ_RES_16;

    // Configure the notes for each track
    sequencer_config.track_notes[0] = MI_C;
    sequencer_config.track_notes[1] = MI_D;
    sequencer_config.track_notes[2] = MI_E;
    sequencer_config.track_notes[3] = MI_F;
    sequencer_config.track_notes[4] = MI_G;
    sequencer_config.track_notes[5] = MI_A;
    sequencer_config.track_notes[6] = MI_B;
    sequencer_config.track_notes[7] = MI_C;
    sequencer_config.track_notes[0] = QK_MIDI_NOTE_C_0;
    sequencer_config.track_notes[1] = QK_MIDI_NOTE_D_0;
    sequencer_config.track_notes[2] = QK_MIDI_NOTE_E_0;
    sequencer_config.track_notes[3] = QK_MIDI_NOTE_F_0;
    sequencer_config.track_notes[4] = QK_MIDI_NOTE_G_0;
    sequencer_config.track_notes[5] = QK_MIDI_NOTE_A_0;
    sequencer_config.track_notes[6] = QK_MIDI_NOTE_B_0;
    sequencer_config.track_notes[7] = QK_MIDI_NOTE_C_0;

    // Turn on some steps
    sequencer_config.steps[0] = (1 << 0);


@@ 389,7 389,7 @@ TEST_F(SequencerTest, TestMatrixScanSequencerShouldAttackFirstTrackOfFirstStep) 
    setUpMatrixScanSequencerTest();

    sequencer_task();
    EXPECT_EQ(last_noteon, MI_C);
    EXPECT_EQ(last_noteon, QK_MIDI_NOTE_C_0);
    EXPECT_EQ(last_noteoff, 0);
}



@@ 499,7 499,7 @@ TEST_F(SequencerTest, TestMatrixScanSequencerShouldReleaseFirstTrackFirstStep) {

    sequencer_task();
    EXPECT_EQ(last_noteon, 0);
    EXPECT_EQ(last_noteoff, MI_C);
    EXPECT_EQ(last_noteoff, QK_MIDI_NOTE_C_0);
}

TEST_F(SequencerTest, TestMatrixScanSequencerShouldEnterPausePhaseAfterRelease) {


@@ 565,7 565,7 @@ TEST_F(SequencerTest, TestMatrixScanSequencerShouldProcessSecondTrackOnTime) {
    advance_time(SEQUENCER_TRACK_THROTTLE);

    sequencer_task();
    EXPECT_EQ(last_noteon, MI_D);
    EXPECT_EQ(last_noteon, QK_MIDI_NOTE_D_0);
    EXPECT_EQ(last_noteoff, 0);
}


M users/muppetjones/wrappers.h => users/muppetjones/wrappers.h +12 -12
@@ 140,19 140,19 @@
 */
// Not sure why, but this does not work (possibly due to the lowercase 's'?)
// #ifdef MIDI_ADVANCED
// #define __GUITAR_1E_L______________________________ MI_E_1,  MI_F_1,  MI_Fs_1, MI_G_1,  MI_Gs_1
// #define __GUITAR_2A_L______________________________ MI_A_1,  MI_As_1, MI_B_1,  MI_C_2,  MI_Cs_2
// #define __GUITAR_3D_L______________________________ MI_D_2,  MI_Ds_2, MI_E_2,  MI_F_2,  MI_Fs_2
// #define __GUITAR_4G_L______________________________ MI_G_2,  MI_Gs_2, MI_A_2,  MI_As_2, MI_B_2
// #define __GUITAR_5B_L______________________________ MI_B_2,  MI_C_3,  MI_Cs_3, MI_D_3,  MI_Ds_3
// #define __GUITAR_6E_L______________________________ MI_E_3,  MI_F_3,  MI_Fs_3, MI_G_3,  MI_Gs_3
// #define __GUITAR_1E_L______________________________ MI_E1,  MI_F1,  MI_Fs1, MI_G1,  MI_Gs1
// #define __GUITAR_2A_L______________________________ MI_A1,  MI_As1, MI_B1,  MI_C2,  MI_Cs2
// #define __GUITAR_3D_L______________________________ MI_D2,  MI_Ds2, MI_E2,  MI_F2,  MI_Fs2
// #define __GUITAR_4G_L______________________________ MI_G2,  MI_Gs2, MI_A2,  MI_As2, MI_B2
// #define __GUITAR_5B_L______________________________ MI_B2,  MI_C3,  MI_Cs3, MI_D3,  MI_Ds3
// #define __GUITAR_6E_L______________________________ MI_E3,  MI_F3,  MI_Fs3, MI_G3,  MI_Gs3
//
// #define __GUITAR_1E_R______________________________ MI_A_1,  MI_As_1, MI_B_1,  MI_C_2,  MI_Cs_2
// #define __GUITAR_2A_R______________________________ MI_D_2,  MI_Ds_2, MI_E_2,  MI_F_2,  MI_Fs_2
// #define __GUITAR_3D_R______________________________ MI_G_2,  MI_Gs_2, MI_A_2,  MI_As_2, MI_B_2
// #define __GUITAR_4G_R______________________________ MI_C_3,  MI_Cs_3, MI_D_3,  MI_Ds_3, MI_E_3
// #define __GUITAR_5B_R______________________________ MI_E_3,  MI_F_3,  MI_Fs_3, MI_G_3,  MI_Gs_3
// #define __GUITAR_6E_R______________________________ MI_A_3,  MI_As_3, MI_B_3,  MI_C_4,  MI_Cs_4
// #define __GUITAR_1E_R______________________________ MI_A1,  MI_As1, MI_B1,  MI_C2,  MI_Cs2
// #define __GUITAR_2A_R______________________________ MI_D2,  MI_Ds2, MI_E2,  MI_F2,  MI_Fs2
// #define __GUITAR_3D_R______________________________ MI_G2,  MI_Gs2, MI_A2,  MI_As2, MI_B2
// #define __GUITAR_4G_R______________________________ MI_C3,  MI_Cs3, MI_D3,  MI_Ds3, MI_E3
// #define __GUITAR_5B_R______________________________ MI_E3,  MI_F3,  MI_Fs3, MI_G3,  MI_Gs3
// #define __GUITAR_6E_R______________________________ MI_A3,  MI_As3, MI_B3,  MI_C4,  MI_Cs4
// #endif