:microscope: :speaker: graph-based audio engine
Introduces working iOS, Android, and Raspberry Pi targets. Raspberry Pi requires libpulse-dev to be installed to compile.
This is otherwise a maintenance release, fixing small regressions that slipped through in Release 1.0
This 1.0 release finalizes the API with functionality that allows full introspection of all nodes and attributes. To go with this 1.0, LabSoundGraphToy is also released at https://github.com/LabSound/LabSoundGraphToy to enable exploration of the library, its nodes, and its functionality.
AudioParams already exist for rate varying values on Audio Nodes. AudioParams are registered on nodes by name, and can be looked up by name. Non-rate varying parameters such as filter modes, buffer sizes, and so on could not be similarly looked up by name. AudioSettings are introduced in this release for non-rate varying parameters, such as filter modes, buffer sizes and so on. Settings for each AudioNode are documented in its corresponding header file. A vector of param or setting names can be fetched from an AudioNode and used to populate a user interface. Each fetched AudioSetting can be queried as to whether its last set type was a Uint32 or a Float, in order that user interfaces can self configure appropriately.
Added some nullchecks to AudioChannel memory management as pointed out by harmonicvision
This release primarily cleans up how AudioNodes are connected to one another. Formerly, the connect(...)
method was called directly on an AudioNode
, taking the graph lock and effecting changes to the AudioContext
itself. This is no longer the case. AudioContext
is now the arbiter of all graph changes.
Numerous bug and maintenance fixes. A cmake build system.
Several breaking API changes related to AudioContext
creation and PannerNode
initialization.