The Appleseed Cast · Mare Vitalis 09 · 2026-08-13

Kilgore Trout: which transcription actually explains the recording

Three guitar transcriptions measured against the isolated stems, one question per note, with a synthetic control establishing what the detector can do before any of them is graded.

CORRECTION, added after a controlled experiment. An earlier version of this page reported that the stem-derived source c-tied.gp was the weakest transcription in the set, with Rhythm pitch support at 24.7%. That was a metadata defect, not a bad transcription.

Its Rhythm track carries CapoFret 2 while every Note's stored Midi was written for capo 0, so the capo-computed pitch exceeds the stored Midi by exactly 2 on all 891 notes. The file means two things at once, and this audit read that staff two semitones sharp. Changing only the capo, with every note, onset, duration, string and fret preserved and verified identical, moves Rhythm pitch support from 24.7% to 63.4%, ownership from 45.6% to 71.9%, and puts the staff in the correct stem. The corrected source sits within 1.5 points of the promoted build.

The gate now hard-fails this defect as CAPO_MIDI_MISMATCH. It fires 891 times on c-tied.gp and is clean on the corrected twin and on the promoted build.

The thirteen promotions were checked against the corrected source and are unaffected. Run the gate on chain62 with c-tied.gp and again with c-tied-CAPO0.gp and both return preservation PASS and position PASS, identically. The reason is mechanical: the gate's pitch census prefers each Note's stored Midi, and position compares written string and fret. Both are capo independent. Receipt 11f6b0f89211bb9f binds chain62 to the corrected baseline.

That divergence is exactly how the defect hid. The gate resolved pitch from stored Midi and this audit resolved it from tuning plus capo plus fret, so the gate saw nothing while the audit read two semitones sharp. The audit now counts and prints the disagreement too, and the gate fails on it, so neither tool can pass it over again.

1. The finding

Every transcription derived from the stems beats the Songsterr AI tab, and they beat it by a lot on the Rhythm staff. Read with its own note data, c-tied.gp scores 63.4% Rhythm pitch support against Songsterr's 41.1%, and the promoted build reaches 65.0%. Against a measured ceiling of 77.5%.

The working assumption of the project holds after all: the stem-derived source is a much better reference than the Songsterr AI tab. It took a controlled experiment to see it, because a capo set on one track without rewriting its frets or its Midi had been reading as forty points of transcription error.

Being stem-derived is still a statement about how a file was produced rather than proof its notes are right. The lesson that survives is narrower and sharper: check a file's internal consistency before measuring it against anything.

2. The control comes first

A detector that answers yes everywhere proves nothing. The first run on the real stems separated a true pitch from a tritone only 70.5% of the time, which is ambiguous by itself: it can mean the tab is wrong, and it can equally mean the detector cannot tell pitches apart. Those call for opposite work, so the ambiguity was resolved before anything was graded.

The tab was rendered to audio, Lead into the left stem and Rhythm into the right, at the same beat-to-seconds map. Every note in that render is correct by construction, and the identical detector was run over it.

Tritone control, separation and margin

synthetic 99.1%
chain49 87.9%
songsterr 74.0%
c-tied 70.5%

At 99.1% separation with a 25.5 dB median margin, and with Lead and Rhythm recovered into their correct stems at 21.8 and 19.3 dB, the detector works. The weak numbers on the real stems are therefore evidence about the transcriptions.

The control also refuted one of my own metrics. The first composite pitch score reached only 41% on a signal where every note is correct. A note whose control could not be measured was being dropped from the numerator and kept in the denominator. Fixed, the ceiling reads 84.0% and 77.5%, and every number on this page is computed after that fix.

3. Three-way comparison

Read every column against the synthetic row. That row is what this detector scores on a signal known to be correct, so it is the ceiling rather than 100%.

TranscriptionLead notesRhythm notes Tritone sep.Lead pitch
supported
Rhythm pitch
supported
Rhythm
owner agrees
Rhythm
maps to
synthetic ceiling674713 99.1%84.0%77.5% 83.7%R, 19.3 dB
s6389251-chain49.gp
promoted build
842891 87.9%65.5%64.9% 71.8%R, 2.93 dB
Songsterr AI tab
reference only
2171087 74.0%54.9%41.1% 73.7%R, 3.52 dB
c-tied.gp, capo corrected
stem-derived source
844891 87.9%64.2%63.4% 71.9%R, 2.87 dB
c-tied.gp as written
CAPO_MIDI_MISMATCH x891
844891 70.5%64.2%24.7% 45.6%L, 0.87 dB

Rhythm staff, pitch supported by the audio

ceiling 77.5%
chain49 64.9%
songsterr 41.1%
c-tied 24.7%

4. The Rhythm staff, and the experiment that explained it

The Lead staff is close across every file, 54.9% to 67.0%. Rhythm appeared to spread from 24.7% to 64.9%, and that one staff carried the whole apparent result. The structural difference sat in the same place: c-tied.gp writes Rhythm with capo 2 and the promoted chain writes it with capo 0.

Rather than re-voice a hundred chords on the strength of a correlation, the variable was tested on its own. Only the CapoFret value changed. Every note, onset, duration, string and fret was walked before and after and required to be identical on all five tracks.

Metric on the Rhythm staffc-tied as written c-tied, capo 0 onlyChange
Pitch supported by audio24.7%63.4% the whole gap
Owner agreement45.6%71.9%resolved
Maps to stemL, wrongR, correctresolved
Tritone control separation70.5%87.9%resolved
Hand skip61%61%unchanged
IMPOSSIBLE_SPAN1717unchanged
TIE_INCONSISTENT4040unchanged

The capo explains the entire accuracy gap and none of the playability numbers. That is the expected signature and it is worth stating, because it separates the two cleanly: hand skip and spans are read from written frets, which the capo does not touch, while every sounding pitch shifts by two semitones. Any account that blamed the transcription for the accuracy gap was wrong.

5. The BEST filename carried authority it never earned

Hashing the two files settles the argument that started this work.

s6389251-BEST.gp     sha256  0e7cf090f141ccba...
s6389251-iter48.gp   sha256  0e7cf090f141ccba...   identical bytes

BEST is a byte-for-byte copy of iter48, the blanket refret. An open-string regression was called against that file because of its name. Its 310 and 405 open notes are the outlier in the set, and the stem-derived source sits near 29 and 25.

The validator now records a comparison_basis on every promotion, rejection and receipt: stem source, parent, checkpoint, Songsterr reference, beat map, every audio file, the transformation, the authorized edit scope and the exact changed note IDs, all hashed. Promotion refuses without a declared stem source and at least one audio file, because a build compared only to other transcriptions has never been tested for accuracy.

6. Classifying the differences

Difference, source to promoted buildClassEvidence
Rhythm staff capo 2 becomes capo 0 Supported correction pitch support 24.7% → 64.9%
Rhythm staff moves to the correct stem Supported correction owner agreement 45.6% → 71.8%
Lead staff loses 2 notes, 844 to 842 Unresolved ambiguity below this audit's resolution
Struck attacks rise, 1387 to 1447 Unresolved ambiguity attack density unmeasured, see below
iter48's blanket refret, 310 and 405 open notes Unsupported change no audio evidence offered

7. The repair the audio licensed

The physical gate held one IMPOSSIBLE_SPAN, at bar 62.938 on the Rhythm staff: s0f11 s1f4, sounding 47 and 49, a 7-fret span against a 4-fret hand at 128 bpm. The gate's own alternative search reported that no complete voicing of those two pitches is narrower, so no refret could fix it. The gate said the shape or the transcription is wrong, and the audit is what told the two apart.

Pitch, at t = 106.580 sSalience LSalience R vs +1vs tritonevs wrong time
47, in the Rhythm's own stem (R)29.7535.88 +6.1+12.0+5.8
49, in the Rhythm's own stem (R)37.4731.87 +4.6+6.6−18.0
49, in the Lead's stem (L)37.4731.87 +7.3+18.5−17.5

Pitch 47 passes all three controls in the Rhythm's stem. Pitch 49 fails the wrong-time control by 18 dB in both stems, meaning a randomly chosen instant carries more energy at that pitch than the written moment does, and it is louder in the Lead's stem. The Lead staff writes pitch 49 at 246.750 and again at 248.250, one beat either side. This is the documented failure of the pipeline: two guitars written onto one staff.

One note removed, Note id 2407, Rhythm staff, beat 247.750. Span 7 becomes span 0. Collateral drift across all five tracks: zero beats changed. Pitch 49 remains written at 240 other positions, so no pitch left the music and Tier 1 preservation passes.

Gate verdict moves FAIL to REVIEW and the hard profile is clean: same-string 0, tie-inconsistent 0, impossible spans 0, octave artifacts 0. Re-measured against the stems, the removal also nudged accuracy up: Rhythm pitch support 64.9% to 65.8%, wrong-time separation 75.5% to 76.4%.

Reassignment to the Lead staff was rejected. Pitch 49 fails its wrong-time control in the Lead's stem too, so moving the attack across would keep an unsupported attack rather than resolve one.

8. Working it to convergence

The gate does not fail an interior-string gap or a suspect ownership. It says the shape "needs positive audio evidence of fingerpicking or hybrid picking". That is a request for evidence, and nothing in the pipeline could answer it before, because every check compared one transcription to another. The audit can answer it.

Each flagged chord was adjudicated note by note in the stem its staff actually lives in.

Verdict on a flagged chordInterior gaps Suspect ownershipWhat it means
ONE_HAND5 of 1510 of 21 every note supported and owned by this staff, so the skipped string is real fingerpicking
SPLIT5 of 153 of 21 some notes belong to the other guitar, so the gap is the seam between two players
UNSUPPORTED5 of 158 of 21 a note fails its controls in both stems, so nothing in the audio explains it

Where exactly one note failed while the chord kept a supported partner, that note was removed and the gate judged the result. Nothing advanced on assertion: every step is a real promotion against the previous build, and a refusal would have stopped the run.

BuildBarRemovedWrong-time margin NotesHand skipReceipt
chain5062.938Rhythm p49−18.0 dB 173263.0%61f91733eca5ebc9
chain5152.688Lead p73−22.0 dB 173162.8%8455430a02cb146e
chain5229.188Lead p57−12.0 dB 173062.8%37298b31c33f6ca6
chain5315.438Rhythm p61−8.6 dB 172962.8%3b0c4a45dacabd71
chain5418.312Lead p73−7.5 dB 172862.8%2fe2d76ca7badcd7
chain5522.812Lead p52−6.1 dB 172762.8%df35c927b25bbf6a
chain5624.312Lead p52−2.6 dB 172662.7%654badcfb1f4d084
chain5721.938Rhythm p50−2.4 dB 172562.5%abbb1efe148cec82
the panning cue is dropped here, and the remaining rounds decide by pitch alone
chain5879.5Rhythm p49−5.8 dB 172462.4%737d873bd0624759
chain5986.875Lead p56−1.0 dB 172362.4%4a2356d824e70f1e
chain6028.812Rhythm p64−12.3 dB 172262.3%c4c2040f0b9b82be
chain6114.188Rhythm p68−3.4 dB 172162.1%b4d2b790772bbb71
chain6217.188Rhythm p57−3.8 dB 172062.1%14d1a88227276c57

Dropping the panning cue changed the answer

The adjudication above originally decided whether a chord was two guitars by comparing how loud each note was in each stem. That is the cue this recording does not carry. Re-run deciding a note only on whether some stem explains its pitch, the SPLIT class disappears entirely:

RuleEvery note realSplit across guitars Unsupported
with panning, as first run15 of 36813
pitch only, no panning26 of 36010

Eight chords had been called two guitars on 2 to 3 dB of noise. Under the pitch-only rule every note in them is explained by the audio, and the finding evaporates. That correction is the reason the last five promotions were reachable at all.

The evidence was re-derived from the audio after every round rather than reused, so the list shrank as the tab improved: 43 flagged findings became 37, then 36, 35, and finally 33. The run stopped because the rule found zero remaining candidates, not because a budget ran out. Thirteen promotions, each one a real gate decision against the build before it.

Accuracy rose while notes came out. Lead pitch support 65.5% to 67.0% and Rhythm 64.9% to 65.0%, against ceilings of 84.0% and 77.5%. Thirteen notes left the tab across thirteen promotions, each licensed by its own measurement and each leaving its pitch elsewhere in the music. 25 of the 33 chords the gate asked about now carry positive evidence that every note in them is real.

9. Why PASS is out of reach for this artifact

The gate holds at REVIEW rather than PASS, and the reason is a single diagnostic tier. Reading the gate's own thresholds, PASS needs hand skip at or under 40%. Both staves sit above it.

StaffSkipping chordsHand skip Same pitches, contiguous voicing exists No contiguous voicing at any fingering
Lead Guitar80 of 12164.5% 4238
Rhythm Guitar89 of 14360.1% 5930

So the tier is mechanically reachable. Re-voicing those 101 chords onto contiguous strings, without altering a single pitch, would put Lead at 31.4% and Rhythm at 21.0%, both under the threshold.

Every recorded attempt at that re-voicing broke a tier the gate ranks higher. This is not a prediction. It is what the checkpoint ledger already holds, from earlier runs:

The gate is behaving consistently. It ranks pitch preservation and fret position above hand comfort, and a mass re-voicing trades the first two for the third.

The audio cannot license the relocation, and this is the hard limit. Every check on this page answers a question about pitch: is this pitch sounding, at this instant, in this stem. A re-voicing changes none of that. The same pitch fretted at s1f9 or at s0f14 produces nearly the same sound, and the timbral difference between two fingerings of one pitch sits far below what a Demucs guitar stem preserves. The recording does not contain the information the position gate needs.

So the blocked operation is exact: re-voice 101 chords onto contiguous strings, and satisfy Tier 1b position for each. The missing evidence is per-note fingering evidence, which no measurement of this audio can supply. Methods attempted: per-note peak salience across six partials in both stems, three controls, a synthetic ceiling, and per-chord adjudication. All of them answer pitch, and none answers fingering.

Closing that gap is a decision rather than a measurement. It means accepting a blanket refret whose last outing measurably degraded the transcription, and the ledger holds the receipt for that.

10. Still open

Attack density is not established for any of the three. The onset detector finds 387 onsets in the left stem and 321 in the right. All three tabs write between 700 and 1076 attacks per staff. Even on the synthetic control, where the answer is known, only 86.5% and 89.9% of written attacks matched a detected onset and roughly 75% of detected onsets were explained. The detector under-detects in dense material, so this number cannot yet separate an over-written tab from a limitation of the detector.

Timing cannot be resolved finer than 23 ms. On the synthetic control the median timing error is exactly one analysis hop, which is a resolution artifact rather than a real offset.

The low register is unmeasurable from these stems. 102 Lead notes and 36 Rhythm notes in c-tied.gp sit below 130 Hz, and the Demucs guitar stem keeps roughly 1.32% of the mix energy at 60 to 90 Hz. Those notes are reported as unmeasurable rather than absent. Settling them needs the source mix, which was not on this machine.

Hand skip sits at 62.1%. Every hard gate is clean and the gate labels hand skip a diagnostic to be read after the gates. It is the last tier still in the uncorrected band, which is why the artifact holds status best_validated_so_far rather than BEST.

8 chords remain unexplained, and each has a stated reason removal is not evidenced. Five hold no supported note at all, so a removal would empty the chord rather than repair it. Three have a POSITIVE wrong-time margin, meaning they fail a pitch control rather than showing the absent-note signature that every removal here was licensed by. They are named with bars and margins in interior_evidence_c62.json, and they need a chord-level decision rather than a deletion.

11. Method

One question per note, never a bar average. For each written attack a single high-resolution spectrum is taken from a 150 ms window at the note's mapped time, zero-padded to 0.67 Hz per bin. Salience sums the peak magnitude within 40 cents of the first six partials and divides by that window's own median magnitude, so loud and quiet passages compare. Every hypothesis for a note is read from the same spectrum.

Three controls run on those same spectra, and they are reported before any result:

Staff-to-stem assignment is measured rather than assumed, by comparing median salience across both stems for every note on a staff.

12. Provenance

Artifact
s6389251-chain62.gp, promoted
Artifact sha256
b73b663435d54803ea98616d8f8a5b826b2ae899826e14ff0d17c8a2d9730521
Gate sha256
ece41376b1cd8f7f
Receipt run_id
14d1a88227276c57
Gate verdict
REVIEW · preservation PASS · position PASS · hard profile clean · 1720 notes · hand skip 62.1%
Ledger status
best_validated_so_far, so the word BEST is not licensed
Replaced
s6389251-chain61.gp, thirteenth in a chain from chain49 · 78366507417966a9
Transform
unsupported-note-removal-64750
Edit scope
Rhythm Guitar beat 64.750 only
Changed note ids
1 id per promotion, 13 notes across the chain
Stem source
c-tied.gp · e14adddf6520eea8
Songsterr reference
9bad6f45f3d943d1
Beat map
beats_to_seconds.json · 8e216f1ef78f6041
Audio
gtr_L.wav 85c516ca1d4abc3e · gtr_R.wav 474ef56b8debfbbe
Basis declared
true

Reproduce

python3 audit_accuracy.py --gp c-tied.gp \
  --left gtr_L.wav --right gtr_R.wav \
  --beat-map beats_to_seconds.json --out audit_c-tied.json

python3 synth_control_render.py --gp c-tied.gp \
  --beat-map beats_to_seconds.json --seconds 172.5 \
  --out-left synth_L.wav --out-right synth_R.wav

python3 repair_span_247750.py s6389251-chain49.gp s6389251-chain50.gp

python3 impossible_gate.py s6389251-chain50.gp --item kilgore-trout \
  --source c-tied.gp --checkpoint s6389251-chain49.gp --promote \
  --stem-source c-tied.gp --audio gtr_L.wav --audio gtr_R.wav \
  --beat-map beats_to_seconds.json --changed-notes 2407 \
  --transform impossible-span-removal-247750 \
  --edit-scope "Rhythm Guitar beat 247.750 only" \
  --license-note-removal "<the audio evidence above>"