pyloudnorm
Implementation of ITU-R BS.1770-4 loudness algorithm in Python.
What it is and what it does
pyloudnorm is a Python implementation of the ITU-R BS.1770-4 loudness metering standard, used in broadcast and audio production to measure perceived loudness. It wraps scipy and numpy to perform frequency weighting and loudness analysis on audio arrays, supporting both measurement and normalization workflows.
The package provides a Meter class that analyzes audio at a given sample rate, offering integrated loudness measurement, loudness range calculation per EBU Tech 3342, and peak/loudness normalization functions. It includes multiple filter implementations (BS.1770 standard, DeMan, Fenton/Lee variants, and Dash et al.) and allows customization of block size and custom IIR filters for specialized use cases.
Use it for:
- Normalize podcast or streaming audio to broadcast-standard loudness levels before distribution
- Measure loudness range in music production to assess dynamic variation across a track
- Batch-process audio files to ensure consistent perceived volume across a catalog
- Implement loudness metering in audio editing or DAW plugins
- Validate audio compliance with streaming platform loudness requirements
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Measures and normalizes audio loudness according to the ITU-R BS.1770-4 standard, with support for multiple weighting filters and customizable analysis parameters.
Yes. The package solves a specific, well-defined problem (ITU-R BS.1770-4 loudness measurement) with low install friction, permissive licensing, and active maintenance. It is suitable for audio production, streaming, and broadcast workflows where loudness standardization is required. No known vulnerabilities.
Install
pyloudnorm on PyPI
pip
pip install pyloudnormuv
uv add pyloudnormpoetry
poetry add pyloudnormInstalling pyloudnorm
Before you install
Low install friction with only scipy and numpy as dependencies. The package is aging (222 days since last release) but the repository remains active with recent commits and 780 GitHub stars.
License in practice
MIT license permits commercial and private use with minimal restrictions, making it suitable for most audio processing workflows.
Quickstart
import pyloudnorm as pyln
import numpy as np
meter = pyln.Meter(rate) # create meter for sample rate
audio = np.random.randn(samples, channels)
loudness = meter.integrated_loudness(audio)
print(f"Loudness: {loudness}")
Requires audio data as a numpy array with shape (samples, channels); audio must be loaded separately using soundfile or similar.
Verify before relying
- Whether the package handles edge cases like mono audio or very short audio files gracefully
- Performance characteristics when processing large audio files or real-time streams
- Compatibility with other audio libraries beyond soundfile
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.9) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 2 — scipy, numpy |
| Maintenance | aging — 222 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 4,030,269/month — #2,396 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: pyloudnorm-0.2.0-py3-none-any.whl
Tags
More Scientific/Engineering packages
NumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
pandaspandas provides fast, flexible data structures…
permissive · top 100 on PyPI
scipyscipy provides numerical algorithms for…
permissive · top 100 on PyPI
scikit-learnscikit-learn provides a comprehensive Python…
permissive · top 1,000 on PyPI
dilldill extends Python's pickle module to…
permissive · top 1,000 on PyPI
multiprocessMultiprocess is an enhanced fork of Python's…
permissive · top 1,000 on PyPI
pyrubberbandProvides Python wrappers for time-stretching…
permissive · top 15,000 on PyPI
pystoiComputes Short Term Objective Intelligibility…
permissive · top 5,000 on PyPI
torchfcpeTorchFCPE estimates fundamental frequency…
permissive · top 15,000 on PyPI
pyunormalizeProvides Unicode normalization (NFC, NFD, NFKC,…
permissive · top 5,000 on PyPI
silero-vadSilero VAD detects speech activity in audio…
permissive · top 5,000 on PyPI
samplerateWraps libsamplerate (Secret Rabbit Code) to…
permissive · top 15,000 on PyPI
kokoroKokoro is an inference library for the…
permissive · top 15,000 on PyPI
audiomentationsAudiomentations applies randomized audio…
permissive · top 15,000 on PyPI
soundfileReads and writes audio files in formats like…
permissive · top 1,000 on PyPI
descript-audiotoolsProvides object-oriented audio signal handling…
permissive · top 15,000 on PyPI