Skip to content
Sema – Live Coding Language Design Playground
Jupyter Notebook JavaScript Nearley Other
Branch: master
Clone or download
Latest commit b224ccd Aug 3, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
assets moved magenta checkpoints to assets and renamed dir Aug 3, 2019
tests extracted OSC relay to new repo; WAC tests in test directory Aug 3, 2019
.babelrc trying to build a class that wraps maximilian Feb 15, 2019
.gitignore gitignore vscode Aug 3, 2019
.travis.yml made osc connection optional; removing hardcoded logo path from html;… Jul 30, 2019 added travis build config file, contributing and code of conduct md f… Jul 29, 2019 added travis build config file, contributing and code of conduct md f… Jul 29, 2019
LICENSE added badges with links Jul 29, 2019
package.json removed packge-lock; added nexusui; Jul 30, 2019
stats.json outta webpack hell! upgraded all packages, corrected bug with audioen… May 22, 2019
webpack.config.js merged tero's pull request; fixed sema logo Jul 23, 2019
yarn.lock removed packge-lock; added nexusui; Jul 30, 2019

Sema – Live Coding Language Design Playground

Build Status GitHub license PRs Welcome

Sema is a playground where you can rapid prototype mini-languages for live coding that integrate signal synthesis, machine learning and machine listening.

Sema provides an online integrated environment that implements support for designing both abstract high-level languages and more powerful low-level languages.

Sema implements a set of core design principles:

  • Integrated signal engine – There is no conceptual split between the language and signal engine. Everything is a signal.

  • Single sample signal processing – Per-sample sound processing including techniques that use feedback loops, such as physical modelling, reverberation and IIR filtering.

  • Sample rate transduction – It is simpler to do signal processing with one principal sample rate, the audio rate. Different sample rate requirements of dependent objects can be resolved by upsampling and downsampling, using a transducer. The transducer concept enables us to accommodate a variety of processes with varying sample rates (video, spectral rate, sensors, ML model inference) within a single engine.

  • Minimal abstractions – There are no high-level abstractions such as buses, synths, nodes, servers, or any language scaffolding in our signal engine. Such abstractions sit within the end-user language design space.


Sema requires the following dependencies to be installed:

  • Chrome browser or any Chromium-based browser (e.g. Brave, Microsoft Edge, Opera)
  • Node.js version 8.9 or higher
  • NPM cli OR Yarn

How to build and run the Sema playground on your machine

cd sema
yarn build
yarn dev


Livecoding with the default grammar

Sema Intermediate Language

Data storage and loading

Maximilian DSP Library API

You can’t perform that action at this time.