Play it
Marble mode is direct: tap, drag, twist, pinch. Play mode turns the tablet into a 15-voice MPE instrument on a chromatic, Jankó or piano-grid lattice. Play mode →

midi-sink models a tray of water with ink floating on it. Nothing is simulated on a grid: each gesture is an exact, area-preserving transformation of the whole sheet — Aubrey Jaffer’s mathematical marbling — so rings stay crisp after a thousand strokes. MIDI drives it: an MPE controller’s strike, press, glide and slide become drop, feed, comb and hue; a wind controller threads its drops with wakes from note to note; a plain keyboard plays drops on the circle of fifths. On an iPad or a Galaxy Tab the canvas itself is the instrument — a pitch lattice under your fingers, a legato pencil, a trumpet’s valves or a trombone’s slide, and a standard MPE stream out to your DAW: on the App Store and on Google Play. The same field reads two ways — ink on washi, or a discharge on glass — and the app sounds what it draws: a sampled instrument, or Suzu, a synth whose oscillators are area-preserving maps on phase space, so a note cannot drift.
Play it
Marble mode is direct: tap, drag, twist, pinch. Play mode turns the tablet into a 15-voice MPE instrument on a chromatic, Jankó or piano-grid lattice. Play mode →
Plug an instrument in
ROLI Piano and Airwave, Expressive E Osmose, Aerophone and Travel Sax, any keyboard — each dialect is recognised and mapped without setup. Devices →
See the mathematics
Fourteen deformations, each with its formula, its invariants and a live demo running the release engine in your browser — and the electric medium that reads the same field as a discharge. The Operators →
Hear the mathematics
Suzu: symplectic cells, a modal lattice, strings, chaos, three winds — every voice gated by number and playable in the lab, the synth itself compiled to your browser. Suzu →
Build a host
One frozen C++ core behind a pure-C ABI, six shells (Metal, D3D11, GL, GLES, WebGPU), one host-side MPE library shared by Swift and Kotlin. Architecture →
midi-sink 2.0.0 · AGPL-3.0 · source