Joni Mitchell · Hejira · 1976 · bass by Jaco Pastorius

Finding Jaco’s natural harmonics across two songs, and three wrong answers on the way

Brandon named three nodes by ear: 7th fret D string, 5th and 9th fret G string. Getting them into the tab took four rebuilds, because each pass was wrong in a different way: the edit corrupted 112 measures, the detector could not tell bass from guitar, and one of the three nodes had been written down as the wrong string entirely.

On this page
  1. The three nodes
  2. Wrong answer 1: a shared-note edit
  3. Wrong answer 2: the nylon guitar
  4. Wrong answer 3: the wrong string
  5. The test that works
  6. What went into the tab
  7. The open decision

1. The three nodes

It does do the 7th fret D and 5th and 9th G.

Brandon, correcting me: the letter is the string. Every earlier pass in this project read that third one as a D string node, which is section 4.

Played fretless, on natural harmonics. The letter is the string. Sounding pitch follows from the tuning alone, so each node is a fixed frequency to look for.

NodePartialSoundsMIDIHzIn B major
D string, 7th fret3rd, +19A357220.0no
G string, 5th fret4th, +24G467392.0no
G string, 9th fret5th, +28B471493.9tonic

2. Wrong answer 1: editing a note that is really a shared definition

A <Note> in a .gp file is not a note

GPIF deduplicates. <Note> and <Beat> elements are shared definitions referenced by id from many places. In this file 181 of 295 Note elements and 293 of 1299 Beat elements are referenced more than once, and note 147 alone is referenced from 32 positions.

A first build added the harmonics by modifying notes in place, on the rule that this is structurally neutral and leaves the note count unchanged. Both true. Measured through Songsterr's own /data/convert, the converter the site uses on import:

Converted partUntouchedIn-place editCopy-on-write
Bass notes493 762 +269 497
Harmonics0 383 112 measures 8 8 measures
Lead / Rhythm / Drums / Vocals562 / 1542 / 1472 / 668 unchangedunchanged
bar   -> voice     unshared here, edit its <Beats> list directly
voice -> beat      clone if refcount > 1, then it is private
beat  -> note      always clone, then it is private

The gate that was missing

Every structural check passed with this true, because bar durations never changed. Reference count is the only thing that separates a surgical edit from a broadcast edit. The gate now asserts each edited note is reachable from exactly one position.

3. Wrong answer 2: the detector could not tell bass from guitar

The first detector ran on bass.wav alone, and its test compared the harmonic band against the open string's own fundamental inside that one stem. That separates a harmonic from a fretted note and says nothing about which instrument made the sound. Demucs bleeds, so a fingerpicked nylon note arrives in the bass stem as a convincing near-pure tone.

G natural does not occur in this song. Not once.

Across all five tracks of the transcription, 2,981 pitched notes, zero G naturals. The song is B major. Meanwhile the lead guitar's single most common note is G#, 192 of its 445, which is 100 cents above the G4 detection band, so a fingerpicked nylon G# reads as 392 Hz.

4. Wrong answer 3: the third node was the wrong string

Every earlier pass had recorded the third node as D string 9th fret. Brandon said G string 9th fret. Those are not close.

Written down asSoundsRole in B majorDetections it produced
D string 9th fretF#4, 370.0 Hzdominant 12 confident events, for a node never named
G string 9th fretB4, 493.9 Hztonic 2

B4 is also one of the three pitches Blackburn's chart 498 engraves in its harmonic passage (F#4, G#4, B4), which is corroboration the wrong node never had.

5. The test that works, measuring purity

A stopped E3 puts its third partial at 494 Hz, which is B4, so any threshold on "how much energy is measured at B4" reads a fretted note as a harmonic. A natural harmonic is close to a pure tone, so its own 2nd and 3rd partials are tiny. That is measurable, and it calibrates against notes the transcription already writes.

purity = E(f0) / max( E(2*f0), E(3*f0) )

  ordinary fretted bass note   0.8 to 1.3     (measured on 5 notes from the tab)
  natural harmonic             9 to 98

With the target also required to beat every note whose overtone series reaches it (T-12, T-19, T-24, T-28 and the open string), the whole song gives:

NodeSoundsEventsBars
D string 7th fretA314 5, 6, 8, 9, 13, 15, 20, 21, 22, 44, 79, 129
G string 9th fretB421, 11
G string 5th fretG40 nothing anywhere in the song

Ten of the fourteen A3 events fall in bars 5 to 22, the opening minute. That is the "few times, a certain section" Brandon described. The G string 5th fret node produces nothing, which agrees with the song containing no G naturals at all.

Is it in the transcription already?

Yes, as ordinary stopped notes. The bass part has 11 notes at G string fret 9 (written E3) and one at D string fret 7, and bar 13 writes A3 at G string fret 14. The tab already uses the node positions.

Tested at all 12 of those spots, the fundamental is present and purity runs 0.5 to 1.2. Those are stopped notes played as written.

6. What went into the tab

Hejira harmonics9 A3 ×8, B4 ×1
Refuge harmonics15 G4 ×13, A3 ×2
Other tracks changed0 lead, rhythm, drums, vocals identical
Gate, both songs17 checks each, 0 failed

Confirmed by feeding each file to Songsterr's own converter, the one the site uses on import.

SongTabHarmonicsBreakdownBass positions
Hejira60725649 D str 7th ×8, G str 9th ×1471 to 471
Refuge of the Roads607257815 G str 5th ×13, D str 7th ×2656 to 656

The key of each song accounts for which node appears

The G string 5th fret node produces nothing at all in Hejira and 13 events in Refuge, which is the strongest evidence that it is a real detection rather than a systematic artefact.

HejiraRefuge of the Roads
pitched notes in the transcription2,9816,170
G naturals0880, 14.3%
best major-scale fitE major, 96.8%F major, 87.5%
G string 5th fret harmonics found013

Two more fixes the second song forced

The guitar check had to become a flag rather than a veto. Vetoing every onset where a guitar track sounds the same pitch cut Hejira from 14 A3 events to 10, including one at purity 27.0. The guitar tracks are AI output, and Hejira's rhythm guitar plays A natural 109 times, so coincidences are common. A coincidence now decides the case only inside the ambiguous band, purity below 9.

The bar has to come from the detector. Hejira drifts 0.78 percent between tab and audio; Refuge drifts 5.3 percent (418.9 s of tab against 398.0 s of audio), so a builder deriving the bar from tempo alone lands about 10 bars out by the end.

Seven detections were left out on purpose

They fall in bars where the bass tab is silent, and the build was turning each into a whole-note harmonic. A whole note is 2.82 s against detections of 0.09 to 0.51 s. Bars 1, 5, 6, 8, 9 and 130 are reported here instead, since the stem gives an onset and gives no duration a whole note could honestly represent.

7. The open decision

Nothing is published

Tab 6072564 was authored by 076runner. Import changes editor state only. Verified after every import: revisionId 7930670, revision count 1, 5 tracks.

Submitting a revision overwrites a public tab, so it stays Brandon's act. The Submit control was enabled throughout and was never pressed.

Built 2026-08-08. Bar numbers are 1-based. Files in ~/Projects/_outputs/hejira-bass-fix/: the tab hejira_bass_HARMONICS_v6.gp, builder build_v4.py, gate verify_v4.py, per-stem attribution stem_attribution.py, guitar cross-check guitar_alibi.py, node detection nodes_v2.py and the event list harmonic_events_v3.json.

Jaco played bass on 4 of the 9 tracks on Hejira: Coyote, Hejira, Black Crow, Refuge of the Roads. Black Crow is tuned a half step down, Eb Ab Db Gb, which any tab built for it has to carry.