PyALSoft
PyALSoft provides function-oriented playback and capture APIs, plus typed bindings for OpenAL Soft. Wheels include the native OpenAL Soft runtime.
Read the documentation · Browse the API reference · View the examples
PyALSoft is an independent project and is not affiliated with or endorsed by the OpenAL Soft project.
Installation
PyALSoft requires Python 3.12 or later.
python -m pip install pyalsoft
Quick start
play starts a WAV file immediately and returns a control handle:
import time
from pyalsoft import play
sound = play("sound.wav")
while sound.playing:
time.sleep(0.1)
The managed API also supports spatial audio, effects and filters, recording, streaming, device selection, HRTF, and explicit playback sessions. See the documentation for guides and the complete API reference.
The lower-level pyalsoft.bindings namespace exposes typed OpenAL, ALC, EFX,
and extension bindings, together with owned device and context handles.
Contributing
Development occurs on the development branch. Create the locked environment
with uv:
uv sync --python 3.12
Before submitting a change, run the core checks:
uv run pytest
uv run ruff check .
uv run ruff format --check .
uv run mypy
uv run python tools/generate_bindings.py --check
uv run python tools/sync_openal_soft.py --check
uv run mkdocs build --strict
Bindings and docs/reference.md are generated from the vendored OpenAL
registry. See the repository tool guide for development and
release commands.
Add an entry under Unreleased in the changelog for every
notable user-facing change. Group entries under Added, Changed,
Deprecated, Removed, Fixed, or Security, and describe the effect from
the user's perspective. Internal refactors, tests, and formatting do not need
entries.
For example:
## Unreleased
### Added
- Added reverse playback support to `PlayingSound`. (@BDraves)
### Fixed
- Prevented audio frames from shifting left when replacing a sound's filter.
(@BDraves)
License
PyALSoft's original Python code is available under the MIT License. Bundled OpenAL Soft and other third-party components remain under their respective licenses. The distribution includes their license texts and a third-party notice.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pyalsoft-1.0.0.tar.gz.
File metadata
- Download URL: pyalsoft-1.0.0.tar.gz
- Upload date:
- Size: 3.1 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.29 {"installer":{"name":"uv","version":"0.11.29","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
61c4d570070e15b946920cab03f7a8e29c29dcb7a514c687d67e52b28bc93704
|
|
| MD5 |
289cefc5ce11a61d12befb086ccc96d8
|
|
| BLAKE2b-256 |
1afa542a95a21ea964e32052cba5c4eba2c39b1490cd7135996b095fa5f082e0
|
File details
Details for the file pyalsoft-1.0.0-py3-none-win_amd64.whl.
File metadata
- Download URL: pyalsoft-1.0.0-py3-none-win_amd64.whl
- Upload date:
- Size: 1.8 MB
- Tags: Python 3, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.29 {"installer":{"name":"uv","version":"0.11.29","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
384619ea1a79bc2c5813f612cfa830f330933484cfa8ea12675671fee90d8d4a
|
|
| MD5 |
cf0db1102df2ad7c6690b3e49e08872a
|
|
| BLAKE2b-256 |
86cca0053f1e160eb476f844790c992a3f33408f49d7d1833efec742bf937f89
|
File details
Details for the file pyalsoft-1.0.0-py3-none-manylinux_2_28_x86_64.whl.
File metadata
- Download URL: pyalsoft-1.0.0-py3-none-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 1.8 MB
- Tags: Python 3, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.29 {"installer":{"name":"uv","version":"0.11.29","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4f6185e751708c892fdf4c9eb858b4b836e46c3dc387f0d19699026eb8890113
|
|
| MD5 |
9d3cd04c793d44742a51ca6ceade051a
|
|
| BLAKE2b-256 |
9ee78c2a40a2ed4325ae590d59011b613d2bb2baef20293135dbdd98cad21de5
|
File details
Details for the file pyalsoft-1.0.0-py3-none-manylinux_2_28_aarch64.whl.
File metadata
- Download URL: pyalsoft-1.0.0-py3-none-manylinux_2_28_aarch64.whl
- Upload date:
- Size: 1.7 MB
- Tags: Python 3, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.29 {"installer":{"name":"uv","version":"0.11.29","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cd43adb212316cf59235d1d3bc136f1a8805ac8aa4b3261a3c9e29fde1b5362c
|
|
| MD5 |
3023f380112b24d2cb9a3629724a25f1
|
|
| BLAKE2b-256 |
2463eeacedbdfa2f24c2ece29d7fe6f1840ef1a57e17eb62dd77068cfa881dde
|
File details
Details for the file pyalsoft-1.0.0-py3-none-macosx_11_0_arm64.whl.
File metadata
- Download URL: pyalsoft-1.0.0-py3-none-macosx_11_0_arm64.whl
- Upload date:
- Size: 891.3 kB
- Tags: Python 3, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.29 {"installer":{"name":"uv","version":"0.11.29","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3b3f4a83076276795e86caadcbee4459f89bec6fb4d1f879d5b345a3b9cef8a3
|
|
| MD5 |
08155a1ade2c9e9b6dfbdb9048be2636
|
|
| BLAKE2b-256 |
f6908622dabdc9a355fbd19a156f3d0ab42bd2bc3ece4eab23b4a573e35ccc40
|
File details
Details for the file pyalsoft-1.0.0-py3-none-macosx_10_13_x86_64.whl.
File metadata
- Download URL: pyalsoft-1.0.0-py3-none-macosx_10_13_x86_64.whl
- Upload date:
- Size: 975.7 kB
- Tags: Python 3, macOS 10.13+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.29 {"installer":{"name":"uv","version":"0.11.29","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ae9adeab4b441bb68c1b3b72a50401953cad7d08851187709e8d1987dd5925cb
|
|
| MD5 |
ffceabe966e3bfe1f4f8bf195a40c464
|
|
| BLAKE2b-256 |
0f3e6a098e1e1462c4293a49aafbfd088f0a8418be5da1d2c43385151201b5aa
|