Skip to content

Settings reference

One settings model, four surfaces: the desktop settings window (⌘ , or Ctrl ,), the browser’s panel (top-left), and the sheet behind the gear on iPad and Android. Every row below exists on every platform unless the Platforms column says otherwise; the sections follow the desktop window’s order, and the tablets fold them into pages (Sound, Medium & look with its Palette, Substrate, Presets and Operators pages, Layout, Mode, Input, Expression routing, Ripple, Stylus wake, CC map, MIDI, Outbound MIDI, Prints, Replay, About, Session). Ranges and defaults are the engine’s; a setting reaches the core either as a params field (applied on the render thread), as a CC through the same MIDI path a controller uses, or as a host action.

On Android this section leads the sheet — the paper dip is the most-used control; the desktop window and iOS keep it first too since Phase 6.

SettingPlatformsWhat it does
Paper dip (fresh sheet)allFreeze, print the sheet into the ledger, reset the water to identity. Never a MIDI message.
Print folderdesktopWhere Save last print as PNG writes.
Save last print as PNG / Save the newest printallThe newest dip’s print at the screen’s size — to the folder, to Photos (iOS), to the gallery (Android), as a download (web).
SettingRange · defaultWhat it doesReaches the core as
Pitch layoutthe thirteen: Circle of fifths · Chromatic grid · Jankó · Piano roll (left, top, right, bottom) · Piano grid · Trumpet · Trombone · Wicki-Hayden · Strings · Theremin · default Circle of fifthsWhere a note lands on the sheet, and the lattice Play mode touches; the tablets mark the eight keyed ones (playable). Layouts → · The instruments →params pitch_layout
Partials on an arcoff · on · default off · under the trumpet and the tromboneThe brass partials on a ring (radius 0.30, centred right of the middle at 0.65 of the height) instead of a column.params trumpet_arc
TuningStandard guitar · Whole-tone tap grid · All fourths · default Standard guitar · under StringsThe strings’ tuning preset.params string_tuning
Viscosity0 – 1 · default 0.50Damping of continuous agitation: how quickly swirls, feeds and ripples settle. Also a CC dimension.params fluid_viscosity
Ink feed (pressure)0.1 – 4 · default 1.00Scale of the pressure- and breath-driven drop growth.params expansion_rate
Tempo (BPM)20 – 300 · default 120 · rolls onlyThe piano rolls’ scroll tempo. Host-supplied; the core never guesses tempo from MIDI.params bpm
Roll speed0.02 – 0.25 · default 0.0625 · rolls onlyCanvas lengths per beat. 1/16 keeps 16 beats, four bars of 4/4, on screen.params roll_speed
Full-resolution simulationon · off (0.75×) · default on for desktop and iPad-class GPUs · desktop, web, iOSSimulation field size relative to the output. Android has no toggle: its thermal listener owns the scale (0.75 ↔ 0.6).params sim_scale

The ledger: every dip of the session, newest first, with a thumbnail, its time and the field it printed. Paper and prints →

SettingRange · defaultWhat it does
This sessionthe listPick a dip to export.
Export sizeScreen · 2K wide · 4K wide · 8K wide · default ScreenThe export’s width; the field is resolution-independent, so any dip re-renders at any size while the session lives.
Anod over alphaoff · on · default off · AnodThe glow and the grid over a transparent background.
Export PNGactionWrites the chosen dip at the chosen size, with the look it was printed with.

The session as a file — everything but the ink. Presets →

SettingPlatformsWhat it does
The list · Load · DeleteallNamed presets; loading replaces the session’s settings and leaves the sheet.
Save as (a name)allWrites <name>.json — <config>/presets/ on the desktop, the documents folder on the tablets, localStorage on the web.
Export · ImportallA file you choose (Files on the iPad, the system picker on Android, a download on the web).

Record a session; play one back. Replay →

SettingPlatformsWhat it does
Record · Stop recordingdesktop, iOS, AndroidStarts with the sheet dipped and the session re-announced; writes <stamp>.sumireplay under <config>/replays/ (the desktop) or the app’s Replays folder (the tablets). The row shows the frames and seconds while it runs.
The recordings · Play · Deletedesktop, iOS, AndroidThe list; playing mutes live input and applies only the palette until the end.
Play file / Import a recording…desktop · tabletsOne from another device.
Replay a recording…webA local .sumireplay; ?replay=<url> from a link. The picture alone.
Stop replayallEnds playback; the session is re-applied, the sheet left.
SettingRange · defaultWhat it doesReaches the core as
Paper tintCream (washi) · White · Toned · Custom · default Cream · SumiThe washi’s base tone; the mottle, grain and fibres ride on it.params paper_tint
PaperSmooth · Washi · Coarse · Custom · default Washi · SumiA preset of roughness and fibre scale.params paper_roughness, fiber_scale
Roughness0 – 1 · default 0.50 · SumiStrength of the mottle, grain and fibre strands. Screen-locked: the paper never moves with the ink. Also a CC dimension.params paper_roughness
Fiber scaleSumiThe fibres’ size.params fiber_scale
Glass darknessAnodThe near-black under the charge.params anod_dark
Phosphor grainAnodThe speckle in the glass, screen-locked.params anod_grain
Glow bloom · Glow reachAnodThe lens’s blur added back over the reach’s octaves; the brightest filaments clip toward white. Prints and exports bloom the same.params anod_bloom, anod_bloom_levels

The active palette, the library, the custom slot. Palettes →

SettingRange · defaultWhat it doesReaches the core as
Activethe medium’s three built-ins · Custom · default the first (Sumi black, Electric blue)The ink’s or the charge’s colour family; the Palette morph CC dimension travels the ring from it.params active_palette_id
Library · Load into customthe built-ins and the curated presets: Cobalt & amber (ink, charge), Viridis, CividisFills the custom slot as a starting point.sumi_palette_preset
The stops (+ stop, − stop, each at a position with a colour)2 – 8The gradient along the ink’s depth or the charge’s glow.sumi_set_palette
Depth curve · Depth floorHow the depth walks the ramp (below 1 the ink pools early), and where it starts.”
Hue drift · Drift towardEach drop leans by the drift toward the accent — the halo under Anod.”
Clear waterThe tone between the rings.”
SettingRange · defaultWhat it doesReaches the core as
MediumSumi (ink on washi) · Anod (strain-glow) · default SumiThe reading of the field; a switch is live and bitwise. The medium →params medium
Glow scaleAnodThe strain a texel needs to glow: smaller is hotter, sooner.params anod_glow
Grid lineslines per canvas height · 0 = glass · AnodThe water’s deformed grid at rest.params anod_pitch
Strike charge0.1 – 1 · default 0.57 · AnodThe spark’s size as a fraction of the Sumi drop’s radius.params anod_drop

Each MIDI dimension has exactly one consumer at a time; these rows choose it. Medium default follows the medium’s table (Sumi: glide, ink feed, hue; Anod: the Chladni stir, torsion, the spark’s frequency). The Operators →

SettingChoices · defaultWhat it doesReaches the core as
InputMPE · Classic keyboard · Wind · default MPEThe MIDI dialect. MPE: per-note expression on the member channels. Classic: per-note voices on any channel, bend = global shear. Wind: one voice played as MPE plus a wake dragging the sounding drop to the next note on legato. A setting, never a detection. Devices →sumi_set_input_mode
Per-note bendMedium default · Glide (drag the drop) · Ripple amplitude · Torsion wavelength · Spark frequency · Chladni stir · default Medium defaultWhat a note’s pitch bend plays: the drop along the pitch axis; the sine ripple’s amplitude; the torsion’s kk; the spark’s kk; the Chladni stir (distance the rate, sign the sense). Master bend keeps its shear tine either way.params bend_mode (0–4; SUMI_MODE_MEDIUM_DEFAULT)
Channel pressureMedium default · Ink feed · Lamb-Oseen swirl · Torsion sweep feed · default Medium defaultWhat hardware aftertouch (0xD0) plays: the drop’s growth, a swirl at the note, or torsion spent around the note as a rate. Poly pressure (0xA0) always swirls under Sumi.params press_mode
Slide (CC 74)Medium default · Hue · Pinch · Spark frequency · default Medium defaultPer-note CC 74: the drop’s hue inside the palette, a fold at the note, or the spark’s streamer frequency.params slide_mode
Pinch styleSaddle · Crossed tines · default Saddle · shown when Slide = PinchThe Hamiltonian fold, or two perpendicular opposing tine passes. Applies to the CC 74 route, the stylus pinch and the two-finger pinch alike.params pinch_variant
Vortex profileExponential · Rankine · Torsion · default ExponentialThe CC-routed vortex (mod wheel, Airwave Raise L) and the Marble-mode gesture vortex: diffuse; a rigid core; rings of alternating shear.params vortex_profile
Stylus wakeInviscid doublet · Viscous stroke · default Inviscid doubletThe fluid the pen’s stroke displaces.params wake_profile
Spread (l/a)1.5 – 12 · default 3.0 · shown for the viscous strokeHow far the stroke’s momentum has diffused, in tip radii.params wake_spread
Torsion sweep on note-onoff · on · default offEvery strike also fires an outward wave of torsion around its drop, fading over two seconds.params torsion_sweep

The operators’ knobs. On the tablets they share the Operators page. The sliders that ride a CC go through the real control path and are disabled until a route exists in the CC map (the desktop’s stock map routes 102/103 and 104–109).

SettingRange · defaultWhat it doesReaches the core as
Ripple · Amount · Wavelength0 – 127 · default 0 · 32The standing ripple’s amplitude and wavenumber.CC → Ripple amount (102), Ripple wavelength (103)
Ripple · Angle0° – 180° · default 0°Rotation of the ripple’s frame.params ripple_angle
Chladni · Stir (A) · Balance (B)0 – 127The stirring rate; the odd keys’ sense from opposite through still to the same.CC → Chladni stir (106), Chladni balance (107)
Chladni · Cell size · Mode0.5 – 1.5 · Discs (exact) · Inverse Chladni (blended field)The eddy’s disc as a fraction of the key (capped at 1 in the exact mode); exact discs or the summed flow.params chladni_cell, chladni_mode
Burst · Age · Life · Order1.5 – 12 · 0 – s · 2 – 8 · defaults 4 · 0.8 · 2The final diffusion length over the core; the release in seconds; the multipole order (the Anod strike’s burst takes it).params burst_age, burst_life, burst_order
Spark · Shear · Decay · Octaves · profile· · 1 – 4 · triangle / noise · defaults 0.6 · 0.25 · 3 · triangleThe shear kick as a fraction of the radius; its decay; the stack’s depth; the profile.params spark_shear, spark_tau, spark_stack, spark_profile
Spark · Frequency (k)0 – 127The streamer frequency.CC → Spark frequency (108; CC 74 under Slide → Spark frequency)
Chirikov · K max · Periods · DriftKK of a full one-frame throw; the kick’s waves per canvas height; the drift’s scale. The per-step KK is capped at 1.25 in the core.params chirikov_kmax, chirikov_periods, chirikov_eps
Chirikov · Throw0 – 127The delta-driven throw.CC → Chirikov throw (109)

Desktop, iOS, Android. The routing table: any CC number, on one channel or any, to one of the twenty global dimensions or the sound’s six bus targets. Add, remove, restore the default map. The browser keeps the default map (Web MIDI hands it its ports; no editor).

DimensionDefault routeConsumer
Vortex strength · center X · center YCC 1 mod wheel · CC 26 Airwave Raise L; CC 24 Glide L; CC 22 Slide Lthe CC vortex, profile from Vortex profile; its centre (Y reversed: CC up = up on screen)
Swirl strength · center X · center YCC 27 Airwave Raise R; CC 25 Glide R; CC 23 Slide Rthe Lamb–Oseen stir and its centre
Pinch (saddle) · Pinch (crossed tines)CC 20 Airwave Grasp L; CC 21 Grasp Rdelta-driven folds at the vortex and the swirl centres
Viscosity · Paper roughness · Palette morph— (route one)the live sliders; the ring from the active palette
Ink flow (breath)CC 2 breath · CC 7 volume · CC 11 expressionthe breath-driven drop feed (wind mode’s breath aliases here)
Ripple amount · Ripple wavelengthCC 29 Airwave Tilt R · CC 102; CC 28 Tilt L · CC 103the ripple
Torsion wavenumber · Torsion phaseCC 104 · CC 105 (desktop)the wave torsion’s kk and φ\varphi
Chladni stir · Chladni balanceCC 106 · CC 107 (desktop)the eddies’ rate and sense
Spark frequencyCC 108 (desktop)the spark’s kk
Chirikov throwCC 109 (desktop)the standard map’s delta-driven step
Reverb wet · room · damping · Delay wet · time · feedback— (route one)the sound engine’s bus effects (targets 1000–1005)

Every value arriving on a routed CC is smoothed with the engine’s smoothing time constant (30 ms) and consumed as a rate where the operator is a feed. MIDI chart →

Desktop, iOS, Android. Every connected input by name, opened automatically; a live message counter with the last message; Rescan now; Panic (all notes off) on the desktop. iOS and Android offer Pair Bluetooth MIDI instrument… here. The browser lists its Web MIDI inputs under About.

The sound engine. Desktop, iOS, Android.

SettingRange · defaultWhat it does
Internal sound (Voxo)off · on · default on for the tabletsStarts the output device.
Volume0 – 1The master level.
SourceSampler · Suzu · Both, layered · default SamplerWhat a note strikes; switching ends every voice.
Instrument (.dspreset / .dslibrary) · Load · Unload · Demo instrumentdesktopThe sampler’s instrument, loaded to memory; the Dan Tranh demo.
Sample (WAV) · Root notedesktopOne sample at a root note when no instrument is loaded.
Sampler instrument · Import a .dslibrary… · Import a preset’s folder…tabletsCopied into the app’s Instruments folder; the Dan Tranh demo is the default.
The play surface sounds here (Local Control)on · off · default on · tabletsWhether the surface’s own notes sound inside (CC 122).
Foreground onlyiOSThe sound pauses with the app.
Suzu patchthe table’s eleven: Bowed string · Bell · Flute · Saxophone · Trumpet · Dan Tranh, Glockenspiel, Tubular bells, Concert harp, Tenor sax, Baroque recorder (VCSL)The synth’s patch — the whole setting on the tablets; Load patch puts it into the desktop’s knobs. The patch table →
Synth trace · Draw the orbits into the water · Scope on the canvas · Trace scaleoff · on; Off · Over the water · Alone; 0.05 – 2 · defaults off, off, 0.25 · tablets, when the synth is the sourceThe orbit trace’s two routes and its scale in canvas heights per unit orbit amplitude (0.25 suits the rotor; the modal voices and the winds want more) — the orbit trace.
Suzu voice and its knobsdesktopEvery parameter of the current voice kind, Suzu attack (s) among them — patches.

Desktop. The orbit trace: ink (the gesture route), scope, this voice kind, scale, segments (4 – 8), stroke (tine, wake), on the canvas (off, over the water, the scope alone), and the miniature scope.

iOS and Android only (desktop and web are Marble mode with MIDI in).

SettingChoices · defaultWhat it does
ModeMarble · Play · default MarbleMarble: tap = drop, drag = tine, twist = vortex, pinch = fold, pen = wake, long press = pressure. Play: each touch is an MPE joystick on the lattice (the eight keyed layouts and the theremin).
Velocity from touch sizeoff · on · default offFinger velocity is 96 fixed, or coarsely modulated by the touch’s radius. The pen’s pressure is real.
Show the control stripAndroid · on / off · default on for tablets, off on phonesThe floating strip; hidden, the S-Pen button still holds the pedal and the wheels keep their last CC values.
Sustain button latches (toggle)off · on · default off (momentary)The strip’s sustain pad: press-and-hold, or a latch.
Fingering panel horizontaloff · on · under the brass layoutsThe valves and the slide along the bottom instead of at the side.
Left-handed (mirror the surface and the strip)off · on · default offFlips the lattice, the strip and the panel; the mirror is handed to every probe.
Quick-switch (the Next pad)a subset of the layouts, in order · default noneWhat the strip’s Next pad cycles through; no pad when none is chosen.
Outbound MIDIiOS: Virtual source · Network session · Bluetooth. Android: USB-MIDI to the host · Virtual device · Bluetooth advertiseWhich sinks carry the Play surface’s MPE stream, each under its own rate policy.
Re-sync DAWactionRe-sends the MPE configuration (MCM + bend range) and the strip’s announce of nine.
Stop all notes (panic)actionReleases every held voice, silences every pipe, resets the strip and the fingering.
Storm test / on-device suitesactionsEvidence tools: a 60 s ten-voice storm, and the headless hostmpe + normalizer suites on the device.

Desktop only. Fullscreen (default off): the canvas fills the display it is mostly on; ⌃⌘F on macOS or F11 elsewhere toggles it from the canvas. --fullscreen sets the setting for the session and onward. Desktop →

About shows the app version from the release tag, the git describe and the engine’s ABI version, the same three on every platform. The tablets’ Session line reports frame rate, worst frame, thermal state, dropped loopback messages, outbound counts and echo drops once per second. Evidence (iOS) captures timed screens and flushes the byte, latency and session logs to the app’s Documents folder.

Smoothing (ms) (1 – 200, default 30: the expressive dimensions’ smoothing time constant), Log every MIDI message to stderr, the debug keys, the scripted operator tests, the soaks, the profiles, the storm and the replay gate’s recorder. Desktop →

PlatformStore
macOS~/Library/Application Support/midi-sink/settings.ini, with last_session.json, presets/ and replays/ beside it
Windows%APPDATA%\midi-sink\settings.ini
Linux~/.config/midi-sink/settings.ini
Webthe browser’s localStorage (sumi-web-settings, the presets), per origin
iOSUserDefaults (the app’s preferences); presets, replays and instruments in the app’s Documents, visible in Files
AndroidSharedPreferences sumi; presets, replays and instruments in the app’s files

The CC map persists as channel:cc:dimension;… with an empty value meaning the default map; the CC-routed sliders persist as their last CC values and are re-sent when the engine starts; the last session is restored at launch.

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