6 releases
0.13.5 | Apr 23, 2024 |
---|---|
0.13.4 | Feb 18, 2024 |
0.13.2 | Mar 28, 2023 |
0.12.8 | Sep 4, 2022 |
#914 in Audio
196 downloads per month
Used in 2 crates
170KB
4K
SLoC
glicol_synth: a graph-based audio DSP library written in Rust
glicol_synth
is the audio engine of glicol computer music language.
It can be used as a standalone audio library, with quite intuitive APIs:
use glicol_synth::{AudioContextBuilder, signal::ConstSig, Message};
fn main() {
let mut context = AudioContextBuilder::<16>::new()
.sr(44100).channels(1).build();
let node_a = context.add_mono_node(ConstSig::new(42.));
context.connect(node_a, context.destination);
println!("first block {:?}", context.next_block());
context.send_msg(node_a, Message::SetToNumber(0, 100.) );
println!("second block, after msg {:?}", context.next_block());
}
Overview
glicol_synth
begins with a fork of the dasp_graph
crate, written by @mitchmindtree.
many features and contents are added:
- use const generics for a customisable buffer size
- replace the input from vec to a map, so users can use a node id to select input
- users can send message to each node in real-time for interaction
- add a higher level audiocontext for easier APIs
- many useful audio nodes from oscillators, filters, etc.
See the examples on GitHub for the basic usage.
Dependencies
~3.5–5MB
~71K SLoC