diff --git a/Development.md b/Development.md index 260ff0a..62339f4 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 # 1906 editor checks, screenshots in /tmp/gm-e2e-*.png +node tools/seed-e2e.mjs && node tools/e2e.mjs # 1908 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 01c77e0..84d490a 100644 --- a/Songs.md +++ b/Songs.md @@ -14,7 +14,7 @@ inspector. | Row | What it does | |---|---| | **Tempo (BPM)** | 20 to 400, quarter notes a minute. The song plays every pattern at this tempo; the tempo set on a pattern is only for its own tab. | -| **Beats per bar**, **Beat** | The meter of the ruler. Items are kept in ticks, so a change only moves the bar lines. | +| **Sign** | The time signature of the ruler (#363): 1/2, 2/2, 3/2, 1/4 to 6/4, or 5/8 to 9/8, 4/4 by default. Items are kept in ticks, so a change only moves the bar lines. | | **Grid** | What items snap to: **Bar** (the default), or one of the grids of a pattern, 1/1 to 1/32 and the triplets. The tab's header has the same choice. | | **Sound FX** | A [sound FX](Sounds#the-sound-fx-of-an-asset) the whole song goes through, after its tracks and the routing, before its bus (#352). `Play song` and the tab play through it. | | **Bus** | The [bus](Sounds#buses-and-the-master) a `Play song` and the tab play it on, *Master* while none is picked (#325). | @@ -67,8 +67,8 @@ to less than 46 px, a head shows only its name, **M** and **S**. The header has **Timeline** and **Routing** (what the tab shows, see [Routing](#routing)), **Play** (it turns into **Stop**), **Record** with the input to record from and its level, the **Grid**, -**Fit** and on the right the number of tracks and items. **Fit** shows the whole song across, or -frames the routing graph. +**Fit** and on the right the number of tracks and items. **Fit** shows the whole song across and +all its tracks down, or frames the routing graph. What is picked goes to the inspector: an item shows its pattern or sound, its volume and the rows of its kind, a track its name, volume, pan, mute, solo and sound FX. A click on nothing in the lanes picks the @@ -119,10 +119,15 @@ after its last item, and at least one bar. An empty song is a single bar long, s one bar across; the wheel takes the view out to lay items further on. The wheel zooms and does nothing else: over the lanes or the ruler the time about the pointer, over -the heads the height of the tracks (28 to 320 px), about the track under the pointer. A middle-drag -pans both ways, and as in the Pattern tab it can take bar 1 up to half the lanes in, the time before -it drawn dark and only to look at. Down the lanes it can take the first track up to half the height -down and the last up to half the height up; nothing lies above or below them. **Fit** shows the whole song across and keeps the height of the tracks. +the heads the height of the tracks (28 to 320 px), about the track under the pointer. The time zooms +in eight times as far as in the Pattern tab, to 3840 px a quarter, so a take can be laid down to +the millisecond. A middle-drag pans both ways, and as in the Pattern tab it can take bar 1 up to +half the lanes in, the time before it drawn dark and only to look at. Down the lanes it can take the +first track up to half the height down and the last up to half the height up; nothing lies above or +below them. + +**Fit** shows the whole song across and all its tracks down, each as tall as they share out (28 to +320 px), with 9 % of the lanes free on every side. A song with no view kept yet opens fitted the same way. ## Routing @@ -282,11 +287,10 @@ song) and an item for it, one undo step, and opens it in the Pattern tab. - The item starts on the grid line before the spot and is a bar long, and so is the pattern. - It plays the instrument of the pattern item on that track that starts last before the spot, else of the first one after it; on a track without one it has none yet. -- It runs on the song's clock: it takes the tempo and the meter of the song, and follows them - when they change. In its inspector the rows *Tempo*, *Beats per bar*, *Beat* and *Bus* are left - out, as the song decides all of them. Its length, grid, instrument and sound FX are its own. -- A project pattern embedded as a copy, or one pasted from another song, takes the clock of the - song it comes to. Made a project asset, it keeps the tempo and the meter it had. +- It starts with the tempo and the sign of the song. From then on they are its own, as with a + project pattern (#363): a change of the song's sign leaves its length alone, so its item is not + cut or stretched. Its inspector leaves out only *Bus*, which the song decides. +- A project pattern embedded as a copy, or one pasted from another song, keeps its tempo and meter. ### A sound FX of its own