Tine
A tine (a comb tooth, a single stylus drawn through the bath) drags the water along a line through with unit direction . Points near the line travel the full stroke; points farther away travel less, with sharpness setting how quickly the pull fades:
Invariants
Section titled “Invariants”- A pure shear. The displacement is always along and depends only on , so every line parallel to the stroke translates rigidly. The Jacobian is identically 1: exactly area-preserving and exact at any magnitude — a tine never folds, never needs sub-stepping.
- Composes exactly. Forty passes of equal one pass of — this is the regression check that guards the engine’s single y-down coordinate space, because a stray vertical flip between offscreen passes makes consecutive deformations cancel instead of compose.
Ownership
Section titled “Ownership”- Per-note pitch bend → glide (
bend_mode = 0, the default). The bend drags that voice’s drop along the pitch axis, emitting a narrow tine along the drag each frame the bend changes — per voice, never a global shear, in MPE mode. On the playable lattices (chromatic grid, Jankó, piano grid) a one-semitone bend moves the drop exactly one cell, so the drop travels under the finger; the other layouts keep a rendering cap. - Master-channel pitch bend (range ±2) → a global shear tine, in both bend modes. In classic mode this is what the bend wheel does.
- Marble mode: a one-finger drag, or a left drag with the mouse.
In the scene
Section titled “In the scene”α is the sharpness — small values make a knife-edge crease, large values a
broad sweep; z is the stroke magnitude in canvas heights.
midi-sink 2.0.0-rc.5 · AGPL-3.0 · source
