oximedia-metering
Status: [Stable] | Version: 0.1.8 | Tests: 521 | Updated: 2026-05-21
Professional broadcast audio metering for OxiMedia, implementing ITU-R BS.1770-4, EBU R128, and ATSC A/85 loudness standards.
Part of the oximedia workspace — a comprehensive pure-Rust media processing framework.
Features
- ITU-R BS.1770-4 — Algorithms to measure audio programme loudness and true-peak level
- ITU-R BS.1771 — Loudness and true-peak indicating meter requirements
- EBU R128 — Loudness normalisation and permitted maximum level
- ATSC A/85 — US broadcast loudness standard
- Momentary Loudness — 400ms sliding window (75% overlap)
- Short-term Loudness — 3-second sliding window (75% overlap)
- Integrated Loudness — Gated program loudness (LKFS/LUFS)
- Loudness Range (LRA) — Percentile-based dynamic range measurement
- True Peak Detection — 4x oversampling with sinc interpolation
- Per-channel Tracking — Individual channel true peak levels
- Multi-channel Support — Mono through 7.1.4 Dolby Atmos
- Compliance Checking — EBU R128, ATSC A/85, streaming platforms (Spotify, YouTube, Apple Music)
- VU Meters — IEC 60268-10 standard with 300ms ballistics
- Peak Meters — Sample-accurate peak detection with peak hold
- PPM Meters — IEC standard PPM Type I/II/DIN/Nordic/BBC/SMPTE
- Dynamic Range Metering — DR meter for dynamic range analysis
- K-weighting — Frequency weighting filters (K, A, C, Z)
- M/S Metering — Mid-side stereo analysis
- Phase Analysis — Phase correlation and stereo field monitoring
- Correlation Meter — Stereo correlation metering
- Spectral Analysis — Octave band and spectrum analysis
- Crest Factor — Peak-to-RMS ratio measurement
- Video Luminance/Color — Video signal quality metrics
Usage
Add to your Cargo.toml:
[]
= "0.1.8"
use ;
let config = new;
let mut meter = new?;
// Process audio samples (interleaved f32)
let audio_samples: & = &;
meter.process_f32;
let metrics = meter.metrics;
println!;
println!;
println!;
let compliance = meter.check_compliance;
println!;
use ;
let mut vu_meter = new?;
let audio_samples: & = &;
vu_meter.process_interleaved;
let peaks = vu_meter.peak_dbfs;
println!;
API Overview
Core types:
LoudnessMeter— ITU-R BS.1770/EBU R128 loudness meterMeterConfig— Meter configuration (standard, sample rate, channels)Standard— EbuR128, AtscA85, ItuRBs1770PeakMeter— Peak/VU meterPeakMeterType— Vu, Ppm, TruePeak
Result types:
LoudnessMetrics— Integrated, momentary, short-term LUFS, LRA, true peakComplianceReport— Standard compliance result
Modules:
atsc— ATSC A/85 complianceballistics— Meter ballistics (attack/release)correlation— Stereo correlation meteringdr_meter,dynamic_range_meter— Dynamic range (DR) meteringdynamics— Dynamics analysisebu,ebu_r128_impl— EBU R128 implementationfilters— Frequency weighting filtersgating— Loudness gatingk_weighting,k_weighted— K-weighting filterlkfs— LKFS measurementloudness_gate,loudness_history,loudness_trend— Loudness trackingm_s_meter— Mid-side meteringmeter_bridge,meter_type_config— Meter bridge integrationnoise_floor— Noise floor estimationoctave_bands— Octave band analysispeak,peak_meter— Peak detectionphase,phase_analysis,phase_scope— Phase analysisppm— PPM meteringrange— Loudness rangerender,report— Report renderingspectral_balance,spectral_energy,spectrum,spectrum_bands— Spectral analysisstereo_balance— Stereo balance meteringtrue_peak,truepeak— True peak detectionvideo_color,video_luminance,video_quality— Video signal meteringvu_meter— VU metercrest_factor— Crest factor measurement
License
Apache-2.0 — Copyright 2024-2026 COOLJAPAN OU (Team Kitasan)