A library for 3D, environmental audio, and synthesis.
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.
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:
NOTE: This is pre-alpha and supports Windows and Linux. Mac is planned.
See the file COPYRIGHT for the legalese. This file is definitive, and the following a summary only.
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.
Libaudioverse has a Google Group. You can subscribe directly and without a Gmail address via e-mailing an empty e-mail to email@example.com 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.
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.
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|