PALA


NamePALA JSON
Version 0.2.0 PyPI version JSON
download
home_pagehttps://github.com/HBB-ThinkTank/PALA
SummaryPython Audio Loudness Analysis
upload_time2025-07-19 22:19:12
maintainerNone
docs_urlNone
authorHBB-ThinkTank
requires_python>=3.8
licenseMIT
keywords audio loudness lufs itu-r bs.1770 true peak rms analysis
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # PALA โ€“ Python Audio Loudness Analysis

PALA is a modular Python package for measuring audio loudness according to the ITU-R BS.1770-5 standard.\
It provides LUFS (I/S/M), True Peak, RMS, DR and LRA calculations with K-weighting and gating.

---

## ๐Ÿ‡ Purpose

The aim of PALA is to offer a unified, open-source loudness analysis tool for:

- mastering and post-production engineers
- researchers in psychoacoustics and signal processing
- developers building automated workflows

---

## ๐Ÿข Installation

```bash
pip install pala
```

Or from source:

```bash
git clone https://github.com/HBB-ThinkTank/PALA.git
cd PALA
pip install .
```

---

## ๐Ÿง  Features (v0.2.0)

- โœ… LUFS calculation (Integrated, Short-Term, Momentary)
- โœ… True Peak (with oversampling), Sample Peak
- โœ… RMS (AES and ITU-R variants)
- โœ… DR (Dynamic Range), Crest Factor, Headroom
- โœ… Loudness Range (LRA using 10โ€“95 percentile)
- โœ… Chunked processing for large audio files
- โœ… Modular structure with `lufs`, `dynamics`, `utils`, `io`

---

## ๐Ÿ“Š Development Roadmap

### Equal-Loudness Curves (Fletcher-Munson)

- ๐Ÿ› ๏ธ **Integration into frequency weighting**
- ๐Ÿ› ๏ธ **Application to LUFS evaluation**

### Frequency Analysis

- ๐Ÿ› ๏ธ **FFT or Bark/octave band analysis**
- ๐Ÿ› ๏ธ **Loudness per frequency band**

### LRA (Loudness Range)

- โœ… **LRA based on LUFS segments (10โ€“95 percentile)**
- ๐Ÿ› ๏ธ **Interchannel gating / hysteresis**

### LUFS Calculation (ITU-R BS.1770)

- โœ… **Momentary LUFS (400ms)**
- โœ… **Short-Term LUFS (3s)**
- โœ… **Integrated LUFS**
- โœ… **Gating: Absolute (-70 LUFS)**
- โœ… **Gating: Relative (-10 LU below average level)**
- โœ… **Multichannel weighting (e.g. 1.0, 1.41)**
- ๐Ÿ› ๏ธ **Comparison with reference tools (e.g. pyloudnorm, ffmpeg)**
- ๐Ÿ› ๏ธ **Validation using ITU-R BS.2217 material**

### Package Structure & Interfaces

- โœ… **Modular package with analysis/lufs/dynamics/utils/io**
- โœ… **Chunking support for large files**
- โœ… **CLI support for single file input**
- ๐Ÿ› ๏ธ **CLI batch mode**
- ๐Ÿ› ๏ธ **Plot output (e.g. LUFS-M time curve)**

### True Peak / Peak / RMS / DR

- โœ… **True Peak with oversampling**
- โœ… **Sample Peak (maximum sample value)**
- โœ… **AES RMS (unweighted)**
- โœ… **ITU-R RMS (K-weighted)**
- โœ… **Crest Factor / Headroom**
- โœ… **DR (True Peak - RMS)**

### Publishing & Distribution

- โœ… **setup.cfg / pyproject.toml**
- โœ… **GitHub with README**
- ๐Ÿ› ๏ธ **Upload to PyPI (production release)**

---

## ๐Ÿ”ฎ Status

This project is in **alpha** stage. Results are close to professional tools (e.g. ffmpeg, pyloudnorm, APU plugins)\
but not yet fully validated against ITU-R BS.2217 reference material.

Expect minor deviations (especially for edge cases or extreme signals).

---

## ๐Ÿ› ๏ธ Requirements

- Python 3.8+
- numpy, scipy, soundfile, soxr, numba

---

## ๐Ÿ“„ License

MIT License โ€“ free to use, modify and redistribute.

---

## ๐Ÿ™Œ Contributions Welcome

Youโ€™re invited to test, extend or improve the code โ€“ feel free to open issues or pull requests.


            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/HBB-ThinkTank/PALA",
    "name": "PALA",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "audio, loudness, LUFS, ITU-R BS.1770, true peak, RMS, analysis",
    "author": "HBB-ThinkTank",
    "author_email": "HBB-ThinkTank <your-email@example.com>",
    "download_url": "https://files.pythonhosted.org/packages/09/1b/73891e807fef13bed108e426bbf13e00eb4e85904513b48afe13a7d7b88b/pala-0.2.0.tar.gz",
    "platform": null,
    "description": "# PALA \u2013 Python Audio Loudness Analysis\r\n\r\nPALA is a modular Python package for measuring audio loudness according to the ITU-R BS.1770-5 standard.\\\r\nIt provides LUFS (I/S/M), True Peak, RMS, DR and LRA calculations with K-weighting and gating.\r\n\r\n---\r\n\r\n## \ud83c\udf47 Purpose\r\n\r\nThe aim of PALA is to offer a unified, open-source loudness analysis tool for:\r\n\r\n- mastering and post-production engineers\r\n- researchers in psychoacoustics and signal processing\r\n- developers building automated workflows\r\n\r\n---\r\n\r\n## \ud83c\udfe2 Installation\r\n\r\n```bash\r\npip install pala\r\n```\r\n\r\nOr from source:\r\n\r\n```bash\r\ngit clone https://github.com/HBB-ThinkTank/PALA.git\r\ncd PALA\r\npip install .\r\n```\r\n\r\n---\r\n\r\n## \ud83e\udde0 Features (v0.2.0)\r\n\r\n- \u2705 LUFS calculation (Integrated, Short-Term, Momentary)\r\n- \u2705 True Peak (with oversampling), Sample Peak\r\n- \u2705 RMS (AES and ITU-R variants)\r\n- \u2705 DR (Dynamic Range), Crest Factor, Headroom\r\n- \u2705 Loudness Range (LRA using 10\u201395 percentile)\r\n- \u2705 Chunked processing for large audio files\r\n- \u2705 Modular structure with `lufs`, `dynamics`, `utils`, `io`\r\n\r\n---\r\n\r\n## \ud83d\udcca Development Roadmap\r\n\r\n### Equal-Loudness Curves (Fletcher-Munson)\r\n\r\n- \ud83d\udee0\ufe0f **Integration into frequency weighting**\r\n- \ud83d\udee0\ufe0f **Application to LUFS evaluation**\r\n\r\n### Frequency Analysis\r\n\r\n- \ud83d\udee0\ufe0f **FFT or Bark/octave band analysis**\r\n- \ud83d\udee0\ufe0f **Loudness per frequency band**\r\n\r\n### LRA (Loudness Range)\r\n\r\n- \u2705 **LRA based on LUFS segments (10\u201395 percentile)**\r\n- \ud83d\udee0\ufe0f **Interchannel gating / hysteresis**\r\n\r\n### LUFS Calculation (ITU-R BS.1770)\r\n\r\n- \u2705 **Momentary LUFS (400ms)**\r\n- \u2705 **Short-Term LUFS (3s)**\r\n- \u2705 **Integrated LUFS**\r\n- \u2705 **Gating: Absolute (-70 LUFS)**\r\n- \u2705 **Gating: Relative (-10 LU below average level)**\r\n- \u2705 **Multichannel weighting (e.g. 1.0, 1.41)**\r\n- \ud83d\udee0\ufe0f **Comparison with reference tools (e.g. pyloudnorm, ffmpeg)**\r\n- \ud83d\udee0\ufe0f **Validation using ITU-R BS.2217 material**\r\n\r\n### Package Structure & Interfaces\r\n\r\n- \u2705 **Modular package with analysis/lufs/dynamics/utils/io**\r\n- \u2705 **Chunking support for large files**\r\n- \u2705 **CLI support for single file input**\r\n- \ud83d\udee0\ufe0f **CLI batch mode**\r\n- \ud83d\udee0\ufe0f **Plot output (e.g. LUFS-M time curve)**\r\n\r\n### True Peak / Peak / RMS / DR\r\n\r\n- \u2705 **True Peak with oversampling**\r\n- \u2705 **Sample Peak (maximum sample value)**\r\n- \u2705 **AES RMS (unweighted)**\r\n- \u2705 **ITU-R RMS (K-weighted)**\r\n- \u2705 **Crest Factor / Headroom**\r\n- \u2705 **DR (True Peak - RMS)**\r\n\r\n### Publishing & Distribution\r\n\r\n- \u2705 **setup.cfg / pyproject.toml**\r\n- \u2705 **GitHub with README**\r\n- \ud83d\udee0\ufe0f **Upload to PyPI (production release)**\r\n\r\n---\r\n\r\n## \ud83d\udd2e Status\r\n\r\nThis project is in **alpha** stage. Results are close to professional tools (e.g. ffmpeg, pyloudnorm, APU plugins)\\\r\nbut not yet fully validated against ITU-R BS.2217 reference material.\r\n\r\nExpect minor deviations (especially for edge cases or extreme signals).\r\n\r\n---\r\n\r\n## \ud83d\udee0\ufe0f Requirements\r\n\r\n- Python 3.8+\r\n- numpy, scipy, soundfile, soxr, numba\r\n\r\n---\r\n\r\n## \ud83d\udcc4 License\r\n\r\nMIT License \u2013 free to use, modify and redistribute.\r\n\r\n---\r\n\r\n## \ud83d\ude4c Contributions Welcome\r\n\r\nYou\u2019re invited to test, extend or improve the code \u2013 feel free to open issues or pull requests.\r\n\r\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Python Audio Loudness Analysis",
    "version": "0.2.0",
    "project_urls": {
        "Homepage": "https://github.com/HBB-ThinkTank/PALA",
        "Issues": "https://github.com/HBB-ThinkTank/PALA/issues",
        "Repository": "https://github.com/HBB-ThinkTank/PALA"
    },
    "split_keywords": [
        "audio",
        " loudness",
        " lufs",
        " itu-r bs.1770",
        " true peak",
        " rms",
        " analysis"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "2d21a588ff39b7d53a62ea397316b211f892f7da8dc97c1f388ccdaec215007d",
                "md5": "3f2b769c4a3670d66772c1a08d4671fd",
                "sha256": "c2a96775438247d00d1a33b72c56326ba7b38c28b1773ab4abfc23fb8d6d17a3"
            },
            "downloads": -1,
            "filename": "pala-0.2.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "3f2b769c4a3670d66772c1a08d4671fd",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 12878,
            "upload_time": "2025-07-19T22:19:11",
            "upload_time_iso_8601": "2025-07-19T22:19:11.569707Z",
            "url": "https://files.pythonhosted.org/packages/2d/21/a588ff39b7d53a62ea397316b211f892f7da8dc97c1f388ccdaec215007d/pala-0.2.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "091b73891e807fef13bed108e426bbf13e00eb4e85904513b48afe13a7d7b88b",
                "md5": "0f7e391626c5a6b6588dab6af40b06e2",
                "sha256": "891ab22546003940638e8a8e6ad313428d665d9dc33f08745386166512ba3ed1"
            },
            "downloads": -1,
            "filename": "pala-0.2.0.tar.gz",
            "has_sig": false,
            "md5_digest": "0f7e391626c5a6b6588dab6af40b06e2",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 13114,
            "upload_time": "2025-07-19T22:19:12",
            "upload_time_iso_8601": "2025-07-19T22:19:12.568058Z",
            "url": "https://files.pythonhosted.org/packages/09/1b/73891e807fef13bed108e426bbf13e00eb4e85904513b48afe13a7d7b88b/pala-0.2.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-19 22:19:12",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "HBB-ThinkTank",
    "github_project": "PALA",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "pala"
}
        
Elapsed time: 0.45619s