Skip to content

Web Instruments

Alexander Refsum Jensenius edited this page Jun 2, 2026 · 2 revisions

Web instruments

Live hub: fourms.github.io/olo

The web/ folder is published automatically when main is pushed (GitHub Actions → Pages). Source of truth for the catalog: web/shared/catalog.js.

Catalog

App Role Origin
CliX Rhythm — hold keys; 8×4 grid sets velocity OLO patches/pieces/CliX (Ge Wang) · sync from OMO
Crystalis Melody — bow / pluck, trackpad bowing OLO Crystalis · engine from OMO
Droner Drone — four corners, keys 1–8 Dan Trueman Droner.ck
Clap Hands Texture — mic → delay cascade Alexander Refsum Jensenius, 2008
Munge Texture — live mic feedback delay PLOrk / OLO MungingMunger
Tap Bloom Texture — generative pulsing blooms Adapted from OMO Tap Bloom
Green Button Drone — hold to swell Adapted from OMO Green Button

Laptop-native (sensor labs)

App Sensors Synthesis
XY-FM Mouse 2-op FM, full-screen pad
Horizon Tilt · mouse Y · keyboard Shepard tone
Slice Keys Mic · keyboard · mouse Buffer slices
Vision Grain Camera · keyboard Motion → granular

Sequencers & sensor labs

App Sensors Role
Circular Groove Keyboard · click Euclidean rings + L-system evolution each bar
Beat Matrix Keyboard 16×4 step grid
Filter Ladder Tilt · mouse Ladder synth
Mic Theremin Mic · mouse Pitch sine
Room Wash Mic · mouse Reverb send
Shadow Seq Camera 8-zone mask
Wavetable Scan Mouse Wave morph

More concepts and backlog: docs/LAPTOP-INSTRUMENTS.md.

Ensemble sync (CliX & Crystalis)

Replaces the old ChucK clock programs (server-multi.ck, server-local.ck):

  1. One machine opens the app → Host tab → Start sync.
  2. Copy the musician link and open it on every laptop before the count-in.
  3. In CliX, held keys retrigger on each grid step. In Crystalis, use Pluck mode so the grid strikes held notes.

Local development

Microphone apps need HTTP (not file://):

cd web && python3 -m http.server 8765

Technical stack

  • Plain HTML + ES modules
  • Shared audio.js (context, master bus, mic)
  • Shared app.js (Learn panel, audio toggle, volume)
  • No build step — static deploy of the web/ directory

Clone this wiki locally