public TabChord(TabFile tabFile, Note note, SngFile sngFile)
     : base(tabFile, note)
 {
     ChordTemplate chord = sngFile.ChordTemplates[note.ChordId];
     ChordName = chord.Name;
     Frets = new int[TabFile.StringCount];
     Frets[0] = chord.Fret0;
     Frets[1] = chord.Fret1;
     Frets[2] = chord.Fret2;
     Frets[3] = chord.Fret3;
     Frets[4] = chord.Fret4;
     Frets[5] = chord.Fret5;
 }
 public TabNote(TabFile tabFile, Note note)
     : base(tabFile, note.Time)
 {
     String = note.String;
     Fret = note.Fret;
     Bend = note.Bend;
     HammerOn = note.HammerOn != 0 ? true : false;
     Harmonic = note.Harmonic != 0 ? true : false;
     PalmMute = note.PalmMute != 0 ? true : false;
     PullOff = note.PullOff != 0 ? true : false;
     SlideTo = note.SlideTo;
     SustainTime = note.SustainTime;
     Tremolo = note.Tremolo != 0 ? true : false;
 }
        public SongLevel(BinaryReader br, int version)
        {
            Difficulty = br.ReadInt32();
            AnchorCount = br.ReadInt32();
            Anchors = new Anchor[AnchorCount];
            for (int i = 0; i < AnchorCount; ++i)
            {
                Anchors[i] = new Anchor(br);
            }

            SlideCount = br.ReadInt32();
            Slides = new Slide[SlideCount];
            for (int i = 0; i < SlideCount; ++i)
            {
                Slides[i] = new Slide(br);
            }

            HandShapeCount = br.ReadInt32();
            HandShapes = new HandShape[HandShapeCount];
            for (int i = 0; i < HandShapeCount; ++i)
            {
                HandShapes[i] = new HandShape(br);
            }

            NoteCount = br.ReadInt32();
            Notes = new Note[NoteCount];
            for (int i = 0; i < NoteCount; ++i)
            {
                Notes[i] = new Note(br, version);
            }

            PhraseCount = br.ReadInt32();
            AverageNotesPerPhrase = new float[PhraseCount];
            for (int i = 0; i < PhraseCount; ++i)
            {
                AverageNotesPerPhrase[i] = br.ReadSingle();
            }

            PhraseIterationCount = br.ReadInt32();
            NotesPerIteration1 = new Int32[PhraseIterationCount];
            for (int i = 0; i < NotesPerIteration1.Count(); ++i)
            {
                NotesPerIteration1[i] = br.ReadInt32();
            }

            PhraseIterationCount = br.ReadInt32();
            NotesPerIteration2 = new Int32[PhraseIterationCount];
            for (int i = 0; i < NotesPerIteration2.Count(); ++i)
            {
                NotesPerIteration2[i] = br.ReadInt32();
            }
        }