public void Initialise(WaveFormat format, WaveOut driver) { if (driver == null) { throw new ArgumentNullException("driver", "Must specify a WaveIn device instance"); } if (format == null) { throw new ArgumentNullException("format", "Must specify an audio format"); } var caps = WaveOut.GetCapabilities(driver.DeviceNumber); device = new WaveOutDeviceData { Driver = driver, Name = caps.ProductName, Channels = caps.Channels, Buffers = new float[caps.Channels][] }; Format = WaveFormat.CreateIeeeFloatWaveFormat(format.SampleRate, caps.Channels); OutputBuffer = new BufferedWaveProvider(Format); OutputBuffer.DiscardOnBufferOverflow = true; driver.Init(OutputBuffer); mapOutputs(); }