GitHunt
UT

ut-proj/undertone

Making Music with Extempore, OSC, and SuperCollider in LFE/OTP

undertone

Build Status
LFE Versions
Erlang Versions
Tag

Project Logo

Making Music with Extempore, OSC, and SuperCollider in LFE/OTP

Table of Contents

About

This is a project for making music in LFE, with support for MIDI, audio
processing, Open Sound Control, and more. The undertone project relies
heavily upon the phenomenal work of Andrew Sorensen
et al in the Extempore project,
essentially having the aim of providing an LFE DSL for BEAM-native, distributed
interaction with Extempore.

SuperCollider support is currently limited to basic OSC operations. Features for
that or other backends or adding new backends to undertone will be prioritised
based upon time and interest.

Backend and OSC server versions tested against:

  • Extempore 0.8.7
  • SuperCollider 3.11.2
  • Erlang OSC server 2.0 and 2.1
  • Ardour 5 and 6

Status

Caution: This is a work-in-progress under active development in the very
early stages of sound-systems integration in LFE: you have been warned! Loss of
limb or sanity are not the responsbility of the project nor the maintainers.

Current state of undertone:

  • An OTP release-based project that automtically runs in the LFE REPL
  • A fully functional Extempore REPL (any encountered issues are bugs --
    file a ticket!) with an
    automatically reconnecting TCP client
  • Basic Open Sound Control support (SuperCollider, the Ardour DAW)

For the current list of open tickets and the views by milestone, see the
following:

Presentations & Demos

https://undertone.lfe.io/presentations/

Build and Test

$ rebar3 compile
$ rebar3 ltest # this step is optional
$ rebar3 release

Usage Overview

For the examples below, start the REPL:

$ rebar3 repl

Banner Screenshot

Note that, while under active development, the undertone logging level will be
set to debug. If that's too much for you, before you start the REPL edit the
./config/sys.config file and change level => debug to notice or
warning.

Usage examples have been moved here, due to the rapid accretion of content:

Architecture

C4 architecture diagram: system context

C4 architecture diagram: container

Documentation

There is an early-stage documentation effort
for this project, with draft content published at undertone.lfe.io/book.

License

Apache License, Version 2.0

Copyright © 2020, Duncan McGreggor oubiwann@gmail.com.

Languages

LFE96.2%Erlang3.2%Shell0.6%

Contributors

Apache License 2.0
Created September 10, 2020
Updated August 26, 2025
ut-proj/undertone | GitHunt