Make Tile swap slow at a low Swap rate, on a curved slider

A tile has to come back to the cut it started with for the clip to
loop, so every tile swapped at least twice a clip, and below that
rounding left every tile still: the bottom of the slider was either
frozen or busy. Swap rate is now the average per tile: below two swaps
a clip only a share of the tiles swap (twice each), fewer the lower it
goes, and above it each tile rounds up or down by its own draw.

ParamSpec::slider() takes an optional curve: the scale runs over the
slider's travel and sliderValue/sliderPosition map it onto the number
as position^curve. Swap rate uses a curve of 3, so the low end gets
most of the slider; the command line and project file are unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
simon
2026-10-02 01:11:28 +02:00
co-authored by Claude Opus 5.5
parent ef8f728126
commit 3c8c5bed8c
8 changed files with 123 additions and 38 deletions
+3 -1
View File
@@ -82,7 +82,9 @@ travel as `ParamValues` (a
An Int or Double param marked `.slider()` is shown in
the interface as a slider with its minimum and maximum marked instead of a spin
button; nothing else changes.
button; nothing else changes. `.slider(curve)` bends it: the scale runs over the
slider's travel and `sliderValue`/`sliderPosition` map that onto the number as
`position^curve`, so a curve above 1 gives the low end more room.
A param can also be marked `.styled()`, which says a *named style* carries it
rather than the stage it sits on: the font and the colour of a text stage, but