Skip to content

Latest commit

 

History

History
62 lines (41 loc) · 4.33 KB

File metadata and controls

62 lines (41 loc) · 4.33 KB

loudness

A Python package (battle-tested C++ under the hood) for calculating integrated loudness (LUFS) with the ITU BS.1770 loudness algorithm. Useful for EBU R 128 compliance. Takes NumPy arrays as input (supports mono and stereo/multichannel). Based on libloudness (original implementation by Magnus Bro Kolstø, Nomono).

Installation

PyPI version python 3.10, 3.11, 3.12, 3.13, 3.14 os: Linux, macOS, Windows

pip install loudness

Usage example

import soundfile as sf
import loudness

audio, sr = sf.read("audio.wav", dtype="float32")  # shape (samples, channels)
lufs = loudness.integrated_loudness(audio, sr)
print(f"{lufs:.2f} LUFS")

Performance

loudness is significantly faster than the alternatives when running on CPU:

Execution time comparison: loudness 0.1.0: 0.056s, pyebur128 0.1.1: 0.096s, torchaudio 2.8.0: 0.282, pyloudnorm 0.1.1: 0.293s, pyloudness 1.1.2: 0.581s

Changelog

[0.2.0] - 2025-12-26

Added

  • Add support for Python 3.14

Removed

  • Remove support for Python 3.9

For the complete changelog, go to CHANGELOG.md

Development setup

  • Install CMake and a C++ compiler
  • pip install numpy pybind11 build scikit-build-core
  • python -m build --wheel
  • Install the built wheel
  • pytest

Alternatives (Python)

Name Github stars License Last commit
jaxloudnorm Github stars License Last commit
loudness Github stars License Last commit
PALA Github stars License Last commit
pyebur128 Github stars License Last commit
pyloudness Github stars License Last commit
pyloudnorm Github stars License Last commit
torchaudio Github stars License Last commit