Mercurial > hg > sonic-visualiser
comparison audioio/AudioCallbackPlaySource.h @ 12:ee967635c728
* Some work on making the time stretcher squash as well as stretch
author | Chris Cannam |
---|---|
date | Tue, 12 Sep 2006 16:43:00 +0000 |
parents | cd5d7ff8ef38 |
children | 085f34c73939 |
comparison
equal
deleted
inserted
replaced
11:0dbd08e365ce | 12:ee967635c728 |
---|---|
175 * audio data, in all channels. This may safely be called from a | 175 * audio data, in all channels. This may safely be called from a |
176 * realtime thread. | 176 * realtime thread. |
177 */ | 177 */ |
178 size_t getSourceSamples(size_t count, float **buffer); | 178 size_t getSourceSamples(size_t count, float **buffer); |
179 | 179 |
180 void setSlowdownFactor(size_t factor); | 180 void setSlowdownFactor(float factor); |
181 | 181 |
182 signals: | 182 signals: |
183 void modelReplaced(); | 183 void modelReplaced(); |
184 | 184 |
185 void playStatusChanged(bool isPlaying); | 185 void playStatusChanged(bool isPlaying); |
245 void unifyRingBuffers(); | 245 void unifyRingBuffers(); |
246 | 246 |
247 class TimeStretcherData | 247 class TimeStretcherData |
248 { | 248 { |
249 public: | 249 public: |
250 TimeStretcherData(size_t channels, size_t factor, size_t blockSize); | 250 TimeStretcherData(size_t channels, float factor, size_t blockSize); |
251 ~TimeStretcherData(); | 251 ~TimeStretcherData(); |
252 | 252 |
253 size_t getFactor() const { return m_factor; } | 253 float getFactor() const { return m_factor; } |
254 IntegerTimeStretcher *getStretcher(size_t channel); | 254 IntegerTimeStretcher *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); |
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<IntegerTimeStretcher *, 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 size_t m_factor; | 267 float m_factor; |
268 size_t m_blockSize; | 268 size_t m_blockSize; |
269 }; | 269 }; |
270 | 270 |
271 size_t m_slowdownCounter; | 271 size_t m_slowdownCounter; |
272 TimeStretcherData *m_timeStretcher; | 272 TimeStretcherData *m_timeStretcher; |