private NoteDataHolder SongLineToNoteData(string fileLine, float secsPerBeat) { float numberOfBeatsToWait; string[] parts = fileLine.Split('.'); if (parts[0].Contains("/")) { string[] timeToWaitParts = parts[0].Split('/'); float numerator = float.Parse(timeToWaitParts[0]); float denominator = float.Parse(timeToWaitParts[1]); numberOfBeatsToWait = numerator / denominator; } else { numberOfBeatsToWait = float.Parse(parts[0]); } NoteDirection dir; NoteButton but; if (parts[1] != "") { dir = Note.CharToDirection(parts[1][0]); but = Note.CharToButton(parts[1][1]); } else { Debug.Log("Encountered a wait for " + numberOfBeatsToWait); dir = NoteDirection.NONE; but = NoteButton.WAIT; } NoteDataHolder note = new NoteDataHolder(); note.button = but; note.direction = dir; note.noteLength = secsPerBeat * numberOfBeatsToWait; return(note); }