Stage 4 of #337. Lanes could only be drawn in the song tab. Now the
agent can set them in one step and sees which parameters a lane of a
track can move.
- New command set_song_lane. The target is named as it is stored:
volume, pan or param:<name>. All points come at once, each with
tick, value and ease, from the same eases as animation keys,
curve assets included.
- Points on one tick keep the order they come in, which makes a jump.
points [] removes a volume or pan lane, remove a parameter lane.
- It refuses with a clear message: a value outside the range, an
unknown ease, a missing curve asset, a range for volume or pan, and
a new lane for a parameter nothing on the track has. The message
then names the parameters there are.
- Without min and max a new parameter lane gets the range the dialog
in the song tab offers.
- get_asset names under params of each song track the parameters a
lane can move, with their default. The lanes were already in it.
Live in the user's project: get_asset named both parameters of their
two lanes (frequency, env) with defaults 20000 and 0.5. Playing to
3 s and 4.2 s, both tracks were heard, the audio clock running.
Tests:
- agent-music 13/13 (2 new), agent and MCP tests 129/129
- 6 counter-probes, all compile, all red
- gate on atx: CHECK EXIT 0, 330 files, 5082 tests
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>