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();
        }
Beispiel #2
0
        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();
        }