Source confidence: medium

Melody Genealogy — Crate-Digging the Public Domain with Local Search

Insight class: Emergent Capability · Difficulty: Hard · Quality: 4/5 Connected entries: 12 · Tools: Banjo, Radiooooo, Unreal Engine

In short: Build a local, fully offline melody-genealogy engine that does by machine what Chance McCoy does by ear: cluster public-domain recordings into tune families and map how melodies travelled across centuries and languages.

Key fact Detail
What it covers music, education, audio, video production
Tools Banjo, Radiooooo, Unreal Engine
Posts covered 12 posts (1 S-tier, 6 A-tier) · top: 'Shady Grove' — Doc Watson's clawhammer… · Passion Pit's 'Sleepyhead' — sampling Mary… · 'Sally in the Garden' — Crockett's Kentucky…
Creators @6ab3, @chancemccoymusic, @aklmadz
Sources dated May 2024 – May 2026
Difficulty Hard
Prompt system Run-it-yourself prompts
Last verified 2026-10-22

Thesis

Chance McCoy traces Shady Grove back to Child Ballad #81 and Sally in the Garden to a 1929 Brunswick 78 — by ear, one tune at a time. Sample diggers do the same hunt for producer gold, also by hand. Local multimodal search like SentrySearch already finds moments in hours of video from a plain-language query. Point that pattern at Lomax, Prelinger and 78-rpm archives with audio embeddings, and you get a tune family tree plus cleared public-domain samples, each with provenance.


Why it matters

Folk players, music teachers and producers get a searchable map of how melodies travelled across centuries, languages and continents. Producers get a legally clean sample source with a story attached — the opposite of crate-digging your way into a clearance fight.


The evidence — connected entries

'Shady Grove' — Doc Watson's clawhammer D-Dorian and a 400-year melody

Creator: @chancemccoymusic · Tier: S Tools: Banjo

Ground truth — one tune traced through Doc Watson, Jean Ritchie and Child Ballad #81

Chance McCoy plays Doc Watson's clawhammer banjo 'Shady Grove' in modal D-Dorian (pull-offs, drop-thumb at speed) and traces the minor melody to Jean Ritchie's father in Viper, Kentucky, and back to Child Ballad #81, 'Matty Groves'. A deep lineage lesson in one tune.

View original post

'Shady Grove' — from Renaissance ballad to Appalachian standard

Creator: @seanofthesouth · Tier: A

Second witness for the same lineage, from Renaissance ballad to Appalachia

Sean of the South sings 'Shady Grove' and notes it crossed the Atlantic as a Renaissance-era song before Appalachia turned it into an American tune. Full verses (Barlow knife, big fine horse, bare feet) make it a good lyric reference.

View original post

'Sally in the Garden' — Crockett's Kentucky Mountaineers' 1929 modal tune

Creator: @chancemccoymusic · Tier: A

Lineage via a specific 1929 78 and related tune families — the archive layer

Chance McCoy traces 'Sally in the Garden' to the Crockett Family Mountaineers' 1929 Brunswick 78 (Brunswick 291), a West Virginia fiddling family that drove a Model T to California and became 'California's first country stars'. A minor modal oddity among breakdowns, related to the Ozark 'Hog-Eye Man' tunes and Marion Sumner's driving version.

View original post

Shot by Alan Lomax and crew at Nimrod and Molly Workman's home in Mascot, Tennessee, July 26, 1983 — Nimrod workman i...

Creator: @dimestoreradio · Tier: B

Source archive — Lomax field footage of singers at home

Shot by Alan Lomax and crew at Nimrod and Molly Workman's home in Mascot, Tennessee, July 26, 1983. — @dimestoreradio.

View original post

Prelinger Archives — 60K+ public domain ephemeral films

Creator: @6ab3 · Tier: C

Source archive — Prelinger's 60K public-domain films with period audio

60,000+ ephemeral films: educational, industrial, amateur, advertising. Public domain footage goldmine.

View original post

SentrySearch — 100% local Qwen3-VL video search engine

Creator: @6ab3 · Tier: A

The engine pattern — fully local embedding search returning exact timestamps

by ssrajadh — featured by @marc.kaz | 100% local video search engine. Type natural language queries and it finds exact timestamps in your video files. Uses Qwen3-VL embeddings. Perfect for dashcams, security footage, home videos. Zero data leaves your machine. | Python 3.11+ ChromaDB Gemini or Local Tesla dashcam support

View original post

Platonic Representation Hypothesis — embeddings as AI telepathy

Creator: @lizthedeveloper · Tier: A

Theory — shared embedding spaces suggest melodic similarity can be found across sources

@lizthedeveloper riffs on the Platonic Representation Hypothesis paper, framing shared embedding spaces across models as a kind of 'AI telepathy'. Pointer back to the original research paper on vector/embedding convergence.

View original post

Passion Pit's 'Sleepyhead' — sampling Mary O'Hara's 1958 Irish lullaby

Creator: @baauer · Tier: A Tools: Unreal Engine

Payoff case — a 1958 Irish lullaby became a hit sample

Baauer breaks down how Passion Pit's 2008 'Sleepyhead' is built on a sample of Mary O'Hara's 1958 recording of the Irish lullaby 'Óró Mo Bháidín'. Great example of finding sample gold in old folk records.

View original post

Radiooooo — world-map radio for digging samples by country and decade

Creator: @aklmadz · Tier: A Tools: Radiooooo

Demand side — producers openly hunting for sample sources

From a WKCR "Free Samples" interview: a beatmaker says most samples now come from online, mainly Radiooooo, a world map where you pick a decade and a country and it plays a random song from it. A fast way to dig unfamiliar regional records for flips.

View original post

'The Winner Takes It All' in Mandarin — Lilith Liu's ABBA adaptation

Creator: @lilithsomething · Tier: B

Cross-language travel — melody kept, lyrics re-written, a lineage edge

Lilith Liu sings ABBA's 'The Winner Takes It All' with her own Chinese lyrics. Example of lyric translation that keeps melody and emotional arc.

View original post

Ievan Polkka in Russian — the Finnish polka with new lyrics

Creator: @kvashenaya · Tier: B

Another migration — the same polka across languages, hook intact

A Russian-language version of the 'Finnish polka' (Ievan Polkka), keeping the story of Eva dancing against her mother's wishes and the nonsense scat chorus. Shows how a folk dance tune travels across languages.

View original post

From China to Appalachia — Cathy Fink, Chao Tian and Marcy Marxer tour

Creator: @cfinkbanjo · Tier: C

Cross-continent fusion as a living edge in the tree

Tour promo for Cathy Fink, Marcy Marxer and Chao Tian's 'From China to Appalachia' project blending Chinese and old-time music, teasing 'Jasmine Flower'. Mostly dates, little music.

View original post


Action sketch — how to implement this

Pull 200–500 public-domain recordings (Library of Congress and Internet Archive 78s), transcribe pitch contours with a melody extractor, and embed both contours and audio with an open audio model into ChromaDB, following SentrySearch's local layout Test on known families: do Shady Grove / Matty Groves and the Hog-Eye Man tunes land near each other? Have Claude write a lineage-graph view (NetworkX plus a force graph) with timestamped links back to sources Package one cluster as a public-domain sample pack with a provenance sheet and a short video tracing its family; release free and measure producer pickup Falsifier: if known variant families don't cluster above chance in embedding space, the search is noise and the hand method stays the only method


Prerequisites


Key tools and resources

Creators to follow



Prompt system — run this yourself

Everything below is pasteable into Claude Code, Claude, or any agent. Use the one-shot when you want the whole result in one run; use the step prompts when you want to steer. Every step carries its own audit, and the gap audit at the end makes the agent find and fill what it missed.

Mission. Build a local, fully offline melody-genealogy engine that does by machine what Chance McCoy does by ear: cluster public-domain recordings into tune families and map how melodies travelled across centuries and languages. The pieces are a license-verified corpus of 200 to 500 public-domain recordings, pitch-contour and audio embeddings in ChromaDB in the SentrySearch layout, a lineage graph with timestamped links to sources, and one cleared sample pack with a provenance sheet. Done means known variant families cluster above chance (the falsifier), every recording's rights are checked recording-by-recording, and the lineage claims are backed by sources, not vibes.

1 · Deeper, not bigger

Before running anything, make the task deeper rather than larger. Ask: what would a top professional do here that I am not asking for; what is the rawest material; which methods and tools; what, other than the model or me, proves it right. Then ask for exactly that.

Rewritten prompt — ask for exactly that:

You are an ethnomusicologist and a music-IR engineer. Build me a fully local melody-genealogy engine, not a vibes graph.
1. Pull 200 to 500 public-domain recordings from the Library of Congress and Internet Archive 78s. Verify rights recording-by-recording: composition and recording are separate. Drop anything not clearly public domain.
2. Extract transposition-invariant pitch contours (CREPE or pYIN, quantized to intervals) and audio embeddings (a CLAP encoder). Store both in ChromaDB in the SentrySearch offline layout.
3. Cluster both representations. Score them against a labelled ground-truth set of known families from the Child and Roud indices, including 'Shady Grove' / 'Matty Groves' (Child #81) and the 'Hog-Eye Man' tunes. Report precision, recall and adjusted Rand index.
4. Only if families cluster above chance, build a lineage graph in NetworkX with timestamped links to each source recording.
5. Package one cluster as a public-domain sample pack with a per-sample provenance sheet clearing composition and recording.
6. Pre-register the falsifier: if known families do not cluster above chance, the hand method stays the only method.
Return the corpus manifest, embeddings, cluster scores, the lineage graph, and the cleared sample pack.

2 · One-shot prompt

ROLE
You are an ethnomusicologist and a music-information-retrieval engineer. You test similarity against ground truth before you draw a family tree, and you clear rights before you call anything a sample.

CONTEXT
- @chancemccoymusic traces Doc Watson's 'Shady Grove' in D-Dorian clawhammer to Jean Ritchie's father in Viper, Kentucky, and back to Child Ballad #81, 'Matty Groves'; and 'Sally in the Garden' to Crockett's Kentucky Mountaineers' 1929 Brunswick 291, related to the Ozark 'Hog-Eye Man' tunes. He does this by ear, one tune at a time.
- @seanofthesouth: 'Shady Grove' crossed the Atlantic as a Renaissance-era song.
- @dimestoreradio: Lomax field footage of Nimrod Workman at home.
- @6ab3: Library of Congress, Internet Archive 78s and the Prelinger films as public-domain sources.
- @ssrajadh/sentrysearch: a 100% local video-search engine, type a query and it returns timestamps, using Qwen3-VL embeddings and ChromaDB. The layout to copy for audio.
- @lizthedeveloper: the Platonic Representation Hypothesis, shared embedding spaces across models, framed as 'AI telepathy'. A hypothesis to test, not assume.
- @baauer: Passion Pit's 'Sleepyhead' sampled Mary O'Hara's 1958 'Oro Mo Bhaidin'. @aklmadz: where producers hunt samples.
- @lilithsomething and @kvashenaya: 'The Winner Takes It All' in Mandarin and Ievan Polkka in Russian, melody kept, lyrics re-written, lineage edges.

HARD CONSTRAINTS
- Rights, recording by recording. A public-domain composition does not make a given recording public domain. Verify composition and recording separately, and drop anything not clearly cleared.
- Fully local, like SentrySearch. No recording leaves the machine.
- Transposition-invariant melody: compare interval sequences, not raw pitch.
- Prove families cluster above chance before building any lineage graph.
- Every lineage edge links to a timestamped source recording. No uncited edges.

DELIVERABLES
1. corpus/: a fetcher and manifest.csv (source, url, year, composition rights, recording rights, cleared y/n) for 200 to 500 public-domain recordings.
2. index/: pitch contours (CREPE or pYIN, quantized to intervals) and CLAP audio embeddings, both in ChromaDB in the SentrySearch offline layout.
3. eval/: a labelled ground-truth set of known families from the Child and Roud indices, and a score of the clustering by precision, recall and adjusted Rand index.
4. lineage/: a NetworkX graph and a force-directed web view, each edge carrying a timestamped link to its source recording, built only if the eval passes.
5. pack/: one cluster as a sample pack with a per-sample provenance sheet clearing composition and recording.
6. report.md.

BUILT-IN GAP ANALYSIS
List recordings dropped for unclear rights, families with no ground-truth label, edges with no timestamped source, and clusters that do not beat chance. Fill what you can. Mark the rest UNFILLED.

SELF-QUESTIONS
Is each recording's rights cleared, not just the composition's? Do 'Shady Grove' and 'Matty Groves' actually cluster together? Is my melody representation transposition-invariant? Does every lineage edge cite a source?

STOP
Stop when the clustering is scored against ground truth and, if it passes, the lineage graph and one cleared pack are built. Stop and report the falsifier if families do not beat chance.

RETURN
Return corpus/, index/, eval/, lineage/, pack/ and report.md with the sections Corpus, Index, Evaluation, Lineage, Sample Pack and Gaps.

3 · Step-by-step prompts

Step 1 — Gather recordings and clear rights twice

Goal: Build a 200 to 500 recording corpus where composition and recording rights are each verified.

Pull 200 to 500 recordings from public-domain sources: Library of Congress collections (including the Lomax field recordings and the Nimrod Workman lineage @dimestoreradio shows), Internet Archive 78-rpm collections, and Prelinger film audio. Include the anchors @chancemccoymusic names: 'Shady Grove' versions (Doc Watson, Jean Ritchie), 'Matty Groves', 'Sally in the Garden' (Crockett's Kentucky Mountaineers, Brunswick 291), and 'Hog-Eye Man' tunes.
For each recording, verify rights twice: the composition (often public domain if pre-1929 in the US) and the specific recording (a 1929 recording's rights can differ). Record both in manifest.csv with the rights source, and set cleared=y only when both are clear.
Fetch locally and keep audio on the machine. Record the duration and recording year of each item, since the lineage graph orients edges by date. Keep a cleared-count so you know how many recordings are actually usable in the sample pack, separate from the full corpus.

Expect: corpus/ with the audio, and manifest.csv of 200 to 500 rows carrying composition rights, recording rights, year, source URL and a cleared flag.

Audit before moving on: Sample 20 rows and confirm both the composition and the recording rights against the source. If a recording's rights are unclear, set cleared=n and exclude it from the sample pack. Fail if any row conflates composition rights with recording rights, or has an empty rights source.

Step 2 — Extract transposition-invariant melody and audio embeddings

Goal: Represent each recording as both an interval contour and an audio embedding, stored locally.

For each recording, extract the monophonic melody with CREPE or pYIN (via librosa). Convert the pitch track to a sequence of intervals (semitone steps between successive notes) so the representation is transposition-invariant, which matters because the same tune appears in different keys and modal tunings, like the D-Dorian 'Shady Grove'.
Separately, compute an audio embedding with an open CLAP audio encoder for timbral and overall similarity.
Store both representations in ChromaDB, following the SentrySearch (ssrajadh/sentrysearch) fully-local layout: one collection for melody-interval vectors, one for audio embeddings, with metadata linking back to the recording and timestamp.
Keep everything offline.
Handle polyphonic or noisy 78s by flagging low-confidence melody extractions rather than trusting them. Store the raw pitch track alongside the quantized intervals for debugging, but index only the intervals. Note the sample rate and any resampling, since 78-rpm transfers vary and pitch extraction is sensitive to speed errors.

Expect: index/ with a ChromaDB store holding interval-contour and CLAP vectors per recording, plus a confidence flag on each melody extraction.

Audit before moving on: Verify transposition invariance: transpose a test recording by 3 semitones, re-extract, and confirm its interval sequence is nearly unchanged. If it changes a lot, fix the interval quantization. Flag melody extractions below a confidence threshold. Fail if raw pitch (not intervals) was stored.

Step 3 — Build ground truth and score the clustering

Goal: Test whether known tune families actually cluster, before drawing any tree.

Build a labelled ground-truth set: assign known family labels from the Child ballad numbers and the Roud Folk Song Index to the recordings where the literature establishes them. At minimum: 'Shady Grove' and 'Matty Groves' as Child #81, the 'Hog-Eye Man' group, and a few unrelated control tunes that should not cluster together.
Cluster both representations (interval contours and audio embeddings) with HDBSCAN or agglomerative clustering.
Score the clustering against the ground truth: precision, recall, and adjusted Rand index. Specifically check: do 'Shady Grove' and 'Matty Groves' land in the same cluster? Do the controls stay apart?
State the falsifier up front: if known families do not cluster above chance, the embedding search is noise and the hand method stays the only method.

Expect: eval/ with the ground-truth labels, cluster assignments, and a score table (precision, recall, adjusted Rand index) with the known-family checks.

Audit before moving on: Compare against a random-label baseline to define 'above chance'. If the interval and audio representations disagree, report both and do not cherry-pick the flattering one. Fail if the Shady Grove / Matty Groves check is not explicitly reported, pass or fail.

Step 4 — Build the lineage graph with cited edges

Goal: Map the tune family tree, but only if the evaluation passed.

Proceed only if step 3 showed known families clustering above chance. If it did not, skip to the report and record the falsifier result.
Build a lineage graph in NetworkX. Nodes are recordings or tune variants. Edges connect variants that are melodically close (by interval-contour distance), with the edge weight being the similarity.
Every edge must carry a timestamped link back to the source recording that supports it, in the SentrySearch spirit of returning exact timestamps.
Orient edges by date where the recording year is known, so the graph reads as travel over time: Renaissance ballad to Appalachian standard, 1929 Brunswick to later field recordings.
Add the cross-language edges as test cases: the Mandarin 'Winner Takes It All' and Russian Ievan Polkka should connect to their source melodies despite different lyrics.
Render a force-directed web view.

Expect: lineage/ with the NetworkX graph (GraphML or JSON) and an interactive force-graph view, every edge citing a timestamped source.

Audit before moving on: Pick 10 edges at random and confirm each links to a real source recording and timestamp. Confirm the Mandarin and Russian versions attach to the correct melody, not to each other by language. Fail if any edge has no source citation, or if the graph was built despite a failed eval.

Step 5 — Package one cleared sample pack

Goal: Turn one validated cluster into a legally clean sample pack with provenance.

Pick one cluster that clustered cleanly and whose recordings are all cleared=y in both composition and recording rights.
Cut usable sample segments (loops, one-shots, vocal phrases) from those recordings.
Write a provenance sheet per sample: the source recording, its year, the composition and recording rights basis, and the lineage position (which tune family, which known relatives). This is the opposite of crate-digging into a clearance fight, as @baauer's 'Sleepyhead' sample story warns.
Assemble the pack with the samples, the provenance sheet, and a short written family history.
Prepare a free release and define how you will measure producer pickup (downloads, uses, tags). Keep the exact in and out points for each sample so cuts are reproducible. Note the tempo and key of each sample, because producers filter on those and it makes the pack more useful.

Expect: pack/ with sample files, a per-sample provenance sheet, a family-history note, and a pickup-measurement plan.

Audit before moving on: Confirm every sample in the pack traces to a cleared=y recording, with both rights cleared. If any sample's recording rights are unclear, pull it. Fail if the pack ships without a provenance sheet, or includes a recording cleared only at the composition level.

Step 6 — Test the Platonic Representation claim

Goal: Check whether cross-source embedding similarity is real signal, honestly.

The dive leans on @lizthedeveloper's framing of the Platonic Representation Hypothesis: different models' embedding spaces converge, so melodic similarity might be findable across sources. Test it rather than assume it.
Take the interval-contour similarity and the CLAP audio similarity for the same pairs of recordings. Correlate them. If two independent representations agree on which tunes are related, that is evidence the similarity is real structure, not an artifact of one model.
Report the correlation and where the two disagree, since disagreements are the interesting cases: same melody, different timbre (a cross-language cover), or similar timbre, different melody (a false friend).
Do not overclaim: a positive correlation supports the method, it does not prove any specific lineage edge.

Expect: a correlation analysis between the melodic and audio similarity spaces, with the agreement and disagreement cases listed.

Audit before moving on: If the two representations correlate weakly, say so plainly and lean on the interval contours (the musically meaningful one) for lineage, not the audio embedding. Fail if a lineage edge rests only on audio-timbre similarity with no melodic support.

Step 7 — Validate against oracles and write the gap report

Goal: Deliver the clustering verdict, the falsifier result and the ranked gaps.

Run the oracle pass:
(a) Known families cluster above chance: the precision, recall and adjusted Rand index against the Child/Roud ground truth, and the explicit 'Shady Grove' / 'Matty Groves' check.
(b) Transposition invariance of the melody representation, verified by the transpose test.
(c) Every lineage edge cites a timestamped source recording.
(d) Every sample in the pack is cleared at both the composition and recording level.
(e) The falsifier: if known families do not beat chance, say plainly the embedding search is noise and the hand method stays the only method.
Write report.md with the sections Corpus, Index, Evaluation, Lineage, Sample Pack, Platonic-Representation Check and Gaps. State whether the engine actually finds tune families. Rank the gaps by impact.

Expect: report.md, a five-row oracle table, and a ranked gap list.

Audit before moving on: Any lineage claim without a cited source is removed. Any 'above chance' claim without the random baseline is downgraded. Confirm the pack's rights are cleared at both levels. Fail if the falsifier section is missing or the Shady Grove check is absent.

4 · Gap analysis and audit

Run this after the build. It makes the agent enumerate its own claims, mark what is verified, rank the gaps and fix the top ones.

You are an independent reviewer: an ethnomusicologist plus an ML engineer. Open report.md, corpus/manifest.csv, index/, eval/, lineage/ and pack/.
1. Enumerate every claim: corpus rights, clustering scores, specific lineage edges, and sample clearances. Mark each verified, unverified or false.
2. Sample 20 corpus rows and confirm composition and recording rights are each verified, not conflated.
3. Recompute the clustering scores against the ground truth, including the Shady Grove / Matty Groves check and the controls. Is it above a random-label baseline?
4. Run the transpose test on a recording and confirm the interval contour is stable.
5. Pick 10 lineage edges and confirm each cites a real timestamped source. Confirm cross-language covers attach to the correct melody.
6. Confirm every sample in the pack is cleared at both the composition and recording level.
7. List what is missing: unclear-rights recordings, families with no label, uncited edges, clusters that do not beat chance.
8. Rank the gaps by impact. Fix the top three now. Report what you could not fix and why.
Return audit.md with the columns claim, status, evidence and fix, plus 'Remaining gaps' and an A-F grade on whether the engine finds real tune families.

Questions the agent must ask itself before it says done:

5 · What proves it right

6 · Failure modes

7 · Agent direction (unattended runs)

Rights clearance is the gate: a corpus that conflates composition and recording rights makes the sample pack a liability, so verify both before anything else. Keep all audio local, in the SentrySearch spirit, and never upload a recording. Cache the ChromaDB store and the extracted contours so re-runs are fast. Spawn one sub-agent for the melody and audio extraction over the whole corpus, since it is the heavy, parallelizable step, and give it the confidence-flagging rule. Keep the ground-truth evaluation and the lineage graph in the main thread, because they carry the verdict. Do not build the lineage graph or ship a sample pack if the clustering fails the ground-truth test: report the falsifier instead. Ask the human at the start which archives and which known families to anchor on. Return corpus/, index/, eval/, lineage/, pack/, report.md and audit.md. The final message states the clustering score, the Shady Grove / Matty Groves result, and whether the engine finds real tune families.

Prompt system updated 2026-10-22 · all prompt systems · JSON

Browse more deep dives at DejaViewed — 846 entries across the full catalog.


Generated 2026-10-22 · curated by @6ab3 for DejaViewed