skillfed

pyloudnorm

Implementation of ITU-R BS.1770-4 loudness algorithm in Python.

pyloudnorm v0.2.0 4.0M downloads/30d#2,396 on PyPI780
Permissive license MIT AGING released

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 pyloudnorm

uv

uv add pyloudnorm

poetry

poetry add pyloudnorm

Installing 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

Operating System :: OS IndependentProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.9Topic :: Multimedia :: Sound/AudioTopic :: Scientific/Engineering

Tags

audio loudness measurementITU-R BS.1770 implementationloudness normalization pythonaudio level meteringLUFS loudness calculationaudio peak normalizationloudness range measurement
audio-processingbroadcast-standardsignal-analysis

More Scientific/Engineering packages