Esempio n. 1
0
        private void PlayToFile(SoundFile soundFile, SoundTarget target)
        {
            logger.Info($"Writing playback of [green]{options.InputPath}[/] to [green]{options.OutputPath}[/]...");

            try
            {
                var transmitter = new MidiFileWriterTransmitter();
                using (var engine = new ImuseEngine(transmitter, target, options.ImuseOptions))
                {
                    // Clean up, even with Ctrl+C
                    ConsoleHelpers.SetupCancelHandler(engine, transmitter);

                    engine.RegisterSound(0, soundFile);
                    engine.StartSound(0);

                    transmitter.Start();

                    transmitter.Write(options.OutputPath);

                    ConsoleHelpers.TearDownCancelHandler();
                }
            }
            catch (ImuseException ex)
            {
                throw new ImuseSequencerException(ex.Message, ex);
            }
        }
Esempio n. 2
0
 void DoSplit()
 {
     if (radius > minRadius)
     {
         float rang = Random.value * 360;
         float rad  = Mathf.Sqrt((radius * radius) / splitCount) * splitRadiusBoost;
         for (int i = 0; i < splitCount; i++)
         {
             GameObject go = GameObject.Instantiate(splitPrefab, transform.position, transform.rotation);
             go.tag = this.tag;
             Debris deb = go.GetComponent <Debris>();
             deb.radius          = rad;
             deb.vel             = vel + Quaternion.AngleAxis(rang + i * (360 / splitCount), Vector3.forward) * Vector3.right * splitForce;
             go.transform.parent = transform.parent;
         }
         SoundTarget.Play("explosion" + Random.Range(1, 4));
         Destroy(this.gameObject);
     }
     else
     {
         if (!stayAlive)
         {
             SoundTarget.Play("explosion" + Random.Range(1, 4));
             Destroy(this.gameObject);
         }
     }
 }
Esempio n. 3
0
        private void PlayToDevice(SoundFile soundFile, SoundTarget target)
        {
            logger.Info($"Playing [green]{options.InputPath}[/]...");
            var uiHandler = new UIHandler();

            options.DeviceSelector = OutputHelpers.Instance.DetermineDeviceSelector(options.DeviceSelector, target);

            try
            {
                using (var transmitter = OutputHelpers.Instance.CreateTransmitter(options.DeviceSelector, options.Latency))
                {
                    using (var engine = new ImuseEngine(transmitter, target, options.ImuseOptions))
                    {
                        // Clean up, even with Ctrl+C
                        ConsoleHelpers.SetupCancelHandler(engine, transmitter);

                        logger.Info($"Target device: [green]{target.GetDisplayName()}[/]");
                        logger.Info($"Outputting to: [green]{transmitter.OutputName}[/]");
                        logger.Info($"iMUSE version: [green]{soundFile.ImuseVersion.GetDisplayName()}[/]");
                        logger.Info("");

                        engine.RegisterSound(0, soundFile);
                        engine.StartSound(0);

                        logger.Info("");

                        BuildCommands(engine, uiHandler);
                        uiHandler.OutputMenu();

                        transmitter.Start();

                        uiHandler.Run();

                        ConsoleHelpers.TearDownCancelHandler();
                    }
                }
            }
            catch (ImuseException ex)
            {
                throw new ImuseSequencerException(ex.Message, ex);
            }
        }
Esempio n. 4
0
        public FileProvider(string folderPath, SoundTarget target)
        {
            this.folderPath = NormalizePath(folderPath);

            this.target = target;
        }