DigDeeper · experiments

Experiments & prototypes

Independent prototypes, dashboards and analysis writeups. Each project lives in its own folder.

Embedding A/B — live model comparison

Pick (or submit) any track and see its top-10 nearest neighbours in six embedding spaces side by side — the current Discogs-EffNet baseline vs five contrastive variants (artist, label, release, track_ssl, multi) — live from the ab_tracks collection, every row playable. Auth-gated (basic auth): it's a dynamic app against the shared DB + Qdrant, not a static writeup.

2026-07-18 · embedding-strategy · live app · auth-gated

Audio near-duplicates — verify

Tracks whose full-track embedding is near-identical (cosine ≥ 0.995) — the same recording regardless of how the metadata reads. Catches what id/slug/title signals miss: cross-artist collab reuploads, "various artists" compilation copies, differing credit strings, re-masters. ~8% of tracks have such a twin. Each group is playable inline (Bandcamp/YouTube) with a title+artist match badge — listen, mark same/different, export verdicts. No merges happen here.

2026-06-06 · dedup · sample: 1,500 random tracks

Resolving credits — artists & labels per track

The follow-up to the classifier: given a track's stored title + artist + Bandcamp label.name, decide the real artist(s) and label(s) — no re-fetch, exactly what a backfill sees. 10/11 artists and 8/11 full credits on the check-set; 180 random tracks shown input→output, grouped by confidence so you can judge the low-confidence boundary yourself.

2026-06-05 · resolver · 180 random + 11-track check-set

Artist or label? — classifying Bandcamp pages

A Bandcamp URL can't tell you if a page is a solo artist or a label, but Dig Artist / Dig Label need to. Tested a simple rule (“many distinct artists ⇒ label” + the Various-Artists flag) over all 127,840 pages in prod — 7/10 on a labelled check set. Directionally right, but the stored artist field is the bottleneck: it collapses to the label name on some catalogs and inflates on “feat.”-heavy artists.

2026-06-05 · classification · 4.78M sources, 10-page check set

Traxsource — scraper recon & embed player

Can we ingest Traxsource, and can we play it back? Three catalog endpoints are open (no Cloudflare) — an estimated ~9.4M tracks reachable by ID sweep. The official embed player is live here, but has no JS control API (unlike SoundCloud/YouTube). Plus the licensing split: analyze freely, but don't reskin their preview.

2026-06-05 · recon · sample: 4000 random title IDs

decks.de → YouTube / SoundCloud matching

decks.de has no embeddable player, so each track needs a matched YouTube or SoundCloud source to be playable. The matcher run over a random sample of the archived backlog — 74% get a playable match — every match playable inline so you can judge it yourself.

2026-06-04 · matching · sample: 100 archived decks tracks

How the matcher decides — the rules, visualized

The full logic behind decks/Traxsource → Discogs + YouTube/SoundCloud, step by step: the search ladder (barcode → catno → tracklist → fuzzy → stop-words), the four scoring signals, and the accept/reject rules (corroboration, not title resemblance — incl. the tracklist check that fixed Jeff Mills and killed catno collisions). Read it to sanity-check the pipeline.

2026-06-06 · explainer · matcher flow + open questions

decks.de — live matcher results

The actual stored matches from the production drain (decks → YouTube + Discogs), not a re-run. Each row links the matched YouTube (▶ to verify the pick) and Discogs release, with confidence + the no_youtube_match visibility flag. Eyeball it to find where the matcher still goes wrong.

2026-06-06 · review · ~150 freshly-analyzed decks tracks

decks & Traxsource → matchers — verify

100 real source tracks (50 decks, 50 Traxsource), each run through the two matchers that matter: YouTube (playback — the ingest gate) and Discogs (metadata/buy). SoundCloud was dropped (mostly noise). Playable: decks ~73%, Traxsource ~92%. Discogs matches by free-text + catalog-number search, confirmed by the tracklist / release title / catno+artist — recovering placeholder-titled vinyl ("track two" → the catno finds the record), mis-credited artists (Decibel Ft LeveetraDecibel Feat. La Veetra) and catnos decks mis-files into the label field: decks ~92%, Traxsource ~36%, and 0 false positives. Each match surfaces the release's curated YouTube link (▶ YT). Source rows link back to decks/Traxsource.

2026-06-06 · matching · sample: 100 decks + traxsource tracks

decks & Traxsource → matchers — verify (sample 2)

A second, non-overlapping random sample (50 decks, 50 Traxsource) through the same two matchers — a cross-check that coverage holds beyond the first 100. decks ~94% on Discogs (47/50), ~72% playable; Traxsource ~90% playable, ~34% on Discogs; 0 false positives. Confirms the catalog-number / placeholder- vinyl recovery generalizes to fresh tracks.

2026-06-06 · matching · second sample: 100 fresh decks + traxsource tracks

decks.de → Discogs matching

Discogs isn't playback — it's metadata and a buy link. Matching by catalog number / barcode (which decks gives us), 92% of tracks resolve to a Discogs release — 38 by exact catalog number — bringing label, year, genre/style, marketplace stats and a buy link, and often fixing decks' own bad metadata.

2026-06-05 · matching · sample: 100 archived decks tracks

decks.de matching — second sample

The same matcher over a second, non-overlapping 100-track sample from the archived backlog — 83% get a playable match. A cross-check that coverage holds beyond the first sample, after the metadata + matcher fixes.

2026-06-04 · matching · sample: 100 fresh archived decks tracks

Similar tracks — six ways of listening

The 100 nearest neighbours of a seed track, playable inline, with six embedding strategies scored side by side. They agree on what's similar but disagree a lot on order.

2026-05-29 · embedding-strategy · seed: Le Nomad — Two Left Turns

Sample HTML app

A tiny no-build prototype with shared DigDeeper styling, inline CSS animation, and simple JavaScript controls.

2026-06-04 · sample · static-html
Add a project: create your own folder under site/<slug>/, build an index.html that links /style.css, add a card here, commit & push. See .claude/skills/publish-experiment and the repo CLAUDE.md.