Skip to main content

PyALSoft

CI status Documentation PyPI version Supported Python versions

OpenAL Soft 1.25.2

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:

from pyalsoft import play

sound = play("sound.wav")
sound.wait()

Use play("sound.wav", spatialize=False) for player-attached or UI audio that should not receive positional, distance, Doppler, or HRTF processing.

The managed API also supports spatial audio, effects and filters, recording, streaming, typed device and context configuration, live device reconfiguration, HRTF profile selection, 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.

Metadata

Release files for pyalsoft 1.7.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 pyalsoft 1.7.0
File Size Uploaded
pyalsoft-1.7.0.tar.gz 3.1 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for pyalsoft 1.7.0
File
pyalsoft-1.7.0-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details
pyalsoft-1.7.0-py3-none-manylinux_2_28_x86_64.whl Python 3 none Linux glibc 2.28+ x86-64 Details
pyalsoft-1.7.0-py3-none-manylinux_2_28_aarch64.whl Python 3 none Linux glibc 2.28+ ARM64 Details
pyalsoft-1.7.0-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details
pyalsoft-1.7.0-py3-none-macosx_10_13_x86_64.whl Python 3 none macOS 10.13+ x86-64 Details

Total release size: 10.6 MB

Release files / pyalsoft-1.7.0.tar.gz

Download URL pyalsoft-1.7.0.tar.gz
Size 3.1 MB
Tags Source
SHA-256 checksum
How to use checksums
33caecebae9cd2365b5774025bccb42a03f0adf80c72a2bbc4024274ce64a7ea
BLAKE2b-256 checksum
How to use checksums
d83346697c02656908c70342562275f66d30868b1d8b9416514f54a10dd85025
Upload date
Uploaded using Trusted Publishing?
What is 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}

Release files / pyalsoft-1.7.0-py3-none-win_amd64.whl

Download URL pyalsoft-1.7.0-py3-none-win_amd64.whl
Size 1.8 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
033e8e9dc071c2ac66326511031eb45e50704f4e78c11674d79e37bf10f64e9a
BLAKE2b-256 checksum
How to use checksums
30c10e28292ad80ef8ace383241df14c7b55b8690b3e87f6661281c095ca7076
Upload date
Uploaded using Trusted Publishing?
What is 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}

Release files / pyalsoft-1.7.0-py3-none-manylinux_2_28_x86_64.whl

Download URL pyalsoft-1.7.0-py3-none-manylinux_2_28_x86_64.whl
Size 1.9 MB
Tags Linux glibc 2.28+ x86-64 Python 3
SHA-256 checksum
How to use checksums
3e56a721a59d98b487fc2808911bf1dc613d06950383fd2d9b57c5774382bc85
BLAKE2b-256 checksum
How to use checksums
3cc3b008c0d8b7c93e30c432d4e3960e38ef277e5564fffea0bdb99c95df34a5
Upload date
Uploaded using Trusted Publishing?
What is 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}

Release files / pyalsoft-1.7.0-py3-none-manylinux_2_28_aarch64.whl

Download URL pyalsoft-1.7.0-py3-none-manylinux_2_28_aarch64.whl
Size 1.8 MB
Tags Linux glibc 2.28+ ARM64 Python 3
SHA-256 checksum
How to use checksums
c34e36d7a5df872d27821991c2f59487fc4f83f76ca5f410884badbbcb4495a3
BLAKE2b-256 checksum
How to use checksums
430f763f3aa50ad06b0b7ab9cfed0dc5e23d41ec52158c8d2ed1a80ad127f839
Upload date
Uploaded using Trusted Publishing?
What is 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}

Release files / pyalsoft-1.7.0-py3-none-macosx_11_0_arm64.whl

Download URL pyalsoft-1.7.0-py3-none-macosx_11_0_arm64.whl
Size 943.9 kB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
48eb3fcb1e356d2675d29f30f140bf3a76ad64f1775f340f722422a959c1fcad
BLAKE2b-256 checksum
How to use checksums
258a9f719ed55193e2a9bc263ecffbb77153088984e4a542d8a93f3cad29f990
Upload date
Uploaded using Trusted Publishing?
What is 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}

Release files / pyalsoft-1.7.0-py3-none-macosx_10_13_x86_64.whl

Download URL pyalsoft-1.7.0-py3-none-macosx_10_13_x86_64.whl
Size 1.0 MB
Tags Python 3 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
c188c1f90c29a33aa91a3f9a5f74c22901dc43d8a7cb97a5c335d62b1e0e1493
BLAKE2b-256 checksum
How to use checksums
fe8f09c00101a493f851734e0cd599d374e5c4310774b84dd0dd63ff38155768
Upload date
Uploaded using Trusted Publishing?
What is 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}

Release history Release notifications | RSS feed

1.8.0

6 release files

This release

1.7.0 This release

6 release files

1.6.0

6 release files

1.5.0

6 release files

1.4.0

6 release files

1.3.0

6 release files

1.2.0

6 release files

1.1.1

6 release files

1.1.0

6 release files

1.0.2

6 release files

1.0.1

6 release files

1.0.0

6 release files

0.9.0

6 release files

0.8.0

6 release files

0.7.0

6 release files

0.6.0

6 release files

0.5.0

6 release files

0.4.0

6 release files

0.3.0

6 release files

0.2.0

6 release files

0.1.0

6 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