Devices
midi-sink speaks three MIDI dialects. Which one it listens for is the Input setting (Expression routing on desktop and in the browser, its own row on the tablets), and the default is MPE:
- MPE (default): per-note bend, pressure and CC 74 arrive on the member channels, each note its own voice. A plain keyboard on channel 1 still plays chords here — notes outside the member zone are ordinary per-note voices — and its sustain pedal stays a musical control.
- Classic keyboard: every note is its own voice on any channel, pitch bend is the global shear tine, the mod wheel the vortex. Choose it for a keyboard that sends on a channel inside the member zone (2–16).
- Wind: one voice played exactly as MPE — each note a strike drop, breath (CC 2, 7 or 11, or channel pressure) the unbounded ink feed — plus a wake on every legato change: the sounding drop is dragged to the new note as a rigid tip before the new note strikes. The expression layer of an IMU-equipped wind controller plays on that voice: CC 74 is its slide, polyphonic pressure its swirl, and a bend on a member channel (the controller’s MPE mode) its glide; a bend on a single channel stays the global shear.
The sustain pedal (CC 64) never touches the canvas in any mode: a fresh sheet is the Paper dip action in the settings. CC 120 and CC 123 (All Sound Off, All Notes Off) release the visualizer’s voices as they release a synth’s. The fingering CCs 110–113 — the trumpet’s valves and the trombone’s slide, on the master channel — play the brass layouts from any controller: the instruments. What a controller plays can also sound inside the app through the sound engine.
All connected inputs — hardware and virtual, hotplugged — open automatically on every platform. The full message table is the MIDI implementation chart.
ROLI Piano, Seaboard — MPE
Section titled “ROLI Piano, Seaboard — MPE”Plug in (USB, or pair over Bluetooth from the settings) and play. Each note is a voice on its own member channel:
| ROLI dimension | midi-sink |
|---|---|
| Strike (velocity) | drop size — area tracks velocity |
| Press (channel pressure) | sustained ink feed: the drop keeps growing while you press — or the Lamb–Oseen swirl with Pressure → Swirl |
| Glide (per-note bend, ±48) | drags the drop along the pitch axis — or shimmers the water with Note bend → Ripple |
| Slide (CC 74) | per-drop hue — or folds the water with CC 74 → Pinch |
| Lift | the drop sets |
Default bend range is ±48 on members (RPN 0 honoured), ±2 on the master. The sustain pedal is a musical control in MPE mode and never wipes the canvas.
ROLI Airwave — global gestures
Section titled “ROLI Airwave — global gestures”The Airwave tracks your hands and sends its Air dimensions as ordinary CCs, independent of notes. midi-sink treats them as global field controls through the CC map. The table is what a stock ROLI Dashboard assignment sends — measured on the author’s unit, twelve CCs 20 to 31 in left/right pairs: Grasp 20/21, Slide 22/23, Glide 24/25, Raise 26/27, Tilt 28/29, Flex 30/31. Each hand stirs its own water: Raise sets how hard, Glide where (sideways), Slide where (up and down — raising your hand raises the stir) — the left hand an exponential or Rankine vortex, the right the Lamb–Oseen swirl with its rigid core and long 1/r² reach. Grasp folds the water (a saddle pinch left, crossed tines right, each at its own hand’s centre), and Tilt is the ripple. Flex is deliberately unmapped — it is hard to play without disturbing every other dimension — and stays yours to route in the settings window:
Not on Linux. The Airwave’s tracking is turned into MIDI by ROLI’s own host software, which exists for macOS and Windows only; on a Linux box the Airwave never appears as a MIDI device (checked on the author’s Ubuntu box). Everything else on this page works over ALSA.
| CC | Airwave dimension | Controls |
|---|---|---|
| 26 | Raise, left hand | vortex strength — “wind over the water” |
| 24 | Glide, left | vortex centre, sideways |
| 22 | Slide, left | vortex centre, up and down (hand up = up) |
| 27 | Raise, right | swirl strength — the Lamb–Oseen stir |
| 25 | Glide, right | swirl centre, sideways |
| 23 | Slide, right | swirl centre, up and down (hand up = up) |
| 20 | Grasp, left | saddle pinch at the vortex centre |
| 21 | Grasp, right | crossed-tine pinch at the swirl centre |
| 28 | Tilt, left | ripple wavelength |
| 29 | Tilt, right | ripple amount — the waves |
| 30 / 31 | Flex, left / right | — free — |
Any CC can drive any dimension; a channel-specific route beats an any-channel one. Desktop also binds CC 102/103 to the ripple’s amount and wavelength; on the tablets the strip’s assignable wheels do.
Expressive E Osmose — MPE, aftertouch-dense
Section titled “Expressive E Osmose — MPE, aftertouch-dense”The Osmose is recognised as MPE like the ROLI and behaves the same — with one thing to know: its continuous pressure stream is dense, and midi-sink’s press response is deliberately unbounded. Lean on a key and the drop floods the sheet; that is the Osmose behaviour, and the reason the ingest queue and smoothing are sized the way they are (one value per dimension per voice per frame, ~30 ms smoothing).
Roland Aerophone Brisa, Odisei Travel Sax — wind
Section titled “Roland Aerophone Brisa, Odisei Travel Sax — wind”A wind controller is a single voice that never stops moving. midi-sink plays it as one MPE voice: every note strikes a drop sized by velocity, and breath (CC 2 — or CC 11, CC 7 and channel aftertouch, which alias onto the same dimension) feeds it exactly as MPE pressure does, unbounded. What is particular to wind is the legato: on a note change the sounding drop is dragged to the new pitch’s site as a rigid tip through the wake — the same operator, profile and spread as the stylus — and then the new note strikes. Long phrases read as a chain of drops threaded by their wakes rather than one line. An IMU layer (CC 74, polyphonic pressure, a member-channel bend in the controller’s MPE mode) plays on the same voice; a single-channel pitch bend shears the whole bath.
Classic keyboards
Section titled “Classic keyboards”Every note is a drop on the current layout, sized by velocity. Pitch bend (±2) shears the bath and the mod wheel (CC 1) stirs the vortex. The sustain pedal is the synth’s; a fresh sheet is the settings’ Paper dip.
Tablets as instruments
Section titled “Tablets as instruments”On iPad and Android the surface itself is an MPE controller that can play any of the above synths’ hosts. Play mode →
midi-sink 2.0.0-rc.5 · AGPL-3.0 · source
