Skip to content

Commit 712caeb

Browse files
committed
Update README and metadata
Update README and metadata for v0.2.0
1 parent c71432c commit 712caeb

File tree

5 files changed

+188
-17
lines changed

5 files changed

+188
-17
lines changed

LICENSE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
MIT License
22

3-
Copyright (c) 2025 HBB-ThinkTank
3+
Copyright (c) 2025 HBB Think Tank
44

55
Permission is hereby granted, free of charge, to any person obtaining a copy
66
of this software and associated documentation files (the "Software"), to deal

README.md

Lines changed: 124 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,124 @@
1-
# PALA
2-
Python Audio Loudness Analysis
1+
# PALA – Python Audio Loudness Analysis
2+
3+
PALA is a modular Python package for measuring audio loudness according to the ITU-R BS.1770-5 standard.\
4+
It provides LUFS (I/S/M), True Peak, RMS, DR and LRA calculations with K-weighting and gating.
5+
6+
---
7+
8+
## 🍇 Purpose
9+
10+
The aim of PALA is to offer a unified, open-source loudness analysis tool for:
11+
12+
- mastering and post-production engineers
13+
- researchers in psychoacoustics and signal processing
14+
- developers building automated workflows
15+
16+
---
17+
18+
## 🏢 Installation
19+
20+
```bash
21+
pip install pala
22+
```
23+
24+
Or from source:
25+
26+
```bash
27+
git clone https://github.com/HBB-ThinkTank/PALA.git
28+
cd PALA
29+
pip install .
30+
```
31+
32+
---
33+
34+
## 🧠 Features (v0.2.0)
35+
36+
- ✅ LUFS calculation (Integrated, Short-Term, Momentary)
37+
- ✅ True Peak (with oversampling), Sample Peak
38+
- ✅ RMS (AES and ITU-R variants)
39+
- ✅ DR (Dynamic Range), Crest Factor, Headroom
40+
- ✅ Loudness Range (LRA using 10–95 percentile)
41+
- ✅ Chunked processing for large audio files
42+
- ✅ Modular structure with `lufs`, `dynamics`, `utils`, `io`
43+
44+
---
45+
46+
## 📊 Development Roadmap
47+
48+
### Equal-Loudness Curves (Fletcher-Munson)
49+
50+
- 🛠️ **Integration into frequency weighting**
51+
- 🛠️ **Application to LUFS evaluation**
52+
53+
### Frequency Analysis
54+
55+
- 🛠️ **FFT or Bark/octave band analysis**
56+
- 🛠️ **Loudness per frequency band**
57+
58+
### LRA (Loudness Range)
59+
60+
-**LRA based on LUFS segments (10–95 percentile)**
61+
- 🛠️ **Interchannel gating / hysteresis**
62+
63+
### LUFS Calculation (ITU-R BS.1770)
64+
65+
-**Momentary LUFS (400ms)**
66+
-**Short-Term LUFS (3s)**
67+
-**Integrated LUFS**
68+
-**Gating: Absolute (-70 LUFS)**
69+
-**Gating: Relative (-10 LU below average level)**
70+
-**Multichannel weighting (e.g. 1.0, 1.41)**
71+
- 🛠️ **Comparison with reference tools (e.g. pyloudnorm, ffmpeg)**
72+
- 🛠️ **Validation using ITU-R BS.2217 material**
73+
74+
### Package Structure & Interfaces
75+
76+
-**Modular package with analysis/lufs/dynamics/utils/io**
77+
-**Chunking support for large files**
78+
-**CLI support for single file input**
79+
- 🛠️ **CLI batch mode**
80+
- 🛠️ **Plot output (e.g. LUFS-M time curve)**
81+
82+
### True Peak / Peak / RMS / DR
83+
84+
-**True Peak with oversampling**
85+
-**Sample Peak (maximum sample value)**
86+
-**AES RMS (unweighted)**
87+
-**ITU-R RMS (K-weighted)**
88+
-**Crest Factor / Headroom**
89+
-**DR (True Peak - RMS)**
90+
91+
### Publishing & Distribution
92+
93+
-**setup.cfg / pyproject.toml**
94+
-**GitHub with README**
95+
- 🛠️ **Upload to PyPI (production release)**
96+
97+
---
98+
99+
## 🔮 Status
100+
101+
This project is in **alpha** stage. Results are close to professional tools (e.g. ffmpeg, pyloudnorm, APU plugins)\
102+
but not yet fully validated against ITU-R BS.2217 reference material.
103+
104+
Expect minor deviations (especially for edge cases or extreme signals).
105+
106+
---
107+
108+
## 🛠️ Requirements
109+
110+
- Python 3.8+
111+
- numpy, scipy, soundfile, soxr, numba
112+
113+
---
114+
115+
## 📄 License
116+
117+
MIT License – free to use, modify and redistribute.
118+
119+
---
120+
121+
## 🙌 Contributions Welcome
122+
123+
You’re invited to test, extend or improve the code – feel free to open issues or pull requests.
124+

pala/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
"""
22
PALA - Python Audio Loudness Analysis
33
"""
4-
__version__ = "0.1.0"
4+
__version__ = "0.2.0"

pyproject.toml

Lines changed: 27 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,41 @@ build-backend = "setuptools.build_meta"
44

55
[project]
66
name = "PALA"
7-
version = "0.1.0"
7+
version = "0.2.0"
88
description = "Python Audio Loudness Analysis"
99
readme = "README.md"
10-
authors = [{ name = "HBB-ThinkTank", email = "your-email@example.com" }]
10+
requires-python = ">=3.8"
11+
12+
authors = [
13+
{ name = "HBB-ThinkTank", email = "your-email@example.com" }
14+
]
15+
1116
license = { text = "MIT" }
12-
requires-python = ">=3.7"
17+
18+
keywords = ["audio", "loudness", "LUFS", "ITU-R BS.1770", "true peak", "RMS", "analysis"]
19+
1320
classifiers = [
14-
"Programming Language :: Python :: 3",
21+
"Development Status :: 3 - Alpha",
22+
"Intended Audience :: Developers",
23+
"Intended Audience :: Science/Research",
24+
"Topic :: Multimedia :: Sound/Audio :: Analysis",
1525
"License :: OSI Approved :: MIT License",
26+
"Programming Language :: Python :: 3",
27+
"Programming Language :: Python :: 3.8",
28+
"Programming Language :: Python :: 3.9",
29+
"Programming Language :: Python :: 3.10",
1630
"Operating System :: OS Independent"
1731
]
1832

33+
dependencies = [
34+
"numpy >= 1.24",
35+
"scipy >= 1.10",
36+
"soundfile >= 0.12",
37+
"soxr >= 0.5",
38+
"numba >= 0.56"
39+
]
40+
1941
[project.urls]
2042
Homepage = "https://github.com/HBB-ThinkTank/PALA"
2143
Repository = "https://github.com/HBB-ThinkTank/PALA"
44+
Issues = "https://github.com/HBB-ThinkTank/PALA/issues"

setup.cfg

Lines changed: 35 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,44 @@
11
[metadata]
2-
name = pala
3-
version = 0.1.0
4-
author = "HBB-ThinkTank"
5-
author_email = "deine-email@example.com"
6-
description = "Python Audio Loudness Analysis (PALA)"
2+
name = PALA
3+
version = 0.2.0
4+
description = Python Audio Loudness Analysis
75
long_description = file: README.md
86
long_description_content_type = text/markdown
9-
license_files = LICENSE
10-
url=https://github.com/HBB-ThinkTank/PALA
7+
author = HBB-ThinkTank
8+
author_email = your-email@example.com
9+
license = MIT
10+
url = https://github.com/HBB-ThinkTank/PALA
11+
keywords = audio, loudness, LUFS, true peak, RMS, ITU-R BS.1770
12+
1113
classifiers =
12-
Programming Language :: Python :: 3
14+
Development Status :: 3 - Alpha
15+
Intended Audience :: Developers
16+
Intended Audience :: Science/Research
17+
Topic :: Multimedia :: Sound/Audio :: Analysis
1318
License :: OSI Approved :: MIT License
19+
Programming Language :: Python :: 3
20+
Programming Language :: Python :: 3.8
21+
Programming Language :: Python :: 3.9
22+
Programming Language :: Python :: 3.10
1423
Operating System :: OS Independent
1524

1625
[options]
1726
packages = find:
18-
python_requires = >=3.7
27+
python_requires = >=3.8
28+
install_requires =
29+
numpy >= 1.24
30+
scipy >= 1.10
31+
soundfile >= 0.12
32+
soxr >= 0.5
33+
numba >= 0.56
34+
35+
[options.packages.find]
36+
exclude =
37+
tests*
38+
docs*
39+
40+
[options.extras_require]
41+
dev =
42+
pytest
43+
build
44+
twine

0 commit comments

Comments
 (0)