mirror of
https://github.com/Keychron/qmk_firmware.git
synced 2024-11-29 12:17:50 +06:00
Fix wrong key when "Music Map" is used with MAJOR_MODE. (#11234)
With MAJOR_MODE (= major scale), keys in one octave is not 12 but 7. To solve this problem, change divisor number from 12 to 7 at %(Modulo) and /(Division). NOTE: The last 12 represents half step keys in one octave for pitch calculation.
This commit is contained in:
parent
974d3f1ffd
commit
71f067a60e
|
@ -191,7 +191,7 @@ bool process_music(uint16_t keycode, keyrecord_t *record) {
|
||||||
note = music_starting_note + music_offset + 36 + music_map[record->event.key.row][record->event.key.col];
|
note = music_starting_note + music_offset + 36 + music_map[record->event.key.row][record->event.key.col];
|
||||||
} else {
|
} else {
|
||||||
uint8_t position = music_map[record->event.key.row][record->event.key.col];
|
uint8_t position = music_map[record->event.key.row][record->event.key.col];
|
||||||
note = music_starting_note + music_offset + 36 + SCALE[position % 12] + (position / 12) * 12;
|
note = music_starting_note + music_offset + 36 + SCALE[position % 7] + (position / 7) * 12;
|
||||||
}
|
}
|
||||||
# else
|
# else
|
||||||
if (music_mode == MUSIC_MODE_CHROMATIC)
|
if (music_mode == MUSIC_MODE_CHROMATIC)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user