Describe Fit both ways, the deeper zoom and a song's Sign (#362, #363)

- Songs: Fit takes the tracks down too and leaves 9 % free on every
  side. The time zooms in eight times as far as in the Pattern tab
  (#362).
- Songs: one row Sign replaces Beats per bar and Beat. An embedded
  pattern keeps its own tempo and meter (#363).
- Development: 1908 checks.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
adminandClaude Opus 5.5 committed 2026-10-09 07:34:03 +02:00
1 parent c9d7046525
commit 0b7df63a73
2 files changed
+17 -13

No files matched your search

+1 -1
@@ -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
+16 -12
@@ -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