示例#1
0
    private List <Note> ShiftNotesToPlaybackPosition(List <Note> notes)
    {
        Note firstNote = notes.FindMinElement(note => note.StartBeat);
        int  playbackPositionInBeats = (int)Math.Round(songAudioPlayer.GetCurrentBeat(true));
        int  difference = playbackPositionInBeats - firstNote.StartBeat;

        if (difference == 0)
        {
            return(notes);
        }

        return(notes
               .Select(note => new Note(
                           note.Type,
                           note.StartBeat + difference,
                           note.Length,
                           note.TxtPitch,
                           note.Text))
               .ToList());
    }