private void InternalOpenFile(string file)
        {
            try
            {
                // load the score from the filesystem
                Score = ScoreLoader.LoadScore(file);

                trackDetails.Controls.Clear();
                trackBars.Controls.Clear();
                for (int i = Score.Tracks.Count - 1; i >= 0; i--)
                {
                    TrackDetailsControl details = new TrackDetailsControl(Score.Tracks[i]);
                    details.Dock   = DockStyle.Top;
                    details.Height = 25;
                    trackDetails.Controls.Add(details);
                    details.Selected += details_Click;

                    TrackBarsControl bars = new TrackBarsControl(Score.Tracks[i]);
                    bars.Dock = DockStyle.Top;
                    trackBars.Controls.Add(bars);
                }

                UpdateSelectedTrack();
            }
            catch (Exception e)
            {
                MessageBox.Show(this, e.Message, "An error during opening the file occured", MessageBoxButtons.OK,
                                MessageBoxIcon.Error);
            }
        }
        static void Main(string[] args)
        {
            if (args.Length != 1)
            {
                Console.WriteLine("Usage AlphaTab.ScoreDump.exe Path");
                return;
            }

            Score score = ScoreLoader.loadScore(args[0]);

            // score info
            Console.WriteLine("Title: {0}", score.title);
            Console.WriteLine("Subtitle: {0}", score.subTitle);
            Console.WriteLine("Artist: {0}", score.artist);
            Console.WriteLine("Tempo: {0}", score.tempo);
            Console.WriteLine("Bars: {0}", score.masterBars.length);
            Console.WriteLine("Time Signature: {0}/{1}", ((MasterBar)score.masterBars[0]).timeSignatureNumerator,
                              ((MasterBar)score.masterBars[0]).timeSignatureDenominator);
            // tracks
            Console.WriteLine("Tracks: ");
            for (int i = 0; i < score.tracks.length; i++)
            {
                Track track = (Track)score.tracks[i];
                Console.WriteLine("   {0} - {1} - {2}", i + 1, track.name, track.isPercussion ? "Percussion" : "Midi Instrument: " + track.playbackInfo.program);
            }
        }
Exemplo n.º 3
0
        public async Task <Score> FetchSongScore(Song song, bool skipIfCached)
        {
            if (song.LatestAvailableRevision?.GuitarProTab?.BinaryData != null)
            {
                return(ScoreLoader.LoadScoreFromBytes(song.LatestAvailableRevision.GuitarProTab.BinaryData));
            }

            //if not cached, download it again
            string datafileUrl = song.LatestAvailableRevision.GuitarProTab.AttachmentUrl;
            string fileName    = RootFolder + "s" + song.ID + "." + datafileUrl.Substring(datafileUrl.LastIndexOf('.') + 1, 3);

            LogMessage("Fetching Track GP File: " + song.ID + " " + song.LatestAvailableRevision.GuitarProTab.AttachmentUrl);

            byte[] data = await _resourceManager.GetAttachmentWithCaching(song.LatestAvailableRevision.GuitarProTab.AttachmentUrl, true, song.ID.ToString());

            song.LatestAvailableRevision.GuitarProTab.BinaryData = data;

            //save file to local cache
            //await CacheBinaryData(fileName, song.ID.ToString(), data);
            if (data != null)
            {
                return(ScoreLoader.LoadScoreFromBytes(data));
            }
            else
            {
                return(null);
            }
        }
        public bool Load(object?data, Action <Score> success, Action <Error> error)
        {
            switch (data)
            {
            case Score score:
                success(score);
                return(true);

            case byte[] b:
                success(ScoreLoader.LoadScoreFromBytes(new Uint8Array(b), Api.Settings));
                return(true);

            case Stream s:
            {
                using (var ms = new MemoryStream())
                {
                    s.CopyTo(ms);
                    success(ScoreLoader.LoadScoreFromBytes(new Uint8Array(ms.ToArray()),
                                                           Api.Settings));
                }

                return(true);
            }

            default:
                return(false);
            }
        }
Exemplo n.º 5
0
        private static void Main(string[] args)
        {
            if (args.Length != 1)
            {
                Console.WriteLine("Usage AlphaTab.Samples.ScoreDump.exe Path");
                return;
            }

            var score = ScoreLoader.LoadScoreFromBytes(File.ReadAllBytes(args[0]));

            // score info
            Console.WriteLine("Title: {0}", score.Title);
            Console.WriteLine("Subtitle: {0}", score.SubTitle);
            Console.WriteLine("Artist: {0}", score.Artist);
            Console.WriteLine("Tempo: {0}", score.Tempo);
            Console.WriteLine("Bars: {0}", score.MasterBars.Count);
            Console.WriteLine("Time Signature: {0}/{1}", score.MasterBars[0].TimeSignatureNumerator,
                              score.MasterBars[0].TimeSignatureDenominator);
            // tracks
            Console.WriteLine("Tracks: ");
            for (var i = 0; i < score.Tracks.Count; i++)
            {
                var track = score.Tracks[i];
                Console.WriteLine("   {0} - {1} - {2}", i + 1, track.Name,
                                  track.Staves.Any(s => s.IsPercussion)
                        ? "Percussion"
                        : "Midi Instrument: " + track.PlaybackInfo.Program);
            }
        }
        static void Main(string[] args)
        {
            if (args.Length != 1)
            {
                Console.WriteLine("Usage AlphaTab.ScoreDump.exe Path");
                return;
            }

            // load score
            Score score = ScoreLoader.loadScore(args[0]);

            // render score with svg engine
            Settings settings = Settings.defaults();

            settings.engine = "gdi";
            ScoreRenderer renderer = new ScoreRenderer(settings, null);

            // iterate tracks
            for (int i = 0; i < score.tracks.length; i++)
            {
                Track track = (Track)score.tracks[i];

                // render track
                Console.WriteLine("Rendering track {0} - {1}", i + 1, track.name);
                renderer.render(track);

                // write png
                FileInfo info = new FileInfo(args[0]);
                string   path = Path.Combine(info.DirectoryName, Path.GetFileNameWithoutExtension(info.Name) + "-" + i + ".png");
                using (Bitmap bmp = ((GdiCanvas)renderer.canvas).getImage())
                {
                    bmp.Save(path, ImageFormat.Png);
                }
            }
        }
Exemplo n.º 7
0
        public async Task <Score> LoadScoreFromUrl(string url)
        {
            byte[] data = await _resourceManager.GetAttachmentWithCaching(url, false, "notcached");

            return(ScoreLoader.LoadScoreFromBytes(data, new AlphaTab.Settings {
            }));
        }
Exemplo n.º 8
0
 public void Load(object data)
 {
     Element.classList.add("loading");
     try
     {
         if (Std.InstanceOf <ArrayBuffer>(data))
         {
             ScoreLoaded(ScoreLoader.LoadScoreFromBytes(Std.ArrayBufferToByteArray((ArrayBuffer)data)));
         }
         else if (Std.InstanceOf <Uint8Array>(data))
         {
             ScoreLoaded(ScoreLoader.LoadScoreFromBytes((byte[])data));
         }
         else if (JsTypeOf(data) == JsTypes.@string)
         {
             ScoreLoader.LoadScoreAsync((string)data, s => ScoreLoaded(s), e =>
             {
                 Error("import", e);
             });
         }
     }
     catch (Exception e)
     {
         Error("import", e);
     }
 }
Exemplo n.º 9
0
        static void Main(string[] args)
        {
            if (args.Length != 1)
            {
                Console.WriteLine("Usage AlphaTab.ScoreDump.exe Path");
                return;
            }

            // load score
            var score = ScoreLoader.LoadScoreFromBytes(File.ReadAllBytes(args[0]));

            // render score with svg engine and desired rendering width
            var settings = Settings.Defaults;

            settings.Engine = "gdi";
            settings.Width  = 970;
            var renderer = new ScoreRenderer(settings);

            // iterate tracks
            for (int i = 0, j = score.Tracks.Count; i < j; i++)
            {
                var track = score.Tracks[i];

                // render track
                Console.WriteLine("Rendering track {0} - {1}", i + 1, track.Name);
                var images      = new List <Image>();
                var totalWidth  = 0;
                var totalHeight = 0;
                renderer.PartialRenderFinished += r =>
                {
                    images.Add((Image)r.RenderResult);
                };
                renderer.RenderFinished += r =>
                {
                    totalWidth  = (int)r.TotalWidth;
                    totalHeight = (int)r.TotalHeight;
                };
                renderer.Render(track);

                // write png
                var info = new FileInfo(args[0]);
                var path = Path.Combine(info.DirectoryName, Path.GetFileNameWithoutExtension(info.Name) + "-" + i + ".png");

                using (var bmp = new Bitmap(totalWidth, totalHeight))
                {
                    int y = 0;
                    using (var g = Graphics.FromImage(bmp))
                    {
                        foreach (var image in images)
                        {
                            g.DrawImage(image, new Rectangle(0, y, image.Width, image.Height),
                                        new Rectangle(0, 0, image.Width, image.Height), GraphicsUnit.Pixel);
                            y += image.Height;
                        }
                    }
                    bmp.Save(path, ImageFormat.Png);
                }
            }
        }
Exemplo n.º 10
0
 private void LoadScore(byte[] bytes)
 {
     _score = ScoreLoader.LoadScoreFromBytes(bytes);
     AlphaTabControl.Tracks = new[]
     {
         _score.Tracks[0]
     };
 }
Exemplo n.º 11
0
        static void Main(string[] args)
        {
            if (args.Length != 1)
            {
                Console.WriteLine("Usage AlphaTab.ScoreDump.exe Path");
                return;
            }

            // we need to use english culture to have correct string variants of floating points (dot as decimal separator)
            Thread.CurrentThread.CurrentCulture   = new CultureInfo("en-us");
            Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-us");

            // load score
            Score score = ScoreLoader.LoadScore(args[0]);

            // render score with svg engine
            Settings settings = Settings.Defaults;

            settings.Engine = "svg";
            ScoreRenderer renderer = new ScoreRenderer(settings, null);

            // get iterate tracks
            for (int i = 0; i < score.Tracks.Count; i++)
            {
                Track track = score.Tracks[i];
                // render track
                Console.WriteLine("Rendering track {0} - {1}", i + 1, track.Name);
                var totalWidth  = 0;
                var totalHeight = 0;
                var merged      = XDocument.Parse("<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" width=\"1px\" height=\"1px\"></svg>");
                var currentY    = 0f;
                renderer.PartialRenderFinished += r =>
                {
                    var subSvg  = XDocument.Parse(r.RenderResult.ToString());
                    var subRoot = subSvg.Root;
                    subRoot.SetAttributeValue("x", "0px");
                    subRoot.SetAttributeValue("y", ((int)currentY) + "px");
                    merged.Root.Add(subRoot);
                    currentY += r.Height;
                };
                renderer.RenderFinished += r =>
                {
                    totalWidth  = (int)r.TotalWidth;
                    totalHeight = (int)r.TotalHeight;
                };
                renderer.Render(track);

                merged.Root.Attribute("width").Value  = totalWidth + "px";
                merged.Root.Attribute("height").Value = totalHeight + "px";


                string svg = merged.ToString();

                FileInfo info = new FileInfo(args[0]);
                string   path = Path.Combine(info.DirectoryName, Path.GetFileNameWithoutExtension(info.Name) + "-" + i + ".svg");
                File.WriteAllText(path, svg);
            }
        }
Exemplo n.º 12
0
        static void Main(string[] args)
        {
            if (args.Length != 2)
            {
                Console.WriteLine("Usage AlphaTab.ScoreDump.exe PathToFile PathToSoundFont");
                return;
            }

            // load score
            var score = ScoreLoader.LoadScoreFromBytes(File.ReadAllBytes(args[0]));

            // generate midi
            var midiFile  = new MidiFile();
            var handler   = new AlphaSynthMidiFileHandler(midiFile);
            var generator = new MidiFileGenerator(score, null, handler);

            generator.Generate();

            var player = new AlphaSynth(new NAudioSynthOutput());

            player.MidiLoaded          += () => { Console.WriteLine("Midi loaded"); };
            player.SoundFontLoaded     += () => { Console.WriteLine("SoundFont loaded"); };
            player.MidiLoadFailed      += e => { Console.WriteLine("Midi load failed"); };
            player.SoundFontLoadFailed += e => { Console.WriteLine("SoundFont load failed"); };
            player.Finished            += _ =>
            {
                Console.WriteLine("Playback finished");
                ((NAudioSynthOutput)player.Output).Close();
            };
            player.PositionChanged += e =>
            {
                TimeSpan currentTime = TimeSpan.FromMilliseconds(e.CurrentTime);
                TimeSpan endTime     = TimeSpan.FromMilliseconds(e.EndTime);

                Console.CursorTop--;
                Console.Write("".PadLeft(Console.BufferWidth - 1, ' '));
                Console.CursorLeft = 0;
                Console.WriteLine("{0:mm\\:ss\\:fff} ({1}) of {2:mm\\:ss\\:fff} ({3})",
                                  currentTime, e.CurrentTick, endTime, e.EndTick);
            };
            player.ReadyForPlayback += () =>
            {
                Console.WriteLine("Ready for playback");
            };
            player.LoadSoundFont(File.ReadAllBytes(args[1]));
            player.LoadMidi(midiFile);

            Console.WriteLine("Start playing");
            player.Play();

            Console.WriteLine("Press enter to exit");
            Console.ReadLine();

            player.Pause();

            Console.ReadLine();
        }
Exemplo n.º 13
0
    void Awake()
    {
        if (control == null)
        {
            DontDestroyOnLoad(gameObject);
            control = this;

            this.Load();
        }
        else if (control != this)
        {
            Destroy(gameObject);
        }
    }
Exemplo n.º 14
0
 public override void Load(object data)
 {
     if (Std.InstanceOf <ArrayBuffer>(data))
     {
         ScoreLoaded(ScoreLoader.LoadScoreFromBytes(Std.ArrayBufferToByteArray((ArrayBuffer)data)));
     }
     else if (Std.InstanceOf <Uint8Array>(data))
     {
         ScoreLoaded(ScoreLoader.LoadScoreFromBytes((byte[])data));
     }
     else if (JsTypeOf(data) == JsTypes.@string)
     {
         ScoreLoader.LoadScoreAsync((string)data, s => ScoreLoaded(s), e => console.error(e));
     }
 }
Exemplo n.º 15
0
        public static async Task RunVisualTest(string inputFile, Settings?settings = null,
                                               IList <double>?tracks = null, string?message = null)
        {
            try
            {
                inputFile = $"test-data/visual-tests/{inputFile}";
                var inputFileData =
                    await TestPlatform.LoadFile(inputFile);

                var referenceFileName = TestPlatform.ChangeExtension(inputFile, ".png");
                var score             = ScoreLoader.LoadScoreFromBytes(inputFileData, settings);

                await VisualTestHelper.RunVisualTestScore(score, referenceFileName, settings,
                                                          tracks, message);
            }
            catch (Exception e)
            {
                Assert.Fail($"Failed to run visual test {e}");
            }
        }
Exemplo n.º 16
0
        private void InternalOpenFile(string file)
        {
            //try
            {
                // load the score from the filesystem
                Score = ScoreLoader.LoadScore(file);

                // build the track info objects for the ui
                TrackViewModel[] trackInfos = new TrackViewModel[Score.Tracks.Count];
                for (int i = 0; i < trackInfos.Length; i++)
                {
                    trackInfos[i] = new TrackViewModel(Score.Tracks[i]);
                }
                TrackInfos = trackInfos;
            }
            //catch (Exception e)
            //{
            //    _errorService.OpenFailed(e);
            //}
        }
Exemplo n.º 17
0
        /// <summary>
        /// Defines the entry point of the application.
        /// </summary>
        /// <param name="args">The arguments.</param>
        public static void Main(string[] args)
        {
            if (!string.IsNullOrWhiteSpace(gpFile) && File.Exists(gpFile))
            {
                try
                {
                    // Load the score from the GuitarPro file
                    var gpScore = ScoreLoader.loadScore(gpFile);
                    var score   = CreateScore(gpScore);

                    // Serialize the score
                    SerializeScore(score);
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }

                Console.ReadKey();
            }
        }
Exemplo n.º 18
0
        static void Main(string[] args)
        {
            if (args.Length != 1)
            {
                Console.WriteLine("Usage AlphaTab.MidiDump.exe Path");
                return;
            }

            // load score
            var score = ScoreLoader.LoadScoreFromBytes(File.ReadAllBytes(args[0]));

            // generate midi
            MidiFile file = MidiFileGenerator.GenerateMidiFile(score);

            // write midi file
            string path = Path.ChangeExtension(args[0], "mid");

            using (var fs = new StreamWrapper(File.OpenWrite(path)))
            {
                file.WriteTo(fs);
            }
        }
Exemplo n.º 19
0
        private void InternalOpenFile(string file)
        {
            Task.Factory.StartNew(() =>
            {
                try
                {
                    // load the score from the filesystem
                    Score = ScoreLoader.LoadScoreFromBytes(File.ReadAllBytes(file));

                    // build the track info objects for the ui
                    TrackViewModel[] trackInfos = new TrackViewModel[Score.Tracks.Count];
                    for (int i = 0; i < trackInfos.Length; i++)
                    {
                        trackInfos[i] = new TrackViewModel(Score.Tracks[i]);
                    }
                    TrackInfos = trackInfos;
                }
                catch (Exception e)
                {
                    _errorService.OpenFailed(e);
                }
            });
        }
 private void Load(object data, int[] trackIndexes)
 {
     try
     {
         _trackIndexes = trackIndexes;
         if (Std.InstanceOf <ArrayBuffer>(data))
         {
             ScoreLoaded(ScoreLoader.LoadScoreFromBytes(Std.ArrayBufferToByteArray((ArrayBuffer)data)));
         }
         else if (Std.InstanceOf <Uint8Array>(data))
         {
             ScoreLoaded(ScoreLoader.LoadScoreFromBytes((byte[])data));
         }
         else if (JsContext.JsTypeOf(data) == JsTypes.@string)
         {
             ScoreLoader.LoadScoreAsync((string)data, ScoreLoaded, Error);
         }
     }
     catch (Exception e)
     {
         Error(e);
     }
 }
Exemplo n.º 21
0
        static void Main(string[] args)
        {
            if (args.Length != 1)
            {
                Console.WriteLine("Usage AlphaTab.ScoreDump.exe Path");
                return;
            }

            // we need to use english culture to have correct string variants of floating points (dot as decimal separator)
            Thread.CurrentThread.CurrentCulture   = new CultureInfo("en-us");
            Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-us");

            // load score
            Score score = ScoreLoader.loadScore(args[0]);

            // render score with svg engine
            Settings settings = Settings.defaults();

            settings.engine = "svg";
            ScoreRenderer renderer = new ScoreRenderer(settings, null);

            // get iterate tracks
            for (int i = 0; i < score.tracks.length; i++)
            {
                Track track = (Track)score.tracks[i];
                // render track
                Console.WriteLine("Rendering track {0} - {1}", i + 1, track.name);
                renderer.render(track);

                // write svg file
                string   svg  = ((SvgCanvas)renderer.canvas).toSvg(true, "alphaTab");
                FileInfo info = new FileInfo(args[0]);
                string   path = Path.Combine(info.DirectoryName, Path.GetFileNameWithoutExtension(info.Name) + "-" + i + ".svg");
                File.WriteAllText(path, svg);
            }
        }
Exemplo n.º 22
0
        static void Main(string[] args)
        {
            if (args.Length != 1)
            {
                Console.WriteLine("Usage AlphaTab.ScoreDump.exe Path");
                return;
            }

            // we need to use english culture to have correct string variants of floating points (dot as decimal separator)
            Thread.CurrentThread.CurrentCulture   = new CultureInfo("en-us");
            Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-us");

            // load score
            Score score = ScoreLoader.LoadScore(args[0]);

            // render score with svg engine
            Settings settings = Settings.Defaults;

            settings.Engine = "svg";
            ScoreRenderer renderer = new ScoreRenderer(settings);

            // get iterate tracks
            for (int i = 0; i < 1; i++)
            {
                Track track = score.Tracks[i];
                // render track
                Console.WriteLine("Rendering track {0} - {1}", i + 1, track.Name);
                var       totalWidth  = 0;
                var       totalHeight = 0;
                XDocument merged      = null;
                var       currentY    = 0f;
                renderer.PreRender += r =>
                {
                    // append the svg close tag which would be part of the RenderFinished event
                    var svgString = r.RenderResult.ToString() + "</svg>";
                    merged = XDocument.Parse(svgString);
                };
                renderer.PartialRenderFinished += r =>
                {
                    var subSvg  = XDocument.Parse(r.RenderResult.ToString());
                    var subRoot = subSvg.Root;
                    subRoot.SetAttributeValue("x", "0px");
                    subRoot.SetAttributeValue("y", ((int)currentY) + "px");
                    merged.Root.Add(subRoot);
                    currentY += r.Height;
                };
                renderer.RenderFinished += r =>
                {
                    totalWidth  = (int)r.TotalWidth;
                    totalHeight = (int)r.TotalHeight;
                };
                renderer.Render(track);

                merged.Root.SetAttributeValue("width", totalWidth + "px");
                merged.Root.SetAttributeValue("height", totalHeight + "px");


                var svg       = new StringWriter();
                var xmlWriter = new EntitizingXmlWriter(svg);
                merged.Save(xmlWriter);

                FileInfo info = new FileInfo(args[0]);
                string   path = Path.Combine(info.DirectoryName, Path.GetFileNameWithoutExtension(info.Name) + "-" + i + ".svg");
                File.WriteAllText(path, svg.ToString());
            }
        }
Exemplo n.º 23
0
        static void Main(string[] args)
        {
            if (args.Length != 1)
            {
                Console.WriteLine("Usage AlphaTab.ScoreDump.exe Path");
                return;
            }

            // load score
            var score = ScoreLoader.LoadScoreFromBytes(File.ReadAllBytes(args[0]));

            // render score with svg engine and desired rendering width
            var settings = Settings.Defaults;

            settings.Engine = "skia";
            settings.Width  = 970;
            var renderer = new ScoreRenderer(settings);

            // iterate tracks
            for (int i = 0, j = score.Tracks.Count; i < j; i++)
            {
                var track = score.Tracks[i];

                // render track
                Console.WriteLine("Rendering track {0} - {1}", i + 1, track.Name);
                var images      = new List <SKImage>();
                var totalWidth  = 0;
                var totalHeight = 0;
                renderer.PartialRenderFinished += r =>
                {
                    images.Add((SKImage)r.RenderResult);
                };
                renderer.RenderFinished += r =>
                {
                    totalWidth  = (int)r.TotalWidth;
                    totalHeight = (int)r.TotalHeight;
                };
                renderer.Render(score, new[] { track.Index });

                // write png
                var info = new FileInfo(args[0]);
                var path = Path.Combine(info.DirectoryName, Path.GetFileNameWithoutExtension(info.Name) + "-" + i + ".png");

                using (var full = SKSurface.Create(totalWidth, totalHeight, SKImageInfo.PlatformColorType, SKAlphaType.Premul))
                {
                    int y = 0;
                    foreach (var image in images)
                    {
                        full.Canvas.DrawImage(image, new SKRect(0, 0, image.Width, image.Height), new SKRect(0, y, image.Width, y + image.Height));
                        y += image.Height;
                    }

                    using (var fullImage = full.Snapshot())
                    {
                        using (var data = fullImage.Encode(SKEncodedImageFormat.Png, 100).AsStream(true))
                        {
                            using (var fileStream = new FileStream(path, FileMode.Create, FileAccess.Write))
                            {
                                data.CopyTo(fileStream);
                            }
                        }
                    }
                }
            }
        }
Exemplo n.º 24
0
 void Start()
 {
     score  = GameObject.Find("ScoreLoader").GetComponent <ScoreLoader>();
     jumper = GameObject.Find("Jumper").GetComponent <Jumper>();
     sound  = GameObject.Find("Points Audio Source").GetComponent <AudioSource>();
 }