pub struct HarmonicAnalyzer;Expand description
Harmonic analysis: fundamentals, overtones, THD.
Implementations§
Source§impl HarmonicAnalyzer
impl HarmonicAnalyzer
Sourcepub fn fundamental(spectrum: &Spectrum, sample_rate: f32) -> f32
pub fn fundamental(spectrum: &Spectrum, sample_rate: f32) -> f32
Detect the fundamental frequency from a spectrum.
Sourcepub fn harmonics(
spectrum: &Spectrum,
fundamental_hz: f32,
sample_rate: f32,
n: usize,
) -> Vec<f32>
pub fn harmonics( spectrum: &Spectrum, fundamental_hz: f32, sample_rate: f32, n: usize, ) -> Vec<f32>
Get amplitudes of the first n harmonics of fundamental_hz.
Sourcepub fn thd(harmonics: &[f32]) -> f32
pub fn thd(harmonics: &[f32]) -> f32
Total Harmonic Distortion: THD = sqrt(sum of h2..hN squared) / h1.
Sourcepub fn thd_percent(harmonics: &[f32]) -> f32
pub fn thd_percent(harmonics: &[f32]) -> f32
Total Harmonic Distortion in percent.
Sourcepub fn inharmonicity(
spectrum: &Spectrum,
fundamental_hz: f32,
sample_rate: f32,
n: usize,
) -> f32
pub fn inharmonicity( spectrum: &Spectrum, fundamental_hz: f32, sample_rate: f32, n: usize, ) -> f32
Inharmonicity: deviation of harmonic frequencies from ideal integer multiples.
Sourcepub fn spectral_centroid(spectrum: &Spectrum, sample_rate: f32) -> f32
pub fn spectral_centroid(spectrum: &Spectrum, sample_rate: f32) -> f32
Spectral centroid as a timbre measure.
Sourcepub fn odd_even_ratio(harmonics: &[f32]) -> f32
pub fn odd_even_ratio(harmonics: &[f32]) -> f32
Odd/even harmonic ratio (timbre indicator).
Auto Trait Implementations§
impl Freeze for HarmonicAnalyzer
impl RefUnwindSafe for HarmonicAnalyzer
impl Send for HarmonicAnalyzer
impl Sync for HarmonicAnalyzer
impl Unpin for HarmonicAnalyzer
impl UnsafeUnpin for HarmonicAnalyzer
impl UnwindSafe for HarmonicAnalyzer
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.