Commit Graph
29 Commits
Author SHA1 Message Date
Lucas WintherandClaude Opus 5.5 e5773e0c33 perf(dsp): cache the resample kernel when outputs land on input samples
2:1 decimation (44.1k -> 22.05k, used to render the warped MIDI for the
alignment page) recomputed 65 windowed-sinc taps per output sample: ~17 s
for a 4.7 min stereo render. Outputs at integer input positions now reuse
one tap table; arithmetic is identical, so results are bit-identical.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 14:38:36 +01:00
Lucas WintherandClaude Opus 5.5 99a1076547 fix(align): densify coarse fallback path; per-segment offset pooling; no degenerate first stretch
The coarse-path fallback now expands each 10 Hz step to five 50 Hz steps so its
diagonals still yield bar anchors; fine band widths are injectable to test it.
Offset pooling is clipped to the current segment, and auto anchors need
audioSec > 0 unless midiSec is 0. Tests: forced fallback, wrong manual anchor,
p90 bound; debug output gated behind ALIGN_DEBUG.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 06:57:47 +01:00
Lucas WintherandClaude Opus 5.5 8cad85e103 feat(align): automatic alignment and fit quality
Coarse (10 Hz) DTW per stretch between manual anchors, refined at 50 Hz in a
band that widens 0.5 -> 1 -> 2 s on unreachable end cells (coarse path as last
resort); one auto anchor per bar from median offsets of diagonal path steps.
Fit quality from raw-audio onset peaks vs warped scored-role MIDI onsets
(+-70 ms, 30 s windows, flagged on rate < 0.5 or median > 60 ms).
trackKeys moves to src/align/roles.ts (pure) and is re-exported by manifest.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 06:52:10 +01:00
Lucas WintherandClaude Sonnet 5.5 41e38cb03f feat(align): features and DTW
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-30 06:42:42 +01:00
Lucas WintherandClaude Sonnet 5.5 b614244e4d fix(align): render at 44.1k and resample; finite guard; pre-zero tests
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-30 06:38:31 +01:00
Lucas WintherandClaude Sonnet 5.5 63b32a488d feat(align): warped MIDI rendering and peaks
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-30 06:34:15 +01:00
Lucas WintherandClaude Haiku 5.5 ca5942956a fix(align): remove whole auto run between manual anchors on edit
Co-Authored-By: Claude Haiku 5.5 <[email protected]>
2026-10-30 06:30:48 +01:00
Lucas WintherandClaude Haiku 5.5 1ff29f94cd feat(align): warp model
Co-Authored-By: Claude Haiku 5.5 <[email protected]>
2026-10-30 06:29:58 +01:00
Lucas WintherandClaude Sonnet 5.5 e910036e67 feat(align): SMF parser, role guess, reference manifest
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-30 06:27:08 +01:00
Lucas WintherandClaude Sonnet 5.5 b631bd2c7e fix: final-review findings (median pass tick, R11 secondary metrics, R12 chord duration, render version, dsp resample)
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-30 05:55:04 +01:00
Lucas WintherandClaude Sonnet 5.5 d9fd5d8c9f fix: report renders empty-truth roles as n/a with spurious count
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-30 05:17:14 +01:00
Lucas WintherandClaude Sonnet 5.5 42d88a2401 feat: benchmark runner and report
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-30 05:14:41 +01:00
Lucas WintherandClaude Sonnet 5.5 4c89f0d664 fix: pipeline fingering uses quantiser snap; more run tests
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-30 05:11:19 +01:00
Lucas WintherandClaude Sonnet 5.5 604d1a67af feat: pipeline runner with oracle modes
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-30 05:04:06 +01:00
Lucas WintherandClaude Sonnet 5.5 bf93a4a32e feat: quantisation and tab assignment
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-30 05:00:20 +01:00
Lucas WintherandClaude Sonnet 5.5 eab70b24f6 fix: drum transcriber noise gate, kick+snare, test floors
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-30 04:55:06 +01:00
Lucas WintherandClaude Sonnet 5.5 9bad6490eb feat: heuristic drum transcription
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-30 04:50:28 +01:00
Lucas WintherandClaude Sonnet 5.5 1d490f6897 fix: tempo octave choice, start-of-music anchoring, mean-normalised combs, pure toMono
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-30 04:46:09 +01:00
Lucas WintherandClaude Sonnet 5.5 4ab92d4a86 feat: tempo grid estimation
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-30 03:35:13 +01:00
Lucas WintherandClaude Sonnet 5.5 1239e5e0ac feat: basic pitch transcription
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-30 03:22:14 +01:00
Lucas WintherandClaude Opus 5.5 86416f7637 feat: demucs 6-stem separation
Radix-2 FFT and torch-compatible stft/istft (hann, center, reflect,
normalized). HTDemucs-6s ONNX separator mirroring demucs apply_model:
whole-mix normalisation, 343980-sample centred segments, 25% overlap
with triangular weights, _spec/_ispec around the graph, spectral +
time branch sum. Brief's guitar/bass > 3 dB criterion is unmet by the
model on t1b/1 and is kept as test.failing pending a ruling.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 03:14:51 +01:00
Lucas WintherandClaude Sonnet 5.5 6bd8ab9cee feat: evaluation metrics
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-30 02:57:38 +01:00
Lucas WintherandClaude Sonnet 5.5 32d96cadcc fix: dataset layout data/<tier>/<seed>, mix tests, cli hardening
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-30 02:52:50 +01:00
Lucas WintherandClaude Sonnet 5.5 ca9f3bbb83 feat: dataset builder
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-30 02:51:33 +01:00
Lucas WintherandClaude Sonnet 5.5 a1e9ce86a0 feat: stem rendering, fx and mixing
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-30 02:48:59 +01:00
Lucas WintherandClaude Sonnet 5.5 cd82e05d85 feat: tier-1 song generator
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-30 02:45:32 +01:00
Lucas WintherandClaude Sonnet 5.5 470e089f92 fix: drum single hit, dedupe notes, validate role
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-30 02:42:35 +01:00
Lucas WintherandClaude Sonnet 5.5 ec7cb0e568 feat: alphaTex writer and GP round trip
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-30 02:40:46 +01:00
Lucas WintherandClaude Haiku 5.5 bac4fbeb1d feat: core types, time, rng, model fetch
Co-Authored-By: Claude Haiku 5.5 <[email protected]>
2026-10-30 02:38:02 +01:00