LOADING…
0%
Complete changelog

Commit

fix(audio): correct Essentia DSP and make CLAP the sole embedding authority

Commit details

Commit notes

Essentia service (Python): - Fix spectral centroid/rolloff to emit Hz directly (Centroid range=Nyquist, RollOff sampleRate) and drop the fragile normalized-position heuristic. - Fix bandwidth: was always 0 (wrong CentralMoments index + single frame). Now the per-frame spectral spread via CentralMoments(range=Nyquist)+DistributionShape. - Fix temporal centroid units (normalized position * envelope duration -> seconds). - Fix BPM alternatives: use the two peak-BPM indices (0, 3), not a weight. - Implement true peak (dBTP) via chunked 4x oversampling instead of sample peak. - Reset reused stateful algorithms between files so prior audio can't leak. - Remove the dead HarmonicPercussiveSourceSeparation scaffolding (not an Essentia algorithm; it was always a no-op) and run rhythm/tonal on the full signal. - Remove the hand-built 64-dim MFCC embedding; CLAP owns the audio embedding. - Remove dead code: unused loaders, thread pool, and the LFI-prone /analyze (path) and /analyze/batch endpoints; add spectral/rhythm/temporal regression tests.

Backend (CLAP owns embeddings): - Drop the 64-dim Essentia embedding everywhere (AudioFeatures, worker writes, client mapper, unused path/batch/stats client fns). - Repoint similarity search and UMAP onto samples.clap_embedding (512-dim). - Derive pack audio character from real Essentia feature columns. - Enqueue CLAP for deduplicated samples so they still get an embedding/classification. - Migration 0026 drops the embedding column, embedding_vector mirror, sync trigger, and legacy indexes.

Co-Authored-By: Claude Opus 4.8 <[email redacted]> Claude-Session: [private session redacted]

Files changed
18
Lines added
+510
Lines removed
−923
This page is a permanent record of commit b53cf72a.