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
This commit is contained in:
Ryan 2022-11-07 13:26:15 +11:00 committed by GitHub
parent 442e7653cc
commit 8b658dcc9a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
39 changed files with 1799 additions and 1154 deletions

File diff suppressed because it is too large Load Diff

View File

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

View File

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

View File

@ -25,45 +25,45 @@ enum custom_keycodes {
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_IONIAN] = LAYOUT_ortho_3x10( [_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_C1, MI_F1, MI_B1, MI_E2, MI_A2, MI_D3, MI_G3, MI_C4, 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_D1, MI_G1, MI_C2, MI_F2, MI_B2, MI_E3, MI_A3, MI_D4, MI_TRSD, MI_TRSU,
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_E1, MI_A1, MI_D2, MI_G2, MI_C3, MI_F3, MI_B3, MI_E4, MI_SUST, MENU
), ),
[_DORIAN] = LAYOUT_ortho_3x10( [_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_C1, MI_F1, MI_As1, MI_Ds2, MI_A2, MI_D3, MI_G3, MI_C4, _______, _______,
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_D1, MI_G1, MI_C2, MI_F2, MI_As2, MI_Ds3, MI_A3, MI_D4, _______, _______,
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_Ds1, MI_A1, MI_D2, MI_G2, MI_C3, MI_F3, MI_As3, MI_Ds4, _______, _______
), ),
[_PHRYGIAN] = LAYOUT_ortho_3x10( [_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_C1, MI_F1, MI_As1, MI_Ds2, MI_Gs2, MI_Cs3, MI_G3, MI_C4, _______, _______,
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_Cs1, MI_G1, MI_C2, MI_F2, MI_As2, MI_Ds3, MI_Gs3, MI_Cs4, _______, _______,
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_Ds1, MI_Gs1, MI_Cs2, MI_G2, MI_C3, MI_F3, MI_As3, MI_Ds4, _______, _______
), ),
[_LYDIAN] = LAYOUT_ortho_3x10( [_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_C1, MI_Fs1, MI_B1, MI_E2, MI_A2, MI_D3, MI_G3, MI_C4, _______, _______,
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_D1, MI_G1, MI_C2, MI_Fs2, MI_B2, MI_E3, MI_A3, MI_D4, _______, _______,
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_E1, MI_A1, MI_D2, MI_G2, MI_C3, MI_Fs3, MI_B3, MI_E4, _______, _______
), ),
[_MIXOLYDIAN] = LAYOUT_ortho_3x10( [_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_C1, MI_F1, MI_As1, MI_E2, MI_A2, MI_D3, MI_G3, MI_C4, _______, _______,
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_D1, MI_G1, MI_C2, MI_F2, MI_As2, MI_E3, MI_A3, MI_D4, _______, _______,
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_E1, MI_A1, MI_D2, MI_G2, MI_C3, MI_F3, MI_As3, MI_E4, _______, _______
), ),
[_AEOLIAN] = LAYOUT_ortho_3x10( [_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_C1, MI_F1, MI_As1, MI_Ds2, MI_Gs2, MI_D3, MI_G3, MI_C4, _______, _______,
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_D1, MI_G1, MI_C2, MI_F2, MI_As2, MI_Ds3, MI_Gs3, MI_D4, _______, _______,
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_Ds1, MI_Gs1, MI_D2, MI_G2, MI_C3, MI_F3, MI_As3, MI_Ds4, _______, _______
), ),
[_LOCRIAN] = LAYOUT_ortho_3x10( [_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_C1, MI_F1, MI_As1, MI_Ds2, MI_Gs2, MI_Cs3, MI_Fs3, MI_C4, _______, _______,
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_Cs1, MI_Fs1, MI_C2, MI_F2, MI_As2, MI_Ds3, MI_Gs3, MI_Cs4, _______, _______,
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_Ds1, MI_Gs1, MI_Cs2, MI_Fs2, MI_C3, MI_F3, MI_As3, MI_Ds4, _______, _______
), ),
[_MENU] = LAYOUT_ortho_3x10( [_MENU] = LAYOUT_ortho_3x10(

View File

@ -34,33 +34,33 @@ enum custom_keycodes {
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_OPEN] = LAYOUT( [_OPEN] = LAYOUT(
MI_Gs_1, MI_As_1, MI_Cs_2, MI_F_2, MI_Gs_3, MI_Gs1, MI_As1, MI_Cs2, MI_F2, MI_Gs3,
MI_E_1, MI_A_1, MI_G_2, MI_Ds_2, MI_F_3, MI_As_2, MI_F_1, MI_E1, MI_A1, MI_G2, MI_Ds2, MI_F3, MI_As2, MI_F1,
MI_D_2, MI_A_2, MI_C_3, MI_E_3, MI_C_2, MI_G_1, TG_SWAP, MI_D2, MI_A2, MI_C3, MI_E3, MI_C2, MI_G1, TG_SWAP,
MI_E_2, MI_Gs_2, MI_B_2, MI_D_3, MI_Fs_3, MI_Cs_3, MI_Fs_1, MI_E2, MI_Gs2, MI_B2, MI_D3, MI_Fs3, MI_Cs3, MI_Fs1,
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_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, MO_SWAP, MI_B5, MI_Gs5, MI_G5, MI_F5, FN_MUTE,
MI_Cs_3, MI_A_5, MI_Fs_5, MI_E_5, MI_Ds_5, MI_Cs3, MI_A5, MI_Fs5, MI_E5, MI_Ds5,
MI_C_3, MI_D_3, MI_G_3, MI_As_4, MI_C_5, MI_D_5, MI_C3, MI_D3, MI_G3, MI_As4, MI_C5, MI_D5,
TG_SWAP, MI_B_2, MI_E_3, MI_Cs_4, MI_Fs_3, MI_A_3, MI_C_4, MI_E_4, TG_SWAP, MI_B2, MI_E3, MI_Cs4, MI_Fs3, MI_A3, MI_C4, MI_E4,
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_A2, MI_F3, MI_As3, MI_Gs3, MI_B3, MI_D4, MI_Gs4, MI_B4,
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_Gs2, MI_As2, MI_Ds3, MI_F4, MI_Ds4, MI_Fs4, MI_A4, MI_Cs5, MI_G4
), ),
[_CLOSE] = LAYOUT( [_CLOSE] = LAYOUT(
MI_Gs_1, MI_As_1, MI_Ds_2, MI_Ds_3, MI_G_3, MI_Gs1, MI_As1, MI_Ds2, MI_Ds3, MI_G3,
MI_D_1, MI_D_2, MI_As_2, MI_C_3, MI_Cs_2, MI_C_2, MI_Fs_1, MI_D1, MI_D2, MI_As2, MI_C3, MI_Cs2, MI_C2, MI_Fs1,
MI_G_1, MI_G_2, MI_B_2, MI_D_3, MI_F_3, MI_Fs_2, TG_SWAP, MI_G1, MI_G2, MI_B2, MI_D3, MI_F3, MI_Fs2, TG_SWAP,
MI_A_1, MI_E_2, MI_A_2, MI_Cs_3, MI_E_3, MI_Gs_2, MI_B_1, MI_A1, MI_E2, MI_A2, MI_Cs3, MI_E3, MI_Gs2, MI_B1,
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_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, MO_SWAP, MI_A5, MI_Gs5, MI_Fs5, MI_F5, FN_MUTE,
MI_C_3, MI_G_5, MI_As_4, MI_C_5, MI_Ds_5, MI_C3, MI_G5, MI_As4, MI_C5, MI_Ds5,
MI_D_3, MI_Cs_3, MI_Gs_3, MI_As_3, MI_C_4, MI_D_5, MI_D3, MI_Cs3, MI_Gs3, MI_As3, MI_C4, MI_D5,
TG_SWAP, MI_B_2, MI_Fs_3, MI_Fs_4, MI_G_3, MI_B_3, MI_D_4, MI_G_4, TG_SWAP, MI_B2, MI_Fs3, MI_Fs4, MI_G3, MI_B3, MI_D4, MI_G4,
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_A2, MI_F3, MI_E3, MI_A3, MI_Cs4, MI_E4, MI_A4, MI_Cs5,
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_Gs2, MI_As2, MI_Ds3, MI_F4, MI_E4, MI_Gs4, MI_B4, MI_E5, MI_Ds4
), ),
[_FN] = LAYOUT( [_FN] = LAYOUT(
@ -88,8 +88,8 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
#endif #endif
void keyboard_post_init_user(void) { void keyboard_post_init_user(void) {
// Set octave to MI_OCT_0 // Set octave to 0
midi_config.octave = MI_OCT_0 - MIDI_OCTAVE_MIN; 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. // avoid using 127 since it is used as a special number in some sound sources.
midi_config.velocity = MIDI_INITIAL_VELOCITY; midi_config.velocity = MIDI_INITIAL_VELOCITY;

View File

@ -64,33 +64,33 @@ enum custom_keycodes {
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_OPEN] = LAYOUT( [_OPEN] = LAYOUT(
MI_Gs_1, MI_As_1, MI_Cs_2, MI_F_2, MI_Gs_3, MI_Gs1, MI_As1, MI_Cs2, MI_F2, MI_Gs3,
MI_E_1, MI_A_1, MI_G_2, MI_Ds_2, MI_F_3, MI_As_2, MI_F_1, MI_E1, MI_A1, MI_G2, MI_Ds2, MI_F3, MI_As2, MI_F1,
MI_D_2, MI_A_2, MI_C_3, MI_E_3, MI_C_2, MI_G_1, TG_SWAP, MI_D2, MI_A2, MI_C3, MI_E3, MI_C2, MI_G1, TG_SWAP,
MI_E_2, MI_Gs_2, MI_B_2, MI_D_3, MI_Fs_3, MI_Cs_3, MI_Fs_1, MI_E2, MI_Gs2, MI_B2, MI_D3, MI_Fs3, MI_Cs3, MI_Fs1,
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_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, MO_SWAP, MI_B5, MI_Gs5, MI_G5, MI_F5, FN_MUTE,
MI_Cs_3, MI_A_5, MI_Fs_5, MI_E_5, MI_Ds_5, MI_Cs3, MI_A5, MI_Fs5, MI_E5, MI_Ds5,
MI_C_3, MI_D_3, MI_G_3, MI_As_4, MI_C_5, MI_D_5, MI_C3, MI_D3, MI_G3, MI_As4, MI_C5, MI_D5,
TG_SWAP, MI_B_2, MI_E_3, MI_Cs_4, MI_Fs_3, MI_A_3, MI_C_4, MI_E_4, TG_SWAP, MI_B2, MI_E3, MI_Cs4, MI_Fs3, MI_A3, MI_C4, MI_E4,
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_A2, MI_F3, MI_As3, MI_Gs3, MI_B3, MI_D4, MI_Gs4, MI_B4,
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_Gs2, MI_As2, MI_Ds3, MI_F4, MI_Ds4, MI_Fs4, MI_A4, MI_Cs5, MI_G4
), ),
[_CLOSE] = LAYOUT( [_CLOSE] = LAYOUT(
MI_Gs_1, MI_As_1, MI_Ds_2, MI_Ds_3, MI_G_3, MI_Gs1, MI_As1, MI_Ds2, MI_Ds3, MI_G3,
MI_D_1, MI_D_2, MI_As_2, MI_C_3, MI_Cs_2, MI_C_2, MI_Fs_1, MI_D1, MI_D2, MI_As2, MI_C3, MI_Cs2, MI_C2, MI_Fs1,
MI_G_1, MI_G_2, MI_B_2, MI_D_3, MI_F_3, MI_Fs_2, TG_SWAP, MI_G1, MI_G2, MI_B2, MI_D3, MI_F3, MI_Fs2, TG_SWAP,
MI_A_1, MI_E_2, MI_A_2, MI_Cs_3, MI_E_3, MI_Gs_2, MI_B_1, MI_A1, MI_E2, MI_A2, MI_Cs3, MI_E3, MI_Gs2, MI_B1,
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_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, MO_SWAP, MI_A5, MI_Gs5, MI_Fs5, MI_F5, FN_MUTE,
MI_C_3, MI_G_5, MI_As_4, MI_C_5, MI_Ds_5, MI_C3, MI_G5, MI_As4, MI_C5, MI_Ds5,
MI_D_3, MI_Cs_3, MI_Gs_3, MI_As_3, MI_C_4, MI_D_5, MI_D3, MI_Cs3, MI_Gs3, MI_As3, MI_C4, MI_D5,
TG_SWAP, MI_B_2, MI_Fs_3, MI_Fs_4, MI_G_3, MI_B_3, MI_D_4, MI_G_4, TG_SWAP, MI_B2, MI_Fs3, MI_Fs4, MI_G3, MI_B3, MI_D4, MI_G4,
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_A2, MI_F3, MI_E3, MI_A3, MI_Cs4, MI_E4, MI_A4, MI_Cs5,
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_Gs2, MI_As2, MI_Ds3, MI_F4, MI_E4, MI_Gs4, MI_B4, MI_E5, MI_Ds4
), ),
[_QWERTY] = LAYOUT_wrapper( [_QWERTY] = LAYOUT_wrapper(
@ -166,8 +166,8 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
#endif #endif
void my_init(void){ void my_init(void){
// Set octave to MI_OCT_0 // Set octave to 0
midi_config.octave = MI_OCT_0 - MIDI_OCTAVE_MIN; 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. // avoid using 127 since it is used as a special number in some sound sources.
midi_config.velocity = MIDI_INITIAL_VELOCITY; midi_config.velocity = MIDI_INITIAL_VELOCITY;

View File

@ -64,33 +64,33 @@ enum custom_keycodes {
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_OPEN] = LAYOUT( [_OPEN] = LAYOUT(
MI_Gs_1, MI_As_1, MI_Cs_2, MI_F_2, MI_Gs_3, MI_Gs1, MI_As1, MI_Cs2, MI_F2, MI_Gs3,
MI_E_1, MI_A_1, MI_G_2, MI_Ds_2, MI_F_3, MI_As_2, MI_F_1, MI_E1, MI_A1, MI_G2, MI_Ds2, MI_F3, MI_As2, MI_F1,
MI_D_2, MI_A_2, MI_C_3, MI_E_3, MI_C_2, MI_G_1, MI_B, MI_D2, MI_A2, MI_C3, MI_E3, MI_C2, MI_G1, MI_B,
MI_E_2, MI_Gs_2, MI_B_2, MI_D_3, MI_Fs_3, MI_Cs_3, MI_Fs_1, MI_E2, MI_Gs2, MI_B2, MI_D3, MI_Fs3, MI_Cs3, MI_Fs1,
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_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, MO_SWAP, MI_B5, MI_Gs5, MI_G5, MI_F5, FN_MUTE,
MI_Cs_3, MI_A_5, MI_Fs_5, MI_E_5, MI_Ds_5, MI_Cs3, MI_A5, MI_Fs5, MI_E5, MI_Ds5,
MI_C_3, MI_D_3, MI_G_3, MI_As_4, MI_C_5, MI_D_5, MI_C3, MI_D3, MI_G3, MI_As4, MI_C5, MI_D5,
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_G2, MI_B2, MI_E3, MI_Cs4, MI_Fs3, MI_A3, MI_C4, MI_E4,
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_A2, MI_F3, MI_As3, MI_Gs3, MI_B3, MI_D4, MI_Gs4, MI_B4,
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_Gs2, MI_As2, MI_Ds3, MI_F4, MI_Ds4, MI_Fs4, MI_A4, MI_Cs5, MI_G4
), ),
[_CLOSE] = LAYOUT( [_CLOSE] = LAYOUT(
MI_Gs_1, MI_As_1, MI_Ds_2, MI_Ds_3, MI_G_3, MI_Gs1, MI_As1, MI_Ds2, MI_Ds3, MI_G3,
MI_D_1, MI_D_2, MI_As_2, MI_C_3, MI_Cs_2, MI_C_2, MI_Fs_1, MI_D1, MI_D2, MI_As2, MI_C3, MI_Cs2, MI_C2, MI_Fs1,
MI_G_1, MI_G_2, MI_B_2, MI_D_3, MI_F_3, MI_Fs_2, MI_B, MI_G1, MI_G2, MI_B2, MI_D3, MI_F3, MI_Fs2, MI_B,
MI_A_1, MI_E_2, MI_A_2, MI_Cs_3, MI_E_3, MI_Gs_2, MI_B_1, MI_A1, MI_E2, MI_A2, MI_Cs3, MI_E3, MI_Gs2, MI_B1,
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_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, MO_SWAP, MI_A5, MI_Gs5, MI_Fs5, MI_F5, FN_MUTE,
MI_C_3, MI_G_5, MI_As_4, MI_C_5, MI_Ds_5, MI_C3, MI_G5, MI_As4, MI_C5, MI_Ds5,
MI_D_3, MI_Cs_3, MI_Gs_3, MI_As_3, MI_C_4, MI_D_5, MI_D3, MI_Cs3, MI_Gs3, MI_As3, MI_C4, MI_D5,
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_G2, MI_B2, MI_Fs3, MI_Fs4, MI_G3, MI_B3, MI_D4, MI_G4,
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_A2, MI_F3, MI_E3, MI_A3, MI_Cs4, MI_E4, MI_A4, MI_Cs5,
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_Gs2, MI_As2, MI_Ds3, MI_F4, MI_E4, MI_Gs4, MI_B4, MI_E5, MI_Ds4
), ),
[_QWERTY] = LAYOUT_wrapper( [_QWERTY] = LAYOUT_wrapper(
@ -166,8 +166,8 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
#endif #endif
void my_init(void){ void my_init(void){
// Set octave to MI_OCT_0 // Set octave to 0
midi_config.octave = MI_OCT_0 - MIDI_OCTAVE_MIN; 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. // avoid using 127 since it is used as a special number in some sound sources.
midi_config.velocity = MIDI_INITIAL_VELOCITY; midi_config.velocity = MIDI_INITIAL_VELOCITY;

View File

@ -35,33 +35,33 @@ enum custom_keycodes {
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_OPEN] = LAYOUT( [_OPEN] = LAYOUT(
MI_Gs_1, MI_As_1, MI_Cs_2, MI_F_2, MI_Gs_3, MI_Gs1, MI_As1, MI_Cs2, MI_F2, MI_Gs3,
MI_E_1, MI_A_1, MI_G_2, MI_Ds_2, MI_F_3, MI_As_2, MI_F_1, MI_E1, MI_A1, MI_G2, MI_Ds2, MI_F3, MI_As2, MI_F1,
MI_D_2, MI_A_2, MI_C_3, MI_E_3, MI_C_2, MI_G_1, TG_SWAP, MI_D2, MI_A2, MI_C3, MI_E3, MI_C2, MI_G1, TG_SWAP,
MI_E_2, MI_Gs_2, MI_B_2, MI_D_3, MI_Fs_3, MI_Cs_3, MI_Fs_1, MI_E2, MI_Gs2, MI_B2, MI_D3, MI_Fs3, MI_Cs3, MI_Fs1,
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_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, MO_SWAP, MI_B5, MI_Gs5, MI_G5, MI_F5, FN_MUTE,
MI_Cs_3, MI_A_5, MI_Fs_5, MI_E_5, MI_Ds_5, MI_Cs3, MI_A5, MI_Fs5, MI_E5, MI_Ds5,
MI_C_3, MI_D_3, MI_G_3, MI_As_4, MI_C_5, MI_D_5, MI_C3, MI_D3, MI_G3, MI_As4, MI_C5, MI_D5,
TG_SWAP, MI_B_2, MI_E_3, MI_Cs_4, MI_Fs_3, MI_A_3, MI_C_4, MI_E_4, TG_SWAP, MI_B2, MI_E3, MI_Cs4, MI_Fs3, MI_A3, MI_C4, MI_E4,
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_A2, MI_F3, MI_As3, MI_Gs3, MI_B3, MI_D4, MI_Gs4, MI_B4,
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_Gs2, MI_As2, MI_Ds3, MI_F4, MI_Ds4, MI_Fs4, MI_A4, MI_Cs5, MI_G4
), ),
[_CLOSE] = LAYOUT( [_CLOSE] = LAYOUT(
MI_Gs_1, MI_As_1, MI_Ds_2, MI_Ds_3, MI_G_3, MI_Gs1, MI_As1, MI_Ds2, MI_Ds3, MI_G3,
MI_D_1, MI_D_2, MI_As_2, MI_C_3, MI_Cs_2, MI_C_2, MI_Fs_1, MI_D1, MI_D2, MI_As2, MI_C3, MI_Cs2, MI_C2, MI_Fs1,
MI_G_1, MI_G_2, MI_B_2, MI_D_3, MI_F_3, MI_Fs_2, TG_SWAP, MI_G1, MI_G2, MI_B2, MI_D3, MI_F3, MI_Fs2, TG_SWAP,
MI_A_1, MI_E_2, MI_A_2, MI_Cs_3, MI_E_3, MI_Gs_2, MI_B_1, MI_A1, MI_E2, MI_A2, MI_Cs3, MI_E3, MI_Gs2, MI_B1,
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_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, MO_SWAP, MI_A5, MI_Gs5, MI_Fs5, MI_F5, FN_MUTE,
MI_C_3, MI_G_5, MI_As_4, MI_C_5, MI_Ds_5, MI_C3, MI_G5, MI_As4, MI_C5, MI_Ds5,
MI_D_3, MI_Cs_3, MI_Gs_3, MI_As_3, MI_C_4, MI_D_5, MI_D3, MI_Cs3, MI_Gs3, MI_As3, MI_C4, MI_D5,
TG_SWAP, MI_B_2, MI_Fs_3, MI_Fs_4, MI_G_3, MI_B_3, MI_D_4, MI_G_4, TG_SWAP, MI_B2, MI_Fs3, MI_Fs4, MI_G3, MI_B3, MI_D4, MI_G4,
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_A2, MI_F3, MI_E3, MI_A3, MI_Cs4, MI_E4, MI_A4, MI_Cs5,
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_Gs2, MI_As2, MI_Ds3, MI_F4, MI_E4, MI_Gs4, MI_B4, MI_E5, MI_Ds4
), ),
[_MISC] = LAYOUT( [_MISC] = LAYOUT(
@ -105,8 +105,8 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
#endif #endif
void my_init(void){ void my_init(void){
// Set octave to MI_OCT_0 // Set octave to 0
midi_config.octave = MI_OCT_0 - MIDI_OCTAVE_MIN; 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. // avoid using 127 since it is used as a special number in some sound sources.
midi_config.velocity = MIDI_INITIAL_VELOCITY; midi_config.velocity = MIDI_INITIAL_VELOCITY;

View File

@ -33,16 +33,16 @@ enum custom_keycodes {
// Long press: go to _FN layer, tap: MUTE // Long press: go to _FN layer, tap: MUTE
#define FN_MUTE LT(_FN, KC_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; extern midi_config_t midi_config;
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Base */ /* Base */
[_BASE] = LAYOUT( [_BASE] = LAYOUT(
FN_MUTE, MI_SUS, FN_MUTE, MI_SUST,
MI_BENDU, MI_BNDU,
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_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_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 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 */ /* 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(). // commom codes called from eeconfig_init_user() and keyboard_post_init_user().
void my_init(void){ void my_init(void){
// Set octave to MI_OCT_1 // Set octave to 0
midi_config.octave = MI_OCT_0 - MIDI_OCTAVE_MIN; 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. // avoid using 127 since it is used as a special number in some sound sources.
midi_config.velocity = MIDI_INITIAL_VELOCITY; midi_config.velocity = MIDI_INITIAL_VELOCITY;
default_layer_set(1UL << _BASE); default_layer_set(1UL << _BASE);

View File

@ -206,7 +206,7 @@ static uint8_t my_tone_status[MY_TONE_COUNT];
// Long press: go to _FN layer, tap: MUTE // Long press: go to _FN layer, tap: MUTE
#define FN_MUTE LT(_FN, KC_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; extern midi_config_t midi_config;
static bool is_trans_mode = false; // By default, shift mode is chosen. 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] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Base */ /* Base */
[_BASE] = LAYOUT( [_BASE] = LAYOUT(
FN_MUTE, MI_SUS, FN_MUTE, MI_SUST,
MI_BENDU, MI_BNDU,
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, 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_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 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) */ /* 1 octave on the left side is ch2, others are ch1 (normal) */
[_SEPALEFTOCT] = LAYOUT( [_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, 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_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 _______, 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) */ /* Half ch2, half ch1 (normal) */
[_SEPAHALF] = LAYOUT( [_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, 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_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 _______, 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) */ /* 2 octave on the left side is ch2, others are ch1 (normal) */
[_SEPARIGHTOCT] = LAYOUT( [_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, 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_Db_4, MI_Eb_4, MI_F_4, MI_G_4, MI_A_4, MI_B_4 _______, 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 This layer must locate 1 layer below _FN layer. */
[_TRANS] = LAYOUT( [_TRANS] = LAYOUT(
_______, _______, _______, _______,
_______, _______,
MI_TRNSD, MI_TRNSU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MI_TRSD, MI_TRSU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
), ),
/* Flip Base SFIFTUP and SHIFT_L are swapped. */ /* Flip Base SFIFTUP and SHIFT_L are swapped. */
[_FLIPBASE] = LAYOUT( [_FLIPBASE] = LAYOUT(
FN_MUTE, MI_SUS, FN_MUTE, MI_SUST,
MI_BENDU, MI_BNDU,
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, 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_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 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( [_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(). // commom codes called from eeconfig_init_user() and keyboard_post_init_user().
void my_init(void){ void my_init(void){
// Set octave to MI_OCT_1 // Set octave to 0
midi_config.octave = MI_OCT_0 - MIDI_OCTAVE_MIN; 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. // avoid using 127 since it is used as a special number in some sound sources.
midi_config.velocity = MIDI_INITIAL_VELOCITY; midi_config.velocity = MIDI_INITIAL_VELOCITY;
default_layer_set(_LS_BASE); default_layer_set(_LS_BASE);

View File

@ -206,7 +206,7 @@ static uint8_t my_tone_status[MY_TONE_COUNT];
// Long press: go to _FN layer, tap: MUTE // Long press: go to _FN layer, tap: MUTE
#define FN_MUTE LT(_FN, KC_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; extern midi_config_t midi_config;
static bool is_trans_mode = false; // By default, shift mode is chosen. 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] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Base */ /* Base */
[_BASE] = LAYOUT( [_BASE] = LAYOUT(
FN_MUTE, MI_SUS, FN_MUTE, MI_SUST,
MI_BENDU, MI_BNDU,
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, 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_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 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) */ /* 1 octave on the left side is ch2, others are ch1 (normal) */
[_SEPALEFTOCT] = LAYOUT( [_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, 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_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 _______, 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) */ /* Half ch2, half ch1 (normal) */
[_SEPAHALF] = LAYOUT( [_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, 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_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 _______, 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) */ /* 2 octave on the left side is ch2, others are ch1 (normal) */
[_SEPARIGHTOCT] = LAYOUT( [_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, 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_Db_4, MI_Eb_4, MI_F_4, MI_G_4, MI_A_4, MI_B_4 _______, 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 This layer must locate 1 layer below _FN layer. */
[_TRANS] = LAYOUT( [_TRANS] = LAYOUT(
_______, _______, _______, _______,
_______, _______,
MI_TRNSD, MI_TRNSU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MI_TRSD, MI_TRSU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
), ),
/* Flip Base SFIFTUP and SHIFT_L are swapped. */ /* Flip Base SFIFTUP and SHIFT_L are swapped. */
[_FLIPBASE] = LAYOUT( [_FLIPBASE] = LAYOUT(
FN_MUTE, MI_SUS, FN_MUTE, MI_SUST,
MI_BENDU, MI_BNDU,
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, 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_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 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( [_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(). // commom codes called from eeconfig_init_user() and keyboard_post_init_user().
void my_init(void){ void my_init(void){
// Set octave to MI_OCT_1 // Set octave to 0
midi_config.octave = MI_OCT_0 - MIDI_OCTAVE_MIN; 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. // avoid using 127 since it is used as a special number in some sound sources.
midi_config.velocity = MIDI_INITIAL_VELOCITY; midi_config.velocity = MIDI_INITIAL_VELOCITY;
default_layer_set(_LS_BASE); default_layer_set(_LS_BASE);

View File

@ -54,24 +54,24 @@ enum custom_keycodes {
// Long press: go to _FN layer, tap: MUTE // Long press: go to _FN layer, tap: MUTE
#define FN_MUTE LT(_FN, KC_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; extern midi_config_t midi_config;
static bool is_trans_mode = false; // By default, shift mode is chosen. static bool is_trans_mode = false; // By default, shift mode is chosen.
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Base */ /* Base */
[_BASE] = LAYOUT( [_BASE] = LAYOUT(
FN_MUTE, MI_SUS, FN_MUTE, MI_SUST,
MI_BENDU, MI_BNDU,
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, 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_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 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 This layer must locate 1 layer below _FN layer. */
[_TRANS] = LAYOUT( [_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(). // commom codes called from eeconfig_init_user() and keyboard_post_init_user().
void my_init(void){ void my_init(void){
// Set octave to MI_OCT_1 // Set octave to 0
midi_config.octave = MI_OCT_0 - MIDI_OCTAVE_MIN; 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. // avoid using 127 since it is used as a special number in some sound sources.
midi_config.velocity = MIDI_INITIAL_VELOCITY; midi_config.velocity = MIDI_INITIAL_VELOCITY;
default_layer_set(_LS_BASE); default_layer_set(_LS_BASE);

View File

@ -97,10 +97,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// └─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘ // └─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘
[_MIDI] = LAYOUT( [_MIDI] = LAYOUT(
MI_Ds_3, MI_E_3, MI_F_3, MI_Fs_3, MI_G_3, MI_Ds3, MI_E3, MI_F3, MI_Fs3, MI_G3,
MI_As_2, MI_B_2, MI_C_3, MI_Cs_3, MI_D_3, MI_As2, MI_B2, MI_C3, MI_Cs3, MI_D3,
MI_F_2, MI_Fs_2, MI_G_2, MI_Gs_2, TG(_MIDI), MI_F2, MI_Fs2, MI_G2, MI_Gs2, TG(_MIDI),
_______, MI_C_2, MI_Cs_2, MI_D_2, MI_Ds_2, MI_E_2 _______, MI_C2, MI_Cs2, MI_D2, MI_Ds2, MI_E2
), ),
// MOUSE LAYER // MOUSE LAYER

View File

@ -88,11 +88,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
#if defined(MIDI_ENABLE) && defined(MIDI_ADVANCED) #if defined(MIDI_ENABLE) && defined(MIDI_ADVANCED)
/* Keymap _MI: MIDI layer (Advanced)*/ /* Keymap _MI: MIDI layer (Advanced)*/
[_MI] = LAYOUT( [_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, 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_Cs_1, MI_Ds_1, XXXXXXX, MI_Fs_1, 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_C_1, MI_D_1, MI_E_1, MI_F_1, MI_G_1, 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_SUS, XXXXXXX, MI_OCTD, MI_OCTU,MI_MODSD,MI_MODSU, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, MI_TRNSD,MI_TRNSU,MI_TRNS_0, MI_SUS, 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_ALLOFF, MI_ALLOFF, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, MI_AOFF, MI_AOFF, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX),
#elif defined(MIDI_ENABLE) && defined(MIDI_BASIC) #elif defined(MIDI_ENABLE) && defined(MIDI_BASIC)
/* Keymap _MI: MIDI layer (Basic)*/ /* Keymap _MI: MIDI layer (Basic)*/
[_MI] = LAYOUT( [_MI] = LAYOUT(

View File

@ -19,10 +19,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* `-----------------------------------------------------------------------------------' * `-----------------------------------------------------------------------------------'
*/ */
[0] = LAYOUT_ortho_4x12( [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_C4, MI_Cs4, MI_D4, MI_Ds4, MI_E4, MI_F4, MI_Fs4, MI_G4, MI_Gs4, MI_A4, MI_As4, MI_B4,
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_C3, MI_Cs3, MI_D3, MI_Ds3, MI_E3, MI_F3, MI_Fs3, MI_G3, MI_Gs3, MI_A3, MI_As3, MI_B3,
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_C2, MI_Cs2, MI_D2, MI_Ds2, MI_E2, MI_F2, MI_Fs2, MI_G2, MI_Gs2, MI_A2, MI_As2, MI_B2,
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_C1, MI_Cs1, MI_D1, MI_Ds1, MI_E1, MI_F1, MI_Fs1, MI_G1, MI_Gs1, MI_A1, MI_As1, MI_B1
) )
}; };

View File

@ -45,11 +45,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* `------------------------------------------------------------------------' * `------------------------------------------------------------------------'
*/ */
[_ML] = LAYOUT_60_ansi( [_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, 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_Cs_1, MI_Ds_1, 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_C_1, MI_D_1, MI_E_1, MI_F_1, _______, 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_SUS, MI_OCTD, MI_OCTU, MI_MODSD, MI_MODSU, XXXXXXX, XXXXXXX, XXXXXXX, MI_TRNSD, MI_TRNSU, MI_TRNS_0, MI_SUS, MI_SUST, MI_OCTD, MI_OCTU, MI_MODD, MI_MODU, XXXXXXX, XXXXXXX, XXXXXXX, MI_TRSD, MI_TRSU, MI_TR0, MI_SUST,
_______, _______, _______, MI_ALLOFF, _______, _______, _______, _______ _______, _______, _______, MI_AOFF, _______, _______, _______, _______
), ),
#elif defined(MIDI_ENABLE) && defined(MIDI_BASIC) #elif defined(MIDI_ENABLE) && defined(MIDI_BASIC)
/* Keymap _ML: MIDI Layer (Advanced) /* Keymap _ML: MIDI Layer (Advanced)

View File

@ -30,7 +30,7 @@
#define ADJ_EIS LT(_ADJUST,KC_LNG2) #define ADJ_EIS LT(_ADJUST,KC_LNG2)
#define MIS_KAN LT(_MISC,KC_LNG1) #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; extern midi_config_t midi_config;
uint8_t midi_bass_ch = 0, midi_chord_ch = 0; // By default, all use the same channel. 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_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_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_Fs2,
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_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_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_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_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_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 */ /* fake B-system */
@ -219,10 +219,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
MI_Ab_2, MI_Ab2,
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_A2, MI_C3, MI_Eb3, MI_Gb3, MI_A3, MI_C4, MI_Eb4, MI_Gb4, MI_A4, MI_C5, MI_Eb5, MI_Gb5, _______,
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_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_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_B2, MI_D3, MI_F3, MI_Ab3, MI_B3, MI_D4, MI_F4, MI_Ab4, MI_B4, MI_D5, MI_F5
), ),
/* BASS2row */ /* 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_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_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_Fs2,
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_B2, MI_D3, MI_F3, MI_Ab3, MI_B3, MI_D4, MI_F4, MI_Ab4, MI_B4, MI_D5, MI_F5, _______,
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_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_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_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 */
[_C_SYSTEM_ENTIRELY] = LAYOUT( [_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_BNDU, XXXXXXX, XXXXXXX, MI_Db, MI_E, MI_G, MI_Bb, MI_Db1, MI_E1, MI_G1, MI_Bb1, MI_Db2,
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, 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_D_1, MI_F_1, MI_Ab_1, MI_B_1, MI_D_2, MI_F_2, 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_Db_1, MI_E_1, MI_G_1, MI_Bb_1, MI_Db_2, MI_E_2, MI_G_2, 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_C_1, MI_Eb_1, MI_Fs_1, MI_A_1, MI_C_2, MI_Eb_2, MI_Fs_2, MI_A_2, 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_Fs_2, MI_Fs2,
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_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_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_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_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_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 */
[_CHROMATONE] = LAYOUT( [_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_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_C_1, MI_D_1, MI_E_1, MI_Fs_1, MI_Ab_1, MI_Bb_1, MI_C_2, 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_Db_1, MI_Eb_1, MI_F_1, MI_G_1, MI_A_1, MI_B_1, MI_Db_2, 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_C_1, MI_D_1, MI_E_1, MI_Fs_1, MI_Ab_1, MI_Bb_1, MI_C_2, MI_D_2, 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_Db_1, MI_Eb_1, MI_F_1, MI_G_1, MI_A_1, MI_B_1, MI_Db_2, MI_Eb_2, 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_C_2, MI_C2,
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_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_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_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_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_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( [_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_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_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_G5,
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_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_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_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_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_E5, MI_Db5, MI_Bb4, MI_G4, MI_E4, MI_Db4, MI_Bb3, MI_G3, MI_E3, MI_Db3, MI_Bb2, MI_G2
), ),
/* QWERTY */ /* 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, 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, 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 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 #endif // RGBLIGHT_ENABLE
void my_init(void){ void my_init(void){
// Set octave to MI_OCT_0 // Set octave to 0
midi_config.octave = MI_OCT_0 - MIDI_OCTAVE_MIN; 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. // avoid using 127 since it is used as a special number in some sound sources.
midi_config.velocity = MIDI_INITIAL_VELOCITY; midi_config.velocity = MIDI_INITIAL_VELOCITY;
} }
@ -438,7 +438,7 @@ void eeconfig_init_user(void) {
midi_init(); midi_init();
my_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. midi_bass_ch = 0, midi_chord_ch = 0; // By default, all use the same channel.
// UNISON flags // UNISON flags
@ -646,7 +646,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
// MIDI Chord Keycodes, on the left side. // MIDI Chord Keycodes, on the left side.
case MI_CH_Cr ... MI_CH_Br: // Root Notes 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()); my_process_midi4Bass(midi_bass_ch, record, chord_status, chord, root_note, IS_SINGLE_BASS());
#ifdef RGBLIGHT_ENABLE #ifdef RGBLIGHT_ENABLE
switch_keylight_color4bass(record, keylocation); switch_keylight_color4bass(record, keylocation);
@ -654,7 +654,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
break; break;
case MI_CH_C ... MI_CH_B: // Major Chords 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 // Root, Major Third, and Fifth Notes
my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 0, 4, 7); my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 0, 4, 7);
#ifdef RGBLIGHT_ENABLE #ifdef RGBLIGHT_ENABLE
@ -663,7 +663,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
break; break;
case MI_CH_Cm ... MI_CH_Bm: // Minor Chord 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 // Root, Minor Third, and Fifth Notes
my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 0, 3, 7); my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 0, 3, 7);
#ifdef RGBLIGHT_ENABLE #ifdef RGBLIGHT_ENABLE
@ -672,7 +672,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
break; break;
case MI_CH_CDom7 ... MI_CH_BDom7: // Dominant 7th Chord 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 // Major Third, Major Fifth, and Minor Seventh Notes
my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 4, 7, 10); my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 4, 7, 10);
#ifdef RGBLIGHT_ENABLE #ifdef RGBLIGHT_ENABLE
@ -681,7 +681,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
break; break;
case MI_CH_CDim7 ... MI_CH_BDim7: // Diminished 7th Chord 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 // Root, Minor Third, and Diminished 5th Note
my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 0, 3, 6); my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 0, 3, 6);
#ifdef RGBLIGHT_ENABLE #ifdef RGBLIGHT_ENABLE

View File

@ -29,7 +29,7 @@
#define ADJ_EIS LT(_ADJUST,KC_LNG2) #define ADJ_EIS LT(_ADJUST,KC_LNG2)
#define MIS_KAN LT(_MISC,KC_LNG1) #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; extern midi_config_t midi_config;
uint8_t midi_bass_ch = 0, midi_chord_ch = 0; // By default, all use the same channel. 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_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_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_Fs2,
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_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_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_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_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_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 */ /* fake B-system */
@ -220,10 +220,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
MI_Ab_2, MI_Ab2,
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_A2, MI_C3, MI_Eb3, MI_Gb3, MI_A3, MI_C4, MI_Eb4, MI_Gb4, MI_A4, MI_C5, MI_Eb5, MI_Gb5, _______,
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_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_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_B2, MI_D3, MI_F3, MI_Ab3, MI_B3, MI_D4, MI_F4, MI_Ab4, MI_B4, MI_D5, MI_F5
), ),
/* BASS2row */ /* 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_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_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_Fs2,
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_B2, MI_D3, MI_F3, MI_Ab3, MI_B3, MI_D4, MI_F4, MI_Ab4, MI_B4, MI_D5, MI_F5, _______,
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_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_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_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 */
[_C_SYSTEM_ENTIRELY] = LAYOUT( [_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_BNDU, XXXXXXX, XXXXXXX, MI_Db, MI_E, MI_G, MI_Bb, MI_Db1, MI_E1, MI_G1, MI_Bb1, MI_Db2,
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, 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_D_1, MI_F_1, MI_Ab_1, MI_B_1, MI_D_2, MI_F_2, 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_Db_1, MI_E_1, MI_G_1, MI_Bb_1, MI_Db_2, MI_E_2, MI_G_2, 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_C_1, MI_Eb_1, MI_Fs_1, MI_A_1, MI_C_2, MI_Eb_2, MI_Fs_2, MI_A_2, 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_Fs_2, MI_Fs2,
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_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_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_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_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_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 free bass */
[_C_SYSTEM_FREEBASS] = LAYOUT( [_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_Db3, MI_Bb2, MI_G2, MI_E2, MI_Db2, MI_Bb1, MI_G1, MI_E1, MI_Db1, 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_C3, MI_A2, MI_Fs2, MI_Eb2, MI_C2, MI_A1, MI_Fs1, MI_Eb1, MI_C1, 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_B2, MI_Ab2, MI_F2, MI_D2, MI_B1, MI_Ab1, MI_F1, MI_D1, 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_Bb2, MI_G2, MI_E2, MI_Db2, MI_Bb1, MI_G1, MI_E1, MI_Db1, 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_A2, MI_Fs2, MI_Eb2, MI_C2, MI_A1, MI_Fs1, MI_Eb1, MI_C1, MI_A, MI_Fs, MI_Eb, MI_C,
MI_Fs_2, MI_Fs2,
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_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_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_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_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_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 */
[_CHROMATONE] = LAYOUT( [_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_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_C_1, MI_D_1, MI_E_1, MI_Fs_1, MI_Ab_1, MI_Bb_1, MI_C_2, 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_Db_1, MI_Eb_1, MI_F_1, MI_G_1, MI_A_1, MI_B_1, MI_Db_2, 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_C_1, MI_D_1, MI_E_1, MI_Fs_1, MI_Ab_1, MI_Bb_1, MI_C_2, MI_D_2, 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_Db_1, MI_Eb_1, MI_F_1, MI_G_1, MI_A_1, MI_B_1, MI_Db_2, MI_Eb_2, 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_C_2, MI_C2,
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_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_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_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_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_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( [_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_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_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_G5,
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_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_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_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_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_E5, MI_Db5, MI_Bb4, MI_G4, MI_E4, MI_Db4, MI_Bb3, MI_G3, MI_E3, MI_Db3, MI_Bb2, MI_G2
), ),
/* QWERTY */ /* 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, 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, 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 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 #endif // RGBLIGHT_ENABLE
void my_init(void){ void my_init(void){
// Set octave to MI_OCT_0 // Set octave to 0
midi_config.octave = MI_OCT_0 - MIDI_OCTAVE_MIN; 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. // avoid using 127 since it is used as a special number in some sound sources.
midi_config.velocity = MIDI_INITIAL_VELOCITY; midi_config.velocity = MIDI_INITIAL_VELOCITY;
} }
@ -452,7 +452,7 @@ void eeconfig_init_user(void) {
midi_init(); midi_init();
my_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. midi_bass_ch = 0, midi_chord_ch = 0; // By default, all use the same channel.
// UNISON flags // UNISON flags
@ -661,7 +661,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
// MIDI Chord Keycodes, on the left side. // MIDI Chord Keycodes, on the left side.
case MI_CH_Cr ... MI_CH_Br: // Root Notes 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()); my_process_midi4Bass(midi_bass_ch, record, chord_status, chord, root_note, IS_SINGLE_BASS());
#ifdef RGBLIGHT_ENABLE #ifdef RGBLIGHT_ENABLE
switch_keylight_color4bass(record, keylocation); switch_keylight_color4bass(record, keylocation);
@ -669,7 +669,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
break; break;
case MI_CH_C ... MI_CH_B: // Major Chords 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 // Root, Major Third, and Fifth Notes
my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 0, 4, 7); my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 0, 4, 7);
#ifdef RGBLIGHT_ENABLE #ifdef RGBLIGHT_ENABLE
@ -678,7 +678,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
break; break;
case MI_CH_Cm ... MI_CH_Bm: // Minor Chord 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 // Root, Minor Third, and Fifth Notes
my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 0, 3, 7); my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 0, 3, 7);
#ifdef RGBLIGHT_ENABLE #ifdef RGBLIGHT_ENABLE
@ -687,7 +687,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
break; break;
case MI_CH_CDom7 ... MI_CH_BDom7: // Dominant 7th Chord 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 // Major Third, Major Fifth, and Minor Seventh Notes
my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 4, 7, 10); my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 4, 7, 10);
#ifdef RGBLIGHT_ENABLE #ifdef RGBLIGHT_ENABLE
@ -696,7 +696,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
break; break;
case MI_CH_CDim7 ... MI_CH_BDim7: // Diminished 7th Chord 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 // Root, Minor Third, and Diminished 5th Note
my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 0, 3, 6); my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 0, 3, 6);
#ifdef RGBLIGHT_ENABLE #ifdef RGBLIGHT_ENABLE

View File

@ -24,7 +24,7 @@
// Long press: go to _FN layer, tap: MUTE // Long press: go to _FN layer, tap: MUTE
#define FN_MUTE LT(_FN, KC_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; extern midi_config_t midi_config;
uint8_t midi_bass_ch = 0, midi_chord_ch = 0; // By default, all use the same channel. 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_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_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_Fs2,
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_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_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_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_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_A2, MI_C3, MI_Eb3, MI_Fs3, MI_A3, MI_C4, MI_Eb4, MI_Fs4, MI_A4, MI_C5, MI_Eb5, MI_Fs5
), ),
/* QWERTY */ /* QWERTY */
@ -200,8 +200,8 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
#endif #endif
void keyboard_post_init_user(void) { void keyboard_post_init_user(void) {
// Set otave to MI_OCT_0 // Set octave to 0
midi_config.octave = MI_OCT_0 - MIDI_OCTAVE_MIN; 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. // avoid using 127 since it is used as a special number in some sound sources.
midi_config.velocity = MIDI_INITIAL_VELOCITY; 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. // MIDI Chord Keycodes, on the left side.
case MI_CH_Cr ... MI_CH_Br: // Root Notes 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); my_process_midi4Bass(midi_bass_ch, record, chord_status, chord, root_note, false);
break; break;
case MI_CH_C ... MI_CH_B: // Major Chords 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 // Root, Major Third, and Fifth Notes
my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 0, 4, 7); my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 0, 4, 7);
break; break;
case MI_CH_Cm ... MI_CH_Bm: // Minor Chord 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 // Root, Minor Third, and Fifth Notes
my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 0, 3, 7); my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 0, 3, 7);
break; break;
case MI_CH_CDom7 ... MI_CH_BDom7: // Dominant 7th Chord 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 // Major Third, Major Fifth, and Minor Seventh Notes
my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 4, 7, 10); my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 4, 7, 10);
break; break;
case MI_CH_CDim7 ... MI_CH_BDim7: // Diminished 7th Chord 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 // Root, Minor Third, and Diminished 5th Note
my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 0, 3, 6); my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 0, 3, 6);
break; break;

View File

@ -24,7 +24,7 @@
// Long press: go to _FN layer, tap: MUTE // Long press: go to _FN layer, tap: MUTE
#define FN_MUTE LT(_FN, KC_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; extern midi_config_t midi_config;
uint8_t midi_bass_ch = 0, midi_chord_ch = 0; // By default, all use the same channel. 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_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_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_Db2, MI_E2, MI_G2, MI_Bb2, MI_Db3, MI_E3, MI_G3, MI_Bb3, MI_Db4, MI_E4, MI_G4, MI_Bb4,
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_Eb2, MI_Fs2, MI_A2, MI_C3, MI_Eb3, MI_Fs3, MI_A3, MI_C4, MI_Eb4, MI_Fs4, MI_A4, MI_C5,
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_F2, MI_Ab2, MI_B2, MI_D3, MI_F3, MI_Ab3, MI_B3, MI_D4, MI_F4, MI_Ab4, MI_B4, MI_D5,
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_G2, MI_Bb2, MI_Db3, MI_E3, MI_G3, MI_Bb3, MI_Db4, MI_E4, MI_G4, MI_Bb4, MI_Db5, MI_E5,
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_A2, MI_C3, MI_Eb3, MI_Fs3, MI_A3, MI_C4, MI_Eb4, MI_Fs4, MI_A4, MI_C5, MI_Eb5, FN_MUTE
), ),
/* QWERTY */ /* QWERTY */
@ -203,8 +203,8 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
#endif #endif
void keyboard_post_init_user(void) { void keyboard_post_init_user(void) {
// Set otave to MI_OCT_0 // Set octave to 0
midi_config.octave = MI_OCT_0 - MIDI_OCTAVE_MIN; 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. // avoid using 127 since it is used as a special number in some sound sources.
midi_config.velocity = MIDI_INITIAL_VELOCITY; 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. // MIDI Chord Keycodes, on the left side.
case MI_CH_Cr ... MI_CH_Br: // Root Notes 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); my_process_midi4Bass(midi_bass_ch, record, chord_status, chord, root_note, false);
break; break;
case MI_CH_C ... MI_CH_B: // Major Chords 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 // Root, Major Third, and Fifth Notes
my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 0, 4, 7); my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 0, 4, 7);
break; break;
case MI_CH_Cm ... MI_CH_Bm: // Minor Chord 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 // Root, Minor Third, and Fifth Notes
my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 0, 3, 7); my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 0, 3, 7);
break; break;
case MI_CH_CDom7 ... MI_CH_BDom7: // Dominant 7th Chord 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 // Major Third, Major Fifth, and Minor Seventh Notes
my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 4, 7, 10); my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 4, 7, 10);
break; break;
case MI_CH_CDim7 ... MI_CH_BDim7: // Diminished 7th Chord 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 // Root, Minor Third, and Diminished 5th Note
my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 0, 3, 6); my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 0, 3, 6);
break; break;

View File

@ -24,7 +24,7 @@
// Long press: go to _FN layer, tap: MUTE // Long press: go to _FN layer, tap: MUTE
#define FN_MUTE LT(_FN, KC_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; extern midi_config_t midi_config;
uint8_t midi_bass_ch = 0, midi_chord_ch = 0; // By default, all use the same channel. 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_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_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_Db2, MI_E2, MI_G2, MI_Bb2, MI_Db3, MI_E3, MI_G3, MI_Bb3, MI_Db4, MI_E4, MI_G4, MI_Bb4,
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_Eb2, MI_Fs2, MI_A2, MI_C3, MI_Eb3, MI_Fs3, MI_A3, MI_C4, MI_Eb4, MI_Fs4, MI_A4, MI_C5,
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_F2, MI_Ab2, MI_B2, MI_D3, MI_F3, MI_Ab3, MI_B3, MI_D4, MI_F4, MI_Ab4, MI_B4, MI_D5,
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_G2, MI_Bb2, MI_Db3, MI_E3, MI_G3, MI_Bb3, MI_Db4, MI_E4, MI_G4, MI_Bb4, MI_Db5, MI_E5,
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_A2, MI_C3, MI_Eb3, MI_Fs3, MI_A3, MI_C4, MI_Eb4, MI_Fs4, MI_A4, MI_C5, MI_Eb5, FN_MUTE
), ),
/* BASS2row */ /* 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_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_Db2, MI_E2, MI_G2, MI_Bb2, MI_Db3, MI_E3, MI_G3, MI_Bb3, MI_Db4, MI_E4, MI_G4, MI_Bb4,
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_Eb2, MI_Fs2, MI_A2, MI_C3, MI_Eb3, MI_Fs3, MI_A3, MI_C4, MI_Eb4, MI_Fs4, MI_A4, MI_C5,
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_F2, MI_Ab2, MI_B2, MI_D3, MI_F3, MI_Ab3, MI_B3, MI_D4, MI_F4, MI_Ab4, MI_B4, MI_D5,
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_G2, MI_Bb2, MI_Db3, MI_E3, MI_G3, MI_Bb3, MI_Db4, MI_E4, MI_G4, MI_Bb4, MI_Db5, MI_E5,
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_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 */
[_C_SYSTEM_ENTIRELY] = LAYOUT_giabarinaix2( [_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, 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_C_1, MI_Eb_1, MI_Fs_1, MI_A_1, MI_C_2, MI_Eb_2, 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_D_1, MI_F_1, MI_Ab_1, MI_B_1, MI_D_2, MI_F_2, 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_Db_1, MI_E_1, MI_G_1, MI_Bb_1, MI_Db_2, MI_E_2, MI_G_2, 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_C_1, MI_Eb_1, MI_Fs_1, MI_A_1, MI_C_2, MI_Eb_2, MI_Fs_2, MI_A_2, 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_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_E2, MI_G2, MI_Bb2, MI_Db3, MI_E3, MI_G3, MI_Bb3, MI_Db4, MI_E4, MI_G4, MI_Bb4, MI_Db5,
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_Fs2, MI_A2, MI_C3, MI_Eb3, MI_Fs3, MI_A3, MI_C4, MI_Eb4, MI_Fs4, MI_A4, MI_C5, MI_Eb5,
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_B2, MI_D3, MI_F3, MI_Ab3, MI_B3, MI_D4, MI_F4, MI_Ab4, MI_B4, MI_D5, MI_F5,
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_Bb2, MI_Db3, MI_E3, MI_G3, MI_Bb3, MI_Db4, MI_E4, MI_G4, MI_Bb4, MI_Db5, MI_E5, MI_G5,
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 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 */
[_CHROMATONE] = LAYOUT_giabarinaix2( [_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, 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_C_1, MI_D_1, MI_E_1, MI_Fs_1, MI_Ab_1, 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_Db_1, MI_Eb_1, MI_F_1, MI_G_1, MI_A_1, 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_C_1, MI_D_1, MI_E_1, MI_Fs_1, MI_Ab_1, MI_Bb_1, 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_Db_1, MI_Eb_1, MI_F_1, MI_G_1, MI_A_1, MI_B_1, 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_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_A1, MI_B1, MI_Db2, MI_Eb2, MI_F2, MI_G2, MI_A2, MI_B2, MI_Db3, MI_Eb3, MI_F3, MI_G3,
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_Bb1, MI_C2, MI_D2, MI_E2, MI_Gb2, MI_Ab2, MI_Bb2, MI_C3, MI_D3, MI_E3, MI_Gb3, MI_Ab3,
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_B1, MI_Db2, MI_Eb2, MI_F2, MI_G2, MI_A2, MI_B2, MI_Db3, MI_Eb3, MI_F3, MI_G3, MI_A3,
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_C2, MI_D2, MI_E2, MI_Gb2, MI_Ab2, MI_Bb2, MI_C3, MI_D3, MI_E3, MI_Gb3, MI_Ab3, MI_Bb3,
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 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 */ /* QWERTY */
@ -291,8 +291,8 @@ layer_state_t layer_state_set_user(layer_state_t state) {
#endif // RGBLIGHT_ENABLE #endif // RGBLIGHT_ENABLE
void keyboard_post_init_user(void) { void keyboard_post_init_user(void) {
// Set otave to MI_OCT_0 // Set octave to 0
midi_config.octave = MI_OCT_0 - MIDI_OCTAVE_MIN; 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. // avoid using 127 since it is used as a special number in some sound sources.
midi_config.velocity = MIDI_INITIAL_VELOCITY; 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. // MIDI Chord Keycodes, on the left side.
case MI_CH_Cr ... MI_CH_Br: // Root Notes 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); my_process_midi4Bass(midi_bass_ch, record, chord_status, chord, root_note, false);
#ifdef RGBLIGHT_ENABLE #ifdef RGBLIGHT_ENABLE
switch_keylight_color4bass(record, keylocation); switch_keylight_color4bass(record, keylocation);
#endif #endif
break; break;
case MI_CH_C ... MI_CH_B: // Major Chords 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 // Root, Major Third, and Fifth Notes
my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 0, 4, 7); my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 0, 4, 7);
#ifdef RGBLIGHT_ENABLE #ifdef RGBLIGHT_ENABLE
@ -419,7 +419,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
#endif #endif
break; break;
case MI_CH_Cm ... MI_CH_Bm: // Minor Chord 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 // Root, Minor Third, and Fifth Notes
my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 0, 3, 7); my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 0, 3, 7);
#ifdef RGBLIGHT_ENABLE #ifdef RGBLIGHT_ENABLE
@ -427,7 +427,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
#endif #endif
break; break;
case MI_CH_CDom7 ... MI_CH_BDom7: // Dominant 7th Chord 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 // Major Third, Major Fifth, and Minor Seventh Notes
my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 4, 7, 10); my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 4, 7, 10);
#ifdef RGBLIGHT_ENABLE #ifdef RGBLIGHT_ENABLE
@ -435,7 +435,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
#endif #endif
break; break;
case MI_CH_CDim7 ... MI_CH_BDim7: // Diminished 7th Chord 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 // Root, Minor Third, and Diminished 5th Note
my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 0, 3, 6); my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 0, 3, 6);
#ifdef RGBLIGHT_ENABLE #ifdef RGBLIGHT_ENABLE

View File

@ -29,7 +29,7 @@
#define ADJ_EIS LT(_ADJUST,KC_LNG2) #define ADJ_EIS LT(_ADJUST,KC_LNG2)
#define MIS_KAN LT(_MISC,KC_LNG1) #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; extern midi_config_t midi_config;
uint8_t midi_bass_ch = 0, midi_chord_ch = 0; // By default, all use the same channel. 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_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_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_Fs2,
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_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_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_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_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_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 */ /* fake B-system */
@ -220,10 +220,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
MI_Ab_2, MI_Ab2,
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_A2, MI_C3, MI_Eb3, MI_Gb3, MI_A3, MI_C4, MI_Eb4, MI_Gb4, MI_A4, MI_C5, MI_Eb5, MI_Gb5, _______,
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_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_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_B2, MI_D3, MI_F3, MI_Ab3, MI_B3, MI_D4, MI_F4, MI_Ab4, MI_B4, MI_D5, MI_F5
), ),
/* BASS2row */ /* 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_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_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_Fs2,
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_B2, MI_D3, MI_F3, MI_Ab3, MI_B3, MI_D4, MI_F4, MI_Ab4, MI_B4, MI_D5, MI_F5, _______,
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_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_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_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 */
[_C_SYSTEM_ENTIRELY] = LAYOUT( [_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_BNDU, XXXXXXX, XXXXXXX, MI_Db, MI_E, MI_G, MI_Bb, MI_Db1, MI_E1, MI_G1, MI_Bb1, MI_Db2,
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, 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_D_1, MI_F_1, MI_Ab_1, MI_B_1, MI_D_2, MI_F_2, 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_Db_1, MI_E_1, MI_G_1, MI_Bb_1, MI_Db_2, MI_E_2, MI_G_2, 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_C_1, MI_Eb_1, MI_Fs_1, MI_A_1, MI_C_2, MI_Eb_2, MI_Fs_2, MI_A_2, 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_Fs_2, MI_Fs2,
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_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_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_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_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_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 free bass */
[_C_SYSTEM_FREEBASS] = LAYOUT( [_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_Db3, MI_Bb2, MI_G2, MI_E2, MI_Db2, MI_Bb1, MI_G1, MI_E1, MI_Db1, 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_C3, MI_A2, MI_Fs2, MI_Eb2, MI_C2, MI_A1, MI_Fs1, MI_Eb1, MI_C1, 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_B2, MI_Ab2, MI_F2, MI_D2, MI_B1, MI_Ab1, MI_F1, MI_D1, 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_Bb2, MI_G2, MI_E2, MI_Db2, MI_Bb1, MI_G1, MI_E1, MI_Db1, 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_A2, MI_Fs2, MI_Eb2, MI_C2, MI_A1, MI_Fs1, MI_Eb1, MI_C1, MI_A, MI_Fs, MI_Eb, MI_C,
MI_Fs_2, MI_Fs2,
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_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_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_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_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_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 */
[_CHROMATONE] = LAYOUT( [_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_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_C_1, MI_D_1, MI_E_1, MI_Fs_1, MI_Ab_1, MI_Bb_1, MI_C_2, 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_Db_1, MI_Eb_1, MI_F_1, MI_G_1, MI_A_1, MI_B_1, MI_Db_2, 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_C_1, MI_D_1, MI_E_1, MI_Fs_1, MI_Ab_1, MI_Bb_1, MI_C_2, MI_D_2, 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_Db_1, MI_Eb_1, MI_F_1, MI_G_1, MI_A_1, MI_B_1, MI_Db_2, MI_Eb_2, 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_C_2, MI_C2,
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_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_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_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_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_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( [_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_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_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_G5,
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_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_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_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_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_E5, MI_Db5, MI_Bb4, MI_G4, MI_E4, MI_Db4, MI_Bb3, MI_G3, MI_E3, MI_Db3, MI_Bb2, MI_G2
), ),
/* QWERTY */ /* 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, 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, 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 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 #endif // RGBLIGHT_ENABLE
void my_init(void){ void my_init(void){
// Set octave to MI_OCT_0 // Set octave to 0
midi_config.octave = MI_OCT_0 - MIDI_OCTAVE_MIN; 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. // avoid using 127 since it is used as a special number in some sound sources.
midi_config.velocity = MIDI_INITIAL_VELOCITY; midi_config.velocity = MIDI_INITIAL_VELOCITY;
} }
@ -452,7 +452,7 @@ void eeconfig_init_user(void) {
midi_init(); midi_init();
my_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. midi_bass_ch = 0, midi_chord_ch = 0; // By default, all use the same channel.
// UNISON flags // UNISON flags
@ -710,7 +710,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
// MIDI Chord Keycodes, on the left side. // MIDI Chord Keycodes, on the left side.
case MI_CH_Cr ... MI_CH_Br: // Root Notes 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()); my_process_midi4Bass(midi_bass_ch, record, chord_status, chord, root_note, IS_SINGLE_BASS());
#ifdef RGBLIGHT_ENABLE #ifdef RGBLIGHT_ENABLE
keylight_manager(record, HSV_GOLDENROD, keylocation); keylight_manager(record, HSV_GOLDENROD, keylocation);
@ -718,7 +718,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
break; break;
case MI_CH_C ... MI_CH_B: // Major Chords 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 // Root, Major Third, and Fifth Notes
my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 0, 4, 7); my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 0, 4, 7);
#ifdef RGBLIGHT_ENABLE #ifdef RGBLIGHT_ENABLE
@ -727,7 +727,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
break; break;
case MI_CH_Cm ... MI_CH_Bm: // Minor Chord 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 // Root, Minor Third, and Fifth Notes
my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 0, 3, 7); my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 0, 3, 7);
#ifdef RGBLIGHT_ENABLE #ifdef RGBLIGHT_ENABLE
@ -736,7 +736,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
break; break;
case MI_CH_CDom7 ... MI_CH_BDom7: // Dominant 7th Chord 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 // Major Third, Major Fifth, and Minor Seventh Notes
my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 4, 7, 10); my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 4, 7, 10);
#ifdef RGBLIGHT_ENABLE #ifdef RGBLIGHT_ENABLE
@ -745,7 +745,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
break; break;
case MI_CH_CDim7 ... MI_CH_BDim7: // Diminished 7th Chord 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 // Root, Minor Third, and Diminished 5th Note
my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 0, 3, 6); my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 0, 3, 6);
#ifdef RGBLIGHT_ENABLE #ifdef RGBLIGHT_ENABLE

View File

@ -24,7 +24,7 @@
// Long press: go to _FN layer, tap: MUTE // Long press: go to _FN layer, tap: MUTE
#define FN_MUTE LT(_FN, KC_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; extern midi_config_t midi_config;
uint8_t midi_bass_ch = 0, midi_chord_ch = 0; // By default, all use the same channel. 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_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_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_Fs2,
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_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_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_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_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_A2, MI_C3, MI_Eb3, MI_Fs3, MI_A3, MI_C4, MI_Eb4, MI_Fs4, MI_A4, MI_C5, MI_Eb5, MI_Fs5
), ),
/* QWERTY */ /* QWERTY */
@ -200,8 +200,8 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
#endif #endif
void keyboard_post_init_user(void) { void keyboard_post_init_user(void) {
// Set otave to MI_OCT_0 // Set octave to 0
midi_config.octave = MI_OCT_0 - MIDI_OCTAVE_MIN; 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. // avoid using 127 since it is used as a special number in some sound sources.
midi_config.velocity = MIDI_INITIAL_VELOCITY; 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. // MIDI Chord Keycodes, on the left side.
case MI_CH_Cr ... MI_CH_Br: // Root Notes 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); my_process_midi4Bass(midi_bass_ch, record, chord_status, chord, root_note, false);
break; break;
case MI_CH_C ... MI_CH_B: // Major Chords 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 // Root, Major Third, and Fifth Notes
my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 0, 4, 7); my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 0, 4, 7);
break; break;
case MI_CH_Cm ... MI_CH_Bm: // Minor Chord 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 // Root, Minor Third, and Fifth Notes
my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 0, 3, 7); my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 0, 3, 7);
break; break;
case MI_CH_CDom7 ... MI_CH_BDom7: // Dominant 7th Chord 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 // Major Third, Major Fifth, and Minor Seventh Notes
my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 4, 7, 10); my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 4, 7, 10);
break; break;
case MI_CH_CDim7 ... MI_CH_BDim7: // Diminished 7th Chord 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 // Root, Minor Third, and Diminished 5th Note
my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 0, 3, 6); my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 0, 3, 6);
break; break;

View File

@ -24,7 +24,7 @@
// Long press: go to _FN layer, tap: MUTE // Long press: go to _FN layer, tap: MUTE
#define FN_MUTE LT(_FN, KC_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; extern midi_config_t midi_config;
uint8_t midi_bass_ch = 0, midi_chord_ch = 0; // By default, all use the same channel. 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_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_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_Db2, MI_E2, MI_G2, MI_Bb2, MI_Db3, MI_E3, MI_G3, MI_Bb3, MI_Db4, MI_E4, MI_G4, MI_Bb4,
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_Eb2, MI_Fs2, MI_A2, MI_C3, MI_Eb3, MI_Fs3, MI_A3, MI_C4, MI_Eb4, MI_Fs4, MI_A4, MI_C5,
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_F2, MI_Ab2, MI_B2, MI_D3, MI_F3, MI_Ab3, MI_B3, MI_D4, MI_F4, MI_Ab4, MI_B4, MI_D5,
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_G2, MI_Bb2, MI_Db3, MI_E3, MI_G3, MI_Bb3, MI_Db4, MI_E4, MI_G4, MI_Bb4, MI_Db5, MI_E5,
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_A2, MI_C3, MI_Eb3, MI_Fs3, MI_A3, MI_C4, MI_Eb4, MI_Fs4, MI_A4, MI_C5, MI_Eb5, FN_MUTE
), ),
/* QWERTY */ /* QWERTY */
@ -203,8 +203,8 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
#endif #endif
void keyboard_post_init_user(void) { void keyboard_post_init_user(void) {
// Set otave to MI_OCT_0 // Set octave to 0
midi_config.octave = MI_OCT_0 - MIDI_OCTAVE_MIN; 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. // avoid using 127 since it is used as a special number in some sound sources.
midi_config.velocity = MIDI_INITIAL_VELOCITY; 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. // MIDI Chord Keycodes, on the left side.
case MI_CH_Cr ... MI_CH_Br: // Root Notes 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); my_process_midi4Bass(midi_bass_ch, record, chord_status, chord, root_note, false);
break; break;
case MI_CH_C ... MI_CH_B: // Major Chords 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 // Root, Major Third, and Fifth Notes
my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 0, 4, 7); my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 0, 4, 7);
break; break;
case MI_CH_Cm ... MI_CH_Bm: // Minor Chord 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 // Root, Minor Third, and Fifth Notes
my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 0, 3, 7); my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 0, 3, 7);
break; break;
case MI_CH_CDom7 ... MI_CH_BDom7: // Dominant 7th Chord 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 // Major Third, Major Fifth, and Minor Seventh Notes
my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 4, 7, 10); my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 4, 7, 10);
break; break;
case MI_CH_CDim7 ... MI_CH_BDim7: // Diminished 7th Chord 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 // Root, Minor Third, and Diminished 5th Note
my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 0, 3, 6); my_process_midi4TriadChords(midi_chord_ch, record, chord_status, chord, root_note, 0, 3, 6);
break; break;

View File

@ -91,10 +91,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
*/ */
[_MIDI] = LAYOUT( \ [_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, \ QWERTY, MI_C, MI_D, MI_E, MI_F, MI_G, MI_A, MI_B, MI_C1, MI_C2, MI_C3, 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_A3, MI_As3, MI_B3, MI_C3, MI_Cs3, MI_D3, MI_Ds3, MI_E3, MI_F3, MI_Fs3, MI_G3, MI_Gs3, \
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_A2, MI_As2, MI_B2, MI_C2, MI_Cs2, MI_D2, MI_Ds2, MI_E2, MI_F2, MI_Fs2, MI_G2, MI_Gs2, \
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, \ 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 \ MI_A, MI_As, MI_B, MI_C, MI_Cs, MI_D, MI_Ds, MI_E, MI_F, MI_Fs, MI_G, MI_Gs \
), ),

View File

@ -115,7 +115,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_ADJUST] = LAYOUT_planck_mit( [_ADJUST] = LAYOUT_planck_mit(
QK_BOOT, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, _______, _______, _______, 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, 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, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
), ),
@ -123,8 +123,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_MIDI] = LAYOUT_planck_mit( [_MIDI] = LAYOUT_planck_mit(
MI_Cs, MI_Ds, _______, MI_Fs, MI_Gs, MI_As, _______, MI_Cs, MI_Ds, _______, MI_Fs, MI_Gs, 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_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_BNDU, MI_OCTU, MI_TRSU, MI_VELU, _______, _______, _______, _______, _______, MI_ON, MI_CHNU, MI_TOG,
MI_BENDD,MI_OCTD, MI_TRNSD,MI_VELD, MYNAV, MI_SUS, MYNUM, _______, MI_OFF, MI_CHD, MI_ALLOFF MI_BNDD, MI_OCTD, MI_TRSD, MI_VELD, MYNAV, MI_SUST, MYNUM, _______, MI_OFF, MI_CHND, MI_AOFF
) )
}; };

View File

@ -114,9 +114,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |---------------------------------------------------------------------------------------| * |---------------------------------------------------------------------------------------|
*/ */
[6] = LAYOUT( [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_C1, MI_E1, MI_G1, MI_B1, MI_D2, MI_F2, MI_A2, MI_C3, MI_E3, MI_G3, 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_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_TRNSD, MI_TRNSU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO MI_OCTD, MI_OCTU, MI_TRSD, MI_TRSU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
) )
}; };

View File

@ -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, 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, 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, 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 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, RGB_TOG, _______, XXXXXXX,RGB_RMOD, RGB_SPD, RGB_MOD
) )

View File

@ -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, 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, 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, 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 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX,RGB_RMOD, RGB_SPD, RGB_MOD
) )

View File

@ -86,11 +86,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* `----------------------------------' '------''---------------------------' * `----------------------------------' '------''---------------------------'
*/ */
[_MIDI] = LAYOUT( [_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_AOFF, MI_OC0, MI_OC1, MI_OC2, MI_OC3, MI_OC4, MI_OC5, MI_OC6, MI_OC7, _______, _______, MI_TOGG,
_______, MI_Gs, MI_As, _______, MI_Cs_1, MI_Ds_1, _______, MI_Fs_1, MI_Gs_1, MI_As_1, _______, _______, _______, MI_Gs, MI_As, _______, MI_Cs1, MI_Ds1, _______, MI_Fs1, MI_Gs1, MI_As1, _______, _______,
_______, 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_A, MI_B, MI_C1, MI_D1, MI_E1, MI_F1, MI_G1, MI_A1, MI_B1, MI_C2, KC_WORKMAN,
_______, _______, _______, _______, MI_TRNSD, MI_TRNSU, _______, _______, MI_BENDD, MI_BENDU, _______, _______, _______, _______, _______, _______, _______, _______, MI_TRSD, MI_TRSU, _______, _______, MI_BNDD, MI_BNDU, _______, _______, _______, _______,
_______, _______, _______, MI_SUS, MI_OCTD, MI_OCTU, _______, _______, _______, _______ _______, _______, _______, MI_SUST, MI_OCTD, MI_OCTU, _______, _______, _______, _______
), ),
/* LOWER /* LOWER

View File

@ -128,7 +128,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_NATURAL] = LAYOUT( [_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_D, MIDI_CC80, MIDI_CC81, MI_A,
MI_E, MIDI_CC82, MIDI_CC83, MI_B, MI_E, MIDI_CC82, MIDI_CC83, MI_B,
MI_F, MI_OCTD, MI_OCTU, MI_C, 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_Cs, KC_TRNS, KC_TRNS, MI_Gs,
MI_Ds, KC_TRNS, KC_TRNS, MI_As, MI_Ds, KC_TRNS, KC_TRNS, MI_As,
MI_F , KC_TRNS, KC_TRNS, MI_C , 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), KC_TRNS, KC_TRNS),
[_FLAT] = LAYOUT( [_FLAT] = LAYOUT(
MI_B , KC_TRNS, KC_TRNS, MI_Gb, MI_B , KC_TRNS, KC_TRNS, MI_Gb,
MI_Db, KC_TRNS, KC_TRNS, MI_Ab, MI_Db, KC_TRNS, KC_TRNS, MI_Ab,
MI_Eb, KC_TRNS, KC_TRNS, MI_Bb, 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), KC_TRNS, KC_TRNS),
}; };

View File

@ -22,9 +22,9 @@ enum layers {
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_NATURAL] = LAYOUT( [_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_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, MI_F, MI_OCTD, MI_OCTU, MI_C,
MO(_SHARP), MO(_FLAT)), MO(_SHARP), MO(_FLAT)),
[_SHARP] = LAYOUT( [_SHARP] = LAYOUT(

View File

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

View File

@ -52,7 +52,7 @@ inline uint8_t compute_velocity(uint8_t setting) {
} }
void midi_init(void) { 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.transpose = 0;
midi_config.velocity = 127; midi_config.velocity = 127;
midi_config.channel = 0; 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); dprintf("midi octave %d\n", midi_config.octave);
} }
return false; return false;
case MI_OCTD: case QK_MIDI_OCTAVE_DOWN:
if (record->event.pressed && midi_config.octave > 0) { if (record->event.pressed && midi_config.octave > 0) {
midi_config.octave--; midi_config.octave--;
dprintf("midi octave %d\n", midi_config.octave); dprintf("midi octave %d\n", midi_config.octave);
} }
return false; return false;
case MI_OCTU: case QK_MIDI_OCTAVE_UP:
if (record->event.pressed && midi_config.octave < (MIDI_OCTAVE_MAX - MIDI_OCTAVE_MIN)) { if (record->event.pressed && midi_config.octave < (MIDI_OCTAVE_MAX - MIDI_OCTAVE_MIN)) {
midi_config.octave++; midi_config.octave++;
dprintf("midi octave %d\n", 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; return false;
case MIDI_TRANSPOSE_MIN ... MIDI_TRANSPOSE_MAX: case MIDI_TRANSPOSE_MIN ... MIDI_TRANSPOSE_MAX:
if (record->event.pressed) { 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); dprintf("midi transpose %d\n", midi_config.transpose);
} }
return false; return false;
case MI_TRNSD: case QK_MIDI_TRANSPOSE_DOWN:
if (record->event.pressed && midi_config.transpose > (MIDI_TRANSPOSE_MIN - MI_TRNS_0)) { if (record->event.pressed && midi_config.transpose > (MIDI_TRANSPOSE_MIN - QK_MIDI_TRANSPOSE_0)) {
midi_config.transpose--; midi_config.transpose--;
dprintf("midi transpose %d\n", midi_config.transpose); dprintf("midi transpose %d\n", midi_config.transpose);
} }
return false; return false;
case MI_TRNSU: case QK_MIDI_TRANSPOSE_UP:
if (record->event.pressed && midi_config.transpose < (MIDI_TRANSPOSE_MAX - MI_TRNS_0)) { if (record->event.pressed && midi_config.transpose < (MIDI_TRANSPOSE_MAX - QK_MIDI_TRANSPOSE_0)) {
const bool positive = midi_config.transpose > 0; const bool positive = midi_config.transpose > 0;
midi_config.transpose++; midi_config.transpose++;
if (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); dprintf("midi velocity %d\n", midi_config.velocity);
} }
return false; return false;
case MI_VELD: case QK_MIDI_VELOCITY_DOWN:
if (record->event.pressed && midi_config.velocity > 0) { if (record->event.pressed && midi_config.velocity > 0) {
if (midi_config.velocity == 127) { if (midi_config.velocity == 127) {
midi_config.velocity -= 10; 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); dprintf("midi velocity %d\n", midi_config.velocity);
} }
return false; return false;
case MI_VELU: case QK_MIDI_VELOCITY_UP:
if (record->event.pressed && midi_config.velocity < 127) { if (record->event.pressed && midi_config.velocity < 127) {
if (midi_config.velocity < 115) { if (midi_config.velocity < 115) {
midi_config.velocity += 13; 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); dprintf("midi channel %d\n", midi_config.channel);
} }
return false; return false;
case MI_CHD: case QK_MIDI_CHANNEL_DOWN:
if (record->event.pressed) { if (record->event.pressed) {
midi_config.channel--; midi_config.channel--;
dprintf("midi channel %d\n", midi_config.channel); dprintf("midi channel %d\n", midi_config.channel);
} }
return false; return false;
case MI_CHU: case QK_MIDI_CHANNEL_UP:
if (record->event.pressed) { if (record->event.pressed) {
midi_config.channel++; midi_config.channel++;
dprintf("midi channel %d\n", midi_config.channel); dprintf("midi channel %d\n", midi_config.channel);
} }
return false; return false;
case MI_ALLOFF: case QK_MIDI_ALL_NOTES_OFF:
if (record->event.pressed) { if (record->event.pressed) {
midi_send_cc(&midi_device, midi_config.channel, 0x7B, 0); midi_send_cc(&midi_device, midi_config.channel, 0x7B, 0);
dprintf("midi all notes off\n"); dprintf("midi all notes off\n");
} }
return false; return false;
case MI_SUS: case QK_MIDI_SUSTAIN:
midi_send_cc(&midi_device, midi_config.channel, 0x40, record->event.pressed ? 127 : 0); midi_send_cc(&midi_device, midi_config.channel, 0x40, record->event.pressed ? 127 : 0);
dprintf("midi sustain %d\n", record->event.pressed); dprintf("midi sustain %d\n", record->event.pressed);
return false; return false;
case MI_PORT: case QK_MIDI_PORTAMENTO:
midi_send_cc(&midi_device, midi_config.channel, 0x41, record->event.pressed ? 127 : 0); midi_send_cc(&midi_device, midi_config.channel, 0x41, record->event.pressed ? 127 : 0);
dprintf("midi portamento %d\n", record->event.pressed); dprintf("midi portamento %d\n", record->event.pressed);
return false; return false;
case MI_SOST: case QK_MIDI_SOSTENUTO:
midi_send_cc(&midi_device, midi_config.channel, 0x42, record->event.pressed ? 127 : 0); midi_send_cc(&midi_device, midi_config.channel, 0x42, record->event.pressed ? 127 : 0);
dprintf("midi sostenuto %d\n", record->event.pressed); dprintf("midi sostenuto %d\n", record->event.pressed);
return false; return false;
case MI_SOFT: case QK_MIDI_SOFT:
midi_send_cc(&midi_device, midi_config.channel, 0x43, record->event.pressed ? 127 : 0); midi_send_cc(&midi_device, midi_config.channel, 0x43, record->event.pressed ? 127 : 0);
dprintf("midi soft %d\n", record->event.pressed); dprintf("midi soft %d\n", record->event.pressed);
return false; return false;
case MI_LEG: case QK_MIDI_LEGATO:
midi_send_cc(&midi_device, midi_config.channel, 0x43, record->event.pressed ? 127 : 0); midi_send_cc(&midi_device, midi_config.channel, 0x44, record->event.pressed ? 127 : 0);
dprintf("midi legato %d\n", record->event.pressed); dprintf("midi legato %d\n", record->event.pressed);
return false; return false;
case MI_MOD: case QK_MIDI_MODULATION:
midi_modulation_step = record->event.pressed ? 1 : -1; midi_modulation_step = record->event.pressed ? 1 : -1;
return false; return false;
case MI_MODSD: case QK_MIDI_MODULATION_SPEED_DOWN:
if (record->event.pressed) { if (record->event.pressed) {
midi_config.modulation_interval++; midi_config.modulation_interval++;
// prevent overflow // 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); dprintf("midi modulation interval %d\n", midi_config.modulation_interval);
} }
return false; return false;
case MI_MODSU: case QK_MIDI_MODULATION_SPEED_UP:
if (record->event.pressed && midi_config.modulation_interval > 0) { if (record->event.pressed && midi_config.modulation_interval > 0) {
midi_config.modulation_interval--; midi_config.modulation_interval--;
dprintf("midi modulation interval %d\n", midi_config.modulation_interval); dprintf("midi modulation interval %d\n", midi_config.modulation_interval);
} }
return false; return false;
case MI_BENDD: case QK_MIDI_PITCH_BEND_DOWN:
if (record->event.pressed) { if (record->event.pressed) {
midi_send_pitchbend(&midi_device, midi_config.channel, -0x2000); midi_send_pitchbend(&midi_device, midi_config.channel, -0x2000);
dprintf("midi pitchbend channel:%d amount:%d\n", 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); dprintf("midi pitchbend channel:%d amount:%d\n", midi_config.channel, 0);
} }
return false; return false;
case MI_BENDU: case QK_MIDI_PITCH_BEND_UP:
if (record->event.pressed) { if (record->event.pressed) {
midi_send_pitchbend(&midi_device, midi_config.channel, 0x1fff); midi_send_pitchbend(&midi_device, midi_config.channel, 0x1fff);
dprintf("midi pitchbend channel:%d amount:%d\n", midi_config.channel, 0x1fff); dprintf("midi pitchbend channel:%d amount:%d\n", midi_config.channel, 0x1fff);

View File

@ -120,17 +120,17 @@ bool process_music(uint16_t keycode, keyrecord_t *record) {
return false; return false;
} }
if (keycode == MI_ON && record->event.pressed) { if (keycode == QK_MIDI_ON && record->event.pressed) {
midi_on(); midi_on();
return false; return false;
} }
if (keycode == MI_OFF && record->event.pressed) { if (keycode == QK_MIDI_OFF && record->event.pressed) {
midi_off(); midi_off();
return false; return false;
} }
if (keycode == MI_TOG && record->event.pressed) { if (keycode == QK_MIDI_TOGGLE && record->event.pressed) {
if (midi_activated) { if (midi_activated) {
midi_off(); midi_off();
} else { } else {

View File

@ -193,16 +193,16 @@
#define QK_SWAP_HANDS_GET_TAP_KEYCODE(kc) ((kc)&0xFF) #define QK_SWAP_HANDS_GET_TAP_KEYCODE(kc) ((kc)&0xFF)
// MIDI aliases // MIDI aliases
#define MIDI_TONE_MIN MI_C #define MIDI_TONE_MIN QK_MIDI_NOTE_C_0
#define MIDI_TONE_MAX MI_B_5 #define MIDI_TONE_MAX QK_MIDI_NOTE_B_5
#define MIDI_OCTAVE_MIN MI_OCT_N2 #define MIDI_OCTAVE_MIN QK_MIDI_OCTAVE_N2
#define MIDI_OCTAVE_MAX MI_OCT_7 #define MIDI_OCTAVE_MAX QK_MIDI_OCTAVE_7
#define MIDI_TRANSPOSE_MIN MI_TRNS_N6 #define MIDI_TRANSPOSE_MIN QK_MIDI_TRANSPOSE_N6
#define MIDI_TRANSPOSE_MAX MI_TRNS_6 #define MIDI_TRANSPOSE_MAX QK_MIDI_TRANSPOSE_6
#define MIDI_VELOCITY_MIN MI_VEL_0 #define MIDI_VELOCITY_MIN QK_MIDI_VELOCITY_0
#define MIDI_VELOCITY_MAX MI_VEL_10 #define MIDI_VELOCITY_MAX QK_MIDI_VELOCITY_10
#define MIDI_CHANNEL_MIN MI_CH1 #define MIDI_CHANNEL_MIN QK_MIDI_CHANNEL_1
#define MIDI_CHANNEL_MAX MI_CH16 #define MIDI_CHANNEL_MAX QK_MIDI_CHANNEL_16
// TODO: somehow migrate sequencer to DD? // TODO: somehow migrate sequencer to DD?
#include "sequencer.h" #include "sequencer.h"

View File

@ -138,6 +138,136 @@
#define MUV_IN QK_AUDIO_VOICE_NEXT #define MUV_IN QK_AUDIO_VOICE_NEXT
#define MUV_DE QK_AUDIO_VOICE_PREVIOUS #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_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 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.") // #define RESET _Static_assert(false, "The RESET keycode has been removed from QMK.. Please remove use from your keymap.")

View File

@ -371,14 +371,14 @@ void setUpMatrixScanSequencerTest(void) {
sequencer_config.resolution = SQ_RES_16; sequencer_config.resolution = SQ_RES_16;
// Configure the notes for each track // Configure the notes for each track
sequencer_config.track_notes[0] = MI_C; sequencer_config.track_notes[0] = QK_MIDI_NOTE_C_0;
sequencer_config.track_notes[1] = MI_D; sequencer_config.track_notes[1] = QK_MIDI_NOTE_D_0;
sequencer_config.track_notes[2] = MI_E; sequencer_config.track_notes[2] = QK_MIDI_NOTE_E_0;
sequencer_config.track_notes[3] = MI_F; sequencer_config.track_notes[3] = QK_MIDI_NOTE_F_0;
sequencer_config.track_notes[4] = MI_G; sequencer_config.track_notes[4] = QK_MIDI_NOTE_G_0;
sequencer_config.track_notes[5] = MI_A; sequencer_config.track_notes[5] = QK_MIDI_NOTE_A_0;
sequencer_config.track_notes[6] = MI_B; sequencer_config.track_notes[6] = QK_MIDI_NOTE_B_0;
sequencer_config.track_notes[7] = MI_C; sequencer_config.track_notes[7] = QK_MIDI_NOTE_C_0;
// Turn on some steps // Turn on some steps
sequencer_config.steps[0] = (1 << 0); sequencer_config.steps[0] = (1 << 0);
@ -389,7 +389,7 @@ TEST_F(SequencerTest, TestMatrixScanSequencerShouldAttackFirstTrackOfFirstStep)
setUpMatrixScanSequencerTest(); setUpMatrixScanSequencerTest();
sequencer_task(); sequencer_task();
EXPECT_EQ(last_noteon, MI_C); EXPECT_EQ(last_noteon, QK_MIDI_NOTE_C_0);
EXPECT_EQ(last_noteoff, 0); EXPECT_EQ(last_noteoff, 0);
} }
@ -499,7 +499,7 @@ TEST_F(SequencerTest, TestMatrixScanSequencerShouldReleaseFirstTrackFirstStep) {
sequencer_task(); sequencer_task();
EXPECT_EQ(last_noteon, 0); EXPECT_EQ(last_noteon, 0);
EXPECT_EQ(last_noteoff, MI_C); EXPECT_EQ(last_noteoff, QK_MIDI_NOTE_C_0);
} }
TEST_F(SequencerTest, TestMatrixScanSequencerShouldEnterPausePhaseAfterRelease) { TEST_F(SequencerTest, TestMatrixScanSequencerShouldEnterPausePhaseAfterRelease) {
@ -565,7 +565,7 @@ TEST_F(SequencerTest, TestMatrixScanSequencerShouldProcessSecondTrackOnTime) {
advance_time(SEQUENCER_TRACK_THROTTLE); advance_time(SEQUENCER_TRACK_THROTTLE);
sequencer_task(); sequencer_task();
EXPECT_EQ(last_noteon, MI_D); EXPECT_EQ(last_noteon, QK_MIDI_NOTE_D_0);
EXPECT_EQ(last_noteoff, 0); EXPECT_EQ(last_noteoff, 0);
} }

View File

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