#audio #music


Execute graphs of functions in real time

3 releases (breaking)

new 0.3.0 May 21, 2023
0.2.0 May 14, 2023
0.1.0 Dec 3, 2022

#290 in Audio

33 downloads per month


487 lines

This crate offers structures for constructing graphs of functions and executing them in real time. It is intended for audio applications with customizable "patches".

What is a function graph?

Some applications provide an interface for configuring a graph of nodes to process some data. Each node is a function (stateful in the case of this crate) that accepts some inputs and provides some outputs. Outputs can be linked to inputs of other nodes.

For example, Blender, the open source 3D graphics package, provides nodes for configuring many things, from textures and materials to geometry.

Another example is Bespoke Synth, which provides a similar interface of nodes for creating complex instruments. The goal of this crate is to provide a "backend" for "executing" such a graph configuration.

You provide the nodes and the data types (e.g. you can define an audio buffer type and a MIDI buffer type, and mix them), and configure the connections. This library then "runs" the graph.


Crate is unfinished and documentation is nonexistent. You're on your own. Check tests/graph_execution.rs for an idea of how this is supposed to be used.


~59K SLoC