Skip to main content

soundlevelmeter

An IEC 61672-1 and IEC 61260-1 compliant sound level meter in Python. Measures LAeq, LCeq, LZeq, LASmax, LAFmax, octave-band levels (1/1, 1/3, 1/6, …), sound exposure levels (LE), and more — from WAV files, a numpy array or a live microphone.

Features

  • Broadband metrics — A/C/Z frequency weighting; Fast/Slow/Impulse time weighting; Leq, max, min, sound exposure level, and moving-window variants.
  • Octave-band analysis (RTA) — arbitrary N/M-octave filter banks (1/1, 1/3, 1/6, …) per IEC 61260-1.
  • Any source — WAV files, an in-memory NumPy array or a live audio device.
  • Standards-based — filters and weightings verified against the IEC 61672-1 / 61260-1 conformance limits (scripts/conformance_report.py).
  • Three ways to drive it — a command-line tool, an interactive REPL, and a Python API.

Installation

git clone https://github.com/ninoblumer/python-soundlevelmeter
cd python-soundlevelmeter
python -m venv venv
source venv/bin/activate      # macOS / Linux
# venv\Scripts\activate       # Windows
pip install -r requirements.txt

To use slm as a shell command instead, you can install this tool directly. For example with pip install --user git+https://github.com/ninoblumer/python-soundlevelmeter.git@main

Quickstart

Measure a recorded WAV file:

# calibrate from a recording of a calibration tone
$ python -m slm --file calibration.wav -- calibrate
Sensitivity: 17.68 mV  |  -35.05 dBV
$ python -m slm --file recording.wav --sensitivity-dbv -35.05 --measure LAeq LAFmax LCeq LZeq:bands:63-8000

Broadband results land in output/measurement_report.csv (and a per-dt _log.csv); per-band results in output/measurement_rta_report.csv. See Getting started for live input, the REPL, sensitivity flags, and every option.

Documentation

Full documentation lives in docs/:

Guide What it covers
Getting started CLI usage, live input, the generator, the interactive REPL
Metric name syntax How to name quantities (LAeq, LAFmax_dt, LZeq:bands:63-8000, …)
Calibration Deriving controller sensitivity from a calibrator tone
Signal conditioning The XL2-style input filter (--signal-conditioning)
Configuration TOML config schema for reproducible runs
Python API High-, mid-, and low-level library entry points
Architecture Controller → Engine → Bus → plugins → meters → Reporter
Running the tests pytest, slow tests, the conformance margin report
Real-time load benchmark Measuring CPU headroom against the real-time budget

License

This project is licensed under the GNU General Public License v3.0. See LICENSE for full details and NOTICE for third-party attributions.

Metadata

Release files for soundlevelmeter 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for soundlevelmeter 1.0.0
File Size Uploaded
soundlevelmeter-1.0.0.tar.gz 91.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for soundlevelmeter 1.0.0
File Interpreter ABI Platform
soundlevelmeter-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 181.9 kB

Release files / soundlevelmeter-1.0.0.tar.gz

Download URL soundlevelmeter-1.0.0.tar.gz
Size 91.1 kB
Tags Source
SHA-256 checksum
How to use checksums
9fbad5ce62f285fbabb59561388ab840d52adb10d157147dfc5f3584dbe1e404
BLAKE2b-256 checksum
How to use checksums
47de2ea05a6a50cce4f95e01cfee883d008e9657b01c223aff0c1b06b320c5a8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 9, 2026.

Transparency log

Release files / soundlevelmeter-1.0.0-py3-none-any.whl

Download URL soundlevelmeter-1.0.0-py3-none-any.whl
Size 90.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bf0ddeb0d988c8016a365655b5c8062ad9fb80990c7d7bc702d6e731b9aa8900
BLAKE2b-256 checksum
How to use checksums
45abcc32bddb97238ad7d779701c9301973122772cd29f49801c43ec46548f7e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 9, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

0.3.0

2 release files

0.2.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page