tmhglnd / maia

MAIA – Livecoding mini-language build upon SEMA

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

MAIA - Audio Livecoding Language in the Browser

This language is forked from the SEMA project and it uses the Maximilian.js audio engine for webaudio in the browser. SEMA is a Livecoding Language Design Platform created by the amazing team from the MIMIC Project. Sema is a playground where you can rapid prototype mini-languages for live coding that integrate signal synthesis, machine learning and machine listening.

MAIA is a livecoding mini-language with a grammar that focuses on readability and various extra functionalities in the sound engine other than the default SEMA grammar. It has more abstracted functions (such as synths) and a few more 'musical' methods that generate rhythms. MAIA is the result my work during the MIMIC Artists Summer Workshop at Sussex University.

Overview

The grammer

  • Start variables with #, store to variable with is
  • Use ( and ) for functions, close line with ;
  • Store a constant value with constant()
#freq is constant(500);
#sound is sine(#freq);
mul(#sound, 0.5);

Quick synthesis

  • Use amsynth, fmsynth, oscbank, sawbank, squarebank, trianglebank for fast access to audio synthesis functions
oscbank(400, 500, 600, 700);
fmsynth(220, 2, 5);
amsynth(314, 628);

Global synced rhythm

  • Set a global variable for bpm and use it in combination with the click function to generate rhythmical patterns to trigger samples. The click function takes 3 arguments, bpm value, bar division and beat offset (0-1).
#bpm is constant(103);
#kc is sample(\kick, click(#bpm, 2));
#sn is sample(\snare, click(#bpm, 1, 0.5));
#ht is sample(\hat, click(#bpm, 4, 0.5));
mul(sum(#kc, #sn, #ht), 0.5);

Additional Text window

  • Use the additional text window on the right side of the screen for communication with the audience by writing comments during the performance.
  • Explain your train of thought.

Documentation

For a complete list of functions see the documentation below.

Maia API documentation

Sema Intermediate Language

Data storage and loading

Maximilian DSP library API

Sema Default Grammar - Not used, overwritten by the Maia grammar

Install

Dependencies

The following dependencies are required to be installed:

Check for version/installed by running the following commands

$ node -v
-> v10.16.0

$ yarn -v
-> 1.17.3

Clone

Clone or Fork the git repository via the commandline or download the zip

$ git clone https://github.com/tmhglnd/maia.git

Build

Navigate to the repository to build and run the Maia on your machine with the following commands.

$ cd <path to maia-master> eg. ~/Downloads/maia-master
$ yarn
$ yarn build

Run with the following command. This will automatically open your default webbrowser. If this is not Google Chrome, then copy the localhost:9001 to a browserwindow in Chrome.

$ yarn dev

About

MAIA – Livecoding mini-language build upon SEMA

License:MIT License


Languages

Language:JavaScript 50.1%Language:Jupyter Notebook 47.0%Language:Nearley 1.4%Language:HTML 0.8%Language:CSS 0.5%Language:HCL 0.2%Language:SuperCollider 0.0%