#dsp #audio

ebur128

Implementation of the EBU R128 loudness standard

12 releases

0.1.10 Oct 26, 2024
0.1.9 Jun 26, 2024
0.1.8 Apr 27, 2023
0.1.7 Oct 28, 2022
0.1.0 Jan 5, 2020

#413 in Multimedia

Download history 2366/week @ 2024-08-22 2291/week @ 2024-08-29 3135/week @ 2024-09-05 3612/week @ 2024-09-12 3806/week @ 2024-09-19 4565/week @ 2024-09-26 4789/week @ 2024-10-03 5902/week @ 2024-10-10 5794/week @ 2024-10-17 5937/week @ 2024-10-24 6703/week @ 2024-10-31 4188/week @ 2024-11-07 4142/week @ 2024-11-14 4586/week @ 2024-11-21 4833/week @ 2024-11-28 4055/week @ 2024-12-05

18,340 downloads per month
Used in 5 crates

MIT license

300KB
6.5K SLoC

ebur128 crates.io Actions Status docs.rs

Implementation of the EBU R128 loudness standard.

The European Broadcasting Union Loudness Recommendation (EBU R128) informs broadcasters how they can analyze and normalize audio so that each piece of audio sounds roughly the same volume to the human ear.

This crate provides an API which analyzes audio and outputs perceived loudness. The results can then be used to normalize volume during playback.

Features:

  • Implements M, S and I modes (EBU - TECH 3341)
  • Implements loudness range measurement (EBU - TECH 3342)
  • True peak scanning
  • Supports all samplerates by recalculation of the filter coefficients

This crate is a Rust port of the libebur128 C library, produces the same results as the C library and has comparable performance.

EBU TECH 3341/3342 Compliance

Currently, the implementation passes all tests defined in EBU - TECH 3341 and EBU - TECH 3342.

C API

ebur128 optionally provides a C API that is API/ABI-compatible with libebur128. It can be built and installed via cargo-c:

# If cargo-c was not installed yet
$ cargo install cargo-c
# Change the prefix to the place where it should be installed
$ cargo cbuild --prefix /usr/local
$ cargo cinstall --prefix /usr/local

This installs a shared library, static library, C header and pkg-config file that is compatible with libebur128.

LICENSE

ebur128 is licensed under the MIT license (LICENSE or http://opensource.org/licenses/MIT).

Contribution

Any kinds of contributions are welcome as a pull request.

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in ebur128 by you shall be licensed under the MIT license as above, without any additional terms or conditions.

Dependencies

~245KB