From 3f5fb1cc3de97244548538ec81dda3963f1b25c6 Mon Sep 17 00:00:00 2001 From: Justin Worthe Date: Sun, 24 Sep 2017 23:00:46 +0200 Subject: Cleaned up transforms api - made things that didn't need to be public hidden - renamed find fundamental function to remove correlation (there isn't an alternative anymore) --- src/gui.rs | 2 +- src/transforms.rs | 11 +++++------ 2 files changed, 6 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/gui.rs b/src/gui.rs index 796b341..c25826a 100644 --- a/src/gui.rs +++ b/src/gui.rs @@ -168,7 +168,7 @@ fn start_processing_audio(mic_receiver: Receiver>, cross_thread_state: let signal = ::transforms::align_to_rising_edge(&samples); let correlation = ::transforms::correlation(&samples); - let fundamental = ::transforms::find_fundamental_frequency_correlation(&samples, ::audio::SAMPLE_RATE); + let fundamental = ::transforms::find_fundamental_frequency(&samples, ::audio::SAMPLE_RATE); let pitch = match fundamental { Some(fundamental) => ::transforms::hz_to_pitch(fundamental), None => String::new() diff --git a/src/transforms.rs b/src/transforms.rs index ac83a32..55f81b6 100644 --- a/src/transforms.rs +++ b/src/transforms.rs @@ -1,5 +1,4 @@ - -pub fn remove_mean_offset(signal: &[f32]) -> Vec { +fn remove_mean_offset(signal: &[f32]) -> Vec { let mean = signal.iter().sum::()/signal.len() as f32; signal.iter().map(|x| x - mean).collect() } @@ -13,7 +12,7 @@ pub fn correlation(signal: &[f32]) -> Vec { }).collect() } -pub fn find_fundamental_frequency_correlation(signal: &[f32], sample_rate: f32) -> Option { +pub fn find_fundamental_frequency(signal: &[f32], sample_rate: f32) -> Option { let normalized_signal = remove_mean_offset(signal); if normalized_signal.iter().all(|&x| x.abs() < 0.05) { @@ -138,7 +137,7 @@ mod tests { let frequency = 440.0 as f32; //concert A let samples = sample_sinusoud(1.0, frequency, 0.0); - let fundamental = find_fundamental_frequency_correlation(&samples, SAMPLE_RATE).expect("Find fundamental returned None"); + let fundamental = find_fundamental_frequency(&samples, SAMPLE_RATE).expect("Find fundamental returned None"); assert!((fundamental-frequency).abs() < frequency_resolution(), "expected={}, actual={}", frequency, fundamental); } @@ -153,7 +152,7 @@ mod tests { .map(|(a, b)| a+b) .collect(); - let fundamental = find_fundamental_frequency_correlation(&samples, SAMPLE_RATE).expect("Find fundamental returned None"); + let fundamental = find_fundamental_frequency(&samples, SAMPLE_RATE).expect("Find fundamental returned None"); assert!((fundamental-expected_fundamental).abs() < frequency_resolution(), "expected_fundamental={}, actual={}", expected_fundamental, fundamental); } @@ -164,7 +163,7 @@ mod tests { } } -pub fn hz_to_midi_number(hz: f32) -> f32 { +fn hz_to_midi_number(hz: f32) -> f32 { 69.0 + 12.0 * (hz / 440.0).log2() } -- cgit v1.2.3