Beispiel #1
0
        public static void Sound()
        {
            try
            {
                var generator = new SignalGenerator();
                generator.Type      = SignalGeneratorType.SawTooth;
                generator.Frequency = 2500;

                var gameHorn = new WaveOut();
                gameHorn.Init(generator.ToWaveProvider());

                Task.Run(() =>
                {
                    EventMediator.GetEventMediator().OnGameClockSounding();
                    gameHorn.Play();
                    Thread.Sleep(2000);
                    gameHorn.Stop();
                    EventMediator.GetEventMediator().OnGameClockSounded();
                });
            }
            catch (System.Exception)
            {
                SoundPlayer player = new SoundPlayer {
                    SoundLocation = @"C:\Windows\media\Windows Ringout.wav"
                };
                Task.Run(() =>
                {
                    player.PlayLooping();
                    Thread.Sleep(2000);
                    player.Stop();
                });
            }
        }
Beispiel #2
0
        private void buttonProcessSample_Click(object sender, EventArgs e)
        {
            logger.Debug("buttonProcessSample_Click(...)");

            try
            {
                Task.Run(() =>
                {
                    logger.Debug("signal generator start...");


                    var waveSignalGen  = signalGenerator.ToWaveProvider();
                    var signalFormat   = waveSignalGen.WaveFormat;
                    var bytesPerSecond = signalFormat.AverageBytesPerSecond;
                    var buffer         = new byte[bytesPerSecond / 100];

                    int count = 10000000;
                    while (count-- > 0)
                    {
                        var sample = MediaFactory.CreateSample();
                        var mb     = MediaFactory.CreateMemoryBuffer(buffer.Length);
                        {
                            sample.AddBuffer(mb);
                        }

                        sample.SampleDuration = 0;
                        sample.SampleTime     = 0;

                        var pBuffer   = mb.Lock(out int cbMaxLen, out int cbCurLen);
                        var bytesRead = waveSignalGen.Read(buffer, 0, buffer.Length);
                        if (bytesRead > 0)
                        {
                            Marshal.Copy(buffer, 0, pBuffer, bytesRead);
                        }

                        mb.CurrentLength = bytesRead;
                        mb.Unlock();

                        audioRenderer?.ProcessSample(sample);
                        mb?.Dispose();
                        sample?.Dispose();

                        Thread.Sleep(9);

                        logger.Debug("Next sample...");
                    }



                    logger.Debug("Signal generator stop...");
                });


                //index++;
            }
            catch (Exception ex)
            {
                logger.Error(ex);
            }
        }
Beispiel #3
0
        public SineWaveProvider(int frequency)
        {
            SigGen = new SignalGenerator()
            {
                Gain      = 0.2,
                Frequency = frequency,
                Type      = SignalGeneratorType.Sin
            };

            SigGen.ToWaveProvider();
        }