From f492c33c1fd33c1dc0a2c892753300c7225dbd51 Mon Sep 17 00:00:00 2001 From: Carl Worth Date: Tue, 1 Oct 2013 11:18:29 -0700 Subject: [PATCH] Fix in-key note spelling for MIDI input I originally wrote and tested the key-guided note spelling code while at the computer, and not near a MIDI keyboard. So I failed to notice that I added this code to a code path that only affected computer keyboard input. Shift this over to affect all notes pressed. --- scherzo.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/scherzo.c b/scherzo.c index 6657959..dacefa8 100644 --- a/scherzo.c +++ b/scherzo.c @@ -280,8 +280,6 @@ on_key_press_event (GtkWidget *widget, if (pitch != PITCH_NOT_A_PITCH) { - pitch = scherzo_key_spell_pitch (&scherzo->key, pitch); - scherzo_press_note (scherzo, pitch); return TRUE; @@ -389,8 +387,6 @@ on_key_release_event (unused (GtkWidget *widget), if (pitch != PITCH_NOT_A_PITCH) { - pitch = scherzo_key_spell_pitch (&scherzo->key, pitch); - scherzo_release_note (scherzo, pitch); return TRUE; @@ -1007,6 +1003,8 @@ scherzo_press_note (scherzo_t *scherzo, pitch_t pitch) { int i; + pitch = scherzo_key_spell_pitch (&scherzo->key, pitch); + #define NUM_RECENT_PITCHES 7 static pitch_t recent_pitches[NUM_RECENT_PITCHES]; @@ -1033,6 +1031,8 @@ scherzo_press_note (scherzo_t *scherzo, pitch_t pitch) static void scherzo_release_note (scherzo_t *scherzo, pitch_t pitch) { + pitch = scherzo_key_spell_pitch (&scherzo->key, pitch); + pitch_group_remove_pitch_enharmonic (&scherzo->notes_pressed, pitch); scherzo_update_notes_and_chord (scherzo); -- 2.43.0