/// <summary> /// Creates the bars. /// </summary> /// <param name="gpTrack">The gp track.</param> /// <param name="masterBars">The master bars.</param> /// <returns></returns> private static TabLib.Bar[] CreateBars(alphatab.model.Track gpTrack, TabLib.MasterBar[] masterBars) { var bars = new TabLib.Bar[gpTrack.bars.length]; for (var i = 0; i < gpTrack.bars.length; i++) { var gpBar = gpTrack.bars[i] as alphatab.model.Bar; if (gpBar != null && !gpBar.isEmpty()) { var bar = new TabLib.Bar(); bar.Index = gpBar.index; bar.Beats = CreateBeats(gpBar, masterBars[i]); bars[i] = bar; } } return bars; }
/// <summary> /// Creates the beats. /// </summary> /// <param name="gpVoice">The gp voice.</param> /// <param name="masterBar">The master bar.</param> /// <returns></returns> private static TabLib.Beat[] CreateBeats(alphatab.model.Bar gpBar, TabLib.MasterBar masterBar) { var gpVoice = gpBar.voices[0] as alphatab.model.Voice; var beats = new TabLib.Beat[gpVoice.beats.length]; for (var i = 0; i < gpVoice.beats.length; i++) { var gpBeat = gpVoice.beats[i] as alphatab.model.Beat; if (gpBeat != null && !gpBeat.isEmpty) { var beat = new TabLib.Beat(); beat.Index = gpBeat.index; beat.Duration = GetDuration(gpBeat.duration); beat.Notes = CreateNotes(gpBeat); beat.Text = gpBeat.text; beat.Dots = gpBeat.dots; beat.TupletDenominator = gpBeat.tupletDenominator; beat.TupletNumerator= gpBeat.tupletNumerator; beat.CalculateDuration(masterBar.Tempo); beats[i] = beat; } } return beats; }
/// <summary> /// Serializes the score. /// </summary> /// <param name="score">The score.</param> private static void SerializeScore(TabLib.Score score) { using (StreamWriter writer = File.CreateText(xmlFile)) { var serializer = new XmlSerializer(typeof(TabLib.Score)); serializer.Serialize(writer, score); } }
/// <summary> /// Creates the tracks. /// </summary> /// <param name="gpScore">The gp score.</param> /// <param name="masterBars">The master bars.</param> /// <returns></returns> private static TabLib.Track[] CreateTracks(alphatab.model.Score gpScore, TabLib.MasterBar[] masterBars) { var tracks = new TabLib.Track[gpScore.tracks.length]; for (var i = 0; i < gpScore.tracks.length; i++) { var gpTrack = gpScore.tracks[i] as alphatab.model.Track; if (gpTrack != null) { var track = new TabLib.Track(); track.Index = gpTrack.index; track.Name = gpTrack.name; track.Bars = CreateBars(gpTrack, masterBars); tracks[i] = track; } } return tracks; }