https://github.com/sdroege/ebur128
Implementation of the EBU R128 loudness standard
https://github.com/sdroege/ebur128
audio audio-analysis dsp ebu-r ebur128 loudness rust
Last synced: 18 days ago
JSON representation
Implementation of the EBU R128 loudness standard
- Host: GitHub
- URL: https://github.com/sdroege/ebur128
- Owner: sdroege
- License: mit
- Created: 2020-01-05T19:49:15.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2025-02-24T07:36:19.000Z (3 months ago)
- Last Synced: 2025-05-15T03:07:45.755Z (19 days ago)
- Topics: audio, audio-analysis, dsp, ebu-r, ebur128, loudness, rust
- Language: Rust
- Size: 287 KB
- Stars: 105
- Watchers: 7
- Forks: 19
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# ebur128 [](https://crates.io/crates/ebur128) [](https://github.com/sdroege/ebur128/actions) [](https://docs.rs/ebur128)
Implementation of the [EBU R128 loudness standard](https://tech.ebu.ch/docs/r/r128.pdf).
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](https://tech.ebu.ch/docs/tech/tech3341.pdf))
* Implements loudness range measurement ([EBU - TECH 3342](https://tech.ebu.ch/docs/tech/tech3342.pdf))
* True peak scanning
* Supports all samplerates by recalculation of the filter coefficientsThis crate is a Rust port of the [libebur128](https://github.com/jiixyj/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](https://tech.ebu.ch/docs/tech/tech3341.pdf)
and [EBU - TECH 3342](https://tech.ebu.ch/docs/tech/tech3342.pdf).## C API
ebur128 optionally provides a C API that is API/ABI-compatible with
libebur128. It can be built and installed via [`cargo-c`](https://crates.io/crates/cargo-c):```sh
# 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`](https://www.freedesktop.org/wiki/Software/pkg-config/)
file that is compatible with libebur128.## LICENSE
ebur128 is licensed under the MIT license ([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.