private void ReadNotes(Track track, Beat.Beat beat, Duration duration, NoteEffect effect) { /* First byte lists played strings: * * - *0x01*: 7th string * - *0x02*: 6th string * - *0x04*: 5th string * - *0x08*: 4th string * - *0x10*: 3th string * - *0x20*: 2th string * - *0x40*: 1th string * - *0x80*: *blank**/ var stringFlags = GpBase.ReadByte()[0]; foreach (var str in track.Strings) { if ((stringFlags & 1 << (7 - str.Number)) != 0) { var note = new Note(beat); beat.Notes.Add(note); ReadNote(note, str, track); } beat.Duration = duration; } }
private Beat.Beat GetBeat(Voice voice, int start) { for (int x = voice.Beats.Count - 1; x >= 0; x--) { if (voice.Beats[x].Start == start) { return(voice.Beats[x]); } } var newBeat = new Beat.Beat(voice); newBeat.Start = start; voice.Beats.Add(newBeat); return(newBeat); }