@@ -243,7 +243,7 @@ struct ResamplerConfig {
243
243
244
244
impl ResamplerConfig {
245
245
fn upsample_x2 ( channels : usize , sample_rate : usize ) -> Self {
246
- let chunk_size_in = RENDER_QUANTUM_SIZE * 2 ;
246
+ let chunk_size_in = RENDER_QUANTUM_SIZE ;
247
247
let sample_rate_in = sample_rate;
248
248
let sample_rate_out = sample_rate * 2 ;
249
249
Self {
@@ -255,7 +255,7 @@ impl ResamplerConfig {
255
255
}
256
256
257
257
fn upsample_x4 ( channels : usize , sample_rate : usize ) -> Self {
258
- let chunk_size_in = RENDER_QUANTUM_SIZE * 4 ;
258
+ let chunk_size_in = RENDER_QUANTUM_SIZE ;
259
259
let sample_rate_in = sample_rate;
260
260
let sample_rate_out = sample_rate * 4 ;
261
261
Self {
@@ -267,7 +267,7 @@ impl ResamplerConfig {
267
267
}
268
268
269
269
fn downsample_x2 ( channels : usize , sample_rate : usize ) -> Self {
270
- let chunk_size_in = RENDER_QUANTUM_SIZE ;
270
+ let chunk_size_in = RENDER_QUANTUM_SIZE * 2 ;
271
271
let sample_rate_in = sample_rate * 2 ;
272
272
let sample_rate_out = sample_rate;
273
273
Self {
@@ -279,7 +279,7 @@ impl ResamplerConfig {
279
279
}
280
280
281
281
fn downsample_x4 ( channels : usize , sample_rate : usize ) -> Self {
282
- let chunk_size_in = RENDER_QUANTUM_SIZE ;
282
+ let chunk_size_in = RENDER_QUANTUM_SIZE * 4 ;
283
283
let sample_rate_in = sample_rate * 4 ;
284
284
let sample_rate_out = sample_rate;
285
285
Self {
@@ -375,7 +375,7 @@ struct WaveShaperRenderer {
375
375
upsampler_x2 : Resampler ,
376
376
// up sampler configured to multiply by 4 the input signal
377
377
upsampler_x4 : Resampler ,
378
- // down sampler configured to divide by 4 the upsampled signal
378
+ // down sampler configured to divide by 2 the upsampled signal
379
379
downsampler_x2 : Resampler ,
380
380
// down sampler configured to divide by 4 the upsampled signal
381
381
downsampler_x4 : Resampler ,
@@ -499,6 +499,7 @@ impl AudioProcessor for WaveShaperRenderer {
499
499
if let Some ( curve) = msg. downcast_mut :: < Option < Vec < f32 > > > ( ) {
500
500
std:: mem:: swap ( & mut self . curve , curve) ;
501
501
502
+ // We can propagate silent input only if the center of the curve is zero
502
503
self . can_propagate_silence = if let Some ( curve) = & self . curve {
503
504
if curve. len ( ) % 2 == 1 {
504
505
curve[ curve. len ( ) / 2 ] . abs ( ) < 1e-9
0 commit comments