]> git.cworth.org Git - scherzo/blobdiff - scherzo.c
Fix in-key note spelling for MIDI input
[scherzo] / scherzo.c
index 665795977fcf4e2d5c9d397fe3b1579cab9af3ba..dacefa8e8e8e186ec9fa6f20b9f79f05ab34e420 100644 (file)
--- 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);