private static SourceScore ToSourceScore(ScoreObject scoreObject, ReadSourceOptions options) { var score = new SourceScore(); var scoreIndex = options.ScoreIndex; var difficulty = (Difficulty)scoreIndex; var trackType = ScoreHelper.MapDifficultyToTrackType(difficulty); var tracks = ScoreHelper.GetTrackIndicesFromTrackType(trackType); score.Notes = scoreObject.NoteEvents .Where(nd => Array.IndexOf(tracks, nd.Track) >= 0) .Select(n => ToNote(n, tracks)) .Where(n => n != null).ToArray(); score.Conductors = scoreObject.ConductorEvents.Select(ToConductor).ToArray(); score.MusicOffset = scoreObject.BgmOffset; score.ScoreIndex = scoreIndex; score.TrackCount = tracks.Length; return(score); }