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

#949 in Audio

Download history 12/week @ 2024-02-03 19/week @ 2024-02-10 154/week @ 2024-02-17 41/week @ 2024-02-24 20/week @ 2024-03-02 30/week @ 2024-03-09 14/week @ 2024-03-16 2/week @ 2024-03-23 38/week @ 2024-03-30 10/week @ 2024-04-06 3/week @ 2024-04-13 157/week @ 2024-04-20 27/week @ 2024-04-27 6/week @ 2024-05-04 5/week @ 2024-05-11 16/week @ 2024-05-18

63 downloads per month
Used in 2 crates

Custom license

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–4.5MB
~67K SLoC