Re-exports

pub use crate::monitor::MinMaxMonitorSamples;

Modules

Structs

This struct holds the frontend node configuration.
Contains global state that all nodes can access. This is used for instance to implement the MIDI functionality or the external parameters for the HexoSynth plugin. Can also be used by other components outside HexoDSP on the audio thread to send MIDI and provide external parameters.
Holds the complete allocation of nodes and the program. New Nodes or the program is not newly allocated in the audio backend, but it is copied from the input ring buffer. If this turns out to be too slow, we might have to push buffers of the program around.
A NodeInstance describes the input/output/atom ports of a Node and holds other important house keeping information for the NodeConfigurator.
Step in a NodeProg that stores the to be executed node and output operations.
A node graph execution program. It comes with buffers for the inputs, outputs and node parameters (knob values).

Enums

DropMsg 🔒
Message from the DSP graph/backend to the frontend. Such as MIDI events for MIDI learn for instance.
Messages for updating the NodeExecutor thread. Usually used for shoveling NodeProg and Nodes to and from the NodeExecutor thread. And also parameter updates of course.

Constants

Traits

This trait needs to be implemented by the caller of the NodeExecutor if it wants to provide the parameters for the “ExtA” to “ExtL” nodes.
Contains audio driver context informations. Such as the number of frames of the current buffer period and allows writing output samples and reading input samples.

Functions

Creates a NodeConfigurator and a NodeExecutor which are interconnected by ring buffers.