Skip to content

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

License

Notifications You must be signed in to change notification settings

ut-proj/undertone

Repository files navigation

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.