From 5ee39ade1809f25fa59c3d6b778a47c7b61711bb Mon Sep 17 00:00:00 2001 From: meleki Date: Thu, 8 Oct 2026 21:13:57 +0200 Subject: [PATCH] Describe faint clips and the embedded assets a song shares (#357) - Sounds: the clip area shrinks with the wave when zoomed out, a click beside the picked clip picks the sound, and the clips not picked lie faint over the wave. - Songs: an embedded sound, pattern or sound FX is shared by the places of its song and goes with the last one. A paste into another song makes one copy. The picks offer what the song keeps. - Development: 1898 checks. Co-Authored-By: Claude Opus 5.5 --- Development.md | 2 +- Songs.md | 35 ++++++++++++++++++++--------------- Sounds.md | 12 ++++++++---- 3 files changed, 29 insertions(+), 20 deletions(-) diff --git a/Development.md b/Development.md index 462e0c2..80d115a 100644 --- a/Development.md +++ b/Development.md @@ -19,7 +19,7 @@ php tests/php/accounts.test.php # the API's accoun php tests/php/snapshots.test.php # the snapshot store (#231), the same way php tests/php/releases.test.php # the release store (#266), the same way php tests/php/files.test.php # uploaded files in a folder per account (#344), the same way -node tools/seed-e2e.mjs && node tools/e2e.mjs # 1897 editor checks, screenshots in /tmp/gm-e2e-*.png +node tools/seed-e2e.mjs && node tools/e2e.mjs # 1898 editor checks, screenshots in /tmp/gm-e2e-*.png GM_STEPS=20 node tools/e2e.mjs # or 1-12, or 6,20 — a subset while working on one step ./e2e.sh start [GM_STEPS] # the same run detached, see below ./e2e.sh status # live progress, or the last run's result diff --git a/Songs.md b/Songs.md index 1ec35a1..b8e140c 100644 --- a/Songs.md +++ b/Songs.md @@ -222,18 +222,22 @@ names of the inputs show once recording has been allowed, and the browser keeps A sound, a pattern or a sound FX can belong to one song instead of the project (#355). A take is one. It is edited like any other: a double-click on its item opens it in its tab, where its [clips](Sounds#clips) are made and cut as always, and the tab's title has the song's name in front -of its own. But it has no row in the Assets panel, no picker offers it (not the inspector, not a -node), and its name only has to be free within the song. Only the *Sound* row of its own item -offers it and its clips, under a line after the project's sounds. +of its own. But it has no row in the Assets panel, no picker outside its song offers it (not a +node, not another song), and its name only has to be free within the song. Within the song the +picks offer it 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. -- **One user.** An embedded asset is used by exactly one place of its song: an item, a track or the - song itself. A split, `Ctrl+D` and a paste give every new item a copy of its own, so setting one - half of a split take to another clip leaves the other half as it was. A copy gets copies of the - clips, and an item on a clip plays the same clip of its copy. The audio file is not copied: - files are stored by their content. -- **It goes with its user.** Deleting the item, its track or the song deletes the embedded asset - in the same undo step. A copied item keeps it in the clipboard, so a paste after the delete brings - it back. *Duplicate* on the song copies everything it keeps to itself. +- **Shared within the song (#357).** The places of a song share what it keeps: the song itself, + its tracks and its items. A split and `Ctrl+D` leave both items on the same take, so the four + clips of one take serve four items, and a cut made in the Sound tab is heard on every item + playing that clip. To bend one item alone, *Make project asset* and *Embed a copy* still make a + copy. +- **A paste into another song** gives that song a copy, one for all the items naming it. A copy + gets copies of the clips, and an item on a clip plays the same clip of its copy. The audio file + is not copied: files are stored by their content. +- **It goes with its last user.** Once no item, track or the song names it any more, the embedded + asset is deleted in the same undo step. A copied item keeps it in the clipboard, so a paste after + the delete brings it back. *Duplicate* on the song copies everything it keeps to itself. - A click on its name in the inspector lights up its song in the Assets panel. - In the Sound tab of an embedded sound the rows *Loop* and *Bus* are left out: in a song an item repeats its sound as long as it is, and the track decides where it goes. @@ -258,8 +262,9 @@ song) and an item for it, one undo step, and opens it in the Pattern tab. ### A sound FX of its own -Every pick of a sound FX in a song ends with a few entries for one that only that place has: the -**Sound FX** row of the song, of a track and of an item, and the menu of a track's **FX** button. +Every pick of a sound FX in a song ends with the sound FX the song keeps, with the mark in front, +and a few entries to make one: the **Sound FX** row of the song, of a track and of an item, and +the menu of a track's **FX** button. Picking one the song keeps lets this place share it. - **Create sound FX** makes *Sound FX 1*, 2 … (numbered per song) with its Input wired to its Output, so it lets the sound through until something is put in between. The place picks it and @@ -268,8 +273,8 @@ Every pick of a sound FX in a song ends with a few entries for one that only tha under the same name, to bend without touching the original. - While the place names its own, the menu shows it with the mark in front and offers **Edit sound FX** (opens it, as a double-click on its name in the inspector does) and **Make project asset**. -- Picking anything else, *None* or another sound FX, lets it go in the same undo step. That holds - for the song's own row too. +- Picking anything else, *None* or another sound FX, lets it go. If this place was the last one + naming it, it goes in the same undo step. That holds for the song's own row too. ## Playing one in a game diff --git a/Sounds.md b/Sounds.md index e570f7a..ac797b8 100644 --- a/Sounds.md +++ b/Sounds.md @@ -78,9 +78,12 @@ counts in it — `length`, the rounds of a song item and their waveform, a Sampl Pitch. - **Drag in the strip** to make a new clip from where you pressed. It is picked right away. -- **Click a band** to pick its clip, **click beside the bands** to pick the sound again. The - picked clip's band is lit, and its stretch stands between **two handles** in the wave. What lies - outside is darker. With no clip picked the whole file is bright and has no handles. +- **Click a band** to pick its clip, **click beside the bands** to pick the sound again. A + **click in the wave beside the picked clip** picks the sound too. The picked clip's band is lit, + and its stretch stands between **two handles** in the wave. What lies outside is darker. With no + clip picked the whole file is bright and has no handles. +- **The other clips** stay faint in the wave, a pale tint with a thin edge over their stretch, so + you see where they lie while you work on one. - **Drag a handle** to move that edge of the picked clip. **Drag anywhere else** in the wave to span it anew from where you pressed. With no clip picked, a drag in the wave makes a new clip, as in the strip. One drag is one undo step, the two edges together. An edge cannot pass the other. @@ -106,7 +109,8 @@ Pitch. - Left of the wave stands a **level scale** in dB, a mark every 6 dB (#357). The **wheel over the scale** zooms the wave's height, from a quarter to 16 times: zoomed out, a full-scale wave leaves room above and below it; zoomed in, quiet stretches get tall enough to see, and what is louder - stops at the edge. The fade ramps grow with the wave. **Fit** brings back the whole file at its + stops at the edge. The fade ramps grow with the wave. Zoomed out, the bright file, the picked + clip and its handles shrink with it to the height of a full-scale wave. **Fit** brings back the whole file at its full height. - A stereo file shows **one** wave, the loudest of its channels; it plays in stereo. - The header's readout says how long the picked clip is, and of how long a file.