public override void PlayNote(Note note) { var harpNote = HarpNote.From(note); if (RequiresAction(harpNote)) { harpNote = OptimizeNote(harpNote); PressNote(NoteMap[harpNote.Key]); } }
private HarpNote OptimizeNote(HarpNote note) { if (note.Equals(new HarpNote(HarpNote.Keys.Note1, HarpNote.Octaves.Middle)) && _currentOctave == HarpNote.Octaves.Low) { note = new HarpNote(HarpNote.Keys.Note8, HarpNote.Octaves.Low); } else if (note.Equals(new HarpNote(HarpNote.Keys.Note1, HarpNote.Octaves.High)) && _currentOctave == HarpNote.Octaves.Middle) { note = new HarpNote(HarpNote.Keys.Note8, HarpNote.Octaves.Middle); } return(note); }
public override void GoToOctave(Note note) { var harpNote = HarpNote.From(note); if (RequiresAction(harpNote)) { harpNote = OptimizeNote(harpNote); while (_currentOctave != harpNote.Octave) { if (_currentOctave < harpNote.Octave) { IncreaseOctave(); } else { DecreaseOctave(); } } } }
protected bool Equals(HarpNote other) { return(Key == other.Key && Octave == other.Octave); }
private static bool RequiresAction(HarpNote harpNote) { return(harpNote.Key != HarpNote.Keys.None); }