From b63d3794886dc1782807df0a0612ef3512300dc9 Mon Sep 17 00:00:00 2001 From: mii443 Date: Thu, 15 Feb 2024 22:06:12 +0900 Subject: [PATCH] fix resampling --- local_test.yaml | 4 ++-- src/audio/resampling.rs | 16 +++------------- 2 files changed, 5 insertions(+), 15 deletions(-) diff --git a/local_test.yaml b/local_test.yaml index 325ccff..d84d661 100644 --- a/local_test.yaml +++ b/local_test.yaml @@ -1,7 +1,7 @@ virtual_devices: - name: "mic" channels: 2 - sample_rate: 192000 + sample_rate: 96000 routes: input: - name: "Mic" @@ -15,4 +15,4 @@ routes: virtual_device: "mic" device: local: - name: "VoiceMeeter Input (VB-Audio VoiceMeeter VAIO)" \ No newline at end of file + name: "CABLE Input (VB-Audio Virtual Cable)" \ No newline at end of file diff --git a/src/audio/resampling.rs b/src/audio/resampling.rs index 6dc61f2..1ccbcae 100644 --- a/src/audio/resampling.rs +++ b/src/audio/resampling.rs @@ -25,20 +25,10 @@ pub fn resampling( if adjustment_factor == 1.0 { adjusted_complex_data = complex_data; } else if adjustment_factor > 1.0 { - adjusted_complex_data = vec![Complex::new(0.0, 0.0); new_size]; - let step = complex_data.len() as f64 / new_size as f64; - for (i, sample) in adjusted_complex_data.iter_mut().enumerate() { - let idx = (i as f64 * step).floor() as usize; - *sample = complex_data - .get(idx) - .cloned() - .unwrap_or(Complex::new(0.0, 0.0)); - } + adjusted_complex_data = complex_data.into_iter().collect(); + adjusted_complex_data.resize(new_size, Complex::new(0.0, 0.0)); } else { - adjusted_complex_data = complex_data - .into_iter() - .step_by(adjustment_factor.recip().round() as usize) - .collect(); + adjusted_complex_data = complex_data.into_iter().collect(); adjusted_complex_data.resize(new_size, Complex::new(0.0, 0.0)); }