Omni and Alga
: new DSLs for audio programming and live coding

  • Francesco Cameli

Student thesis: Master's Thesis


This research presents two new DSLs (Domain Specific Languages): one to develop audio algorithms and a second to order the structure of their connections over time.

The first one, Omni, allows users to define the behaviour of audio objects at the lowest level. In DSP (Digital Signal Processing) terms, Omni is a language that describes the sample-by-sample behaviour of an algorithm. It compiles Omni code to native binaries for all the major operating systems (macOS, Windows and Linux) that can then be imported and used in creative coding environments such as Max or SuperCollider.

Alga, on the other hand, is a framework for live coding developed as an extension to the SuperCollider environment. Its main feature, in contrast with similar projects like TidalCycles or FoxDot, is not to define musical patterns whose changes happen statically only on code execution (however complex these changes are), but to use the act of manipulating code to describe the start of interpolation processes from current states to future ones, over specified windows of time.

This research is situated from the perspective of an electronic music improviser whose main motivation is to build these tools to enhance his creative practice. Therefore, development choices are both driven by personal aesthetic needs and the desire to have an integrated and fluid workflow in live performance scenarios (Alga) and low-level algorithm development (Omni).

The submission includes the source code for both projects, together with installation notes and usage examples. Furthermore, x86-64 binaries for various Max objects and SuperCollider UGens are provided for all operating systems.
Date of Award2023
Original languageEnglish
SupervisorFrédéric Dufeu (Main Supervisor) & Alex Harker (Co-Supervisor)

Cite this