Mercurial > hg > sonic-visualiser
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 }; |