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:

import time

from pyalsoft import play

sound = play("sound.wav")
while sound.playing:
    time.sleep(0.1)

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, 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.

Metadata

Release files for pyalsoft 1.1.1

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.1.1
File Size Uploaded
pyalsoft-1.1.1.tar.gz 3.1 MB Details

Built distributions (wheels)

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

Total release size: 10.3 MB

Release files / pyalsoft-1.1.1.tar.gz

Download URL pyalsoft-1.1.1.tar.gz
Size 3.1 MB
Tags Source
SHA-256 checksum
How to use checksums
a31910e86ed3200c2b4d4a60e1eb539a63176b7f2664d2f502ab2a934d35be4e
BLAKE2b-256 checksum
How to use checksums
8fac255f413f8d0adca367d79b6d3194549df5a155da0cf5331e74e3f588aec6
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.1.1-py3-none-win_amd64.whl

Download URL pyalsoft-1.1.1-py3-none-win_amd64.whl
Size 1.8 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
3d32845a7e5a9c286f9257821ef975ebaf67dd433c5b28cb44c1868af18de2fa
BLAKE2b-256 checksum
How to use checksums
b562aeea7d6bfc05ca9b9eab140c09721163527e104fd65d4aaf870479cfafb0
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.1.1-py3-none-manylinux_2_28_x86_64.whl

Download URL pyalsoft-1.1.1-py3-none-manylinux_2_28_x86_64.whl
Size 1.8 MB
Tags Linux glibc 2.28+ x86-64 Python 3
SHA-256 checksum
How to use checksums
ee35ec20545fc3033a772ddbb45f75f7a2904019f4b386240526f12fc97f63b7
BLAKE2b-256 checksum
How to use checksums
d824ec46ce56f066ec5794c3bed2f718a7897acab8f63a36598852d88074ebad
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.1.1-py3-none-manylinux_2_28_aarch64.whl

Download URL pyalsoft-1.1.1-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
e0084b150a547895ff7da16fef118c656746412f9e81a3a28e2db8d7d246058b
BLAKE2b-256 checksum
How to use checksums
ed8c4e66e47994b5fbeb982930ebd88f86516cf4093e87bb33aebe50aef0b650
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.1.1-py3-none-macosx_11_0_arm64.whl

Download URL pyalsoft-1.1.1-py3-none-macosx_11_0_arm64.whl
Size 901.2 kB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
3c4e9796dd800466a309ba71ccae4db2a8714b034e101523a4ca360b1f915ca1
BLAKE2b-256 checksum
How to use checksums
e978504122399179a9e1f3726766f35963b2d0d6fc919756676bde314e6b5c2a
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.1.1-py3-none-macosx_10_13_x86_64.whl

Download URL pyalsoft-1.1.1-py3-none-macosx_10_13_x86_64.whl
Size 985.6 kB
Tags Python 3 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
3239db4f52deb643823ae2d9b23c14aba11c6d8fbc8ec60bed223aa786ef0ff0
BLAKE2b-256 checksum
How to use checksums
b30ed2b31f1a000233477940be2d0ec20981f71db44bef4264e622fdd68705b5
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

1.7.0

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

This release

1.1.1 This release

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