Arnol'd lock
Lineage. The twist is the Lamb–Oseen swirl of the swirl page — Professor Jaffer’s extension of the comb to the vortex, whose rotation by a function of the radius alone is exact at any angle. The kick is a canonical transformation written from a generating function, the form the Chirikov map and the spark shear already use; the picture it draws is Arnol’d’s: the tongues of the circle map, where a driven rotation locks to a rational winding number and islands stand still in the stroboscopic frame.
What it does. Under Kessho a pressed note no longer feeds or stirs: it locks to the bass. The lowest held note is the reference; for every other voice the engine reads the interval (the bend included) and takes its fractional part — a fifth gives , a major third gives — and each frame applies one iteration of about the voice’s drop, in the action-angle frame , :
the kick from the generating function (a canonical transformation: ), followed by the twist — the Lamb–Oseen rotation with its core at the ring, scaled so the ring turns exactly turns per frame and windowed to zero by two and a half radii. is the tongue’s denominator: the nearest continued-fraction convergent of with inside its tongue , else six; an integer ratio is , a full turn. The press is , as a fraction of — the bound that keeps the kick a bijection. The window is one across the ring and falls to zero by and at the centre.
The lookup is one Newton. The shader needs : undo the twist (a rotation keeps , so is the texel’s own), then solve from — one scalar Newton, five iterations — and take explicitly. The inverse pass (the soak’s pairs) looks up instead: one Newton on . Exact, never sub-stepped.
Locked and beating. At an exact ratio the islands stand still frame after frame — the ink inside them librates, the islands do not move. Off the ratio by the kick’s frame precesses by a frame and the pattern turns with it: the beat, in bass periods per frame. A MIDI fifth is equal temperament’s , two cents under , and its two islands make one slow turn in six hundred frames; a tempered major third, fourteen cents over , turns six times faster — the temperament’s beats drawn on the water. Bend the fifth ten cents sharp and the islands turn at turns a frame. Crossing a tongue boundary (a bend from the fifth down to the third) crossfades through zero over fifty milliseconds and switches at the zero, so the petals never pop.
The bass stirs. The reference voice has no interval to lock to; under the lock its press is the swirl, as before — a solo note under pressure still stirs.
Ownership
Section titled “Ownership”- Channel pressure under Kessho’s default table (
press_mode3; the Arnol’d tongue lock choice in the settings): the press is the kick, the pitch against the bass the twist. The Arnol’d K control (CC) is the alternative, the larger of the two driving. - Gesture route:
sumi_add_arnold(x, y, radius, winding_omega, k, q, twist)— one iteration, with the twist switchable off (the bench’s red control: without it the kick alone makes no islands, the ink collecting on the kick’s nodal lines).
In the bench
Section titled “In the bench”--arnold-test: the pass against its closed form and its exact inverse,
the and islands standing over six hundred iterations, the
tempered fifth’s beat and the ten-cent precession, the twist’s red, the
tongue crossing’s flicker; --soak arnold the four-part gate (the pairs
through the inverse pass); --arnold-render <dir> the locked and the
beating renders in Sumi and Kessho.
midi-sink 2.0.0 · AGPL-3.0 · source
