|
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