summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJustin Worthe <justin@worthe-it.co.za>2017-09-24 23:00:46 +0200
committerJustin Worthe <justin@worthe-it.co.za>2017-09-24 23:00:46 +0200
commit3f5fb1cc3de97244548538ec81dda3963f1b25c6 (patch)
tree32dbdba3c60eda6658fd341f38ba3bac10501fe0 /src
parentc8c194bdfdca7c605bb6746a794bff3100161ec5 (diff)
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)
Diffstat (limited to 'src')
-rw-r--r--src/gui.rs2
-rw-r--r--src/transforms.rs11
2 files changed, 6 insertions, 7 deletions
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<Vec<f32>>, 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<f32> {
+fn remove_mean_offset(signal: &[f32]) -> Vec<f32> {
let mean = signal.iter().sum::<f32>()/signal.len() as f32;
signal.iter().map(|x| x - mean).collect()
}
@@ -13,7 +12,7 @@ pub fn correlation(signal: &[f32]) -> Vec<f32> {
}).collect()
}
-pub fn find_fundamental_frequency_correlation(signal: &[f32], sample_rate: f32) -> Option<f32> {
+pub fn find_fundamental_frequency(signal: &[f32], sample_rate: f32) -> Option<f32> {
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()
}