Getting Started

The resources on the page focus on building fun and interesting things using primarily JavaScript and MIDI. The “tiny computer” component — Arduinos, RaspberryPis, C.H.I.P. Computers, Espruinos and likely others — is not strictly required to explore or run most of the examples here.

This page is an ongoing reference/support page for my talks on JavaScript and MIDI. For more information please contact George Mandis. For future updates please follow me on Twitter or sign up for my newsletter.

The Talk

You can watch this version of my talk from JSFoo 2017 to get a sense of the topic:

Working with JavaScript and MIDI

Libraries and tools used to build my demos:

MIDI + JS on the Server

MIDI + JS in the Browser

Chrome, Chromium and ChromeOS Support this natively! This means you can also create Electron apps that leverage JavaScript and MIDI.

For other browsers you can use the Jazz-Plugin to provide MIDI device access via JavaScript. The implementation differes from the W3C Web MIDI spec however, which all of the frontend examples on this page use.

Tiny Computers & Controllers

You an build your own MIDI controllers or self-contained creations using single-board computers and single-board microcontrollers such as these:

Other Places to Find MIDI Controllers

JavaScript + MIDI Demos

Some of these demos are from my talk and others are just general experiments and art projects I’ve created using this stack.

Puck.js BLE MIDI Clicker
This is the software driving my Puck as I use it as a “clicker” on stage while giving my talks. It can send 3 different MIDI control change messages depending on the type of click: single, double or triple.

Cellular Automata, JavaScript & MIDI
This demo was inspired by a talk I saw at FullStack London 2017. There is a blog post and a video that better explains what’s going on.