diff options
-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; |