diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/emscripten_api.rs | 24 | ||||
-rw-r--r-- | src/transforms.rs | 2 |
2 files changed, 7 insertions, 19 deletions
diff --git a/src/emscripten_api.rs b/src/emscripten_api.rs index ec6704e..c371d86 100644 --- a/src/emscripten_api.rs +++ b/src/emscripten_api.rs @@ -1,5 +1,8 @@ use transforms; +use std::os::raw::c_char; +use std::ffi::CString; + #[no_mangle] pub extern "C" fn find_fundamental_frequency(signal: *const f32, signal_length: isize, sample_rate: f32) -> f32 { use std::slice; @@ -11,29 +14,14 @@ pub extern "C" fn find_fundamental_frequency(signal: *const f32, signal_length: } #[no_mangle] -pub extern "C" fn correlation(signal: *const f32, signal_length: isize) { - //TODO correlate inline -} - -#[no_mangle] pub extern "C" fn hz_to_cents_error(hz: f32) -> f32 { - //TODO implement - 0.0 + transforms::hz_to_cents_error(hz) } -use std::os::raw::c_char; -use std::ffi::CStr; -use std::ffi::CString; - #[no_mangle] pub extern "C" fn hz_to_pitch(hz: f32) -> *mut c_char { - //TODO implement - CString::new("C 4") + let pitch = transforms::hz_to_pitch(hz); + CString::new(pitch) .unwrap() .into_raw() } - -#[no_mangle] -pub extern "C" fn align_to_rising_edge(signal: *const f32, signal_length: isize) { - //TODO format signal nicely inline -} diff --git a/src/transforms.rs b/src/transforms.rs index 55f81b6..aaae83b 100644 --- a/src/transforms.rs +++ b/src/transforms.rs @@ -169,7 +169,7 @@ fn hz_to_midi_number(hz: f32) -> f32 { pub fn hz_to_cents_error(hz: f32) -> f32 { let midi_number = hz_to_midi_number(hz); - let cents = (midi_number % 1.0) * 100.0; + let cents = (midi_number - midi_number.floor()) * 100.0; if cents >= 50.0 { cents - 100.0 } |