Example #1
0
        public OrderSound(string message, float Depth, float Frequency, float Feedback, float WetDryMix, float ReverbTime, float HighFrequencyRTRatio)
        {
            Thread theRT = new Thread(delegate()
            {
                {
                    m_AudioStream = new MemoryStream();
                    using (SpeechSynthesizer speechSynthesizer = new SpeechSynthesizer())
                    {
                        speechSynthesizer.SelectVoiceByHints(VoiceGender.Female, VoiceAge.Child);
                        speechSynthesizer.Rate = Rate;
                        speechSynthesizer.SetOutputToWaveStream(m_AudioStream);
                        speechSynthesizer.SpeakCompleted += new EventHandler <SpeakCompletedEventArgs>(WriteCompleate);
                        speechSynthesizer.SpeakAsync(message);
                        state = SOUNDSTATE.FORMING;
                        manualReset.WaitOne();
                        state = SOUNDSTATE.READY;
                        m_AudioStream.Seek(0, SeekOrigin.Begin);
                        flanger = new FlangerEffect(GetSoundSource(m_AudioStream))
                        {
                            Depth     = Depth,
                            Frequency = Frequency,
                            Feedback  = Feedback,
                            WetDryMix = WetDryMix
                        };
                        rev = new DmoWavesReverbEffect(flanger.ToStereo())
                        {
                            ReverbTime           = ReverbTime,
                            HighFrequencyRTRatio = HighFrequencyRTRatio
                        };
                        rev.WriteToWaveStream(m_AudioStream2);
                        soundOut = GetSoundOut();
                        soundOut.Initialize(GetSoundSource(m_AudioStream2));
                        soundOut.Volume   = 1;
                        soundOut.Stopped += DonePlaying;
                        soundOut.Play();

                        state = SOUNDSTATE.PLAYING;
                        manualReset.WaitOne();
                    }
                }
            })
            {
                IsBackground = true
            };

            theRT.Start();
        }
Example #2
0
        public void Reverb()
        {
            var soundIn = new WasapiCapture(true, AudioClientShareMode.Shared, 10);

            soundIn.Initialize();
            IWaveSource source = new SoundInSource(soundIn)
            {
                FillWithZeros = true
            };

            PreLowpassCutoff = 110;
            InGain           = 10;
            var eSource = new DmoWavesReverbEffect(source);

            soundIn.Start();
            _soundOut = new WasapiOut();
            _soundOut.Initialize(eSource);
            _soundOut.Play();
        }
Example #3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="reverb"></param>
        public void ApplyReverb(float reverb)
        {
            if (_waveSource == null)
            {
                return;
            }

            if (reverb > 96)
            {
                reverb = 96;
            }

            var reverbPass = new DmoWavesReverbEffect(_waveSource)
            {
                ReverbTime = 1000,
                ReverbMix  = -96 + reverb
            };

            InitPlayback(reverbPass);
        }