예제 #1
0
    public static void PlayNote(string note)
    {
        if (_waveOut == null)
        {
            var sineWaveProvider = new SineWaveProvider32();
            sineWaveProvider.SetWaveFormat(16000, 1); // 16kHz mono
            sineWaveProvider.Frequency = 1000;
            sineWaveProvider.Amplitude = 0.25f;
            _waveOut = new WaveOut();
            _waveOut.Init(sineWaveProvider);
            _waveOut.Play();

            StopTimer();

            _timer          = new Timer();
            _timer.Elapsed += TimerElapsed;
            _timer.Interval = 20000;
            _timer.Start();
        }
        else
        {
            _waveOut.Stop();
            _waveOut.Dispose();
            _waveOut = null;

            StopTimer();
        }
    }
        public void PlayNote(Note note)
        {
            SineWaveProvider32 newWave = new SineWaveProvider32();

            newWave.SetWaveFormat(44100, 2);
            newWave.Amplitude = volume;
            newWave.Frequency = (float)note.GetFrequencyInHz();
            SoundHelper.PlaySound(newWave);
        }
예제 #3
0
        public MainWindow()
        {
            InitializeComponent();
            _WaveProvider = new SineWaveProvider32();
            _WaveProvider.SetWaveFormat(16000, 1);
            _WaveProvider.Amplitude = 0.25f;
            _WaveOut = new DirectSoundOut();
            _WaveOut.Init(_WaveProvider);

            _MidiOut = new MidiOut(0);
        }
예제 #4
0
        // инициализация воспроизведения звука, так же его воспроизведение
        // суммирование массива амплитуд данной частоты с общей
        private async void PlayWithOneFreequency(int freequency)
        {
            var sineWaveProvider = new SineWaveProvider32(freequency); // частота воспроизведения

            sineWaveProvider.SetWaveFormat(8000, 1);                   // частота дискретизации, число каналов( от второго параметра зависит скорость воспроизведения)
            var waveOut = new WaveOut();

            waveOut.Init(sineWaveProvider);
            var masofAmplitude = sineWaveProvider.ReadAsync(amplitude.sizeMas); // можно и обычным приведением, но хз

            amplitude.summing(masofAmplitude);

            await Task.Run(() => PlayAudio(waveOut));
        }
예제 #5
0
 private void StartStopSineWave()
 {
     if (waveOut == null)
     {
         sineWaveProvider.SetWaveFormat(96000, 2);
         sineWaveProvider.Frequency = trackBar1.Value;
         sineWaveProvider.Amplitude = 1.0f;
         waveOut = new WaveOut();
         waveOut.Init(sineWaveProvider);
         waveOut.Play();
     }
     else
     {
         waveOut.Stop();
         waveOut.Dispose();
         waveOut = null;
     }
 }