Pythonic Audio Library and Codecs Environment https://mcsinyx.github.io/palace
Go to file
Nguyễn Gia Phong e674ade7e4 Update CI/CD
This optimizes the execution time of macOS builds and adds initial
(no-op) support for Windows.  Documentation now admits the issues with
macOS wheels.

Because of GH-63, CI/CD for Python 3.8 on macOS is temporarily dropped.

Build reference for upcoming v0.1.3
2020-04-22 00:29:53 +07:00
.ci [Travis] Build for macOS 2020-03-01 16:20:44 +07:00
examples Add resamplers' info for palace-info (#75) 2020-04-18 08:06:36 +07:00
src Make send paths easier to use (fix GH-66) 2020-04-17 20:40:39 +07:00
tests Implement test listener (#76) 2020-04-17 08:53:10 +07:00
.appveyor.yml Update CI/CD 2020-04-22 00:29:53 +07:00
.gitignore [Travis] Build for macOS 2020-03-01 16:20:44 +07:00
.travis.yml Update CI/CD 2020-04-22 00:29:53 +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 Update CI/CD 2020-04-22 00:29:53 +07:00
pyproject.toml Make build more portable and compatible with manylinux2014 2020-02-01 14:29:06 +07:00
setup.cfg Abstract away AuxiliaryEffectSlot 2020-04-17 11:07:39 +07:00
setup.py Update CI/CD 2020-04-22 00:29:53 +07:00
tox.ini Make send paths easier to use (fix GH-66) 2020-04-17 20:40:39 +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 built exclusively for amd64. Currently, only GNU/Linux is properly supported. If you want to help packaging for Windows and macOS, see GH-1 and GH-63 respectively 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+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 and the API is also available for online reference.

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.

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+