private void CheckPerfectlySungNote(Sentence sentence, RecordedNote lastRecordedNote) { if (sentence == null || lastRecordedNote == null) { return; } Note perfectlySungNote = sentence.Notes.Where(note => note.MidiNote == lastRecordedNote.RoundedMidiNote && note.StartBeat >= lastRecordedNote.StartBeat && note.EndBeat <= lastRecordedNote.EndBeat).FirstOrDefault(); if (perfectlySungNote != null) { playerUiController.CreatePerfectNoteEffect(perfectlySungNote); } }
private void CheckPerfectlySungNote(RecordedNote lastRecordedNote) { if (lastRecordedNote == null || lastRecordedNote.TargetNote == null) { return; } Note targetNote = lastRecordedNote.TargetNote; int targetMidiNoteRelative = MidiUtils.GetRelativePitch(targetNote.MidiNote); int recordedMidiNoteRelative = MidiUtils.GetRelativePitch(lastRecordedNote.RoundedMidiNote); bool isPerfect = ((targetMidiNoteRelative == recordedMidiNoteRelative) && (targetNote.StartBeat >= lastRecordedNote.StartBeat) && (targetNote.EndBeat <= lastRecordedNote.EndBeat)); if (isPerfect) { playerUiController.CreatePerfectNoteEffect(targetNote); } }