diff options
Diffstat (limited to 'quantum')
| -rw-r--r-- | quantum/process_keycode/process_music.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/quantum/process_keycode/process_music.c b/quantum/process_keycode/process_music.c index c8f3ddb90..2d52e47a7 100644 --- a/quantum/process_keycode/process_music.c +++ b/quantum/process_keycode/process_music.c | |||
| @@ -6,6 +6,7 @@ int offset = 7; | |||
| 6 | 6 | ||
| 7 | // music sequencer | 7 | // music sequencer |
| 8 | static bool music_sequence_recording = false; | 8 | static bool music_sequence_recording = false; |
| 9 | static bool music_sequence_recorded = false; | ||
| 9 | static bool music_sequence_playing = false; | 10 | static bool music_sequence_playing = false; |
| 10 | static float music_sequence[16] = {0}; | 11 | static float music_sequence[16] = {0}; |
| 11 | static uint8_t music_sequence_count = 0; | 12 | static uint8_t music_sequence_count = 0; |
| @@ -77,6 +78,7 @@ bool process_music(uint16_t keycode, keyrecord_t *record) { | |||
| 77 | if (keycode == KC_LCTL && record->event.pressed) { // Start recording | 78 | if (keycode == KC_LCTL && record->event.pressed) { // Start recording |
| 78 | stop_all_notes(); | 79 | stop_all_notes(); |
| 79 | music_sequence_recording = true; | 80 | music_sequence_recording = true; |
| 81 | music_sequence_recorded = false; | ||
| 80 | music_sequence_playing = false; | 82 | music_sequence_playing = false; |
| 81 | music_sequence_count = 0; | 83 | music_sequence_count = 0; |
| 82 | return false; | 84 | return false; |
| @@ -84,12 +86,15 @@ bool process_music(uint16_t keycode, keyrecord_t *record) { | |||
| 84 | 86 | ||
| 85 | if (keycode == KC_LALT && record->event.pressed) { // Stop recording/playing | 87 | if (keycode == KC_LALT && record->event.pressed) { // Stop recording/playing |
| 86 | stop_all_notes(); | 88 | stop_all_notes(); |
| 89 | if (music_sequence_recording) { // was recording | ||
| 90 | music_sequence_recorded = true; | ||
| 91 | } | ||
| 87 | music_sequence_recording = false; | 92 | music_sequence_recording = false; |
| 88 | music_sequence_playing = false; | 93 | music_sequence_playing = false; |
| 89 | return false; | 94 | return false; |
| 90 | } | 95 | } |
| 91 | 96 | ||
| 92 | if (keycode == KC_LGUI && record->event.pressed) { // Start playing | 97 | if (keycode == KC_LGUI && record->event.pressed && music_sequence_recorded) { // Start playing |
| 93 | stop_all_notes(); | 98 | stop_all_notes(); |
| 94 | music_sequence_recording = false; | 99 | music_sequence_recording = false; |
| 95 | music_sequence_playing = true; | 100 | music_sequence_playing = true; |
