Glicol (an acronym for "graph-oriented live coding language") is a computer music language with both its language and audio engine written in Rust, a modern alternative to C/C++. Given this low-level nature, Glicol can run on many different platforms such as browsers, VST plugins, and Bela board. Glicol's synth-like syntax and powerful audio engine also make it possible to combine high-level synth or sequencer control with low-level sample-accurate audio synthesis, all in real-time.
The easiest way to try Glicol is through its web app. Here, you can find guides, demos, documentation, and collaborative tools.
Glicol provides various features for audio developers:
Check out Glicol demo videos on the YouTube playlist.
The motivation behind Glicol is to:
Glicol is known in the NIME community for its "low entry fee and high ceilings" approach.
Glicol adopts a graph-oriented paradigm, which allows users to connect different nodes like synth modules. It can be used in browsers with zero installation. The basic idea is to understand the audio input/output behavior of each node. Nodes are connected using >>
and ~reference
.
This also applies to sequencers and samplers:
You can try these examples on the web app.
For the audio engine, Glicol is written entirely in Rust. The parser and the audio engine work seamlessly with the AST processing, and it is ported to browsers using WebAssembly, AudioWorklet, and SharedArrayBuffer. This approach allows for performant audio in browsers, easy access, and live coding collaboration.
By writing everything from a low-level perspective, Glicol also opens the door for meta nodes. An example of a "hello world" tone in Glicol:
Glicol's development is ongoing and highly experimental. The API may change before version 1.0.0. Some milestones in the roadmap include: