score_staff_t *bass;
score_chord_t *chord;
- /* This is for a "computer keyboard". Any "piano keyboard" key
- * knows its own octave. */
+ /* The word "keyboard" here is referring to a "computer
+ * keyboard". Any "piano keyboard" key knows its own octave and
+ * accidental already. */
int keyboard_octave;
+ score_pitch_accidental_t keyboard_accidental;
int midi_fd;
snd_midi_event_t *snd_midi_event;
case GDK_KEY_space:
scherzo_press_pedal (scherzo);
break;
+ case GDK_KEY_Up:
+ if (scherzo->keyboard_accidental < SCORE_PITCH_ACCIDENTAL_DOUBLE_SHARP)
+ scherzo->keyboard_accidental++;
+ break;
+ case GDK_KEY_Down:
+ if (scherzo->keyboard_accidental > SCORE_PITCH_ACCIDENTAL_DOUBLE_FLAT)
+ scherzo->keyboard_accidental--;
+ break;
}
- pitch = SCORE_PITCH (pitch_name, SCORE_PITCH_ACCIDENTAL_NATURAL);
+ pitch = SCORE_PITCH (pitch_name, scherzo->keyboard_accidental);
if ((key->keyval >= GDK_KEY_A && key->keyval <= GDK_KEY_G) ||
(key->keyval >= GDK_KEY_a && key->keyval <= GDK_KEY_g))
break;
}
- pitch = SCORE_PITCH (pitch_name, SCORE_PITCH_ACCIDENTAL_NATURAL);
+ pitch = SCORE_PITCH (pitch_name, scherzo->keyboard_accidental);
if ((key->keyval >= GDK_KEY_A && key->keyval <= GDK_KEY_G) ||
(key->keyval >= GDK_KEY_a && key->keyval <= GDK_KEY_g))
scherzo.chord = NULL;
- /* Default to octave 4 for computer keyboard keypresses. */
+ /* Default to octave 4 and natural for computer keyboard keypresses. */
scherzo.keyboard_octave = 4;
+ scherzo.keyboard_accidental = SCORE_PITCH_ACCIDENTAL_NATURAL;
note_group_init (scherzo.ctx, &scherzo.notes_pressed);
note_group_init (scherzo.ctx, &scherzo.notes_pedaled);