Every claim checked against the files and the live services, 10 August 2026.
Note counts read by parsing each .gp5. Stem levels measured with
ffmpeg astats. Songsterr state read from its public API and song pages.
vocals appears once in
build_allparts.py, inside the LANES tuple on line 100, and
is never read again. A Songsterr AI tab for this band ships five parts, two
guitars, bass, drums and the vocal line as a Tenor Sax track. The rebuild ships
three or four, and the vocal is the one it drops.
STATE.md, waiting on your authorisation.
Caught at 1:26 PM, repaired by 1:49 PM. batch_twoguitar.py, PID
44900, started at 1:21 PM building a four-track version of each song whose guitar stem
splits into two parts. It shipped with no level check of any kind, and the reality gate
verify_allparts.py globbed *-ALLPARTS.gp5 only, so every
*-4TRACK.gp5 it wrote passed unexamined.
This was the same defect the 9 August pass found and fixed for drums, where Messenger took 319 drum notes over a kit measuring below -100 dBFS. It came back for bass, because the new script never inherited the gate.
| Song | bass notes written | bass stem RMS | after repair |
|---|---|---|---|
| The Immortal Soul of Mundo Cani | 330 | not measured | 0 |
| Convict | 1,247 | -72.8 dBFS | 0 |
| A Tree for Trials | 205 | -71.9 dBFS | 0 |
Every song whose bass stem carries real signal came back within about 10 percent of the three-track count. The separation between the two groups is roughly 50 dB, which is what made the three bad files identifiable rather than a matter of taste.
| Song | bass notes written | stem peak | stem RMS |
|---|---|---|---|
| On Reflection | 1,415 | -4.1 dBFS | -20.4 dBFS |
| Blind Mans Arrow | 394 | -6.2 dBFS | -21.9 dBFS |
| Messenger | 56 | -31.2 dBFS | -52.5 dBFS |
| Doors Lead to Questions | 150 | -6.2 dBFS | -20.9 dBFS |
| Steps and Numbers | 896 | -7.4 dBFS | -21.1 dBFS |
| Mile Marker | 525 | -8.8 dBFS | -23.7 dBFS |
| View of a Burning City | 1,274 | -12.0 dBFS | -25.1 dBFS |
Convict is the clearest case. Its six stems measure guitar -26.5, other -20.7, piano -21.3, vocals -30.0, drums -49.5, and bass -72.8 dBFS RMS. There is no bass in that stem to transcribe, and 1,247 notes were written from it.
verify_allparts.py now globs *-4TRACK.gp5 as well, reads
the three-track sidecar when a four-track file has none of its own, and accepts 2 to 4
tracks. Before the sidecar fix it printed (no stem) on every four-track row and
passed them all.batch_twoguitar.py now measures the bass stem through
lane_levels.measure before transcription and writes no bass part when the
lane is dead on both peak and RMS, so the bad notes are never produced.
Backup: batch_twoguitar.py.bak-before-lane-reality-gate-2026-08-10.strip_silent_tracks.py repaired the three files already written. Each
keeps a .bak-before-strip-silent copy.Gate now: 71 files checked, 0 failing.
All five empty-bass songs measure 0.0 percent alive on their bass stem, so the strip was right about the stem. The record is a different question. Filtering each stem to 40 to 160 Hz and measuring again separates the two readings, and the control settles which one applies.
| Song | bass | other | piano | guitar | reading |
|---|---|---|---|---|---|
| On Reflection | -22.4 | -43.9 | -48.7 | -32.4 | separation worked |
| Convict | -82.4 | -34.9 | -33.1 | -38.7 | bass misrouted |
| Bird of Paradise | -100.0 | -45.3 | -49.5 | -40.4 | bass misrouted |
On a song whose separation worked, the bass stem owns the low end by 21 dB over
other. On Convict the ordering inverts: the 40 to 160 Hz band is
49 dB louder in piano than in bass. The low end is on the
record. Demucs put it in the wrong stem. Calling that bass missing is a statement about
the split, so these five need re-separating before any verdict about what the band played.
Every output file, all 72 of them, carries the same shapes: Guitar, Bass,
Drums or Guitar 1, Guitar 2, Bass, Drums. No vocal track has ever
been written. Meanwhile the six-stem split produced a vocals.wav for every
song, and 40 of 46 carry real signal.
Songsterr's AI writes the vocal melody as a Tenor Sax track, generated from the YouTube link. The section below sets out where that comes from and the order that keeps it.
An earlier version of this page said the "six songs lost their AI parts on 6 August"
story was unsupported. That was my error, and it is withdrawn. I read
/api/meta/{songId}/revisions returning a single Initial revision, 1
track, createdVia GP as proof that nothing had been overwritten. It is the opposite.
songsterr-upload/SKILL.md records that Songsterr keeps one revision per tab
and that importRevisionInput replaces the whole tab in place, which is
exactly why the old parts cannot be fetched back.
The evidence that settles it: all six of those tabs carry a YouTube videoId.
s6375099, s6375161, s6375346, s6375387, s6362089 and s6375400 each have one. The skill
states that the import does not attach audio and that a .gp5 dropped into a
blank tab has no recording behind it. A tab created by a GP import cannot have that
video. Those ids were made by the YouTube plus AI transcription flow and then overwritten
by the drums-only import. Cathedral Rings went from 5 tracks to 1 that way.
Songsterr's AI writes every instrument, the vocal line included, from the YouTube
link. That is the whole source. The sequence in the skill is
/new, tick the instrument, paste the YouTube link, click Transcribe tab
with AI, wait about 8 minutes, and the result is a synced multi-track tab whose fifth
part is the vocal melody.
So the vocal is not gated by what happens to be in the catalogue today. Every one of the 46 songs can have one, and the page carries a checked YouTube link for each one. Three of them need no new transcription, since a vocal-bearing tab is up:
| Song | Album position | Songsterr id | What it holds |
|---|---|---|---|
| Fishing the Sky | Mare Vitalis 02 | s1580 | 5 tracks, human |
| Forever Longing the Golden Sunsets | Mare Vitalis 03 | s2038 | 6 tracks, human |
| On Reflection | Low Level Owl I 02 | s6206980 | 5 tracks, Songsterr AI |
The other 43 each need one AI transcription run, so the credit balance is the
real constraint here.
/api/contributions/available-transcriptions-count read 46 of 50 remaining on
6 August 2026 and answers HTTP 401 without a login, so the current balance needs a
signed-in read.
| # | Step | Why it is in this position |
|---|---|---|
| 1 | YouTube link, then AI transcribe | The import attaches no audio. A gp5 into a blank tab is a silent tab. |
| 2 | Download the AI .gp5 |
It carries the vocal, which nothing local can produce. |
| 3 | Swap in the stem-built guitars, bass and drums | Keep every other track byte for byte. |
| 4 | Import the merged file | importRevisionInput replaces the whole tab, so it must carry all parts. |
| 5 | Verify after a full reload | Must read Synced video: Full mix, and
tracksCount must equal what the AI produced, never 1. |
Publishing stays a separate act. Every tab this makes is private and unpublished.
A lane reading silent holds a real track with no notes in it. The 4-track bass column is today's rebuild, where it exists.
| # | Song | Bars | Guitar | Bass | Drums | 4-track bass | Bass stem RMS |
|---|---|---|---|---|---|---|---|
| Mare Vitalis (2000) 10 songs | |||||||
| 01 | The Immortal Soul of Mundo Cani | 93 | 586 | silent | 463 | 0 | not measured |
| 02 | Fishing the Sky | 187 | 1,981 | 709 | 1,700 | 709 | not measured |
| 03 | Forever Longing the Golden Sunsets | 181 | 3,020 | 1,028 | 1,945 | 1,028 | not measured |
| 04 | Mare Mortis | 119 | 2,033 | 740 | 1,759 | 750 | not measured |
| 05 | Santa Maria | 125 | 2,090 | 790 | 1,489 | 800 | not measured |
| 06 | Secret | 100 | 2,557 | 802 | 1,423 | 804 | not measured |
| 07 | ...And Nothing Less | 107 | 2,389 | 869 | 1,290 | 913 | not measured |
| 08 | Poseidon | 143 | 1,888 | 900 | 1,066 | not rebuilt | not measured |
| 09 | Kilgore Trout | 131 | 1,432 | 519 | 1,202 | 563 | not measured |
| 10 | Storms | 181 | 3,491 | 510 | 1,940 | not rebuilt | not measured |
| Low Level Owl Volume I (2001) 14 songs | |||||||
| 01 | The Waking of Pertelotte | 74 | 600 | silent | 456 | not rebuilt | -74.1 dBFS |
| 02 | On Reflection | 215 | 4,328 | 1,362 | 2,464 | 1,415 | -20.4 dBFS |
| 03 | Blind Mans Arrow | 83 | 1,918 | 383 | 771 | 394 | -21.9 dBFS |
| 04 | Flowers Falling From Dying Hands | 175 | 739 | 95 | 29 | not rebuilt | not measured |
| 05 | Messenger | 16 | 90 | 16 | silent | 56 | -52.5 dBFS |
| 06 | Doors Lead to Questions | 58 | 584 | 139 | 1,032 | 150 | -20.9 dBFS |
| 07 | Steps and Numbers | 192 | 3,068 | 896 | 1,912 | 896 | -21.1 dBFS |
| 08 | Sentence | 148 | 1,861 | 383 | 37 | not rebuilt | not measured |
| 09 | Bird of Paradise | 120 | 1,127 | silent | 171 | not rebuilt | -63.5 dBFS |
| 10 | Mile Marker | 92 | 2,252 | 496 | 1,536 | 525 | -23.7 dBFS |
| 11 | Convict | 278 | 1,007 | silent | 586 | 0 | -72.8 dBFS |
| 12 | A Tree for Trials | 36 | 308 | silent | 348 | 0 | -71.9 dBFS |
| 13 | Signal | 83 | 1,722 | 577 | 1,017 | not rebuilt | not measured |
| 14 | View of a Burning City | 256 | 3,109 | 1,274 | 1,870 | 1,274 | -25.1 dBFS |
| Low Level Owl Volume II (2001) 12 songs | |||||||
| 01 | View of a Burning City reprise | 71 | 487 | 217 | 610 | 231 | not measured |
| 02 | Strings | 254 | 2,657 | 642 | 1,319 | 749 | not measured |
| 03 | A Place in Line | 128 | 2,797 | 719 | 1,063 | 759 | not measured |
| 04 | Shaking Hands | 70 | 345 | 230 | 165 | 370 | not measured |
| 05 | Rooms and Gardens | 228 | 4,535 | 1,108 | 1,971 | 1,160 | not measured |
| 06 | Ring Out the Warning Bell | 195 | 1,310 | 861 | 2,191 | 879 | not measured |
| 07 | Sunset Drama King | 192 | 3,453 | 663 | 1,752 | 754 | not measured |
| 08 | The Last in a Line | 152 | 2,285 | 150 | 597 | not rebuilt | not measured |
| 09 | Decline | 28 | 483 | 120 | 418 | not rebuilt | not measured |
| 10 | The Argument | 132 | 2,706 | 549 | 1,326 | 553 | not measured |
| 11 | Reaction | 48 | 1,046 | 365 | 1,091 | 370 | not measured |
| 12 | Confession | 408 | 4,036 | 1,102 | 2,313 | not rebuilt | not measured |
| Illumination Ritual (2013) 10 songs | |||||||
| 01 | Adriatic to Black Sea | 243 | 2,676 | 837 | 2,308 | not rebuilt | not measured |
| 02 | Great Lake Derelict | 159 | 2,032 | 874 | 2,500 | not rebuilt | not measured |
| 03 | Simple Forms | 97 | 1,303 | 225 | 835 | not rebuilt | not measured |
| 04 | Cathedral Rings | 179 | 2,399 | 747 | 2,382 | not rebuilt | not measured |
| 05 | 30 Degrees 3 Am | 172 | 2,186 | 779 | 1,887 | not rebuilt | not measured |
| 06 | Branches on the Arrow Peak Revelation | 105 | 1,736 | 271 | 1,313 | not rebuilt | not measured |
| 07 | Barrier Islands (Do We Remain) | 157 | 2,449 | 808 | 2,169 | not rebuilt | not measured |
| 08 | North Star Ordination | 234 | 2,668 | 772 | 2,453 | not rebuilt | not measured |
| 09 | Clearing Life | 202 | 2,915 | 518 | 2,083 | not rebuilt | not measured |
| 10 | Illumination Ritual | 171 | 1,544 | 311 | 1,679 | not rebuilt | not measured |
Nine tabs, all private to the account. None of them is one of the 46 all-parts builds. A YouTube video is attached to the four checked below, which is what makes a tab play against the record. The two four-track tabs return HTTP 403 without a login, so their sync state is unread rather than absent.
| Song | Songsterr id | What it holds | YouTube attached |
|---|---|---|---|
| The Immortal Soul of Mundo Cani | s6285808 | 4 tracks, all instruments | 403 without login |
| Fishing the Sky | s6375099 | 1 track, drums only | not read |
| Forever Longing the Golden Sunsets | s6375161 | 1 track, drums only | not read |
| Mare Mortis | s6375346 | 1 track, drums only | yes, nAdR6bAecQA |
| Santa Maria | s6375387 | 1 track, drums only | yes, YiIqChFcCA0 |
| On Reflection | s6206980 | 5 tracks, Songsterr AI | not read |
| Simple Forms | s6378572 | 4 tracks, all instruments | 403 without login |
| Cathedral Rings | s6362089 | 1 track, drums only | yes, JEfi-uzS6E0 |
| 30 Degrees 3 Am | s6375400 | 1 track, Songsterr AI | yes, IY6-3ltSk1M |
The live page scopes five records and counts 56 original tracks. 46 were built. These 10 were not.
The band has nine studio albums. Four were built here. These five were not, and Two Conversations is the one the page counts but does not deliver.
STATE.md publishes a table showing Bird of Paradise bass: 1 before,
522 after, presented as the outcome of the octave-fold fix. The shipped file holds
0. The fold did restore 522 notes, and
strip_silent_tracks.py emptied the track 27 minutes later because the stem
measures -63.5 dBFS. The live page prints silent for that cell and is correct.
The note was never updated.
verify_allparts.py covers
*-4TRACK.gp5, falls back to the three-track sidecar, and accepts 2 to 4
tracks. 71 files checked, 0 failing.batch_twoguitar.py measures the bass stem
through lane_levels.measure and writes no bass part for a dead lane..bak-before-strip-silent copy.other at -20.7 dBFS rather than
into bass, which is a separation failure and not an absent part.STATE.md. It still publishes
522 where the file holds 0..gp5 import.~/Projects/_outputs/appleseed-allparts/allparts/. Stem levels:
ffmpeg astats on the demucs six-stem output. Songsterr:
/api/songs?pattern=appleseed cast and each song page, read 10 August 2026.
Live page: drwu-htmls.vercel.app/the-appleseed-cast-songsterr, HTTP 200,
82,611 bytes.