Skip to main content

The demos

The things on the table. Twenty-odd small web pages, each wired to one controller, that did the talking in every 2017 and 2018 talk.

WhenJuly 29, 2017
Wherethe demos folder
Whatdemo
Demosgeorgemandis.github.io/cellular-automata-javascript-midi

The idea​

The talk was a sandwich: ten minutes on what MIDI is, ten on what a message looks like in JavaScript, then demos until the time ran out. The demos were served from one folder so they could share a js and css folder. The folder's index.html, a grid of grey tiles, was the launcher.

What was on the table​

The tiles in demos/index.html, in order, with the folder each one lives in and the date its repo was created. The repos were pushed to GitHub as georgemandis/<name>. Most are private or renamed now, so they are named, not linked.

TileFolderRepoFirst commit
Controller Explorermidi-exploring-controllermidi-controller-explorer2017-07-29
Simple Synthmidi-simple-synthmidi-simple-synth2017-07-29
Web Audio + Visualscontrolchange-web-synth-audiomidi-controlchange-web-synth-audio2017-07-29
CSS Filtersmidi-css-filter-mixermidi-lpd8-css-filter-mixer2017-07-29
Motion Color Mixermidi-hot-hand-color-controlmidi-hot-hand-color-controller2017-07-29
Motion Color Gamemidi-hand-gamemidi-hand-game2017-07-29
Generative Automatamidi-launchpad-generative-automatacellular-automata-javascript-midi2017-10-02
Goonies Organmidi-goonies-organmidi-goonies-organ2017-07-29
LPD8 Color Mixermidi-color-mixermidi-lpd8-color-mixer2017-07-29
WebRTC Symphony I and IIwebrtc-symphonywebsocket-webrtc-symphony2017-07-29
Flash Cardsmidi-tactile-flashcardsnonenot in git
Launchpad Mazemidi-launchpad-mazemidi-launchpad-mk2-maze-treasure2017-07-03
Launchpad Drawmidi-launchpad-drawmidi-launchpad-draw2017-07-29
Bouncing Ballsmidi-launchpad-ballsmidi-launchpad-mk2-maze-treasure2017-07-03
Poetry Boxmidi-poetry-boxmidi-poetry-box2017-07-29
Whack-a-Molemidi-lpd8-whack-a-molemidi-lpd8-whack-a-mole2017-07-29
Go (Boardgame)midi-launchpad-go, midi-launchpad-mk2-gomidi-launchpad-mk2-go2017-07-29, 2017-11-01

Not on the grid but in the folder: midi-morse-code (2017-11-01), midi-permission-demo (the browser's permission prompt), controlchange-web-audio-detune (2017-07-02, the oldest repo of the lot), pitch-to-midi, midi-light-sensor, teensy-midi-identity-2 (a Teensy sketch with a custom USB descriptor so it shows up under its own name), and midi-jsfoo-workshop.

A few of them​

The Websocket Symphony opened every 2017 talk. Everyone joined a wifi network called Sputnik, opened sputnik.local, and each phone became a note. Symphony II spread the tracks of a MIDI file across the room.

The Hot Hand is a ring with three accelerometers that Source Audio sells to guitarists. It became the Motion Color Mixer and the Motion Color Game.

The Goonies Organ came from an idea about escape rooms: a skull, a treasure, a photo of the skeleton organ, and a sheet of music drawn with VexFlow.

The Controller Explorer is the one that lasted. Select an input, show the numbers. It is the Explorer on this site.

The deck itself was a demo. A Puck.js sent a control change over Bluetooth MIDI for a single, double or triple click, and a foot controller did the rest. The clicker's code is at puck-js-midi-clicker.

Sources​

  • Talk folder: demos/index.html, demos/README.md, each demos/*/.git log and remote, midi-talk-notes-ideas.taskpaper, MMTM Talk Notes from Russia 2017.txt, notes/jsfoo-conversation-notes-outline.md, slide-deck-breakdown.html (2017-06-29)
  • https://george.mand.is/javascript-webmidi-tiny-computers (the clicker: "It can send 3 different MIDI control change messages depending on the type of click: single, double or triple")
  • GitHub status checked 2026-10-04