public SoundTouchSource(IWaveSource waveSource, ISoundTouch soundTouch) : base(waveSource) { _waveSource = waveSource; _soundTouch = soundTouch; _soundTouch.SetChannels((uint)_waveSource.WaveFormat.Channels); _soundTouch.SetSampleRate((uint)_waveSource.WaveFormat.SampleRate); lockObject = new object(); }
public SoundTouchSource(ISampleSource sampleSource, int latency, ISoundTouch soundTouch) : base(sampleSource) { _sampleSource = sampleSource; _latency = latency; _soundTouch = soundTouch; _soundTouch.SetChannels(_sampleSource.WaveFormat.Channels); _soundTouch.SetSampleRate(_sampleSource.WaveFormat.SampleRate); _sourceReadBuffer = new float[(_sampleSource.WaveFormat.SampleRate * _sampleSource.WaveFormat.Channels * (long)_latency) / 1000]; _soundTouchReadBuffer = new float[_sourceReadBuffer.Length * 10]; lockObject = new object(); }