A lot of these songs have two guitars playing at once. One often plays the tune on top (the lead), the other plays the chords underneath (the rhythm).
The wrong way to split them is by left and right speaker. Both guitars are on both sides, so that never really separates them.
The right way is to look at the notes. On the song Gene, we had every note written out for each guitar, so we could pull them cleanly apart. That worked well.
On the other songs we do not have the notes written out yet. A computer can guess the top tune and pull just that thin line out, but it misses most of the second guitar. So for a clean job, each song first needs its notes written down, one song at a time.
The Ship, guitar part split
Separating the two guitars by their parts. Stereo pan cannot do it. 11 tracks, stems from htdemucs_6s.
Two quality tiers. A chart-based split (song has a Lead/Rhythm transcription) gives a true, full two-guitar separation. An automatic split (no chart) pulls only the dominant melody line, so it stays thin and captures far less than a full second guitar. Only Gene has a chart today.
Hear the difference (A/B)
3 Gene, chart-based split TRUE SPLIT
Driven by the hand-corrected Lead/Rhythm MIDI. corr(LEAD,RHYTHM)=0.30, LEAD tracks the Lead part at r=0.68. Full-bodied lead.
2 Flake of the year, automatic split AUTO / THIN
Driven by dominant-melody tracking (no chart). corr(LEAD,RHYTHM)=0.48, lead follows the melody at 0.68, but lead RMS 0.008 vs rhythm 0.056: a thin melodic line that captures far less than a full second guitar. Validation against the curated Gene lead: envelope corr only 0.08.
Album status (11 tracks)
Track
Guitar stem
Chart
Split
1 Seedy Shade
yes
no
queued (auto)
2 Flake of the year
yes
no
auto done (thin)
3 Gene
yes
yes
true split done
4 Six Feet Under
yes
no
queued
5 Sleep Vs Death
yes
no
queued
6 Good Morning Captain
no audio
no
no source
7 MOP
yes
no
queued
8 JGBFTL
yes
no
queued
9 MHL
yes
no
queued
10 Trapped in Wonderland
yes
no
queued
11 Ambulance
yes
no
queued
Why pan cannot do this, and what actually can
Not pan. The two guitars are not panned to separate positions, so a left/right or azimuth slice only re-cuts the stereo field. The real separation reads the notes.
Chart-based (true split). A per-song Lead/Rhythm transcription drives a score-informed Wiener mask. This is what made the Gene split full and clean. Every track can reach this once it has a chart.
Automatic (thin). With no chart, dominant-melody tracking pulls the single most prominent line and leaves the rest as rhythm. Honest for a melody/accompaniment split. It captures far less than a full two-guitar separation. Numpy-only, no pan.
Splitter: album_guitar_split.py (numpy harmonic-salience, sidesteps the librosa/numba break on this box). Chart pipeline per song: stems, transcribe Lead/Rhythm, clock-fix, then the score-informed split used on Gene.