Is There A Second Guitarist?

Appleseed Cast, Blind Man’s Arrow and Kilgore Trout. Measured 2026‑09‑07 on the Dr Wu iMac.

Every Appleseed tab ships with two guitar staves. The standing upload rule says the staff count must match the number of guitarists the recording actually has. This page asks whether the recording has two, using two different separators, and every number carries its own chance control.
What is here
  1. The question, and why it decides the upload shape
  2. What was measured
  3. Route one: the demucs pair
  4. Route two: the Moises pair
  5. The notation’s own answer
  6. Control 14, the test that settles it
  7. Each staff against its stem
  8. Verdict
  9. What is live right now
  10. Reproduce it

01The question

A staff count is a factual claim about the recording

Every tab that ships keeps BASS, DRUMS and VOCALS, plus ONE OR TWO guitars matching the number of guitarists the recording actually has. Never more guitar staves than players. detector_controls.py, standing upload rule

The governing rule in the impossible-guitar-parts skill is that a valid transcription must explain what each guitarist could physically have played. Two staves assert two players. If the recording holds one guitarist, the second staff is a claim with nothing behind it, and the fretboard solver then contorts one hand to reach notes it thinks two hands played.

So the staff count is not a formatting preference. It is a measurable statement about the audio, and it is measurable before a single note is re-transcribed.

02What was measured

Two separators, one song each, plus the notation itself

SourceSongLanes usedDuration
Demucs htdemucs_6sBlind Man’s Arrowguitar.wav, other.wav, drums.wav218.69 s
Moises, role splitKilgore TroutLead Guitars, Rhythm Guitars172.48 s
Songsterr live tabBlind Man’s Arrow s6389274r8953534, 5 tracks82 bars
Songsterr live tabKilgore Trout s6389251r8954002, 5 tracks101 bars

The eleven Moises lanes were checked first for the obvious failure, which is an exporter writing the same audio eleven times. All eleven md5 hashes differ and all eleven run 172.477823 s, matching the demucs source at 172.46 s.

Every number below carries a rotation null

The skill’s hard gate is that a detector is not believed until a control has run, because in one session six audio detectors were built and five were wrong in a way only a control caught. So each measurement here is repeated on the same audio shifted in time by 17, 41, 73 and 101 seconds. A real relationship beats its own shifted copy. One that does not beat it was chance.

03Route one: the demucs pair

guitar.wav against other.wav on Blind Man’s Arrow

The 2026‑08‑22 Kilgore proof established this pair as the two‑guitar candidate, and left one question open for the ear: demucs other is a catch‑all lane, so being independent of the guitar lane does not make it a guitar. On Blind Man’s Arrow it is not even independent in the useful direction.

MeasureMeasuredRotation nullSeparationReading
Guitar attacks near an other attack9.4%9.6%−0.2 ptsCHANCE
Onset‑envelope correlation−0.019+0.038−0.057BELOW CHANCE
Activity overlap ratio1.00×1.00×0.00INDEPENDENT
other silent below −60 dB59.0%——MOSTLY ABSENT
other level while guitar plays−66.2 dB——own active median −30.0 dB

There is a trap here that the skill already records, and it is the reason this result cannot be read as “there is only one guitarist.” Demucs separates by instrument class, so two guitarists playing at once both land inside guitar.wav. The honest conclusion is narrower: other is not the second guitar, and this pair cannot answer the ownership question at all.

04Route two: the Moises pair

Lead Guitars against Rhythm Guitars on Kilgore Trout

Moises splits by role rather than by instrument class, which is exactly what the 2026‑08‑22 findings asked for. The lanes it returned do not hold two performances.

Lead Guitars−44.2 dB 92.4% silent, 61 onsets
Rhythm Guitars−21.9 dB 3.2% silent, 230 onsets
Lead active outside Rhythm0.0% never once alone

Lead is active in 16.9% of frames, and every one of those frames sits inside Rhythm’s own activity. The lane never holds the stage by itself for a single frame in 172 seconds. Its activity overlap with Rhythm is 1.06× the independence expectation, which is chance, so the two lanes are not taking turns either.

A hypothesis I had to withdraw

Onset coincidence between the two Moises lanes reads 0.0% in both directions against an 18.9% null, and my first reading of that was that Moises had partitioned one performance into alternating halves. The activity test refutes it. Ratios of 1.06× and 1.00× are chance, and chance is not alternation. The correct description is narrower and it is the one above: Lead is a low‑level residue lifted from inside the Rhythm performance.

This agrees with something the skill had already written down. audio_accuracy_audit.py refuses to print an ownership number at all, because ownership_audit.py measured the lead‑versus‑rhythm split separating by register rather than by player, at +0.2651 against a shifted‑time control of +0.2766. Two independent routes, the same refusal.

05The notation’s own answer

What the two staves contain, before any audio is consulted

On Kilgore the 2026‑08‑22 pass found the two staves overlapping in 8 bars and identical in 8 of 8, a per‑bar Jaccard of 1.000. Blind Man’s Arrow fails differently.

MeasureBlind Man’s ArrowReading
Bars with notes, staff 0 / staff 182 / 82both play the entire song
Notes, staff 0 / staff 11051 / 1056near‑equal density
Bars note‑for‑note identical0 of 82not a duplicated staff
Mean per‑bar Jaccard0.230interleaved, not doubled
Pitch‑multiset Jaccard, whole song0.851same note vocabulary
Pitch range, staff 0 / staff 139–82 / 39–82identical range

Two staves drawing from the same note vocabulary across the same range for all 82 bars, agreeing in no bar completely and in 23% of content on average, is one body of material dealt out into two hands. That shape is consistent with two guitarists doubling each other. It is equally consistent with one transcription split down the middle, so the notation alone cannot close the question.

06Control 14, the test that settles it

An added staff must cover onsets nobody was covering

An added or “upgraded” staff must COVER ONSETS NOBODY WAS COVERING. yield = new_coverage / added_attacks. Below 0.05 is filler. detector_controls.py, control 14

This is the test that does not care which separator failed, because it never uses the second lane. It asks the recording directly whether the second staff earns its place, and it was run in both orders so neither staff got the easier job by accident.

Base staffStaff addedNew onsetsAttacks addedYieldRotation nullSeparation
Distortion GuitarOverdriven Guitar+436860.06270.0911−0.0284
Overdriven GuitarDistortion Guitar+567160.07820.0957−0.0175

measured yield   the same staff rotated to a random time position

Distortion added to Overdriven

Overdriven added to Distortion

Bars scaled to a 0.10 yield. In both orders the null bar is longer than the measured bar.

Both orders fail their own control

Adding the second guitar staff covers fewer new onsets than that same staff covers when it is slid to a random position in the song. The second staff is not reaching material the first one missed. Combined, the two staves account for 226 of 478 detected onsets, which is 47.3%, and the second staff carries none of that gain beyond chance.

07Each staff against its stem

Including the control that shows the method works when the answer is yes

A skeptic’s objection belongs here. An onset detector on a dense distorted guitar is far weaker than on drums, so a low guitar score could be the detector rather than the tab. The drum track answers that objection, and the symmetry of the two guitar staves answers what is left of it.

StaffStemRecallNullSepPrecisionNullSep
Drumsdrums.wav60.4%30.9%+29.463.6%32.6%+31.0
Distortion Guitarguitar.wav25.6%21.1%+4.538.3%31.5%+6.7
Overdriven Guitarguitar.wav24.8%20.5%+4.335.6%29.4%+6.1
Overdriven Guitarother.wav8.9%9.5%−0.732.3%34.6%−2.3

The drum row is the known‑good control

Same script, same tolerance, same null construction, and the drum staff clears its control by +29.4 and +31.0 points. The method detects a real alignment when one exists. Whoever built that drum track built it against this recording.

The two guitar staves then score +4.5 / +6.7 and +4.3 / +6.1. They are statistically interchangeable. Same stem, same detector, same difficulty, and no measurement separates one from the other. Two staves that the recording cannot tell apart are not two distinguishable players. And staff 1 against other.wav lands below chance in both directions, so the second staff has no home in the second lane.

08Verdict

What is supported, and what is refused

SUPPORTED  The drum transcription is real

Blind Man’s Arrow drums clear their control by roughly +30 points on both recall and precision.

SUPPORTED  The grid is right

82 bars at 90 bpm in 4/4 is 218.67 s against a recording of 218.69 s. The notation lines up with the record to within 20 milliseconds over three and a half minutes.

REFUSED  The second guitar staff

It fails control 14 against its own rotation null in both orders, it is statistically interchangeable with the first staff against the same stem, and it has no independent lane in either separator. Nothing measured here supports the claim that the recording holds two distinguishable guitarists.

NOT SHOWN  That there is only one guitarist

This is the limit worth stating plainly. Demucs separates by instrument class, so two guitarists both land in one lane, and the Moises lead lane is a residue rather than a player. Absence of separable evidence is not evidence of one player. What is established is that no available separation supports splitting this song across two staves, which is the decision actually on the table.

09What is live right now

Measured from the reconstructed live files, not from a prior session’s notes

TabLive revisionHard failuresGate verdict
Blind Man’s Arrow s6389274r89535340REVIEW hand skip only, a diagnostic
Kilgore Trout s6389251r89540022FAIL IMPOSSIBLE_SPAN ×1, TIE_INCONSISTENT ×1

Kilgore is failing in public

Revision r8954002 was published at 23:17 UTC on 2026‑09‑07 and its description addresses the bar‑34 span only. The gate still reports a hard failure on staff 0, and it now includes a TIE_INCONSISTENT the description does not mention. Queued as q‑2026‑09‑07‑e1ea9b. The fix needs phrase lookahead across the tie chain rather than another local patch, which is what the skill prescribes and what an earlier local patch already proved by turning 0 hard failures into 40.

10Reproduce it

No browser and no login, the live tab is fetchable from the public API

#  pull the live revision and rebuild it as a gradeable file
python3 fetch_live.py 6389274 s6389274_LIVE.gp5
python3 ~/.claude/skills/impossible-guitar-parts/gp5_to_gpif.py \
        s6389274_LIVE.gp5 s6389274_LIVE_gpif
python3 ~/.claude/skills/impossible-guitar-parts/impossible_gate.py s6389274_LIVE_gpif

#  the two-guitar battery, every number against a rotation null
python3 independence.py  "…/03 - Blind Man's Arrow/guitar.wav" \
                         "…/03 - Blind Man's Arrow/other.wav"
python3 partition_test.py "…/guitar.wav" "…/other.wav"
python3 tab_twin_test.py  s6389274_LIVE.gp5

#  control 14, run in both staff orders
python3 marginal_value.py s6389274_LIVE.gp5 "…/guitar.wav" 90

#  each staff against its stem, drums included as the known-good control
python3 staff_vs_stem.py  s6389274_LIVE.gp5 "…/drums.wav" 3 90

The live‑tab fetch uses the vendored s2gp module at ~/.claude/skills/songsterr-upload/vendor/s2gp/, which derives the CloudFront path from the public meta API. The scripts above are kept beside this page in the session scratchpad.

Measured 2026‑09‑07 on Jacks‑iMac. Sources: demucs htdemucs_6s lanes for Blind Man’s Arrow, Moises role split for Kilgore Trout, and Songsterr revisions r8953534 and r8954002 reconstructed from the public API. Governing skill: impossible-guitar-parts. Controls: detector_controls.py.