Stage 3 of #337. Lanes moved volume and pan only. Now a lane can
steer a parameter of anything on its track, and a voice already
planned or still waiting for its file follows it too.
- A lane may aim at param:<name>. A parameter has no range of its
own, so the lane keeps min and max. A parameter lane stays without
points, so its range is not lost. Remove lane takes it away.
- It reaches the track FX, the FX of an item, the instrument of a
note with its own FX, and the FX of a clip. When several have the
name, all of them change, as with Set sound FX parameters.
- The scheduler hands the lane value to a note or clip at its start.
Values a voice only reads at its start act from the next note.
- While a voice sounds, the knobs of buses and voices of the track
follow the lane on the audio clock, read every 10 ms, because a
knob is not always the parameter itself (trackParams.ts).
- A voice waiting for its file takes the marks when it starts.
- When a lane is removed, the parameter goes back to its default.
An edit while playing does not reset a parameter a lane rules.
- This holds in the song tab, for Play song, in compositions and in
the bake.
- Song tab: Add parameter lane in the track head menu opens a dialog
for parameter and range (ParamLaneDialog.ts). The lane head menu
has Range and Remove lane.
- Inspector: while a lane rules a value, a hint at the track names
the lanes and says the fields act once the lane is gone.
Known limit: a knob that depends on two automated parameters reckons
each lane with the last value of the other, so it may lag one window.
Tests:
- automation-params.test.ts (9, new), 3 new in sound-library and 3
in song-lanes. Affected files 407/407.
- 17 counter checks, all compile, all red.
- e2e 65 on melektaus-atx: ALL PASSED, 67 checks. 65h3 is new: a
clip with FX parameter cut starts at the lane value and its knob
stays within 0.04 dB of the lane. It goes red when automateBus
does not pass parameters on.
- Gate on melektaus-atx: CHECK EXIT 0, 330 files, 5080 tests.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>