laplacian_segmentation — McFee & Ellis (2014) spectral clustering, the REAL method

The upgraded sibling of plot-segmentation. That page stops at recurrence + agglomerative (the contiguous, bottom-up Ward slice). This one runs the full spectral-clustering recipe, now that every primitive exists in pleco:

beat_track → beat-synchronous feature.chroma_stft + feature.mfcc stack → segment.laplacianSegmentation(k) = recurrence affinity → time-lag median filter → normalized graph Laplacian (linalg.laplacian) → symmetric eigensolver (linalg.eigh) → cluster.kmeans. Its superpower over the agglomerative sibling: a section that RETURNS later gets the SAME label even across a gap — contiguous clustering can never express that.

Proof design (honest — there is no ground-truth boundary fixture for real audio): the synthetic 3-block control below is the hard pass/fail gate — its boundaries MUST land exactly on the planted structure [20, 40]. The real orphans-mix.wav result is the qualitative display; every badge on it asserts only what is verifiable from the output (k distinct labels, strictly-increasing internal boundaries, adjacent segments differ, bit-identical on re-run, and a genuinely recurring section). Feature rows are z-scored so the large-magnitude MFCCs and the [0,1] chroma contribute comparably (the canonical method uses CQT for recurrence and MFCC for the path separately; pleco's single-matrix API needs one balanced stack — documented divergence).

real audio — beat-synchronous z-scored feature stack (12 chroma over 13 MFCC), segment overlay + boundaries

recurrence affinity matrix — the RETURNING section lights up as an off-diagonal block

segment table (label, start, end)