Esempio n. 1
0
        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;
            }
        }
Esempio n. 2
0
        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);
        }