Expand description
A spatial audio rendering engine for the xpans Ecosystem
§Connectors
Violet manages its inputs and output through composable data structures called Connectors. A Connector tells the renderer how many frames that it has available for reading or writing, which determines how many frames that Violet can safely render at a time. Upon rendering, the renderer communicates back to its connectors the number of frames it has rendered.
§Inputs and outputs
Violet provides several optional inputs and outputs through Cargo features. Custom inputs and outputs may also be built by implementing their respective traits.
§The renderer
Rendering can be done frame-by-frame or in chunks. When frames are rendered, audio samples are read from the audio input, spatial samples are read from the spatial input, and the rendered audio samples are written to the audio output.
The inputs and outputs can call methods on themselves at different stages of the rendering process to keep track of state, clean up before or after frames, etc.
Modules§
- audio_
input - Audio input traits and types
- audio_
output - Audio output traits and types
- config
- Extension for generating source interpreters and sample processors from render configurations
- spatial_
input - Spatial input traits and types
Structs§
- Renderer
- Renders spatial audio scenes.
- Renderer
Builder - Builds a renderer.
- Source
- Spatial data for an audio source.
Enums§
Traits§
- Connector
- An interface for all inputs and outputs to communicate to the renderer and keep track of its state.
- Sample
Processor - Uses source interpretations to transform audio samples.
- Source
Interpreter - Evaluates an audio source’s properties into values used by a sample processor.