Pythonic Audio Library and Codecs Environment
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Nguyễn Gia Phong 566911efad
Build wheels for CPython 3.9 and manylinux aarch64
2 years ago
.ci Repair wheels on macOS correctly 2 years ago
.github Build wheels for CPython 3.9 and manylinux aarch64 2 years ago
docs Write tutorial for source effect 2 years ago
examples Make effects properties more intuitive (fix GH-85) 2 years ago
src s/Notes/Note/ 2 years ago
tests Fix incorrect multivalue return type 2 years ago
.appveyor.yml Update CI/CD 2 years ago
.gitignore Write tutorial for source effect 2 years ago
.travis.yml Build wheels for CPython 3.9 and manylinux aarch64 2 years ago
CMakeLists.txt Make build more portable and compatible with manylinux2014 2 years ago
LICENSE Initial commit 2 years ago Follow up on GH-116 2 years ago Update pointers to documentation 2 years ago
pyproject.toml Interlink backquoted objects in docstring 2 years ago
setup.cfg s/Notes/Note/ 2 years ago Nitpick packaging 2 years ago
tox.ini Set up GitHub Action for linting 2 years ago


Palace is a Python 3D audio API wrapping around alure. To quote alure's README,

It uses OpenAL for audio rendering, and provides common higher-level features such as file loading and decoding, buffer caching, background streaming, and source management for virtually unlimited sound source handles.


In some sense, what palace aimes to be to OpenAL Soft is what ModernGL is to OpenGL (except that all the heavy-lifting are taken are by alure):

  • 3D positional sound rendering
  • Environmental effects: reverb, atmospheric air absorption, sound occlusion and obstruction
  • Binaural (HRTF) rendering
  • Out-of-the-box audio decoding of FLAC, MP3, Ogg Vorbis, Opus, WAV, AIFF, etc.
  • Modern Pythonic API: snake_case, @property, with context manager, type annotation



Palace requires Python 3.6+ for runtime and pip for installation.

Via PyPI

Palace can be install from the Python Package Index via simply

pip install palace

Wheel distributions are built exclusively for amd64. Currently, only GNU/Linux and macOS are properly supported. If you want to help packaging for Windows, please see GH-1 on our issues tracker on GitHub.

From source

Aside from the build dependencies listed in pyproject.toml, one will additionally need compatible Python headers, alure, a C++14 compiler, CMake 2.6+ (and probably git for fetching the source). Palace can then be compiled and installed by running

pip install git+


One may start with the examples for sample usage of palace. For further information, Python's help is your friend and the API is also available for online reference.


Our documentation contains a brief guide which may help you get started with the development. We also think that you might find our design principles appealing as well.

License and Credits

Palace is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

The full list of works bundled with palace and other credits can be found in our documentation.