This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (pypi.python.org).
Help us improve Python packaging - Donate today!

A library for 3D, environmental audio, and synthesis.

Project Description

GitHub

I’m trying to raise money for this project, so I can put a few months of full-time work into it. Consequently, we have a GoFundMe.

Introduction

Libaudioverse is a highly flexible realtime audio synthesis library designed to be bound to as many languages as possible. Potential applications include games, realtime music synthesis, voice chat, implementations of WebAudio, and more. Libaudioverse supports the best possible backends it can for each platform, and uses both SSE2 and threads for increased performance.

At the core of Libaudioverse is the concept of a node, a piece of meaningful audio architecture. They can be connected in any acyclic configuration, allowing the creation of much more complex effects. It is possible to schedule property changes and envelopes with sample-perfect accuracy;. For more complex effects, nodes can be connected directly to the properties of other nodes.

here is an overview of the offered nodes:

  • The environment and source nodes come together to act as a fully functional 3D audio environment, including support for HRTF, surround sound, and reverb.
  • The FDN reverberator is an environmental reverb capable of representing everything from a bathroom to a cathedral.
  • If you want to play with Schroeder Allpass sections, try the nested Allpass Network node.
  • A variety of lower-level filters are available: Biquad, first-order, one-pole, and convolution.
  • It is possible to implement any IIR filter, either by cascading lower level filters or by using the IIR filter node directly.
  • Oscillator options include sine and square, as well as a configurable noise generator.
  • there are several delay line types. Most delay lines offer support for feedback, and the filtered delay line allows filtering this feedback.
  • You can record audio with the recorder, or intercept audio anywhere in the graph of nodes with the graph listener.
  • Finally, if none of these meet your needs, it is possible to create your own node via the custom node.

NOTE: This is pre-alpha and supports Windows and Linux. Mac is planned.

Licensing

See the file COPYRIGHT for the legalese. This file is definitive, and the following a summary only.

The non-legalese version is that Libaudioverse is dual-licensed under GPL V3 or later (see here for GPL V3) and MPL2.

Documentation and Examples

There are two sources of Libaudioverse documentation.

The first is the language-agnostic manual, which discusses Libaudioverse from a general perspective. This manual contains the reference for the C API and an overview of Libaudioverse’s core concepts. Most examples in this manual are in Python.

The second source of documentation is the API reference for your language of choice. At the moment, this means the Python API reference. The API references contain installation instructions and any notes specific to the language in question.

Examples for all supported languages may be found in the GitHub repository. These sets of examples aim to be equivalent and to demonstrate most critical features of Libaudioverse. This library is easy. In many cases, the examples will be enough to get you started.

Getting Help

Libaudioverse has a Google Group. You can subscribe directly and without a Gmail address via e-mailing an empty e-mail to libaudioverse+subscribe@camlorn.net and clicking the link in the confirmation e-mail sent to you. I prefer questions to come via this avenue, as it results in your answers being searchable in future. If you need to contact me in real-time, you can do so via the Libaudioverse IRC channel: #libaudioverse on chat.freenode.net.

Please report bugs and make feature requests using the GitHub issue tracker; this saves me time for issues which I cannot fix immediately.

Bindings

At the moment, Python and C are the only supported languages. You can get the Python bindings via pip on Windows, but Linux currently requires building Libaudioverse yourself. As more languages become available, Libaudioverse will attempt to upload binaries to package managers. The goal is to minimize the number of use cases that require building Libaudioverse.

Libaudioverse’s approach to bindings is such that it is possible to add more languages in short order. If you are seriously considering using Libaudioverse in a specific language, I wish to talk to you. The addition of a new language is mostly a one-time process, after which the bindings literally maintain themselves. Which language I add next is primarily based on interest.

Note: Your language must support C callbacks, at least 2 levels of pointer indirection and thread primitives in order to be successfully bound to Libaudioverse. The only language I am currently aware of that fails to implement these three things is Angelscript in the BGT scripting environment.

Release History

Release History

This version
History Node

0.9.1

History Node

0.9

History Node

0.9a19

History Node

0.9a18

History Node

0.9a17

History Node

0.9a16

History Node

0.9a15

History Node

0.9a14

History Node

0.9a13

History Node

0.9a12

History Node

0.9a11

History Node

0.9a10

History Node

0.9a8

History Node

0.9a7

History Node

0.9a6

History Node

0.9a5

History Node

0.9a4

History Node

0.9a3

History Node

0.9a2

History Node

0.9a1

History Node

0.8.3

History Node

0.8.2

History Node

0.8.0

History Node

0.8.dev116

History Node

0.8.dev108

History Node

0.8.dev107

History Node

0.8.dev106

History Node

0.8.dev105

History Node

0.8.dev104

History Node

0.8.dev103

History Node

0.8.dev102

History Node

0.8.dev88

History Node

0.8.dev81

History Node

0.8.dev78

Download Files

Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
libaudioverse-0.9.1-py2.py3-none-win32.whl (1.3 MB) Copy SHA256 Checksum SHA256 py2.py3 Wheel May 23, 2017
libaudioverse-0.9.1-py2.py3-none-win_amd64.whl (1.5 MB) Copy SHA256 Checksum SHA256 py2.py3 Wheel May 23, 2017

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting