method · from the written analyses to the audio

Reading a record the way these analyses do

Source documents: 6 theory analyses (Shiner × 3, Hooray for Earth, Phish, plus a riff tab sheet) · Worked example: Shiner, “The Truth About Cows”, The Egg, 2001 · 201 s of audio · 8 of 10 written claims confirmed straight from the mix

These documents share one habit that makes them work: they read the stereo field as structure. “Gtr 1 (right ear), Gtr 2 (left ear)” is the analytical premise the rest of the page rests on. That habit is also the one thing the existing stem pipeline throws away, because Demucs returns a single mono guitar stem and the two parts are gone before the analysis starts.

What this page is. The written analysis is treated as the answer key and the audio as the input. Every claim below became a measurement with an honest verdict, including the two that the full mix cannot settle. Nothing here is asserted from listening or from memory. Where a measurement cannot isolate a claim it is marked untested, not quietly upgraded. The engraved notation was recovered in a second pass and is reported below.

confirmed 8 consistent 1 untested 1 contradicted 0

The measurement that carries the method

+1.0+0.7+0.3+0.0 A / F riffB centreA / FB centreA centreG appearsoutro A / F L / R correlation · 0.5 s windows

Teal line is windowed left/right correlation. A centre-panned or mono-summed mix rides above 0.95. This track sits at a median of 0.65 and touches -0.045, which is two independently tracked parts, one per side. Red dots are the moments the two parts genuinely diverge. Shaded bands are the sections below.

stable low-register roots · held 0.6 s or longer A at 0.93s for 0.65sA at 2.14s for 0.74sA at 3.34s for 0.65sF at 4.46s for 0.93sA at 7.15s for 0.74sF at 9.38s for 0.65sA at 10.68s for 0.65sA at 11.98s for 0.65sA at 17.0s for 0.65sA at 20.34s for 1.02sA at 21.92s for 0.65sA at 23.13s for 0.65sA at 25.45s for 0.74sA at 26.66s for 0.93sA at 28.14s for 0.65sF at 29.26s for 0.74sA at 30.56s for 0.74sA at 31.76s for 0.74sA at 35.57s for 0.65sA at 36.78s for 0.65sA at 37.99s for 0.84sA at 40.4s for 0.93sA at 41.7s for 0.93sA at 46.72s for 0.74sA at 48.11s for 0.65sA at 50.43s for 1.02sB at 51.83s for 9.66sB at 63.53s for 4.09sA at 68.08s for 1.95sF at 71.42s for 1.02sA at 73.1s for 2.04sF at 76.35s for 1.11sA at 77.93s for 2.51sF at 81.36s for 1.11sA at 82.85s for 2.41sF at 86.29s for 1.02sA at 87.77s for 1.02sA at 89.44s for 0.84sF at 91.3s for 0.84sA at 92.79s for 2.51sE at 95.39s for 0.74sF at 96.13s for 1.76sB at 98.92s for 4.27sB at 103.28s for 4.09sB at 107.65s for 0.84sD at 111.27s for 0.65sB at 111.92s for 2.51sA at 115.08s for 0.84sA at 117.86s for 1.3sB at 120.0s for 0.65sA at 121.95s for 1.3sD at 125.29s for 0.65sA at 129.94s for 0.65sF at 131.33s for 0.74sF at 134.12s for 0.65sA at 135.7s for 0.65sA at 141.08s for 0.84sA at 143.87s for 0.84sD at 147.59s for 0.65sA at 149.72s for 1.67sF at 153.07s for 1.11sA at 154.55s for 2.41sG at 157.99s for 1.02sA at 159.38s for 2.04sF at 162.73s for 1.11sA at 164.21s for 2.23sA at 168.86s for 0.84sA at 170.16s for 1.02sF at 172.11s for 1.21sA at 173.59s for 2.04sA at 178.52s for 1.21sA at 180.0s for 0.84sF at 181.95s for 0.84sA at 183.34s for 0.93sA at 188.36s for 0.74s

Each block is a low-register root held 0.6 s or longer. A F B G D. The A-to-F alternation and the two B-centred sections are visible without reading a single number.

Every written claim, tested against the mix

confirmedC1

Tempo marking is 98

  • median inter-beat-interval -> 198.77 BPM (librosa tracks the 8th-note pulse)
  • half of that = 99.38 BPM
  • tempogram candidate median = 99.38 BPM
  • closest metrical fold to the written 98 = 99.38 BPM (delta +1.38)
confirmedC2

Two distinct guitar parts: Gtr 1 in the right ear, Gtr 2 in the left ear

  • global L/R correlation = 0.655 (a centred/mono-summed mix sits above ~0.95)
  • windowed correlation: median 0.650, 10th pct 0.447, min -0.045
  • side/mid energy = -6.82 dB (a wide image; a mono mix approaches -inf)
  • 25 of 402 half-second windows fall below 0.35 correlation
confirmedC3

The underlying harmony is A to F

  • stable low-register roots (runs held >=0.6 s, n=75): A:48 F:15 B:7 D:3 E:1 G:1
  • top two roots by hold time = A and F
  • the next root down is B at 7 runs, well behind F at 15
confirmedC4

A and F are two major chords a major 3rd apart

  • measured roots F -> A = 4 semitones (a major 3rd)
  • F up to A is 4 semitones, a major 3rd, exactly as written
confirmedC5

Over A it sounds A mixolydian b6; over F it sounds F lydian (the two modes differ by exactly one note: C# vs C natural)

  • A-chord windows (8): C#=0.394 C natural=0.266 (C# lead +0.128)
  • F-chord windows (9): C#=0.323 C natural=0.448 (C# lead -0.125)
  • differential shift toward C# on the A chord = +0.253
  • A mixolydian b6 = A B C# D E F G | F lydian = F G A B C D E
confirmedC6

When Gtr 1 lands on F, the parts spell out an F chord (F, A, C)

  • F-window chroma ranking: F:1.00 C:0.45 A:0.41 D:0.41 F#:0.40 E:0.37
  • F=1.000, A=0.410, C=0.448. All three sit in the top 5
confirmedC7

The B section gives root, 2nd and flat 3rd (B, C#, D): a minor mode with B as the new tonic; not phrygian, because phrygian needs a flat 2nd and this has a major 2nd

  • B-section chroma: B=1.000 C#(major 2nd)=0.331 D(minor 3rd)=0.372 C natural(flat 2nd)=0.287
  • major 2nd C# outweighs flat 2nd C natural by +0.044 -> phrygian is ruled out, as written
  • full ranking: B:1.00 D:0.37 C#:0.33 C:0.29 A#:0.22 D#:0.18
consistentC8

Across the last three sections the centre drops B minor -> A minor -> G minor, a whole step each time

  • S1 main riff (A/F) root=A (A:17.3s F:2.3s)
  • S2 B-centred root=B (B:13.8s)
  • S3 A/F root=A (A:13.3s F:6.9s E:0.7s)
  • S4 B-centred 2 root=B (B:11.7s D:0.7s)
  • S5 A-centred root=A (A:10.5s F:2.5s D:1.3s B:0.7s)
  • S6 contains G root=A (A:6.1s F:1.1s G:1.0s)
  • S7 outro A/F root=A (A:5.8s F:2.0s)
  • the two B-centred sections are unambiguous: B holds 13.8 s and 11.7 s respectively, and B is a stable root NOWHERE else in the track
  • the A-centred stretch that follows is equally clear.
  • G is the honest gap: the written descent reads the GUITAR parts, and in that section the two
  • guitars play G aeolian against G lydian, and the bass does not settle on G. A full-mix
  • low-register test can corroborate B and A; isolating G needs a guitar-only stem.
confirmedC9

The two guitar parts are largely double-tracked, with occasional differences

  • correlation stays mid-range (median 0.65) rather than near 1.0 (identical) or near 0 (unrelated)
  • that band is the fingerprint of two takes of the SAME part: correlated in pitch content, decorrelated in micro-timing
  • 25 windows drop below 0.35, the moments where the parts genuinely diverge
untestedC10

Guitar is in drop-D tuning

  • strongest partial in the 60-180 Hz band = 110.4 Hz (A2)
  • open low D would be 73.4 Hz (D2); standard low E is 82.4 Hz
  • the peak is the A root, not a tuning indicator. The full mix carries bass guitar in this
  • same register, so this band cannot separate guitar tuning from bass notes. This is NOT a
  • test of tuning; it is reported as untested rather than dressed up as support.

What the engraved notation adds

The staves in these PDFs are vector drawings and the fret numbers are outlined paths, so a text extraction returns the annotation prose and none of the music. Rendering the pages and reading the tab against the exact staff-line coordinates recovers the notes, and they line up with the audio measurement note for note.

The form of the document

Tablature only, no standard staff. Two systems stacked, Gtr 1 (right ear) above Gtr 2 (left ear), rhythm slashes under each, bar numbers in the left margin, tempo and tuning declared once at the head. A handwriting face throughout. The stereo assignment is printed as part of the instrument label, which is what makes it structural rather than incidental.

BarWhat the tab saysSounds
1the A chord Gtr 1: open 5th string, and 7th fret on the 4th string.
Gtr 2: 7th fret on the 4th string, and 6th fret on the 3rd.
A majorA2 and A3 in octaves, against A3 and C♯4. Root and major 3rd, no 5th.
2the F chord Gtr 1: 6th, 5th then 3rd fret on the low string, a chromatic walk down.
Gtr 2: 7th fret on the 4th string, and 5th fret on the 3rd.
F majorG♯2 to G2 to F2, landing under A3 and C4. F, A and C, exactly as the annotation says.

The whole modal move is one finger

Gtr 2 holds the 4th string and shifts the 3rd string from fret 6 to fret 5, which is C♯ down to C natural. That single semitone is the entire difference between A mixolydian ♭6 and F lydian, and it is the exact quantity the audio test measured at +0.253 without any access to the tab. The written analysis, the transcription and the measurement all land on the same note.

Why the persistence filter was the right estimator

The analyst marks G♯ and G as chromatic passing tones that resolve to F. The root tracker keeps only pitches held 0.6 s or longer, so those two were filtered out of the histogram and the structural roots came through clean at A 48, F 15. A human judgement about which notes carry the harmony and a duration threshold agreed, on the same bars, for the same reason.

A hazard for anyone mining these PDFs as text. The text layer silently drops accidentals. “C♯” extracts as “C” and “G♯” as “G”, which turns the sentence “A mixolydian ♭6 has a C♯” into a claim about C natural and inverts its meaning. Any pipeline reading these documents as prose has to render and read the pages, or it will build on wrong pitch data.

The method, move by move

What the analysis doesHow to get it from audio Status
Stereo-field part separationGtr 1 (right ear), Gtr 2 (left ear)Split L and R, and take the side channel (L−R). Windowed L/R correlation says whether there are two parts at all.computableDemucs returns ONE mono guitar stem and destroys this.
Double-tracking detection“a cool double-tracked effect, with some nice occasional differences”Correlation in the 0.4 to 0.8 band is the fingerprint of two takes of one part. Dips mark the bars where they actually diverge.computableGives you the timestamps to go listen to.
Root motion“the underlying harmony as A to F”Low-register CQT, argmax per frame, then keep only runs that HOLD. Persistence, not averaging.computableAveraging chroma over a section gets this wrong; it did in my first pass.
Mode identification by one distinguishing noteA mixolydian ♭6 over A, F lydian over FName the single pitch class that separates the two candidate modes, then measure only that one, chord-window against chord-window.computableThe strongest test in the whole battery.
Chord spelling from combined parts“lands on F, then spells out an F chord (F, A, C)”Chroma restricted to the guitar register over the chord window, ranked.computableReads what the parts sum to, rather than what a chart says.
Missing-third resolution“this chord doesn’t have a 3rd, but the melody has a C natural”Compare the chord window against the vocal line and let the melody supply the quality.needs a vocal stemThe full mix cannot separate the voice from the guitars.
Rhythmic displacement between verses“starts on the ‘and’ of beat 1 instead of the ‘and’ of beat 4”Beat-track, then cross-correlate the onset envelope of verse 1 against verse 2 and read the lag in beats.computableNot built in this pass. The measurement is straightforward.
Meter changes“sounded like a meter change to 5/4, but not totally sure”Downbeat spacing from the onset envelope, reported with its confidence.partly computableThe written analysis flags its own uncertainty here. So should the tool.
Alternate-tonic readings“could also be an E♭/G, or its relative minor, C min7/G”Enumerate every name for the measured pitch-class set and rank by which tonic the bass supports.computableOne sonority, several honest names.
Tuning“Drop-D tuning”Not isolable from a full mix: bass guitar occupies the same register.needs a guitar stemReported untested rather than dressed up as support.
Cross-song reference“like the verse chords of ‘Blow Up the Outside World’”Human. A measured interval pattern can suggest candidates, and the judgement is yours.humanThe part worth keeping human.
Practice exercise from a transcribed lick“fleshing out this pattern over the entire scale”Human, once the lick is transcribed.humanThe Tweezer document’s whole payoff.

The gap this exposes

Demucs is the wrong first step for this kind of reading. Six-stem separation collapses both guitars into one mono guitar.wav. Every observation in these documents about two parts, about double-tracking, about one guitar playing G lydian against the other’s G aeolian, is unrecoverable after that step. The stereo pass has to run on the mix first, and it costs nothing: no torch, no model download, no separation time.

The order that works

1. Stereo field on the raw mix: L, R, mid, side, windowed correlation. This is what tells you how many parts there are and where they split.
2. Root motion by persistence on the mid channel. Sections fall out of this.
3. Mode tests per chord window, one distinguishing pitch class at a time.
4. Then stem-separate, for the things that genuinely need an isolated part: vocal melody, tuning, per-part transcription.

What it cannot do, stated plainly

Tuning. Drop-D cannot be read off a full mix. The bass guitar lives in the same register, so the low band cannot attribute a note to an instrument. This needs a guitar-only stem.

The G section. The written descent B minor → A minor → G minor reads the guitar parts. The B and A centres are unambiguous in the low register. The bass never settles on G, exactly as the document implies when it describes the two guitars pulling against each other there, so a full-mix test corroborates two of the three and should say so.

Anything about the vocal. The missing-third move, where the melody supplies a quality the chord omits, is the sharpest idea in the Shiner “Pills” analysis, and it needs the voice on its own.

Running it

python3 stereo_field.py <song.wav> --out field.json
python3 claim_test.py  <song.wav> claims.json

Both scripts need only librosa, numpy and soundfile. No torch, no model weights, no network.

Source audio

Shiner, The Egg (2001), the full album is on the Black drive, so all three Shiner analyses have their real album audio: “The Truth About Cows” is track 01, “Bells and Whistles” track 07, “Pills” track 10.

Hooray for Earth, “Say Enough”, six stems already separated.

Phish, Tweezer, six stems, on the T7 Shield, which is not currently mounted.