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, 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.6.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.6.0
File Size Uploaded
pyalsoft-1.6.0.tar.gz 3.1 MB Details

Built distributions (wheels)

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

Total release size: 10.5 MB

Release files / pyalsoft-1.6.0.tar.gz

Download URL pyalsoft-1.6.0.tar.gz
Size 3.1 MB
Tags Source
SHA-256 checksum
How to use checksums
6e99636977982d71dfa234e2eb52cb5c90385f22fbc0217ca9582cc49ac308ce
BLAKE2b-256 checksum
How to use checksums
4ccf65d82278b811ff3fe938a501f3efc4df67b91db1cf78ce8300560a8b57d6
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.6.0-py3-none-win_amd64.whl

Download URL pyalsoft-1.6.0-py3-none-win_amd64.whl
Size 1.8 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
97c94358497bb4b03286e7bbd983325eddae4c9b422b7e0f39b1dddfbbfd2d24
BLAKE2b-256 checksum
How to use checksums
412bc0fea3f2e156552ac7b71a59dcd18e6a73539b7659c66464f26d07a401b8
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.6.0-py3-none-manylinux_2_28_x86_64.whl

Download URL pyalsoft-1.6.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
71907c6738af70f63b8150951e99ce4ca49d07bac116f634902e79139c510c76
BLAKE2b-256 checksum
How to use checksums
e7cb1532a97e1fd2359cd9944c83b05af82ccb100abdcd6a773e97d5924b47fc
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.6.0-py3-none-manylinux_2_28_aarch64.whl

Download URL pyalsoft-1.6.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
ed0e51d122533225de9b64b7ba80405305564b9f795fbfd45ca28b8952eefca2
BLAKE2b-256 checksum
How to use checksums
cdf9e69a56acc6af9e42cc82ecea88002558842fc9f1cef05b34fa16e536fcf1
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.6.0-py3-none-macosx_11_0_arm64.whl

Download URL pyalsoft-1.6.0-py3-none-macosx_11_0_arm64.whl
Size 934.7 kB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
0efc9129309d504ad1ba417dafecec404f9bf779f26b15628172818b544523ba
BLAKE2b-256 checksum
How to use checksums
22f3f771e424306a6da1f3926ff3b1d03ce7f8c7204b8ea4e3c6ce78c2e4c69d
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.6.0-py3-none-macosx_10_13_x86_64.whl

Download URL pyalsoft-1.6.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
56e28e21bf06c7d6cb2b9058142c629d296f39cdb16539c605e9fd79844097ec
BLAKE2b-256 checksum
How to use checksums
f067ba0a5d2298ec150ceee198c0c11809f5f2a539e326fa07e21e1299e6d76c
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

This release

1.6.0 This release

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