public void Dispose()
 {
     WavePipe.Dispose();
     WaveOut.Stop();
     WaveIn.StopRecording();
     WaveOut.Dispose();
     WaveIn.Dispose();
 }
        private void Configure(IWavePipeConfiguration configuration)
        {
            WavePipe?.Dispose();
            WaveIn?.Dispose();
            WaveOut?.Dispose();

            WaveIn   = InputSource.Open(configuration);
            WaveOut  = OutputSource.Open(configuration);
            WavePipe = new WavePipe(InputSource, OutputSource, configuration);
        }
 public void Stop()
 {
     WavePipe.Stop();
 }
 public void Start()
 {
     WavePipe.Start();
 }