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:
		
							parent
							
								
									442e7653cc
								
							
						
					
					
						commit
						8b658dcc9a
					
				
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @ -81,159 +81,159 @@ 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`  |                       | | ||||||
|  | |||||||
							
								
								
									
										290
									
								
								docs/keycodes.md
									
									
									
									
									
								
							
							
						
						
									
										290
									
								
								docs/keycodes.md
									
									
									
									
									
								
							| @ -443,151 +443,151 @@ 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 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -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( | ||||||
|  | |||||||
| @ -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; | ||||||
|  | |||||||
| @ -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; | ||||||
|  | |||||||
| @ -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; | ||||||
|  | |||||||
| @ -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; | ||||||
|  | |||||||
| @ -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); | ||||||
|  | |||||||
| @ -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); | ||||||
|  | |||||||
| @ -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); | ||||||
|  | |||||||
| @ -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); | ||||||
|  | |||||||
| @ -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
 | ||||||
|  | |||||||
| @ -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( | ||||||
|  | |||||||
| @ -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 | ||||||
|   ) |   ) | ||||||
| 
 | 
 | ||||||
| }; | }; | ||||||
|  | |||||||
| @ -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)
 | ||||||
|  | |||||||
| @ -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 | ||||||
|  | |||||||
| @ -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 | ||||||
|  | |||||||
| @ -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; | ||||||
|  | |||||||
| @ -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; | ||||||
|  | |||||||
| @ -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 | ||||||
|  | |||||||
| @ -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 | ||||||
|  | |||||||
| @ -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; | ||||||
|  | |||||||
| @ -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; | ||||||
|  | |||||||
| @ -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 \ | ||||||
| ), | ), | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -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 | ||||||
| ) | ) | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -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 | ||||||
|   ) |   ) | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -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 | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -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 | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -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
 | ||||||
|  | |||||||
| @ -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), | ||||||
| }; | }; | ||||||
|  | |||||||
| @ -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( | ||||||
|  | |||||||
| @ -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) | ||||||
| 
 |  | ||||||
|  | |||||||
| @ -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); | ||||||
|  | |||||||
| @ -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 { | ||||||
|  | |||||||
| @ -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" | ||||||
|  | |||||||
| @ -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.")
 | ||||||
|  | |||||||
| @ -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); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -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
 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user