Add installation instruction to the doc

This commit is contained in:
Huy-Ngo 2020-03-09 09:32:44 +07:00 committed by Nguyễn Gia Phong
parent 4e007b4518
commit 92f2454b96
19 changed files with 790 additions and 181 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,4 +1,4 @@
# Sphinx build info version 1
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
config: 19f79720120eca0e026ed7f89398085a
config: 9128f906c827214aa6231ad483342bf2
tags: 645f666f9bcd5a90fca523b33c5a78b7

View File

@ -10,6 +10,7 @@ Welcome to palace's documentation!
:maxdepth: 2
:caption: Contents:
installation
reference

View File

@ -0,0 +1,37 @@
Installation
============
Prerequisites
-------------
Palace requires Python 3.6 for runtime and pip for installation.
Via PyPI
--------
Palace can be installed from PyPI:
.. code-block:: sh
pip install palace
Wheel distributions are only built for GNU/Linux and macOS on amd64
at the time of writing.
However, the wheels for macOS does *not* include shared libraries like alure,
which are expected to be installed either from source or from Homebrew.
This is because we cannot (yet) get ``delocate`` to worked with alure
compiled from source, which showed up to be inside of ``@rpath``.
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 git for fetching the source). Palace can then be compiled
and installed by running:
.. code-block:: sh
git clone https://github.com/McSinyx/palace.git
pip install palace/

View File

@ -1,6 +1,6 @@
var DOCUMENTATION_OPTIONS = {
URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'),
VERSION: '0.0.11',
VERSION: '0.0.12',
LANGUAGE: 'None',
COLLAPSE_INDEX: false,
BUILDER: 'html',

View File

@ -5,7 +5,7 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title>Index &#8212; palace 0.0.11 documentation</title>
<title>Index &#8212; palace 0.0.12 documentation</title>
<link rel="stylesheet" href="_static/alabaster.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<script id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
@ -61,13 +61,17 @@
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="reference.html#palace.Source.air_absorption_factor">air_absorption_factor (palace.Source attribute)</a>
</li>
<li><a href="reference.html#palace.Device.alc_version">alc_version (palace.Device attribute)</a>
<li><a href="reference.html#palace.Device.alc_version">alc_version() (palace.Device property)</a>
</li>
<li><a href="reference.html#palace.Context.async_wake_interval">async_wake_interval (palace.Context attribute)</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="reference.html#palace.Source.auxiliary_send">auxiliary_send() (palace.Source property)</a>
</li>
<li><a href="reference.html#palace.AuxiliaryEffectSlot">AuxiliaryEffectSlot (class in palace)</a>
</li>
<li><a href="reference.html#palace.Context.available_resamplers">available_resamplers() (palace.Context property)</a>
</li>
</ul></td>
</tr></table>
@ -76,6 +80,8 @@
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="reference.html#palace.BaseDecoder">BaseDecoder (class in palace)</a>
</li>
<li><a href="reference.html#palace.Device.basic_name">basic_name() (palace.Device property)</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
@ -89,20 +95,26 @@
<h2 id="C">C</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="reference.html#palace.Buffer.channel_config">channel_config (palace.Buffer attribute)</a>
<li><a href="reference.html#palace.CHANNEL_CONFIG">CHANNEL_CONFIG (in module palace)</a>
</li>
<li><a href="reference.html#palace.BaseDecoder.channel_config">channel_config() (palace.BaseDecoder property)</a>
<ul>
<li><a href="reference.html#palace.Decoder.channel_config">(palace.Decoder attribute)</a>
<li><a href="reference.html#palace.Buffer.channel_config">(palace.Buffer property)</a>
</li>
<li><a href="reference.html#palace.Decoder.channel_config">(palace.Decoder property)</a>
</li>
</ul></li>
<li><a href="reference.html#palace.BaseDecoder.channel_config">channel_config() (palace.BaseDecoder property)</a>
</li>
<li><a href="reference.html#palace.channel_configs">channel_configs (in module palace)</a>
</li>
<li><a href="reference.html#palace.Device.clock_time">clock_time (palace.Device attribute)</a>
<li><a href="reference.html#palace.Effect.chorus_properties">chorus_properties() (palace.Effect property)</a>
</li>
<li><a href="reference.html#palace.Device.clock_time">clock_time() (palace.Device property)</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="reference.html#palace.FileIO.close">close (palace.FileIO attribute)</a>
</li>
<li><a href="reference.html#palace.Device.close">close() (palace.Device method)</a>
</li>
<li><a href="reference.html#palace.Source.cone_angles">cone_angles (palace.Source attribute)</a>
@ -111,7 +123,9 @@
</li>
<li><a href="reference.html#palace.current_context">current_context() (in module palace)</a>
</li>
<li><a href="reference.html#palace.Device.current_hrtf">current_hrtf (palace.Device attribute)</a>
<li><a href="reference.html#palace.current_fileio">current_fileio() (in module palace)</a>
</li>
<li><a href="reference.html#palace.Device.current_hrtf">current_hrtf() (palace.Device property)</a>
</li>
</ul></td>
</tr></table>
@ -120,6 +134,10 @@
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="reference.html#palace.Decoder">Decoder (class in palace)</a>
</li>
<li><a href="reference.html#palace.decoder_factories">decoder_factories (in module palace)</a>
</li>
<li><a href="reference.html#palace.Context.default_resampler_index">default_resampler_index() (palace.Context property)</a>
</li>
<li><a href="reference.html#palace.AuxiliaryEffectSlot.destroy">destroy() (palace.AuxiliaryEffectSlot method)</a>
@ -127,6 +145,8 @@
<li><a href="reference.html#palace.Buffer.destroy">(palace.Buffer method)</a>
</li>
<li><a href="reference.html#palace.Context.destroy">(palace.Context method)</a>
</li>
<li><a href="reference.html#palace.Effect.destroy">(palace.Effect method)</a>
</li>
<li><a href="reference.html#palace.Source.destroy">(palace.Source method)</a>
</li>
@ -140,14 +160,14 @@
<li><a href="reference.html#palace.Context.device">device (palace.Context attribute)</a>
</li>
<li><a href="reference.html#palace.MessageHandler.device_disconnected">device_disconnected() (palace.MessageHandler method)</a>
</li>
<li><a href="reference.html#palace.device_name_default">device_name_default (in module palace)</a>
</li>
<li><a href="reference.html#palace.device_names">device_names (in module palace)</a>
</li>
<li><a href="reference.html#palace.Source.distance_range">distance_range (palace.Source attribute)</a>
</li>
<li><a href="reference.html#palace.Source.doppler_factor">doppler_factor (palace.Source attribute)</a>
</li>
<li><a href="reference.html#palace.Context.doppler_factor">doppler_factor() (palace.Context property)</a>
</li>
</ul></td>
</tr></table>
@ -155,7 +175,15 @@
<h2 id="E">E</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="reference.html#palace.Device.efx_version">efx_version (palace.Device attribute)</a>
<li><a href="reference.html#palace.Effect">Effect (class in palace)</a>
</li>
<li><a href="reference.html#palace.AuxiliaryEffectSlot.effect">effect() (palace.AuxiliaryEffectSlot property)</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="reference.html#palace.Device.efx_version">efx_version() (palace.Device property)</a>
</li>
<li><a href="reference.html#palace.Context.end_batch">end_batch() (palace.Context method)</a>
</li>
</ul></td>
</tr></table>
@ -165,17 +193,23 @@
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="reference.html#palace.Source.fade_out_to_stop">fade_out_to_stop() (palace.Source method)</a>
</li>
<li><a href="reference.html#palace.Buffer.frequency">frequency (palace.Buffer attribute)</a>
<li><a href="reference.html#palace.FileIO">FileIO (class in palace)</a>
</li>
<li><a href="reference.html#palace.FREQUENCY">FREQUENCY (in module palace)</a>
</li>
<li><a href="reference.html#palace.BaseDecoder.frequency">frequency() (palace.BaseDecoder property)</a>
<ul>
<li><a href="reference.html#palace.Decoder.frequency">(palace.Decoder attribute)</a>
<li><a href="reference.html#palace.Buffer.frequency">(palace.Buffer property)</a>
</li>
<li><a href="reference.html#palace.Device.frequency">(palace.Device attribute)</a>
<li><a href="reference.html#palace.Decoder.frequency">(palace.Decoder property)</a>
</li>
<li><a href="reference.html#palace.Device.frequency">(palace.Device property)</a>
</li>
</ul></li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="reference.html#palace.BaseDecoder.frequency">frequency() (palace.BaseDecoder property)</a>
<li><a href="reference.html#palace.Buffer.from_decoder">from_decoder() (palace.Buffer static method)</a>
</li>
</ul></td>
</tr></table>
@ -205,11 +239,15 @@
<h2 id="H">H</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="reference.html#palace.Device.hrtf_enabled">hrtf_enabled (palace.Device attribute)</a>
<li><a href="reference.html#palace.HRTF">HRTF (in module palace)</a>
</li>
<li><a href="reference.html#palace.Device.hrtf_enabled">hrtf_enabled() (palace.Device property)</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="reference.html#palace.Device.hrtf_names">hrtf_names (palace.Device attribute)</a>
<li><a href="reference.html#palace.HRTF_ID">HRTF_ID (in module palace)</a>
</li>
<li><a href="reference.html#palace.Device.hrtf_names">hrtf_names() (palace.Device property)</a>
</li>
</ul></td>
</tr></table>
@ -225,22 +263,22 @@
<h2 id="L">L</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="reference.html#palace.Source.latency">latency (palace.Source attribute)</a>
<li><a href="reference.html#palace.Source.latency">latency() (palace.Source property)</a>
</li>
<li><a href="reference.html#palace.Source.latency_seconds">latency_seconds (palace.Source attribute)</a>
<li><a href="reference.html#palace.Source.latency_seconds">latency_seconds() (palace.Source property)</a>
</li>
<li><a href="reference.html#palace.Buffer.length">length (palace.Buffer attribute)</a>
<li><a href="reference.html#palace.BaseDecoder.length">length() (palace.BaseDecoder property)</a>
<ul>
<li><a href="reference.html#palace.Decoder.length">(palace.Decoder attribute)</a>
<li><a href="reference.html#palace.Buffer.length">(palace.Buffer property)</a>
</li>
<li><a href="reference.html#palace.Decoder.length">(palace.Decoder property)</a>
</li>
</ul></li>
<li><a href="reference.html#palace.BaseDecoder.length">length() (palace.BaseDecoder property)</a>
</li>
<li><a href="reference.html#palace.Buffer.length_seconds">length_seconds (palace.Buffer attribute)</a>
<li><a href="reference.html#palace.Buffer.length_seconds">length_seconds() (palace.Buffer property)</a>
<ul>
<li><a href="reference.html#palace.Decoder.length_seconds">(palace.Decoder attribute)</a>
<li><a href="reference.html#palace.Decoder.length_seconds">(palace.Decoder property)</a>
</li>
</ul></li>
</ul></td>
@ -248,13 +286,13 @@
<li><a href="reference.html#palace.Context.listener">listener (palace.Context attribute)</a>
</li>
<li><a href="reference.html#palace.Buffer.loop_points">loop_points (palace.Buffer attribute)</a>
</li>
<li><a href="reference.html#palace.BaseDecoder.loop_points">loop_points() (palace.BaseDecoder property)</a>
<ul>
<li><a href="reference.html#palace.Decoder.loop_points">(palace.Decoder attribute)</a>
<li><a href="reference.html#palace.Decoder.loop_points">(palace.Decoder property)</a>
</li>
</ul></li>
<li><a href="reference.html#palace.BaseDecoder.loop_points">loop_points() (palace.BaseDecoder property)</a>
</li>
<li><a href="reference.html#palace.Source.looping">looping (palace.Source attribute)</a>
</li>
</ul></td>
@ -263,13 +301,17 @@
<h2 id="M">M</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="reference.html#palace.Device.max_auxiliary_sends">max_auxiliary_sends (palace.Device attribute)</a>
<li><a href="reference.html#palace.MAX_AUXILIARY_SENDS">MAX_AUXILIARY_SENDS (in module palace)</a>
</li>
<li><a href="reference.html#palace.Device.max_auxiliary_sends">max_auxiliary_sends() (palace.Device property)</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="reference.html#palace.Context.message_handler">message_handler (palace.Context attribute)</a>, <a href="reference.html#palace.Context.message_handler">[1]</a>
<li><a href="reference.html#palace.Context.message_handler">message_handler (palace.Context attribute)</a>
</li>
<li><a href="reference.html#palace.MessageHandler">MessageHandler (class in palace)</a>
</li>
<li><a href="reference.html#palace.MONO_SOURCES">MONO_SOURCES (in module palace)</a>
</li>
</ul></td>
</tr></table>
@ -278,11 +320,11 @@
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="reference.html#palace.Buffer.name">name (palace.Buffer attribute)</a>
<ul>
<li><a href="reference.html#palace.Device.name">(palace.Device attribute)</a>
</li>
</ul></li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="reference.html#palace.Device.name">name() (palace.Device property)</a>
</li>
</ul></td>
</tr></table>
@ -291,13 +333,15 @@
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="reference.html#palace.Source.offset">offset (palace.Source attribute)</a>
</li>
<li><a href="reference.html#palace.Source.offset_seconds">offset_seconds (palace.Source attribute)</a>
<li><a href="reference.html#palace.Source.offset_seconds">offset_seconds() (palace.Source property)</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="reference.html#palace.Source.orientation">orientation (palace.Source attribute)</a>
</li>
<li><a href="reference.html#palace.Source.outer_cone_gains">outer_cone_gains (palace.Source attribute)</a>
</li>
<li><a href="reference.html#palace.OUTPUT_LIMITER">OUTPUT_LIMITER (in module palace)</a>
</li>
</ul></td>
</tr></table>
@ -315,9 +359,9 @@
</li>
<li><a href="reference.html#palace.Device.pause_dsp">pause_dsp() (palace.Device method)</a>
</li>
<li><a href="reference.html#palace.Source.paused">paused (palace.Source attribute)</a>
<li><a href="reference.html#palace.Source.paused">paused() (palace.Source property)</a>
</li>
<li><a href="reference.html#palace.Source.pending">pending (palace.Source attribute)</a>
<li><a href="reference.html#palace.Source.pending">pending() (palace.Source property)</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
@ -333,9 +377,9 @@
<li><a href="reference.html#palace.Decoder.play">(palace.Decoder method)</a>
</li>
</ul></li>
<li><a href="reference.html#palace.Source.playing">playing (palace.Source attribute)</a>
<li><a href="reference.html#palace.Source.playing">playing() (palace.Source property)</a>
</li>
<li><a href="reference.html#palace.Source.playing_or_pending">playing_or_pending (palace.Source attribute)</a>
<li><a href="reference.html#palace.Source.playing_or_pending">playing_or_pending() (palace.Source property)</a>
</li>
<li><a href="reference.html#palace.Source.position">position (palace.Source attribute)</a>
</li>
@ -362,7 +406,11 @@
<li><a href="reference.html#palace.Source.radius">radius (palace.Source attribute)</a>
</li>
<li><a href="reference.html#palace.BaseDecoder.read">read (palace.BaseDecoder attribute)</a>
<ul>
<li><a href="reference.html#palace.FileIO.read">(palace.FileIO attribute)</a>
</li>
</ul></li>
<li><a href="reference.html#palace.Decoder.read">read() (palace.Decoder method)</a>
</li>
<li><a href="reference.html#palace.Source.relative">relative (palace.Source attribute)</a>
@ -380,6 +428,8 @@
<li><a href="reference.html#palace.SourceGroup.resume_all">resume_all() (palace.SourceGroup method)</a>
</li>
<li><a href="reference.html#palace.Device.resume_dsp">resume_dsp() (palace.Device method)</a>
</li>
<li><a href="reference.html#palace.Effect.reverb_properties">reverb_properties() (palace.Effect property)</a>
</li>
<li><a href="reference.html#palace.Source.rolloff_factors">rolloff_factors (palace.Source attribute)</a>
</li>
@ -393,51 +443,67 @@
</li>
<li><a href="reference.html#palace.sample_size">sample_size() (in module palace)</a>
</li>
<li><a href="reference.html#palace.Buffer.sample_type">sample_type (palace.Buffer attribute)</a>
<li><a href="reference.html#palace.SAMPLE_TYPE">SAMPLE_TYPE (in module palace)</a>
</li>
<li><a href="reference.html#palace.BaseDecoder.sample_type">sample_type() (palace.BaseDecoder property)</a>
<ul>
<li><a href="reference.html#palace.Decoder.sample_type">(palace.Decoder attribute)</a>
<li><a href="reference.html#palace.Buffer.sample_type">(palace.Buffer property)</a>
</li>
<li><a href="reference.html#palace.Decoder.sample_type">(palace.Decoder property)</a>
</li>
</ul></li>
<li><a href="reference.html#palace.BaseDecoder.sample_type">sample_type() (palace.BaseDecoder property)</a>
</li>
<li><a href="reference.html#palace.sample_types">sample_types (in module palace)</a>
</li>
<li><a href="reference.html#palace.BaseDecoder.seek">seek (palace.BaseDecoder attribute)</a>
<ul>
<li><a href="reference.html#palace.FileIO.seek">(palace.FileIO attribute)</a>
</li>
</ul></li>
<li><a href="reference.html#palace.Decoder.seek">seek() (palace.Decoder method)</a>
</li>
<li><a href="reference.html#palace.AuxiliaryEffectSlot.send_auto">send_auto() (palace.AuxiliaryEffectSlot property)</a>
</li>
<li><a href="reference.html#palace.Source">Source (class in palace)</a>
<li><a href="reference.html#palace.Buffer.size">size() (palace.Buffer property)</a>
</li>
<li><a href="reference.html#palace.Buffer.source_count">source_count (palace.Buffer attribute)</a>
<li><a href="reference.html#palace.Decoder.smart">smart() (palace.Decoder static method)</a>
</li>
<li><a href="reference.html#palace.Source">Source (class in palace)</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="reference.html#palace.Buffer.source_count">source_count() (palace.Buffer property)</a>
</li>
<li><a href="reference.html#palace.MessageHandler.source_force_stopped">source_force_stopped() (palace.MessageHandler method)</a>
</li>
<li><a href="reference.html#palace.AuxiliaryEffectSlot.source_sends">source_sends (palace.AuxiliaryEffectSlot attribute)</a>
<li><a href="reference.html#palace.AuxiliaryEffectSlot.source_sends">source_sends() (palace.AuxiliaryEffectSlot property)</a>
</li>
<li><a href="reference.html#palace.MessageHandler.source_stopped">source_stopped() (palace.MessageHandler method)</a>
</li>
<li><a href="reference.html#palace.SourceGroup">SourceGroup (class in palace)</a>
</li>
<li><a href="reference.html#palace.Buffer.sources">sources (palace.Buffer attribute)</a>
<li><a href="reference.html#palace.Buffer.sources">sources() (palace.Buffer property)</a>
<ul>
<li><a href="reference.html#palace.SourceGroup.sources">(palace.SourceGroup attribute)</a>
<li><a href="reference.html#palace.SourceGroup.sources">(palace.SourceGroup property)</a>
</li>
</ul></li>
<li><a href="reference.html#palace.Source.spatialize">spatialize (palace.Source attribute)</a>
</li>
<li><a href="reference.html#palace.Context.speed_of_sound">speed_of_sound() (palace.Context property)</a>
</li>
<li><a href="reference.html#palace.Context.start_batch">start_batch() (palace.Context method)</a>
</li>
<li><a href="reference.html#palace.Source.stereo_angles">stereo_angles (palace.Source attribute)</a>
</li>
<li><a href="reference.html#palace.STEREO_SOURCES">STEREO_SOURCES (in module palace)</a>
</li>
<li><a href="reference.html#palace.Source.stop">stop() (palace.Source method)</a>
</li>
<li><a href="reference.html#palace.SourceGroup.stop_all">stop_all() (palace.SourceGroup method)</a>
</li>
<li><a href="reference.html#palace.SourceGroup.sub_groups">sub_groups (palace.SourceGroup attribute)</a>
<li><a href="reference.html#palace.SourceGroup.sub_groups">sub_groups() (palace.SourceGroup property)</a>
</li>
</ul></td>
</tr></table>
@ -447,17 +513,23 @@
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="reference.html#palace.Context.update">update() (palace.Context method)</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="reference.html#palace.use_context">use_context() (in module palace)</a>
</li>
<li><a href="reference.html#palace.AuxiliaryEffectSlot.use_count">use_count (palace.AuxiliaryEffectSlot attribute)</a>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="reference.html#palace.AuxiliaryEffectSlot.use_count">use_count() (palace.AuxiliaryEffectSlot property)</a>
</li>
<li><a href="reference.html#palace.use_fileio">use_fileio() (in module palace)</a>
</li>
</ul></td>
</tr></table>
<h2 id="V">V</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="reference.html#palace.Vector3">Vector3 (in module palace)</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="reference.html#palace.Source.velocity">velocity (palace.Source attribute)</a>
</li>
@ -484,6 +556,7 @@
<h3>Navigation</h3>
<p class="caption"><span class="caption-text">Contents:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="reference.html">Reference</a></li>
</ul>

View File

@ -4,7 +4,7 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title>Welcome to palaces documentation! &#8212; palace 0.0.11 documentation</title>
<title>Welcome to palaces documentation! &#8212; palace 0.0.12 documentation</title>
<link rel="stylesheet" href="_static/alabaster.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<script id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
@ -14,7 +14,7 @@
<script src="_static/language_data.js"></script>
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
<link rel="next" title="Reference" href="reference.html" />
<link rel="next" title="Installation" href="installation.html" />
<link rel="stylesheet" href="_static/custom.css" type="text/css" />
@ -36,6 +36,12 @@
<div class="toctree-wrapper compound">
<p class="caption"><span class="caption-text">Contents:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a><ul>
<li class="toctree-l2"><a class="reference internal" href="installation.html#prerequisites">Prerequisites</a></li>
<li class="toctree-l2"><a class="reference internal" href="installation.html#via-pypi">Via PyPI</a></li>
<li class="toctree-l2"><a class="reference internal" href="installation.html#from-source">From source</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="reference.html">Reference</a><ul class="simple">
</ul>
</li>
@ -70,6 +76,7 @@
<h3>Navigation</h3>
<p class="caption"><span class="caption-text">Contents:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="reference.html">Reference</a></li>
</ul>
@ -77,7 +84,7 @@
<h3>Related Topics</h3>
<ul>
<li><a href="#">Documentation overview</a><ul>
<li>Next: <a href="reference.html" title="next chapter">Reference</a></li>
<li>Next: <a href="installation.html" title="next chapter">Installation</a></li>
</ul></li>
</ul>
</div>

142
html/installation.html Normal file
View File

@ -0,0 +1,142 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title>Installation &#8212; palace 0.0.12 documentation</title>
<link rel="stylesheet" href="_static/alabaster.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<script id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
<script src="_static/jquery.js"></script>
<script src="_static/underscore.js"></script>
<script src="_static/doctools.js"></script>
<script src="_static/language_data.js"></script>
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
<link rel="next" title="Reference" href="reference.html" />
<link rel="prev" title="Welcome to palaces documentation!" href="index.html" />
<link rel="stylesheet" href="_static/custom.css" type="text/css" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
</head><body>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<div class="section" id="installation">
<h1>Installation<a class="headerlink" href="#installation" title="Permalink to this headline"></a></h1>
<div class="section" id="prerequisites">
<h2>Prerequisites<a class="headerlink" href="#prerequisites" title="Permalink to this headline"></a></h2>
<p>Palace requires Python 3.6 for runtime and pip for installation.</p>
</div>
<div class="section" id="via-pypi">
<h2>Via PyPI<a class="headerlink" href="#via-pypi" title="Permalink to this headline"></a></h2>
<p>Palace can be installed from PyPI:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>pip install palace
</pre></div>
</div>
<p>Wheel distributions are only built for GNU/Linux and macOS on amd64
at the time of writing.</p>
<p>However, the wheels for macOS does <em>not</em> include shared libraries like alure,
which are expected to be installed either from source or from Homebrew.
This is because we cannot (yet) get <code class="docutils literal notranslate"><span class="pre">delocate</span></code> to worked with alure
compiled from source, which showed up to be inside of <code class="docutils literal notranslate"><span class="pre">&#64;rpath</span></code>.</p>
</div>
<div class="section" id="from-source">
<h2>From source<a class="headerlink" href="#from-source" title="Permalink to this headline"></a></h2>
<p>Aside from the build dependencies listed in <code class="docutils literal notranslate"><span class="pre">pyproject.toml</span></code>,
one will additionally need compatible Python headers, alure, a C++14 compiler,
CMake 2.6+ (and git for fetching the source). Palace can then be compiled
and installed by running:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>git clone https://github.com/McSinyx/palace.git
pip install palace/
</pre></div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<h1 class="logo"><a href="index.html">palace</a></h1>
<h3>Navigation</h3>
<p class="caption"><span class="caption-text">Contents:</span></p>
<ul class="current">
<li class="toctree-l1 current"><a class="current reference internal" href="#">Installation</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#prerequisites">Prerequisites</a></li>
<li class="toctree-l2"><a class="reference internal" href="#via-pypi">Via PyPI</a></li>
<li class="toctree-l2"><a class="reference internal" href="#from-source">From source</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="reference.html">Reference</a></li>
</ul>
<div class="relations">
<h3>Related Topics</h3>
<ul>
<li><a href="index.html">Documentation overview</a><ul>
<li>Previous: <a href="index.html" title="previous chapter">Welcome to palaces documentation!</a></li>
<li>Next: <a href="reference.html" title="next chapter">Reference</a></li>
</ul></li>
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" />
<input type="submit" value="Go" />
</form>
</div>
</div>
<script>$('#searchbox').show(0);</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&copy;2019, 2020 Nguyễn Gia Phong et al.
|
Powered by <a href="http://sphinx-doc.org/">Sphinx 2.4.3</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
|
<a href="_sources/installation.rst.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html>

Binary file not shown.

View File

@ -4,7 +4,7 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title>Python Module Index &#8212; palace 0.0.11 documentation</title>
<title>Python Module Index &#8212; palace 0.0.12 documentation</title>
<link rel="stylesheet" href="_static/alabaster.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<script id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
@ -74,6 +74,7 @@
<h3>Navigation</h3>
<p class="caption"><span class="caption-text">Contents:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="reference.html">Reference</a></li>
</ul>

View File

@ -4,7 +4,7 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title>Reference &#8212; palace 0.0.11 documentation</title>
<title>Reference &#8212; palace 0.0.12 documentation</title>
<link rel="stylesheet" href="_static/alabaster.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<script id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
@ -14,7 +14,7 @@
<script src="_static/language_data.js"></script>
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
<link rel="prev" title="Welcome to palaces documentation!" href="index.html" />
<link rel="prev" title="Installation" href="installation.html" />
<link rel="stylesheet" href="_static/custom.css" type="text/css" />
@ -37,23 +37,116 @@
</div>
<span class="target" id="module-palace"></span><p>Pythonic Audio Library and Codecs Environment</p>
<dl class="attribute">
<dt id="palace.device_names">
<code class="sig-prename descclassname">palace.</code><code class="sig-name descname">device_names</code><a class="headerlink" href="#palace.device_names" title="Permalink to this definition"></a></dt>
<dd><p>Dictionary of available device names corresponding to each type.</p>
<dt id="palace.Vector3">
<code class="sig-prename descclassname">palace.</code><code class="sig-name descname">Vector3</code><a class="headerlink" href="#palace.Vector3" title="Permalink to this definition"></a></dt>
<dd><p>Tuple of three floats.</p>
<dl class="field-list simple">
<dt class="field-odd">Type</dt>
<dd class="field-odd"><p>Dict[str, List[str]]</p>
<dd class="field-odd"><p>Type</p>
</dd>
</dl>
</dd></dl>
<dl class="attribute">
<dt id="palace.device_name_default">
<code class="sig-prename descclassname">palace.</code><code class="sig-name descname">device_name_default</code><a class="headerlink" href="#palace.device_name_default" title="Permalink to this definition"></a></dt>
<dd><p>Dictionary of the default device name corresponding to each type.</p>
<dt id="palace.CHANNEL_CONFIG">
<code class="sig-prename descclassname">palace.</code><code class="sig-name descname">CHANNEL_CONFIG</code><a class="headerlink" href="#palace.CHANNEL_CONFIG" title="Permalink to this definition"></a></dt>
<dd><p>Context creation key to specify the channel configuration
(either <cite>MONO</cite>, <cite>STEREO</cite>, <cite>QUAD</cite>, <cite>X51</cite>, <cite>X61</cite> or <cite>X71</cite>).</p>
<dl class="field-list simple">
<dt class="field-odd">Type</dt>
<dd class="field-odd"><p>Dict[str, str]</p>
<dd class="field-odd"><p>int</p>
</dd>
</dl>
</dd></dl>
<dl class="attribute">
<dt id="palace.SAMPLE_TYPE">
<code class="sig-prename descclassname">palace.</code><code class="sig-name descname">SAMPLE_TYPE</code><a class="headerlink" href="#palace.SAMPLE_TYPE" title="Permalink to this definition"></a></dt>
<dd><p>Context creation key to specify the sample type
(either <cite>[UNSIGNED_]{BYTE,SHORT,INT}</cite> or <cite>FLOAT</cite>).</p>
<dl class="field-list simple">
<dt class="field-odd">Type</dt>
<dd class="field-odd"><p>int</p>
</dd>
</dl>
</dd></dl>
<dl class="attribute">
<dt id="palace.FREQUENCY">
<code class="sig-prename descclassname">palace.</code><code class="sig-name descname">FREQUENCY</code><a class="headerlink" href="#palace.FREQUENCY" title="Permalink to this definition"></a></dt>
<dd><p>Context creation key to specify the frequency in hertz.</p>
<dl class="field-list simple">
<dt class="field-odd">Type</dt>
<dd class="field-odd"><p>int</p>
</dd>
</dl>
</dd></dl>
<dl class="attribute">
<dt id="palace.MONO_SOURCES">
<code class="sig-prename descclassname">palace.</code><code class="sig-name descname">MONO_SOURCES</code><a class="headerlink" href="#palace.MONO_SOURCES" title="Permalink to this definition"></a></dt>
<dd><p>Context creation key to specify the number of mono (3D) sources.</p>
<dl class="field-list simple">
<dt class="field-odd">Type</dt>
<dd class="field-odd"><p>int</p>
</dd>
</dl>
</dd></dl>
<dl class="attribute">
<dt id="palace.STEREO_SOURCES">
<code class="sig-prename descclassname">palace.</code><code class="sig-name descname">STEREO_SOURCES</code><a class="headerlink" href="#palace.STEREO_SOURCES" title="Permalink to this definition"></a></dt>
<dd><p>Context creation key to specify the number of stereo sources.</p>
<dl class="field-list simple">
<dt class="field-odd">Type</dt>
<dd class="field-odd"><p>int</p>
</dd>
</dl>
</dd></dl>
<dl class="attribute">
<dt id="palace.MAX_AUXILIARY_SENDS">
<code class="sig-prename descclassname">palace.</code><code class="sig-name descname">MAX_AUXILIARY_SENDS</code><a class="headerlink" href="#palace.MAX_AUXILIARY_SENDS" title="Permalink to this definition"></a></dt>
<dd><p>Context creation key to specify the maximum number of
auxiliary source sends.</p>
<dl class="field-list simple">
<dt class="field-odd">Type</dt>
<dd class="field-odd"><p>int</p>
</dd>
</dl>
</dd></dl>
<dl class="attribute">
<dt id="palace.HRTF">
<code class="sig-prename descclassname">palace.</code><code class="sig-name descname">HRTF</code><a class="headerlink" href="#palace.HRTF" title="Permalink to this definition"></a></dt>
<dd><p>Context creation key to specify whether to enable HRTF
(either <cite>FALSE</cite>, <cite>TRUE</cite> or <cite>DONT_CARE</cite>).</p>
<dl class="field-list simple">
<dt class="field-odd">Type</dt>
<dd class="field-odd"><p>int</p>
</dd>
</dl>
</dd></dl>
<dl class="attribute">
<dt id="palace.HRTF_ID">
<code class="sig-prename descclassname">palace.</code><code class="sig-name descname">HRTF_ID</code><a class="headerlink" href="#palace.HRTF_ID" title="Permalink to this definition"></a></dt>
<dd><p>Context creation key to specify the HRTF to be used.</p>
<dl class="field-list simple">
<dt class="field-odd">Type</dt>
<dd class="field-odd"><p>int</p>
</dd>
</dl>
</dd></dl>
<dl class="attribute">
<dt id="palace.OUTPUT_LIMITER">
<code class="sig-prename descclassname">palace.</code><code class="sig-name descname">OUTPUT_LIMITER</code><a class="headerlink" href="#palace.OUTPUT_LIMITER" title="Permalink to this definition"></a></dt>
<dd><p>Context creation key to specify whether to use a gain limiter
(either <cite>FALSE</cite>, <cite>TRUE</cite> or <cite>DONT_CARE</cite>).</p>
<dl class="field-list simple">
<dt class="field-odd">Type</dt>
<dd class="field-odd"><p>int</p>
</dd>
</dl>
</dd></dl>
@ -61,10 +154,10 @@
<dl class="attribute">
<dt id="palace.sample_types">
<code class="sig-prename descclassname">palace.</code><code class="sig-name descname">sample_types</code><a class="headerlink" href="#palace.sample_types" title="Permalink to this definition"></a></dt>
<dd><p>Set of sample types.</p>
<dd><p>Names of available sample types.</p>
<dl class="field-list simple">
<dt class="field-odd">Type</dt>
<dd class="field-odd"><p>FrozenSet[str]</p>
<dd class="field-odd"><p>Tuple[str, ..]</p>
</dd>
</dl>
</dd></dl>
@ -72,10 +165,36 @@
<dl class="attribute">
<dt id="palace.channel_configs">
<code class="sig-prename descclassname">palace.</code><code class="sig-name descname">channel_configs</code><a class="headerlink" href="#palace.channel_configs" title="Permalink to this definition"></a></dt>
<dd><p>Set of channel configurations.</p>
<dd><p>Names of available channel configurations.</p>
<dl class="field-list simple">
<dt class="field-odd">Type</dt>
<dd class="field-odd"><p>FrozenSet[str]</p>
<dd class="field-odd"><p>Tuple[str, ..]</p>
</dd>
</dl>
</dd></dl>
<dl class="attribute">
<dt id="palace.device_names">
<code class="sig-prename descclassname">palace.</code><code class="sig-name descname">device_names</code><a class="headerlink" href="#palace.device_names" title="Permalink to this definition"></a></dt>
<dd><p>Read-only namespace of device names by category (basic, full and
capture), as tuples of strings whose first item being the default.</p>
<dl class="field-list simple">
<dt class="field-odd">Type</dt>
<dd class="field-odd"><p>DeviceNames</p>
</dd>
</dl>
</dd></dl>
<dl class="attribute">
<dt id="palace.decoder_factories">
<code class="sig-prename descclassname">palace.</code><code class="sig-name descname">decoder_factories</code><a class="headerlink" href="#palace.decoder_factories" title="Permalink to this definition"></a></dt>
<dd><p>Simple object for storing decoder factories.</p>
<p>User-registered factories are tried one after another
if <cite>RuntimeError</cite> is raised, in lexicographical order.
Internal decoder factories are always used after registered ones.</p>
<dl class="field-list simple">
<dt class="field-odd">Type</dt>
<dd class="field-odd"><p>DecoderNamespace</p>
</dd>
</dl>
</dd></dl>
@ -112,14 +231,22 @@
<dl class="function">
<dt id="palace.current_context">
<code class="sig-prename descclassname">palace.</code><code class="sig-name descname">current_context</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; Optional[Context]<a class="headerlink" href="#palace.current_context" title="Permalink to this definition"></a></dt>
<code class="sig-prename descclassname">palace.</code><code class="sig-name descname">current_context</code><span class="sig-paren">(</span><em class="sig-param">thread: bool = False</em><span class="sig-paren">)</span> &#x2192; Optional[Context]<a class="headerlink" href="#palace.current_context" title="Permalink to this definition"></a></dt>
<dd><p>Return the context that is currently used.</p>
<p>If <cite>thread</cite> is set to <cite>True</cite>, return the thread-specific context
used for OpenAL operations. This requires the non-device-specific
as well as the contexts device <cite>ALC_EXT_thread_local_context</cite>
extension to be available.</p>
</dd></dl>
<dl class="function">
<dt id="palace.use_context">
<code class="sig-prename descclassname">palace.</code><code class="sig-name descname">use_context</code><span class="sig-paren">(</span><em class="sig-param">context: Optional[Context]</em><span class="sig-paren">)</span> &#x2192; None<a class="headerlink" href="#palace.use_context" title="Permalink to this definition"></a></dt>
<code class="sig-prename descclassname">palace.</code><code class="sig-name descname">use_context</code><span class="sig-paren">(</span><em class="sig-param">context: Optional[Context], thread: bool = False</em><span class="sig-paren">)</span> &#x2192; None<a class="headerlink" href="#palace.use_context" title="Permalink to this definition"></a></dt>
<dd><p>Make the specified context current for OpenAL operations.</p>
<p>If <cite>thread</cite> is set to <cite>True</cite>, make the context current
for OpenAL operations on the calling thread only.
This requires the non-device-specific as well as the contexts
device <a href="#id1"><span class="problematic" id="id2">`</span></a>ALC_EXT_thread_local_context extension to be available.</p>
<div class="admonition seealso">
<p class="admonition-title">See also</p>
<dl class="simple">
@ -129,27 +256,38 @@
</div>
</dd></dl>
<dl class="function">
<dt id="palace.current_fileio">
<code class="sig-prename descclassname">palace.</code><code class="sig-name descname">current_fileio</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; Optional[Callable[[str], FileIO]]<a class="headerlink" href="#palace.current_fileio" title="Permalink to this definition"></a></dt>
<dd><p>Return the file I/O factory currently in used by audio decoders.</p>
<p>If the default is being used, return <cite>None</cite>.</p>
</dd></dl>
<dl class="function">
<dt id="palace.use_fileio">
<code class="sig-prename descclassname">palace.</code><code class="sig-name descname">use_fileio</code><span class="sig-paren">(</span><em class="sig-param">factory: Optional[Callable[[str], FileIO]], buffer_size: int = DEFAULT_BUFFER_SIZE</em><span class="sig-paren">)</span> &#x2192; None<a class="headerlink" href="#palace.use_fileio" title="Permalink to this definition"></a></dt>
<dd><p>Set the file I/O factory instance to be used by audio decoders.</p>
<p>If <cite>factory=None</cite> is provided, revert to the default.</p>
</dd></dl>
<dl class="class">
<dt id="palace.Device">
<em class="property">class </em><code class="sig-prename descclassname">palace.</code><code class="sig-name descname">Device</code><span class="sig-paren">(</span><em class="sig-param">str name: str = ''</em>, <em class="sig-param">fail_safe: bool = False</em><span class="sig-paren">)</span> &#x2192; None<a class="headerlink" href="#palace.Device" title="Permalink to this definition"></a></dt>
<dd><p>Audio mix output, which is either a system audio output stream
or an actual audio port.</p>
<em class="property">class </em><code class="sig-prename descclassname">palace.</code><code class="sig-name descname">Device</code><span class="sig-paren">(</span><em class="sig-param">str name: str = ''</em>, <em class="sig-param">fallback: Iterable[str] = ()</em><span class="sig-paren">)</span> &#x2192; None<a class="headerlink" href="#palace.Device" title="Permalink to this definition"></a></dt>
<dd><p>Audio mix output, via either a system stream or a hardware port.</p>
<p>This can be used as a context manager that calls <cite>close</cite> upon
completion of the block, even if an error occurs.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>name</strong> (<em>str</em><em>, </em><em>optional</em>) The name of the playback device.</p></li>
<li><p><strong>fail_safe</strong> (<em>bool</em><em>, </em><em>optional</em>) On failure, fallback to the default device if this is <cite>True</cite>,
otherwise <cite>RuntimeError</cite> is raised. Default to <cite>False</cite>.</p></li>
<li><p><strong>fallback</strong> (<em>Iterable</em><em>[</em><em>str</em><em>]</em><em>, </em><em>optional</em>) Device names to fallback to, default to an empty tuple.</p></li>
</ul>
</dd>
<dt class="field-even">Raises</dt>
<dd class="field-even"><p><strong>RuntimeError</strong> If device creation fails.</p>
</dd>
<dt class="field-odd">Warns</dt>
<dd class="field-odd"><p><strong>RuntimeWarning</strong> If <cite>fail_safe</cite> is <cite>True</cite> and the device of given <cite>name</cite>
cannot be opened.</p>
<dd class="field-odd"><p><strong>RuntimeWarning</strong> Before each fallback.</p>
</dd>
</dl>
<div class="admonition seealso">
@ -157,19 +295,23 @@ cannot be opened.</p>
<dl class="simple">
<dt><a class="reference internal" href="#palace.device_names" title="palace.device_names"><code class="xref py py-class docutils literal notranslate"><span class="pre">device_names</span></code></a></dt><dd><p>Available device names</p>
</dd>
<dt><a class="reference internal" href="#palace.device_name_default" title="palace.device_name_default"><code class="xref py py-class docutils literal notranslate"><span class="pre">device_name_default</span></code></a></dt><dd><p>Default device names</p>
</dd>
</dl>
</div>
<dl class="attribute">
<dl class="method">
<dt id="palace.Device.alc_version">
<code class="sig-name descname">alc_version</code><a class="headerlink" href="#palace.Device.alc_version" title="Permalink to this definition"></a></dt>
<em class="property">property </em><code class="sig-name descname">alc_version</code><a class="headerlink" href="#palace.Device.alc_version" title="Permalink to this definition"></a></dt>
<dd><p>ALC version supported by this device.</p>
</dd></dl>
<dl class="attribute">
<dl class="method">
<dt id="palace.Device.basic_name">
<em class="property">property </em><code class="sig-name descname">basic_name</code><a class="headerlink" href="#palace.Device.basic_name" title="Permalink to this definition"></a></dt>
<dd><p>Basic name of the device.</p>
</dd></dl>
<dl class="method">
<dt id="palace.Device.clock_time">
<code class="sig-name descname">clock_time</code><a class="headerlink" href="#palace.Device.clock_time" title="Permalink to this definition"></a></dt>
<em class="property">property </em><code class="sig-name descname">clock_time</code><a class="headerlink" href="#palace.Device.clock_time" title="Permalink to this definition"></a></dt>
<dd><p>Current clock time for the device.</p>
<p class="rubric">Notes</p>
<p>This starts relative to the device being opened, and does not
@ -186,39 +328,39 @@ extension to retrieve the audio devices real clock.</p>
<p>All previously-created contexts must first be destroyed.</p>
</dd></dl>
<dl class="attribute">
<dl class="method">
<dt id="palace.Device.current_hrtf">
<code class="sig-name descname">current_hrtf</code><a class="headerlink" href="#palace.Device.current_hrtf" title="Permalink to this definition"></a></dt>
<em class="property">property </em><code class="sig-name descname">current_hrtf</code><a class="headerlink" href="#palace.Device.current_hrtf" title="Permalink to this definition"></a></dt>
<dd><p>Name of the HRTF currently being used by this device.</p>
<p>If HRTF is not currently enabled, this will be <cite>None</cite>.</p>
</dd></dl>
<dl class="attribute">
<dl class="method">
<dt id="palace.Device.efx_version">
<code class="sig-name descname">efx_version</code><a class="headerlink" href="#palace.Device.efx_version" title="Permalink to this definition"></a></dt>
<em class="property">property </em><code class="sig-name descname">efx_version</code><a class="headerlink" href="#palace.Device.efx_version" title="Permalink to this definition"></a></dt>
<dd><p>EFX version supported by this device.</p>
<p>If the <cite>ALC_EXT_EFX</cite> extension is unsupported,
this will be <cite>(0, 0)</cite>.</p>
</dd></dl>
<dl class="attribute">
<dl class="method">
<dt id="palace.Device.frequency">
<code class="sig-name descname">frequency</code><a class="headerlink" href="#palace.Device.frequency" title="Permalink to this definition"></a></dt>
<em class="property">property </em><code class="sig-name descname">frequency</code><a class="headerlink" href="#palace.Device.frequency" title="Permalink to this definition"></a></dt>
<dd><p>Playback frequency in hertz.</p>
</dd></dl>
<dl class="attribute">
<dl class="method">
<dt id="palace.Device.hrtf_enabled">
<code class="sig-name descname">hrtf_enabled</code><a class="headerlink" href="#palace.Device.hrtf_enabled" title="Permalink to this definition"></a></dt>
<em class="property">property </em><code class="sig-name descname">hrtf_enabled</code><a class="headerlink" href="#palace.Device.hrtf_enabled" title="Permalink to this definition"></a></dt>
<dd><p>Whether HRTF is enabled on the device.</p>
<p>If the <cite>ALC_SOFT_HRTF</cite> extension is unavailable,
this will return False although there could still be
HRTF applied at a lower hardware level.</p>
</dd></dl>
<dl class="attribute">
<dl class="method">
<dt id="palace.Device.hrtf_names">
<code class="sig-name descname">hrtf_names</code><a class="headerlink" href="#palace.Device.hrtf_names" title="Permalink to this definition"></a></dt>
<em class="property">property </em><code class="sig-name descname">hrtf_names</code><a class="headerlink" href="#palace.Device.hrtf_names" title="Permalink to this definition"></a></dt>
<dd><p>List of available HRTF names.</p>
<p>The order is retained from OpenAL, such that the index of
a given name is the ID to use with <cite>ALC_HRTF_ID_SOFT</cite>.</p>
@ -226,17 +368,17 @@ a given name is the ID to use with <cite>ALC_HRTF_ID_SOFT</cite>.</p>
this will be an empty list.</p>
</dd></dl>
<dl class="attribute">
<dl class="method">
<dt id="palace.Device.max_auxiliary_sends">
<code class="sig-name descname">max_auxiliary_sends</code><a class="headerlink" href="#palace.Device.max_auxiliary_sends" title="Permalink to this definition"></a></dt>
<em class="property">property </em><code class="sig-name descname">max_auxiliary_sends</code><a class="headerlink" href="#palace.Device.max_auxiliary_sends" title="Permalink to this definition"></a></dt>
<dd><p>Maximum number of auxiliary source sends.</p>
<p>If <cite>ALC_EXT_EFX</cite> is unsupported, this will be 0.</p>
</dd></dl>
<dl class="attribute">
<dl class="method">
<dt id="palace.Device.name">
<code class="sig-name descname">name</code><a class="headerlink" href="#palace.Device.name" title="Permalink to this definition"></a></dt>
<dd><p>A dictionary of device name corresponding to each type.</p>
<em class="property">property </em><code class="sig-name descname">name</code><a class="headerlink" href="#palace.Device.name" title="Permalink to this definition"></a></dt>
<dd><p>Name of the device.</p>
</dd></dl>
<dl class="method">
@ -328,22 +470,37 @@ and components such as sources, buffers and effects.</p>
</dl>
</dd></dl>
<dl class="attribute">
<dt id="palace.Context.message_handler">
<code class="sig-name descname">message_handler</code><a class="headerlink" href="#palace.Context.message_handler" title="Permalink to this definition"></a></dt>
<dd><p>Handler of some certain events.</p>
<dl class="field-list simple">
<dt class="field-odd">Type</dt>
<dd class="field-odd"><p><a class="reference internal" href="#palace.MessageHandler" title="palace.MessageHandler">MessageHandler</a></p>
</dd>
</dl>
</dd></dl>
<dl class="field-list simple">
<dt class="field-odd">Raises</dt>
<dd class="field-odd"><p><strong>RuntimeError</strong> If context creation fails.</p>
</dd>
</dl>
<dl class="attribute">
<dt id="palace.Context.async_wake_interval">
<code class="sig-name descname">async_wake_interval</code><a class="headerlink" href="#palace.Context.async_wake_interval" title="Permalink to this definition"></a></dt>
<dd><p>Current interval used for waking up the background thread.</p>
</dd></dl>
<dl class="method">
<dt id="palace.Context.available_resamplers">
<em class="property">property </em><code class="sig-name descname">available_resamplers</code><a class="headerlink" href="#palace.Context.available_resamplers" title="Permalink to this definition"></a></dt>
<dd><p>The list of resamplers supported by the context.</p>
<p>If the <cite>AL_SOFT_source_resampler</cite> extension is unsupported
this will be an empty list, otherwise there would be
at least one entry.</p>
</dd></dl>
<dl class="method">
<dt id="palace.Context.default_resampler_index">
<em class="property">property </em><code class="sig-name descname">default_resampler_index</code><a class="headerlink" href="#palace.Context.default_resampler_index" title="Permalink to this definition"></a></dt>
<dd><p>The contexts default resampler index.</p>
<p>If the <cite>AL_SOFT_source_resampler</cite> extension is unsupported
the resampler list will be empty and this will return 0.</p>
<p>If you try to access the resampler list with this index
without extension, undefined behavior will occur
(accessing an out of bounds array index).</p>
</dd></dl>
<dl class="method">
<dt id="palace.Context.destroy">
<code class="sig-name descname">destroy</code><span class="sig-paren">(</span><em class="sig-param">self</em><span class="sig-paren">)</span> &#x2192; None<a class="headerlink" href="#palace.Context.destroy" title="Permalink to this definition"></a></dt>
@ -351,6 +508,18 @@ and components such as sources, buffers and effects.</p>
<p>The context must not be current when this is called.</p>
</dd></dl>
<dl class="method">
<dt id="palace.Context.doppler_factor">
<em class="property">property </em><code class="sig-name descname">doppler_factor</code><a class="headerlink" href="#palace.Context.doppler_factor" title="Permalink to this definition"></a></dt>
<dd><p>Factor to apply to all sources doppler calculations.</p>
</dd></dl>
<dl class="method">
<dt id="palace.Context.end_batch">
<code class="sig-name descname">end_batch</code><span class="sig-paren">(</span><em class="sig-param">self</em><span class="sig-paren">)</span> &#x2192; None<a class="headerlink" href="#palace.Context.end_batch" title="Permalink to this definition"></a></dt>
<dd><p>Continue processing the context and end batching.</p>
</dd></dl>
<dl class="method">
<dt id="palace.Context.is_supported">
<code class="sig-name descname">is_supported</code><span class="sig-paren">(</span><em class="sig-param">self</em>, <em class="sig-param">str channel_config: str</em>, <em class="sig-param">str sample_type: str</em><span class="sig-paren">)</span> &#x2192; bool<a class="headerlink" href="#palace.Context.is_supported" title="Permalink to this definition"></a></dt>
@ -368,14 +537,27 @@ are supported by the context.</p>
</dd></dl>
<dl class="attribute">
<dt>
<code class="sig-name descname">message_handler</code></dt>
<dd><p>palace.MessageHandler</p>
<dl class="field-list simple">
<dt class="field-odd">Type</dt>
<dd class="field-odd"><p>message_handler</p>
</dd>
</dl>
<dt id="palace.Context.message_handler">
<code class="sig-name descname">message_handler</code><a class="headerlink" href="#palace.Context.message_handler" title="Permalink to this definition"></a></dt>
<dd><p>Handler of some certain events.</p>
</dd></dl>
<dl class="method">
<dt id="palace.Context.speed_of_sound">
<em class="property">property </em><code class="sig-name descname">speed_of_sound</code><a class="headerlink" href="#palace.Context.speed_of_sound" title="Permalink to this definition"></a></dt>
<dd><p>The speed of sound propagation in units per second.</p>
<p>It is used to calculate the doppler effect along with other
distance-related time effects.</p>
<p>The default is 343.3 units per second (a realistic speed
assuming 1 meter per unit). If this is adjusted for a
different unit scale, <cite>Listener.meters_per_unit</cite> should
also be adjusted.</p>
</dd></dl>
<dl class="method">
<dt id="palace.Context.start_batch">
<code class="sig-name descname">start_batch</code><span class="sig-paren">(</span><em class="sig-param">self</em><span class="sig-paren">)</span> &#x2192; None<a class="headerlink" href="#palace.Context.start_batch" title="Permalink to this definition"></a></dt>
<dd><p>Suspend the context to start batching.</p>
</dd></dl>
<dl class="method">
@ -388,7 +570,7 @@ are supported by the context.</p>
<dl class="class">
<dt id="palace.Buffer">
<em class="property">class </em><code class="sig-prename descclassname">palace.</code><code class="sig-name descname">Buffer</code><span class="sig-paren">(</span><em class="sig-param">Context context: Context</em>, <em class="sig-param">str name: str</em><span class="sig-paren">)</span> &#x2192; None<a class="headerlink" href="#palace.Buffer" title="Permalink to this definition"></a></dt>
<em class="property">class </em><code class="sig-prename descclassname">palace.</code><code class="sig-name descname">Buffer</code><span class="sig-paren">(</span><em class="sig-param">Context context: Context</em>, <em class="sig-param">str name: str</em>, <em class="sig-param">existed: bool = False</em><span class="sig-paren">)</span> &#x2192; None<a class="headerlink" href="#palace.Buffer" title="Permalink to this definition"></a></dt>
<dd><p>Buffer of preloaded PCM samples coming from a <cite>Decoder</cite>.</p>
<p>Cached buffers must be freed using <cite>destroy</cite> before destroying
<cite>context</cite>. Alternatively, this can be used as a context manager
@ -416,12 +598,13 @@ will return the same buffer.</p></li>
<dl class="field-list simple">
<dt class="field-odd">Raises</dt>
<dd class="field-odd"><p><strong>RuntimeError</strong> If the buffer cant be loaded.</p>
<dd class="field-odd"><p><strong>RuntimeError</strong> If the buffer can neither be loaded
nor be found when <cite>existed</cite> is set.</p>
</dd>
</dl>
<dl class="attribute">
<dl class="method">
<dt id="palace.Buffer.channel_config">
<code class="sig-name descname">channel_config</code><a class="headerlink" href="#palace.Buffer.channel_config" title="Permalink to this definition"></a></dt>
<em class="property">property </em><code class="sig-name descname">channel_config</code><a class="headerlink" href="#palace.Buffer.channel_config" title="Permalink to this definition"></a></dt>
<dd><p>Buffers sample configuration.</p>
</dd></dl>
@ -432,21 +615,40 @@ will return the same buffer.</p></li>
<p>This invalidates all other <cite>Buffer</cite> objects with the same name.</p>
</dd></dl>
<dl class="attribute">
<dl class="method">
<dt id="palace.Buffer.frequency">
<code class="sig-name descname">frequency</code><a class="headerlink" href="#palace.Buffer.frequency" title="Permalink to this definition"></a></dt>
<em class="property">property </em><code class="sig-name descname">frequency</code><a class="headerlink" href="#palace.Buffer.frequency" title="Permalink to this definition"></a></dt>
<dd><p>Buffers frequency in hertz.</p>
</dd></dl>
<dl class="attribute">
<dl class="method">
<dt id="palace.Buffer.from_decoder">
<em class="property">static </em><code class="sig-name descname">from_decoder</code><span class="sig-paren">(</span><em class="sig-param">Decoder decoder: Decoder</em>, <em class="sig-param">Context context: Context</em>, <em class="sig-param">str name: str</em><span class="sig-paren">)</span> &#x2192; Buffer<a class="headerlink" href="#palace.Buffer.from_decoder" title="Permalink to this definition"></a></dt>
<dd><p>Return a buffer created by reading the given decoder.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>decoder</strong> (<a class="reference internal" href="#palace.Decoder" title="palace.Decoder"><em>Decoder</em></a>) The decoder from which the buffer is to be cached.</p></li>
<li><p><strong>context</strong> (<a class="reference internal" href="#palace.Context" title="palace.Context"><em>Context</em></a>) The context from which the buffer is to be created.</p></li>
<li><p><strong>name</strong> (<em>str</em>) The name to give to the buffer. It may alias an audio file,
but it must not currently exist in the buffer cache.</p></li>
</ul>
</dd>
<dt class="field-even">Raises</dt>
<dd class="field-even"><p><strong>RuntimeError</strong> If the buffer cannot be created.</p>
</dd>
</dl>
</dd></dl>
<dl class="method">
<dt id="palace.Buffer.length">
<code class="sig-name descname">length</code><a class="headerlink" href="#palace.Buffer.length" title="Permalink to this definition"></a></dt>
<em class="property">property </em><code class="sig-name descname">length</code><a class="headerlink" href="#palace.Buffer.length" title="Permalink to this definition"></a></dt>
<dd><p>Length of the buffer in sample frames.</p>
</dd></dl>
<dl class="attribute">
<dl class="method">
<dt id="palace.Buffer.length_seconds">
<code class="sig-name descname">length_seconds</code><a class="headerlink" href="#palace.Buffer.length_seconds" title="Permalink to this definition"></a></dt>
<em class="property">property </em><code class="sig-name descname">length_seconds</code><a class="headerlink" href="#palace.Buffer.length_seconds" title="Permalink to this definition"></a></dt>
<dd><p>Length of the buffer in seconds.</p>
</dd></dl>
@ -478,15 +680,25 @@ create a new one.</p>
<p>One buffer may be played from multiple sources simultaneously.</p>
</dd></dl>
<dl class="attribute">
<dl class="method">
<dt id="palace.Buffer.sample_type">
<code class="sig-name descname">sample_type</code><a class="headerlink" href="#palace.Buffer.sample_type" title="Permalink to this definition"></a></dt>
<em class="property">property </em><code class="sig-name descname">sample_type</code><a class="headerlink" href="#palace.Buffer.sample_type" title="Permalink to this definition"></a></dt>
<dd><p>Buffers sample type.</p>
</dd></dl>
<dl class="attribute">
<dl class="method">
<dt id="palace.Buffer.size">
<em class="property">property </em><code class="sig-name descname">size</code><a class="headerlink" href="#palace.Buffer.size" title="Permalink to this definition"></a></dt>
<dd><p>Storage size used by the buffer, in bytes.</p>
<p class="rubric">Notes</p>
<p>The size in bytes may not be what you expect from the length,
as it may take more space internally than the <cite>channel_config</cite>
and <cite>sample_type</cite> suggest.</p>
</dd></dl>
<dl class="method">
<dt id="palace.Buffer.source_count">
<code class="sig-name descname">source_count</code><a class="headerlink" href="#palace.Buffer.source_count" title="Permalink to this definition"></a></dt>
<em class="property">property </em><code class="sig-name descname">source_count</code><a class="headerlink" href="#palace.Buffer.source_count" title="Permalink to this definition"></a></dt>
<dd><p>Number of sources currently using the buffer.</p>
<p>Notes:
<cite>Context.update</cite> needs to be called to reliably ensure the count
@ -494,9 +706,9 @@ is kept updated for when sources reach their end. This is
equivalent to calling <cite>len(self.sources)</cite>.</p>
</dd></dl>
<dl class="attribute">
<dl class="method">
<dt id="palace.Buffer.sources">
<code class="sig-name descname">sources</code><a class="headerlink" href="#palace.Buffer.sources" title="Permalink to this definition"></a></dt>
<em class="property">property </em><code class="sig-name descname">sources</code><a class="headerlink" href="#palace.Buffer.sources" title="Permalink to this definition"></a></dt>
<dd><p><cite>Source</cite> objects currently playing the buffer.</p>
</dd></dl>
@ -678,17 +890,17 @@ from its current group.</p>
</div>
</dd></dl>
<dl class="attribute">
<dl class="method">
<dt id="palace.Source.latency">
<code class="sig-name descname">latency</code><a class="headerlink" href="#palace.Source.latency" title="Permalink to this definition"></a></dt>
<em class="property">property </em><code class="sig-name descname">latency</code><a class="headerlink" href="#palace.Source.latency" title="Permalink to this definition"></a></dt>
<dd><p>Source latency in nanoseconds.</p>
<p>If the <cite>AL_SOFT_source_latency</cite> extension is unsupported,
the latency will be 0.</p>
</dd></dl>
<dl class="attribute">
<dl class="method">
<dt id="palace.Source.latency_seconds">
<code class="sig-name descname">latency_seconds</code><a class="headerlink" href="#palace.Source.latency_seconds" title="Permalink to this definition"></a></dt>
<em class="property">property </em><code class="sig-name descname">latency_seconds</code><a class="headerlink" href="#palace.Source.latency_seconds" title="Permalink to this definition"></a></dt>
<dd><p>Source latency in seconds.</p>
<p>If the <cite>AL_SOFT_source_latency</cite> extension is unsupported,
the latency will be 0.</p>
@ -708,9 +920,9 @@ objects loop points.</p>
this will be the offset based on the decoders read position.</p>
</dd></dl>
<dl class="attribute">
<dl class="method">
<dt id="palace.Source.offset_seconds">
<code class="sig-name descname">offset_seconds</code><a class="headerlink" href="#palace.Source.offset_seconds" title="Permalink to this definition"></a></dt>
<em class="property">property </em><code class="sig-name descname">offset_seconds</code><a class="headerlink" href="#palace.Source.offset_seconds" title="Permalink to this definition"></a></dt>
<dd><p>Source offset in seconds.</p>
<p>For streaming sources this will be the offset based on
the decoders read position.</p>
@ -760,15 +972,15 @@ without the <cite>ALC_EXT_EFX</cite> extension.</p></li>
<dd><p>Pause the source if it is playing.</p>
</dd></dl>
<dl class="attribute">
<dl class="method">
<dt id="palace.Source.paused">
<code class="sig-name descname">paused</code><a class="headerlink" href="#palace.Source.paused" title="Permalink to this definition"></a></dt>
<em class="property">property </em><code class="sig-name descname">paused</code><a class="headerlink" href="#palace.Source.paused" title="Permalink to this definition"></a></dt>
<dd><p>Whether the source is currently paused.</p>
</dd></dl>
<dl class="attribute">
<dl class="method">
<dt id="palace.Source.pending">
<code class="sig-name descname">pending</code><a class="headerlink" href="#palace.Source.pending" title="Permalink to this definition"></a></dt>
<em class="property">property </em><code class="sig-name descname">pending</code><a class="headerlink" href="#palace.Source.pending" title="Permalink to this definition"></a></dt>
<dd><p>Whether the source is waiting to play a future buffer.</p>
</dd></dl>
@ -783,15 +995,15 @@ without the <cite>ALC_EXT_EFX</cite> extension.</p></li>
</dl>
</dd></dl>
<dl class="attribute">
<dl class="method">
<dt id="palace.Source.playing">
<code class="sig-name descname">playing</code><a class="headerlink" href="#palace.Source.playing" title="Permalink to this definition"></a></dt>
<em class="property">property </em><code class="sig-name descname">playing</code><a class="headerlink" href="#palace.Source.playing" title="Permalink to this definition"></a></dt>
<dd><p>Whether the source is currently playing.</p>
</dd></dl>
<dl class="attribute">
<dl class="method">
<dt id="palace.Source.playing_or_pending">
<code class="sig-name descname">playing_or_pending</code><a class="headerlink" href="#palace.Source.playing_or_pending" title="Permalink to this definition"></a></dt>
<em class="property">property </em><code class="sig-name descname">playing_or_pending</code><a class="headerlink" href="#palace.Source.playing_or_pending" title="Permalink to this definition"></a></dt>
<dd><p>Whether the source is currently playing
or waiting to play in a future buffer.</p>
</dd></dl>
@ -917,8 +1129,7 @@ completion of the block, even if an error occurs.</p>
<dl class="method">
<dt id="palace.SourceGroup.destroy">
<code class="sig-name descname">destroy</code><span class="sig-paren">(</span><em class="sig-param">self</em><span class="sig-paren">)</span> &#x2192; None<a class="headerlink" href="#palace.SourceGroup.destroy" title="Permalink to this definition"></a></dt>
<dd><p>Destroy the source group, removing all sources from it
before being freed.</p>
<dd><p>Destroy the source group, remove and free all sources.</p>
</dd></dl>
<dl class="attribute">
@ -961,10 +1172,10 @@ this group, including sub-groups.</p>
including sub-groups.</p>
</dd></dl>
<dl class="attribute">
<dl class="method">
<dt id="palace.SourceGroup.sources">
<code class="sig-name descname">sources</code><a class="headerlink" href="#palace.SourceGroup.sources" title="Permalink to this definition"></a></dt>
<dd><p>The list of sources currently in the group.</p>
<em class="property">property </em><code class="sig-name descname">sources</code><a class="headerlink" href="#palace.SourceGroup.sources" title="Permalink to this definition"></a></dt>
<dd><p>Sources under this group.</p>
</dd></dl>
<dl class="method">
@ -974,10 +1185,10 @@ including sub-groups.</p>
including sub-groups.</p>
</dd></dl>
<dl class="attribute">
<dl class="method">
<dt id="palace.SourceGroup.sub_groups">
<code class="sig-name descname">sub_groups</code><a class="headerlink" href="#palace.SourceGroup.sub_groups" title="Permalink to this definition"></a></dt>
<dd><p>The list of subgroups currently in the group.</p>
<em class="property">property </em><code class="sig-name descname">sub_groups</code><a class="headerlink" href="#palace.SourceGroup.sub_groups" title="Permalink to this definition"></a></dt>
<dd><p>Source groups under this group.</p>
</dd></dl>
</dd></dl>
@ -1007,6 +1218,14 @@ If the effect slot is currently set on a source send,
it will be removed first.</p>
</dd></dl>
<dl class="method">
<dt id="palace.AuxiliaryEffectSlot.effect">
<em class="property">property </em><code class="sig-name descname">effect</code><a class="headerlink" href="#palace.AuxiliaryEffectSlot.effect" title="Permalink to this definition"></a></dt>
<dd><p>Effect to be held by the slot.</p>
<p>The given effect object may be altered or destroyed without
affecting the effect slot.</p>
</dd></dl>
<dl class="method">
<dt id="palace.AuxiliaryEffectSlot.gain">
<em class="property">property </em><code class="sig-name descname">gain</code><a class="headerlink" href="#palace.AuxiliaryEffectSlot.gain" title="Permalink to this definition"></a></dt>
@ -1022,16 +1241,16 @@ on the effect properties.</p>
<p>Has no effect when using non-reverb effects. Default is <cite>True</cite>.</p>
</dd></dl>
<dl class="attribute">
<dl class="method">
<dt id="palace.AuxiliaryEffectSlot.source_sends">
<code class="sig-name descname">source_sends</code><a class="headerlink" href="#palace.AuxiliaryEffectSlot.source_sends" title="Permalink to this definition"></a></dt>
<dd><p>Iterator of each <cite>Source</cite> object and its pairing
<em class="property">property </em><code class="sig-name descname">source_sends</code><a class="headerlink" href="#palace.AuxiliaryEffectSlot.source_sends" title="Permalink to this definition"></a></dt>
<dd><p>List of each <cite>Source</cite> object and its pairing
send this effect slot is set on.</p>
</dd></dl>
<dl class="attribute">
<dl class="method">
<dt id="palace.AuxiliaryEffectSlot.use_count">
<code class="sig-name descname">use_count</code><a class="headerlink" href="#palace.AuxiliaryEffectSlot.use_count" title="Permalink to this definition"></a></dt>
<em class="property">property </em><code class="sig-name descname">use_count</code><a class="headerlink" href="#palace.AuxiliaryEffectSlot.use_count" title="Permalink to this definition"></a></dt>
<dd><p>Number of source sends the effect slot
is used by. This is equivalent to calling
<cite>len(tuple(self.source_sends))</cite>.</p>
@ -1039,6 +1258,40 @@ is used by. This is equivalent to calling
</dd></dl>
<dl class="class">
<dt id="palace.Effect">
<em class="property">class </em><code class="sig-prename descclassname">palace.</code><code class="sig-name descname">Effect</code><span class="sig-paren">(</span><em class="sig-param">Context context: Context</em><span class="sig-paren">)</span> &#x2192; None<a class="headerlink" href="#palace.Effect" title="Permalink to this definition"></a></dt>
<dd><p>A collection of settings or parameters.</p>
<p>This can be used as a context manager that calls <cite>destroy</cite>
upon completion of the block, even if an error occurs.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>context</strong> (<a class="reference internal" href="#palace.Context" title="palace.Context"><em>Context</em></a>) The context from which the effect is to be created.</p>
</dd>
</dl>
<dl class="method">
<dt id="palace.Effect.chorus_properties">
<em class="property">property </em><code class="sig-name descname">chorus_properties</code><a class="headerlink" href="#palace.Effect.chorus_properties" title="Permalink to this definition"></a></dt>
<dd><p>The effect with the specified chorus properties.</p>
<p>It will be thrown if EAXReverb effect is not supported.</p>
</dd></dl>
<dl class="method">
<dt id="palace.Effect.destroy">
<code class="sig-name descname">destroy</code><span class="sig-paren">(</span><em class="sig-param">self</em><span class="sig-paren">)</span> &#x2192; None<a class="headerlink" href="#palace.Effect.destroy" title="Permalink to this definition"></a></dt>
<dd><p>Destroy the effect.</p>
</dd></dl>
<dl class="method">
<dt id="palace.Effect.reverb_properties">
<em class="property">property </em><code class="sig-name descname">reverb_properties</code><a class="headerlink" href="#palace.Effect.reverb_properties" title="Permalink to this definition"></a></dt>
<dd><p>The effect with the specified reverb properties.</p>
<p>It will automatically downgrade to the Standard Reverb effect
if EAXReverb effect is not supported.</p>
</dd></dl>
</dd></dl>
<dl class="class">
<dt id="palace.Decoder">
<em class="property">class </em><code class="sig-prename descclassname">palace.</code><code class="sig-name descname">Decoder</code><span class="sig-paren">(</span><em class="sig-param">Context context: Context</em>, <em class="sig-param">str name: str</em><span class="sig-paren">)</span> &#x2192; None<a class="headerlink" href="#palace.Decoder" title="Permalink to this definition"></a></dt>
@ -1050,6 +1303,9 @@ is used by. This is equivalent to calling
<li><p><strong>name</strong> (<em>str</em>) Audio file or resource name.</p></li>
</ul>
</dd>
<dt class="field-even">Raises</dt>
<dd class="field-even"><p><strong>RuntimeError</strong> If decoder creation fails.</p>
</dd>
</dl>
<div class="admonition seealso">
<p class="admonition-title">See also</p>
@ -1061,38 +1317,40 @@ is used by. This is equivalent to calling
<p class="rubric">Notes</p>
<p>Due to implementation details, while this creates decoder objects
from filenames using contexts, it is the superclass of the ABC
(abstract base class) <cite>BaseDecoder</cite>.</p>
<dl class="attribute">
(abstract base class) <cite>BaseDecoder</cite>. Because of this, <cite>Decoder</cite>
may only initialize an internal one. To use registered factories,
please call the <cite>smart</cite> static method instead.</p>
<dl class="method">
<dt id="palace.Decoder.channel_config">
<code class="sig-name descname">channel_config</code><a class="headerlink" href="#palace.Decoder.channel_config" title="Permalink to this definition"></a></dt>
<em class="property">property </em><code class="sig-name descname">channel_config</code><a class="headerlink" href="#palace.Decoder.channel_config" title="Permalink to this definition"></a></dt>
<dd><p>Channel configuration of the audio being decoded.</p>
</dd></dl>
<dl class="attribute">
<dl class="method">
<dt id="palace.Decoder.frequency">
<code class="sig-name descname">frequency</code><a class="headerlink" href="#palace.Decoder.frequency" title="Permalink to this definition"></a></dt>
<em class="property">property </em><code class="sig-name descname">frequency</code><a class="headerlink" href="#palace.Decoder.frequency" title="Permalink to this definition"></a></dt>
<dd><p>Sample frequency, in hertz, of the audio being decoded.</p>
</dd></dl>
<dl class="attribute">
<dl class="method">
<dt id="palace.Decoder.length">
<code class="sig-name descname">length</code><a class="headerlink" href="#palace.Decoder.length" title="Permalink to this definition"></a></dt>
<em class="property">property </em><code class="sig-name descname">length</code><a class="headerlink" href="#palace.Decoder.length" title="Permalink to this definition"></a></dt>
<dd><p>Length of audio in sample frames, falling-back to 0.</p>
<p class="rubric">Notes</p>
<p>Zero-length decoders may not be used to load a <cite>Buffer</cite>.</p>
</dd></dl>
<dl class="attribute">
<dl class="method">
<dt id="palace.Decoder.length_seconds">
<code class="sig-name descname">length_seconds</code><a class="headerlink" href="#palace.Decoder.length_seconds" title="Permalink to this definition"></a></dt>
<em class="property">property </em><code class="sig-name descname">length_seconds</code><a class="headerlink" href="#palace.Decoder.length_seconds" title="Permalink to this definition"></a></dt>
<dd><p>Length of audio in seconds, falling-back to 0.0.</p>
<p class="rubric">Notes</p>
<p>Zero-length decoders may not be used to load a <cite>Buffer</cite>.</p>
</dd></dl>
<dl class="attribute">
<dl class="method">
<dt id="palace.Decoder.loop_points">
<code class="sig-name descname">loop_points</code><a class="headerlink" href="#palace.Decoder.loop_points" title="Permalink to this definition"></a></dt>
<em class="property">property </em><code class="sig-name descname">loop_points</code><a class="headerlink" href="#palace.Decoder.loop_points" title="Permalink to this definition"></a></dt>
<dd><p>Loop points in sample frames.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
@ -1143,9 +1401,9 @@ the end of the audio has been reached.</p>
</div>
</dd></dl>
<dl class="attribute">
<dl class="method">
<dt id="palace.Decoder.sample_type">
<code class="sig-name descname">sample_type</code><a class="headerlink" href="#palace.Decoder.sample_type" title="Permalink to this definition"></a></dt>
<em class="property">property </em><code class="sig-name descname">sample_type</code><a class="headerlink" href="#palace.Decoder.sample_type" title="Permalink to this definition"></a></dt>
<dd><p>Sample type of the audio being decoded.</p>
</dd></dl>
@ -1156,6 +1414,14 @@ the end of the audio has been reached.</p>
<p>Return if the seek was successful.</p>
</dd></dl>
<dl class="method">
<dt id="palace.Decoder.smart">
<em class="property">static </em><code class="sig-name descname">smart</code><span class="sig-paren">(</span><em class="sig-param">Context context: Context</em>, <em class="sig-param">str name: str</em><span class="sig-paren">)</span> &#x2192; Decoder<a class="headerlink" href="#palace.Decoder.smart" title="Permalink to this definition"></a></dt>
<dd><p>Return the decoder created from the given resource name.</p>
<p>This first tries user-registered decoder factories in
lexicographical order, then fallback to the internal ones.</p>
</dd></dl>
</dd></dl>
<dl class="class">
@ -1225,6 +1491,48 @@ the end of the audio has been reached.</p>
</dd></dl>
<dl class="class">
<dt id="palace.FileIO">
<em class="property">class </em><code class="sig-prename descclassname">palace.</code><code class="sig-name descname">FileIO</code><a class="headerlink" href="#palace.FileIO" title="Permalink to this definition"></a></dt>
<dd><p>File I/O protocol.</p>
<p>This static duck type defines methods required to be used by
palace decoders. Despite its name, a <cite>FileIO</cite> is not necessarily
created from a file, but any seekable finite input stream.</p>
<p>Many classes defined in the standard library module <cite>io</cite>
are compatible with this protocol.</p>
<p class="rubric">Notes</p>
<p>Since PEP 544 is only implemented in Python 3.8+, type checking
for this on earlier Python version might not work as expected.</p>
<dl class="attribute">
<dt id="palace.FileIO.close">
<code class="sig-name descname">close</code><a class="headerlink" href="#palace.FileIO.close" title="Permalink to this definition"></a></dt>
<dd><p>Close the file.</p>
</dd></dl>
<dl class="attribute">
<dt id="palace.FileIO.read">
<code class="sig-name descname">read</code><a class="headerlink" href="#palace.FileIO.read" title="Permalink to this definition"></a></dt>
<dd><p>Read at most size bytes, returned as bytes.</p>
</dd></dl>
<dl class="attribute">
<dt id="palace.FileIO.seek">
<code class="sig-name descname">seek</code><a class="headerlink" href="#palace.FileIO.seek" title="Permalink to this definition"></a></dt>
<dd><p>Move to new file position and return the file position.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>offset</strong> (<em>int</em>) A byte count.</p></li>
<li><p><strong>whence</strong> (<em>int</em><em>, </em><em>optional</em>) Either 0 (default, move relative to start of file),
1 (move relative to current position)
or 2 (move relative to end of file).</p></li>
</ul>
</dd>
</dl>
</dd></dl>
</dd></dl>
<dl class="class">
<dt id="palace.MessageHandler">
<em class="property">class </em><code class="sig-prename descclassname">palace.</code><code class="sig-name descname">MessageHandler</code><a class="headerlink" href="#palace.MessageHandler" title="Permalink to this definition"></a></dt>
@ -1328,6 +1636,7 @@ or stream, which is detected upon a call to <cite>Context.update</cite>.</p>
<h3>Navigation</h3>
<p class="caption"><span class="caption-text">Contents:</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">Reference</a><ul class="simple">
</ul>
</li>
@ -1337,7 +1646,7 @@ or stream, which is detected upon a call to <cite>Context.update</cite>.</p>
<h3>Related Topics</h3>
<ul>
<li><a href="index.html">Documentation overview</a><ul>
<li>Previous: <a href="index.html" title="previous chapter">Welcome to palaces documentation!</a></li>
<li>Previous: <a href="installation.html" title="previous chapter">Installation</a></li>
</ul></li>
</ul>
</div>

View File

@ -4,7 +4,7 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title>Search &#8212; palace 0.0.11 documentation</title>
<title>Search &#8212; palace 0.0.12 documentation</title>
<link rel="stylesheet" href="_static/alabaster.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@ -77,6 +77,7 @@
<h3>Navigation</h3>
<p class="caption"><span class="caption-text">Contents:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="reference.html">Reference</a></li>
</ul>

File diff suppressed because one or more lines are too long

View File

@ -22,7 +22,7 @@ copyright = '2019, 2020 Nguyễn Gia Phong et al'
author = 'Nguyễn Gia Phong et al.'
# The full version, including alpha/beta/rc tags
release = '0.0.11'
release = '0.0.12'
# -- General configuration ---------------------------------------------------

View File

@ -10,6 +10,7 @@ Welcome to palace's documentation!
:maxdepth: 2
:caption: Contents:
installation
reference

37
src/installation.rst Normal file
View File

@ -0,0 +1,37 @@
Installation
============
Prerequisites
-------------
Palace requires Python 3.6 for runtime and pip for installation.
Via PyPI
--------
Palace can be installed from PyPI:
.. code-block:: sh
pip install palace
Wheel distributions are only built for GNU/Linux and macOS on amd64
at the time of writing.
However, the wheels for macOS does *not* include shared libraries like alure,
which are expected to be installed either from source or from Homebrew.
This is because we cannot (yet) get ``delocate`` to worked with alure
compiled from source, which showed up to be inside of ``@rpath``.
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 git for fetching the source). Palace can then be compiled
and installed by running:
.. code-block:: sh
git clone https://github.com/McSinyx/palace.git
pip install palace/