Skip to content

Play mode

Switch Settings → Mode → Play on any of the eight keyed layouts — the chromatic grid, Jankó, the piano grid, the trumpet, the trombone, Wicki–Hayden, the strings — or on the theremin, whose whole width is the instrument. (The circle of fifths and the piano rolls stay Marble-only: adjacent wedges on the circle are a fifth apart, so angular bend has no sane semitone scaling, and the rolls are timelines.) A faint lattice appears over the water — each cell drawn as a circle, at exactly the size of the joystick it will become. The marbling stays the star; the lattice is a guide. The brass layouts add a fingering panel for the valves or the slide, and the theremin a pitch axis with a tick at every C: the instruments.

  • Touch down where the note is. The contact point becomes the joystick’s centre: midi-sink sends a centre pitch bend and then the Note On, so the attack is in tune by construction. Velocity is a fixed 96 (glass has no force sensor; a touch-size modulation sits behind a setting).
  • Move sideways to bend. Inside the circle a soft knee removes finger jitter; beyond it the bend tracks your finger’s lattice position exactly — drag one cell over and you are exactly one semitone up, drag across five columns and the glissando stays in tune. A hairline circle and a thumb dot show the deadband and your deflection as the engine computes them.
  • Push away (up) to feed ink — channel pressure grows your drop, without bound: hold and it floods.
  • Pull back (down) to stir — polyphonic key pressure drives a Lamb–Oseen swirl centred on your drop. Both halves live at once with no mode flip; crossing the centre releases the departing half through zero.
  • Lift and the drop sets. Pressure goes to zero, then Note Off; the channel returns to the allocator as most-recently-released.

Fingers never send CC 74 — timbre belongs to the stylus.

The Play surface is a lower-zone MPE instrument: master channel 1, members 2–16. Voices are allocated least-recently-released round-robin (first-free would hijack the release tail of the note that just freed a channel). Channels holding a note from a hardware instrument plugged into the same tablet are masked out. When all fifteen are busy the sixteenth touch is a silent drop and a HUD blink — never a steal.

On Jankó, touching any of a note’s three rows plays it, and the loopback paints all three; on the strings, any of a note’s sites on the strings that reach it. On the brass, a held voice retunes when the fingering changes — the bend on its member channel carries the valves — and on the theremin a touch glides continuously across five octaves, re-anchoring on a new note past 47 semitones.

Everything you play is consumed twice:

  1. Loopback into the visualizer — full rate. The visualizer is just another MPE synth; the picture you see is the MIDI you sent.
  2. Outbound to the transports you enable, each under its own rate policy (change-only filtering, then ≤ 100 Hz per voice per dimension on USB / virtual / network, a ~300 msg/s budget on BLE; Note On/Off, the centre bend, pressure-0-before-Note-Off and the pedal are never dropped):
iPadAndroid
Wiredvirtual CoreMIDI source “midi-sink Play Surface” — also sent explicitly to a USB-tethered Mac (IDAM)USB-MIDI gadget (primary): set Use USB for → MIDI in the system USB preferences and any host sees a class-compliant device
On-device appsthe same virtual sourceMidiDeviceService virtual device
WirelessMIDI network session (rtpMIDI) over Wi-Fi; BLE to a paired Bluetooth MIDI destinationBLE-MIDI peripheral — the tablet advertises, your desktop DAW connects

Entering Play mode, opening a sink, and Re-sync DAW all send the MPE configuration first (MCM: lower zone, 15 members; then bend range 48 on every member), so a DAW or synth configures itself. Panic releases every voice and silences the zone on every pipe.

A compact palette floats at the top left: a Pitch spring wheel (±2 on the master), a Mod latch wheel (CC 1 — the loopback routes it to the vortex, so the mod wheel stirs the water while it modulates your synth), two assignable wheels (CC 23 / 24 by default), Sustain (CC 64), which the Pencil Pro’s squeeze and the S-Pen’s button also drive, Panic, and Next for the layouts you quick-switch between. All of it on the master channel; the brass add the valves and the slide (CC 110–113) on a panel of their own. The control strip →

The tablet can sound what you play: the sound engine plays a sampled instrument or the Suzu synth from the same bytes, under Local Control — off, the surface goes out to your DAW and paints the water without sounding inside.

A DAW records a valid MPE performance you can replay into midi-sink or any MPE synth. Two things a recording does not carry, by design: the stylus wake (physical, not musical) and — only with the CC 74 → pinch routing — the pen’s CC 74, which goes outbound but not into the loopback because the shell pinches directly. The MIDI implementation chart has every message. For the water itself, midi-sink’s own replay records a session frame for frame — gestures, wakes and all — and plays it back on any device.

midi-sink 2.0.0-rc.5 · AGPL-3.0 · source