コード例 #1
0
        /// <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;
        }
コード例 #2
0
        /// <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;
        }
コード例 #3
0
 /// <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);
     }
 }
コード例 #4
0
        /// <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;
        }