home/ atoms/ glicol-synth-rust-audio-library

glicol_synth is a standalone graph-based Rust audio DSP library usable outside Glicol

The glicol_synth crate is Glicol’s audio engine decoupled from its language parser, usable as an independent Rust audio library. It provides an AudioContextBuilder API with a fixed buffer-size const-generic, node graph construction (add_mono_node, connect), block processing (next_block), and real-time message passing (send_msg) for parameter updates. The library includes many built-in audio nodes (oscillators, filters, etc.) and was forked from the dasp_graph crate with additions for customisable buffer size, ID-based input selection, and a higher-level AudioContext abstraction. It runs on Web, Desktop, DAW (VST), and Bela.

Examples

let mut context = AudioContextBuilder::<128>::new().sr(44100).channels(1).build();
let node_a = context.add_mono_node(ConstSig::new(42.));
context.connect(node_a, context.destination);
context.next_block();

Assessment

Explain the role of const generics (AudioContextBuilder::<128>) in a real-time audio library. Why can’t buffer size be a runtime value in this design?

“`glicol_synth` is the audio engine of glicol computer music language. It can be used as a standalone audio library”
corpus · glicol-language-playground-and-guide-graph-oriented-live-cod · chunk 7