diff --git a/src/lib.rs b/src/lib.rs index 31c4c29..0678617 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -6,12 +6,12 @@ pub mod pitch_extractor; use pitch_extractor::{PitchExtractor, YinPitchExtractor}; pub const CHANNELS: usize = 1; -pub const RMS_THRESHOLD: f32 = 0.02; +pub const RMS_THRESHOLD: f32 = 0.03; // TODO(kgreenek): Set these values at run-time as parameters independent of the sample rate. // Reasonable values for a sample rate of 16khz. -const WINDOW_SIZE: usize = 100; -const PITCH_MAX_T: usize = 150; +pub const WINDOW_SIZE: usize = 100; +pub const PITCH_MAX_T: usize = 150; // Reasonable values for a sample rate of 44.1khz. //pub const WINDOW_SIZE: usize = 256; //pub const PITCH_MAX_T: usize = 1024; diff --git a/src/pitch_extractor.rs b/src/pitch_extractor.rs index b185712..b73a51a 100644 --- a/src/pitch_extractor.rs +++ b/src/pitch_extractor.rs @@ -116,17 +116,12 @@ where self.update_acf_norm(); for channel in 0..F::n_channels() { self.pitch[channel] = 0; - let mut acf_norm_min_value = *self.acf_norm[0].channel(channel).unwrap(); for (frame_index, &acf_norm_frame) in self.acf_norm[..].iter().enumerate() { let acf_norm_sample = acf_norm_frame.channel(channel).unwrap(); if *acf_norm_sample < 0.1.to_sample() { self.pitch[channel] = frame_index; break; } - if *acf_norm_sample < acf_norm_min_value { - acf_norm_min_value = *acf_norm_sample; - self.pitch[channel] = frame_index; - } } } self.pitch()