1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
//! # ferraus-analysis
//!
//! Reusable audio analysis. Every public function takes an [`AudioBuffer`] and returns a
//! serde-serialisable struct, so other crates (mastering, stretch, delay sync,
//! transcription, scores) reuse exactly the numbers the `analyze` commands print.
//!
//! | Module | Main entry points |
//! | --- | --- |
//! | [`tempo`] | [`detect_tempo`] → [`TempoResult`]; [`tempo::onset_envelope`], [`tempo::transient_density`] |
//! | [`loudness`] | [`loudness()`] / [`loudness_with`] → [`LoudnessReport`]; [`true_peak`], [`loudness::integrated_lufs`], [`loudness::loudness_outliers`] |
//! | [`spectrum`] | [`spectrum::spectrum`], [`spectrum::third_octave_levels`], [`spectrum::tone_balance`], [`spectrum::tone_balance_vs_curve`] |
//! | [`stereo`] | [`stereo::stereo_analysis`] → [`stereo::StereoReport`]; [`stereo::correlation`], [`stereo::low_correlation`] |
//! | [`levels`] | [`levels::detect_silence`], [`levels::detect_clipping`], [`levels::stats`], [`levels::crest_factor_db`] |
//! | [`chords`] | [`detect_chords`] → [`ChordResult`]; [`chords::chromagram`] |
//! | [`compare`] | [`compare::compare`] → [`compare::CompareReport`]; [`compare::similarity`], [`compare::mfcc`] |
//! | [`problems`] | [`problems::diagnose`] → [`problems::ProblemsReport`] and the individual detectors |
//! | [`mastering`] | [`mastering::dynamics`], [`mastering::looks_mastered`], [`mastering::mastering_analysis`] |
//!
//! Loudness values that cannot be measured are `-inf` in Rust and `null` in JSON.
pub use ;
pub use ;
pub use AudioBuffer;
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;
use OpSpec;
/// Ops this crate contributes to the command registry: `analyze tempo|loudness|silence|
/// spectrum|clipping|chords|similarity|problems|stats|stereo` and `compare`.