Skip to content
/ sema Public
forked from mimic-sussex/sema

Sema – Live Code Language Design Playground

License

Notifications You must be signed in to change notification settings

JoBCB/sema

 
 

Repository files navigation

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

About

Sema – Live Code Language Design Playground

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 96.6%
  • Nearley 1.6%
  • Other 1.8%