summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJustin Worthe <justin@worthe-it.co.za>2017-09-24 23:03:39 +0200
committerJustin Worthe <justin@worthe-it.co.za>2017-09-24 23:03:39 +0200
commitf3a4cc60d71a0083586b5498fd2498801a634d04 (patch)
treeafe607b84ce474dc75952b70c4a64e686039dc9b /src
parent3f5fb1cc3de97244548538ec81dda3963f1b25c6 (diff)
Emscripten endpoint for finding fundamental frequency
IT'S ALIVE!
Diffstat (limited to 'src')
-rw-r--r--src/transforms.rs16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/transforms.rs b/src/transforms.rs
index 55f81b6..656255b 100644
--- a/src/transforms.rs
+++ b/src/transforms.rs
@@ -236,3 +236,19 @@ pub fn align_to_rising_edge(samples: &[f32]) -> Vec<f32> {
.cloned()
.collect()
}
+
+
+#[cfg(target_os = "emscripten")]
+pub mod emscripten_api {
+ #[no_mangle]
+ pub extern "C" fn find_fundamental_frequency(signal: *const f32, signal_length: isize, sample_rate: f32) -> f32 {
+ use std::slice;
+ let signal_slice = unsafe {
+ &slice::from_raw_parts(signal, signal_length as usize)
+ };
+
+ println!("Signal is {:?}", signal_slice);
+ println!("Sample rate is {:?}Hz", sample_rate);
+ super::find_fundamental_frequency(&signal_slice, sample_rate).unwrap_or(0.0)
+ }
+}