Pythonic Audio Library and Codecs Environment https://mcsinyx.github.io/palace
Go to file
Ngô Xuân Minh a25c93bbb1
Nitpick test_source, implement test_context. (#70)
Implement test_context

Tests that have implemented:
* async wake interval
* default resampler index
* doppler factor
* speed of sound
* distance model
2020-04-13 21:53:30 +07:00
.ci [Travis] Build for macOS 2020-03-01 16:20:44 +07:00
examples Nitpick examples and documentation 2020-04-13 21:33:46 +07:00
src Nitpick examples and documentation 2020-04-13 21:33:46 +07:00
tests Nitpick test_source, implement test_context. (#70) 2020-04-13 21:53:30 +07:00
.gitignore [Travis] Build for macOS 2020-03-01 16:20:44 +07:00
.travis.yml [Travis] Build for macOS 2020-03-01 16:20:44 +07:00
CMakeLists.txt Make build more portable and compatible with manylinux2014 2020-02-01 14:29:06 +07:00
LICENSE Initial commit 2019-12-22 14:42:53 +07:00
MANIFEST.in Implement MessageHandler 2020-02-15 14:27:06 +07:00
README.md Clean up for release 0.1 2020-04-01 15:17:23 +07:00
pyproject.toml Make build more portable and compatible with manylinux2014 2020-02-01 14:29:06 +07:00
setup.cfg Uniform enum handling (resolve GH-47) 2020-04-09 15:05:06 +07:00
setup.py Clean up for release 0.1 2020-04-01 15:17:23 +07:00
tox.ini Revise MessageHandler 2020-04-04 22:58:01 +07:00

README.md

palace

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.

Features

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 sound rendering
  • Environmental audio 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

Installation

Prerequisites

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 only built for GNU/Linux and macOS on amd64 at the time of writing. If you want to help out, please head to GitHub issue #1.

Note: Wheels built for macOS have yet to include shared libraries, so it still requires alure and its dependencies to be installed.

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+https://github.com/McSinyx/palace

Usage

One may start with the examples for sample usage of palace. For further information, Python's help is your friend.

License and Credits

Palace is released under the GNU LGPL version 3 or later.

To ensure that palace can run without any dependencies outside of the pip toolchain, the wheels are bundled with dynamically linked libraries from the build machine, which is similar to static linking:

Library License
Alure ZLib
OpenAL Soft GNU LGPLv2+
Vorbis 3-clause BSD
Opus 3-clause BSD
libsndfile GNU LGPL2.1+