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)

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

pyalsoft-1.0.0.tar.gz (3.1 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pyalsoft-1.0.0-py3-none-win_amd64.whl (1.8 MB view details)

Uploaded Python 3Windows x86-64

pyalsoft-1.0.0-py3-none-manylinux_2_28_x86_64.whl (1.8 MB view details)

Uploaded Python 3manylinux: glibc 2.28+ x86-64

pyalsoft-1.0.0-py3-none-manylinux_2_28_aarch64.whl (1.7 MB view details)

Uploaded Python 3manylinux: glibc 2.28+ ARM64

pyalsoft-1.0.0-py3-none-macosx_11_0_arm64.whl (891.3 kB view details)

Uploaded Python 3macOS 11.0+ ARM64

pyalsoft-1.0.0-py3-none-macosx_10_13_x86_64.whl (975.7 kB view details)

Uploaded Python 3macOS 10.13+ x86-64

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

Hashes for pyalsoft-1.0.0.tar.gz
Algorithm Hash digest
SHA256 61c4d570070e15b946920cab03f7a8e29c29dcb7a514c687d67e52b28bc93704
MD5 289cefc5ce11a61d12befb086ccc96d8
BLAKE2b-256 1afa542a95a21ea964e32052cba5c4eba2c39b1490cd7135996b095fa5f082e0

See more details on using hashes here.

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

Hashes for pyalsoft-1.0.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 384619ea1a79bc2c5813f612cfa830f330933484cfa8ea12675671fee90d8d4a
MD5 cf0db1102df2ad7c6690b3e49e08872a
BLAKE2b-256 86cca0053f1e160eb476f844790c992a3f33408f49d7d1833efec742bf937f89

See more details on using hashes here.

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

Hashes for pyalsoft-1.0.0-py3-none-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4f6185e751708c892fdf4c9eb858b4b836e46c3dc387f0d19699026eb8890113
MD5 9d3cd04c793d44742a51ca6ceade051a
BLAKE2b-256 9ee78c2a40a2ed4325ae590d59011b613d2bb2baef20293135dbdd98cad21de5

See more details on using hashes here.

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

Hashes for pyalsoft-1.0.0-py3-none-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 cd43adb212316cf59235d1d3bc136f1a8805ac8aa4b3261a3c9e29fde1b5362c
MD5 3023f380112b24d2cb9a3629724a25f1
BLAKE2b-256 2463eeacedbdfa2f24c2ece29d7fe6f1840ef1a57e17eb62dd77068cfa881dde

See more details on using hashes here.

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

Hashes for pyalsoft-1.0.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3b3f4a83076276795e86caadcbee4459f89bec6fb4d1f879d5b345a3b9cef8a3
MD5 08155a1ade2c9e9b6dfbdb9048be2636
BLAKE2b-256 f6908622dabdc9a355fbd19a156f3d0ab42bd2bc3ece4eab23b4a573e35ccc40

See more details on using hashes here.

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

Hashes for pyalsoft-1.0.0-py3-none-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 ae9adeab4b441bb68c1b3b72a50401953cad7d08851187709e8d1987dd5925cb
MD5 ffceabe966e3bfe1f4f8bf195a40c464
BLAKE2b-256 0f3e6a098e1e1462c4293a49aafbfd088f0a8418be5da1d2c43385151201b5aa

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page