Mercurial > hg > vamp-plugin-sdk
comparison src/vamp-hostsdk/PluginInputDomainAdapter.cpp @ 510:8742125177ae
Merge from branch vamp-kiss-naming
author | Chris Cannam |
---|---|
date | Thu, 08 Feb 2018 15:40:33 +0000 |
parents | 90571dcc371a |
children |
comparison
equal
deleted
inserted
replaced
502:d129bf797f24 | 510:8742125177ae |
---|---|
84 float m_inputSampleRate; | 84 float m_inputSampleRate; |
85 int m_channels; | 85 int m_channels; |
86 int m_stepSize; | 86 int m_stepSize; |
87 int m_blockSize; | 87 int m_blockSize; |
88 float **m_freqbuf; | 88 float **m_freqbuf; |
89 Kiss::kiss_fft_scalar *m_ri; | 89 Kiss::vamp_kiss_fft_scalar *m_ri; |
90 | 90 |
91 WindowType m_windowType; | 91 WindowType m_windowType; |
92 typedef Window<Kiss::kiss_fft_scalar> W; | 92 typedef Window<Kiss::vamp_kiss_fft_scalar> W; |
93 W *m_window; | 93 W *m_window; |
94 | 94 |
95 ProcessTimestampMethod m_method; | 95 ProcessTimestampMethod m_method; |
96 int m_processCount; | 96 int m_processCount; |
97 float **m_shiftBuffers; | 97 float **m_shiftBuffers; |
98 | 98 |
99 Kiss::kiss_fftr_cfg m_cfg; | 99 Kiss::vamp_kiss_fftr_cfg m_cfg; |
100 Kiss::kiss_fft_cpx *m_cbuf; | 100 Kiss::vamp_kiss_fft_cpx *m_cbuf; |
101 | 101 |
102 FeatureSet processShiftingTimestamp(const float *const *inputBuffers, RealTime timestamp); | 102 FeatureSet processShiftingTimestamp(const float *const *inputBuffers, RealTime timestamp); |
103 FeatureSet processShiftingData(const float *const *inputBuffers, RealTime timestamp); | 103 FeatureSet processShiftingData(const float *const *inputBuffers, RealTime timestamp); |
104 | 104 |
105 size_t makeBlockSizeAcceptable(size_t) const; | 105 size_t makeBlockSizeAcceptable(size_t) const; |
219 delete[] m_freqbuf[c]; | 219 delete[] m_freqbuf[c]; |
220 } | 220 } |
221 delete[] m_freqbuf; | 221 delete[] m_freqbuf; |
222 delete[] m_ri; | 222 delete[] m_ri; |
223 if (m_cfg) { | 223 if (m_cfg) { |
224 Kiss::kiss_fftr_free(m_cfg); | 224 Kiss::vamp_kiss_fftr_free(m_cfg); |
225 m_cfg = 0; | 225 m_cfg = 0; |
226 delete[] m_cbuf; | 226 delete[] m_cbuf; |
227 m_cbuf = 0; | 227 m_cbuf = 0; |
228 } | 228 } |
229 delete m_window; | 229 delete m_window; |
262 delete[] m_freqbuf[c]; | 262 delete[] m_freqbuf[c]; |
263 } | 263 } |
264 delete[] m_freqbuf; | 264 delete[] m_freqbuf; |
265 delete[] m_ri; | 265 delete[] m_ri; |
266 if (m_cfg) { | 266 if (m_cfg) { |
267 Kiss::kiss_fftr_free(m_cfg); | 267 Kiss::vamp_kiss_fftr_free(m_cfg); |
268 m_cfg = 0; | 268 m_cfg = 0; |
269 delete[] m_cbuf; | 269 delete[] m_cbuf; |
270 m_cbuf = 0; | 270 m_cbuf = 0; |
271 } | 271 } |
272 delete m_window; | 272 delete m_window; |
278 | 278 |
279 m_freqbuf = new float *[m_channels]; | 279 m_freqbuf = new float *[m_channels]; |
280 for (int c = 0; c < m_channels; ++c) { | 280 for (int c = 0; c < m_channels; ++c) { |
281 m_freqbuf[c] = new float[m_blockSize + 2]; | 281 m_freqbuf[c] = new float[m_blockSize + 2]; |
282 } | 282 } |
283 m_ri = new Kiss::kiss_fft_scalar[m_blockSize]; | 283 m_ri = new Kiss::vamp_kiss_fft_scalar[m_blockSize]; |
284 | 284 |
285 m_window = new W(convertType(m_windowType), m_blockSize); | 285 m_window = new W(convertType(m_windowType), m_blockSize); |
286 | 286 |
287 m_cfg = Kiss::kiss_fftr_alloc(m_blockSize, false, 0, 0); | 287 m_cfg = Kiss::vamp_kiss_fftr_alloc(m_blockSize, false, 0, 0); |
288 m_cbuf = new Kiss::kiss_fft_cpx[m_blockSize/2+1]; | 288 m_cbuf = new Kiss::vamp_kiss_fft_cpx[m_blockSize/2+1]; |
289 | 289 |
290 m_processCount = 0; | 290 m_processCount = 0; |
291 | 291 |
292 return m_plugin->initialise(channels, stepSize, m_blockSize); | 292 return m_plugin->initialise(channels, stepSize, m_blockSize); |
293 } | 293 } |
450 | 450 |
451 m_window->cut(inputBuffers[c], m_ri); | 451 m_window->cut(inputBuffers[c], m_ri); |
452 | 452 |
453 for (int i = 0; i < m_blockSize/2; ++i) { | 453 for (int i = 0; i < m_blockSize/2; ++i) { |
454 // FFT shift | 454 // FFT shift |
455 Kiss::kiss_fft_scalar value = m_ri[i]; | 455 Kiss::vamp_kiss_fft_scalar value = m_ri[i]; |
456 m_ri[i] = m_ri[i + m_blockSize/2]; | 456 m_ri[i] = m_ri[i + m_blockSize/2]; |
457 m_ri[i + m_blockSize/2] = value; | 457 m_ri[i + m_blockSize/2] = value; |
458 } | 458 } |
459 | 459 |
460 Kiss::kiss_fftr(m_cfg, m_ri, m_cbuf); | 460 Kiss::vamp_kiss_fftr(m_cfg, m_ri, m_cbuf); |
461 | 461 |
462 for (int i = 0; i <= m_blockSize/2; ++i) { | 462 for (int i = 0; i <= m_blockSize/2; ++i) { |
463 m_freqbuf[c][i * 2] = float(m_cbuf[i].r); | 463 m_freqbuf[c][i * 2] = float(m_cbuf[i].r); |
464 m_freqbuf[c][i * 2 + 1] = float(m_cbuf[i].i); | 464 m_freqbuf[c][i * 2 + 1] = float(m_cbuf[i].i); |
465 } | 465 } |
499 | 499 |
500 m_window->cut(m_shiftBuffers[c], m_ri); | 500 m_window->cut(m_shiftBuffers[c], m_ri); |
501 | 501 |
502 for (int i = 0; i < m_blockSize/2; ++i) { | 502 for (int i = 0; i < m_blockSize/2; ++i) { |
503 // FFT shift | 503 // FFT shift |
504 Kiss::kiss_fft_scalar value = m_ri[i]; | 504 Kiss::vamp_kiss_fft_scalar value = m_ri[i]; |
505 m_ri[i] = m_ri[i + m_blockSize/2]; | 505 m_ri[i] = m_ri[i + m_blockSize/2]; |
506 m_ri[i + m_blockSize/2] = value; | 506 m_ri[i + m_blockSize/2] = value; |
507 } | 507 } |
508 | 508 |
509 Kiss::kiss_fftr(m_cfg, m_ri, m_cbuf); | 509 Kiss::vamp_kiss_fftr(m_cfg, m_ri, m_cbuf); |
510 | 510 |
511 for (int i = 0; i <= m_blockSize/2; ++i) { | 511 for (int i = 0; i <= m_blockSize/2; ++i) { |
512 m_freqbuf[c][i * 2] = float(m_cbuf[i].r); | 512 m_freqbuf[c][i * 2] = float(m_cbuf[i].r); |
513 m_freqbuf[c][i * 2 + 1] = float(m_cbuf[i].i); | 513 m_freqbuf[c][i * 2 + 1] = float(m_cbuf[i].i); |
514 } | 514 } |