lookas 1.10.0

Perception aligned terminal-based audio spectrum visualizer
Documentation
#[inline]
#[must_use]
pub fn a_weighting(hz: f32) -> f32 {
    const P1_SQ: f32 = 20.6_f32 * 20.6_f32;
    const P2_SQ: f32 = 107.7_f32 * 107.7_f32;
    const P3_SQ: f32 = 737.9_f32 * 737.9_f32;
    const P4_SQ: f32 = 12_194.0_f32 * 12_194.0_f32;
    const NORM: f32 = 1.258_925_4;

    let f = hz.max(10.0);
    let f2 = f * f;
    let f4 = f2 * f2;

    let num = P4_SQ * f4;
    let den = (f2 + P1_SQ)
        * ((f2 + P2_SQ) * (f2 + P3_SQ)).sqrt()
        * (f2 + P4_SQ);

    (num / den) * NORM
}