comparison audioio/AudioCallbackPlaySource.h @ 14:085f34c73939

* IntegerTimeStretcher -> PhaseVocoderTimeStretcher (no longer confined to integer multiples)
author Chris Cannam
date Wed, 13 Sep 2006 11:06:28 +0000
parents ee967635c728
children cc566264c935
comparison
equal deleted inserted replaced
13:00ed645f4175 14:085f34c73939
33 33
34 class Model; 34 class Model;
35 class ViewManager; 35 class ViewManager;
36 class AudioGenerator; 36 class AudioGenerator;
37 class PlayParameters; 37 class PlayParameters;
38 class IntegerTimeStretcher; 38 class PhaseVocoderTimeStretcher;
39 39
40 /** 40 /**
41 * AudioCallbackPlaySource manages audio data supply to callback-based 41 * AudioCallbackPlaySource manages audio data supply to callback-based
42 * audio APIs such as JACK or CoreAudio. It maintains one ring buffer 42 * audio APIs such as JACK or CoreAudio. It maintains one ring buffer
43 * per channel, filled during playback by a non-realtime thread, and 43 * per channel, filled during playback by a non-realtime thread, and
249 public: 249 public:
250 TimeStretcherData(size_t channels, float factor, size_t blockSize); 250 TimeStretcherData(size_t channels, float factor, size_t blockSize);
251 ~TimeStretcherData(); 251 ~TimeStretcherData();
252 252
253 float getFactor() const { return m_factor; } 253 float getFactor() const { return m_factor; }
254 IntegerTimeStretcher *getStretcher(size_t channel); 254 PhaseVocoderTimeStretcher *getStretcher(size_t channel);
255 float *getOutputBuffer(size_t channel); 255 float *getOutputBuffer(size_t channel);
256 float *getInputBuffer(); 256 float *getInputBuffer();
257 257
258 void run(size_t channel); 258 void run(size_t channel);
259 259
260 protected: 260 protected:
261 TimeStretcherData(const TimeStretcherData &); // not provided 261 TimeStretcherData(const TimeStretcherData &); // not provided
262 TimeStretcherData &operator=(const TimeStretcherData &); // not provided 262 TimeStretcherData &operator=(const TimeStretcherData &); // not provided
263 263
264 typedef std::pair<IntegerTimeStretcher *, float *> StretcherBuffer; 264 typedef std::pair<PhaseVocoderTimeStretcher *, float *> StretcherBuffer;
265 std::map<size_t, StretcherBuffer> m_stretcher; 265 std::map<size_t, StretcherBuffer> m_stretcher;
266 float *m_stretchInputBuffer; 266 float *m_stretchInputBuffer;
267 float m_factor; 267 float m_factor;
268 size_t m_blockSize; 268 size_t m_blockSize;
269 }; 269 };