With clips, one take serves many items: four items on the four clips
of one take. The rule from #355 gave every further place its own copy
of an embedded asset, so a cut made in the Sound tab reached one item
only. Now the song, its tracks and its items share a sound, a pattern
or a sound FX the song keeps.
- settleEmbedded no longer copies within the song. An embedded asset
stays as long as one place names it, and goes with the last one.
- A paste from another song still gets a copy, but one copy for all
the places naming the same asset, with its clip ids mapped.
- The picks in a song offer what the song keeps, under a line after
the project's assets: the Sound row of an item the song's sounds
and their clips, the Pattern row its patterns, every sound FX pick
its sound FX.
- Make project asset and Embed a copy are unchanged.
The project cbbf160bb7e8 was merged by hand afterwards: the items of
Song 2 on three copies of Take 1 now play the same clips of the first
one, and the copies are gone.
Tests:
- Unit embedded, sound-clips, own-fx and the song tests: 66 green,
3 counter-checks red as expected
- e2e 65 on melektaus-atx: ALL PASSED, 52 checks
- Gate on melektaus-atx: CHECK EXIT 0, 271 files, 4198 tests
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A sound FX for one place in a song had to be a project asset, which
then stood in every picker. Now every pick of a sound FX in a song
can make one the song keeps for that place alone, on top of the
embedded assets of the first two parts.
- Create sound FX sits at the end of the Sound FX row of the song,
a track and an item, and of the menu of a track's FX button. It
makes "Sound FX 1", 2, … per song with the Input wired to the
Output, picks it and opens it. That is one undo step.
- Embed a copy, while the place names a project FX, gives the place
a copy under the same name.
- While the place names its own, the menu shows it with the mark and
offers Edit sound FX and Make project asset.
- Picking anything else lets it go in the same undo step. For a
track or an item `settleEmbedded` did that already. For the song's
own row `AssetPropertyCommand` now settles the song after `fx`.
- The mark `•` moved to the core. `assetRefLabel` puts it in front of
an embedded asset, so the inspector rows show it like the timeline.
- `FieldHandlers.moreChoices` lets a caller end a reference menu
with entries of its own. `embeddedPatternName` is `embeddedName`
with a base now.
Tests:
- Unit own-fx (new): 6 green, 6 counter-checks each red
- Unit embedded and 80 neighbouring files: 1434 green
- e2e 65 (melektaus-atx): ALL PASSED, 51 checks (2 new)
- Gate (melektaus-atx): CHECK EXIT 0, 270 files, 4178 tests
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>