Skip to content
Sema – Live Code Language Design Playground
JavaScript Nearley Other
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
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
doc slice doc Feb 4, 2020
lang removed langsketch dependency that was breaking solution Oct 1, 2019
src removed langsketch dependency that was breaking solution Oct 1, 2019
tests extracted OSC relay to new repo; WAC tests in test directory Aug 3, 2019
tut housekeeping: moving tutorials to high-level directory "tut"; moving … Oct 1, 2019
.babelrc trying to build a class that wraps maximilian Feb 15, 2019
.gitattributes
.gitignore gitignore vscode Aug 3, 2019
.travis.yml made osc connection optional; removing hardcoded logo path from html;… Jul 30, 2019
CODE_OF_CONDUCT.md added travis build config file, contributing and code of conduct md f… Jul 29, 2019
CONTRIBUTING.md added travis build config file, contributing and code of conduct md f… Jul 29, 2019
LICENSE Update LICENSE Nov 14, 2019
README.md Update README.md Jan 22, 2020
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

README.md

Sema – Live Code Language Design Playground

Build Status GitHub license stability-experimental PRs Welcome

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

Sema aims to provide an online integrated environment 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 for supporting 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.

Dependencies

Sema requires the following dependencies to be installed:

How to build and run the Sema playground on your machine

If you decide to use NPM, use:

cd sema
npm install
npm run dev
npm run go

If you decide to go with Yarn (our preferred package manager), to install it:

npm install -g yarn

To use Yarn:

cd sema
yarn
yarn dev
yarn go

Documentation

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.