|
1 | 1 | use std::any::Any;
|
2 |
| -use std::sync::Arc; |
| 2 | +// use std::sync::Arc; |
3 | 3 |
|
4 |
| -use realfft::{num_complex::Complex, ComplexToReal, RealFftPlanner, RealToComplex}; |
| 4 | +// use realfft::{num_complex::Complex, ComplexToReal, RealFftPlanner, RealToComplex}; |
5 | 5 | use fft_convolver::FFTConvolver;
|
6 | 6 |
|
7 | 7 | use crate::buffer::AudioBuffer;
|
@@ -229,8 +229,16 @@ impl ConvolverNode {
|
229 | 229 | // })
|
230 | 230 | // .collect();
|
231 | 231 |
|
| 232 | + let mut samples = vec![0.; buffer.length()]; |
| 233 | + samples.iter_mut() |
| 234 | + .zip(buffer.get_channel_data(0)) |
| 235 | + .for_each(|(o, i)| *o = *i * scale); |
| 236 | + |
232 | 237 | let mut convolver = FFTConvolver::<f32>::default();
|
233 |
| - let _ = convolver.init(RENDER_QUANTUM_SIZE, buffer.get_channel_data(0)); |
| 238 | + // Size of the partition changes a lot the perf... |
| 239 | + // - RENDER_QUANTUM_SIZE -> 20x (compared to real-time) |
| 240 | + // - RENDER_QUANTUM_SIZE * 8 -> 134x |
| 241 | + let _ = convolver.init(RENDER_QUANTUM_SIZE * 8, &samples); |
234 | 242 |
|
235 | 243 | // let padded_buffer = AudioBuffer::from(samples, sample_rate);
|
236 | 244 | // let convolve = ConvolverRendererInner::new(padded_buffer);
|
@@ -474,12 +482,12 @@ mod tests {
|
474 | 482 |
|
475 | 483 | use super::*;
|
476 | 484 |
|
477 |
| - #[test] |
478 |
| - fn test_roll_zero() { |
479 |
| - let mut input = vec![1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; |
480 |
| - roll_zero(&mut input, 3); |
481 |
| - assert_eq!(&input, &[4, 5, 6, 7, 8, 9, 10, 0, 0, 0]); |
482 |
| - } |
| 485 | + // #[test] |
| 486 | + // fn test_roll_zero() { |
| 487 | + // let mut input = vec![1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; |
| 488 | + // roll_zero(&mut input, 3); |
| 489 | + // assert_eq!(&input, &[4, 5, 6, 7, 8, 9, 10, 0, 0, 0]); |
| 490 | + // } |
483 | 491 |
|
484 | 492 | #[test]
|
485 | 493 | #[should_panic]
|
|
0 commit comments