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.
if (pitch != PITCH_NOT_A_PITCH)
{
if (pitch != PITCH_NOT_A_PITCH)
{
- pitch = scherzo_key_spell_pitch (&scherzo->key, pitch);
-
scherzo_press_note (scherzo, pitch);
return TRUE;
scherzo_press_note (scherzo, pitch);
return TRUE;
if (pitch != PITCH_NOT_A_PITCH)
{
if (pitch != PITCH_NOT_A_PITCH)
{
- pitch = scherzo_key_spell_pitch (&scherzo->key, pitch);
-
scherzo_release_note (scherzo, pitch);
return TRUE;
scherzo_release_note (scherzo, pitch);
return TRUE;
+ pitch = scherzo_key_spell_pitch (&scherzo->key, pitch);
+
#define NUM_RECENT_PITCHES 7
static pitch_t recent_pitches[NUM_RECENT_PITCHES];
#define NUM_RECENT_PITCHES 7
static pitch_t recent_pitches[NUM_RECENT_PITCHES];
static void
scherzo_release_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);
pitch_group_remove_pitch_enharmonic (&scherzo->notes_pressed, pitch);
scherzo_update_notes_and_chord (scherzo);