-
feat(foundry): window-locked rotation — co-exported stems rotate by ONE shared slot · 3f9c27df
Refinement caught before re-cutting the real kits: superfreak drums and bass ship from the SAME window (107.21s, 4 bars). If each stem rotated to its own strongest attack, their relative groove could shift by whole beats — bass's phrase-start is not necessarily on the drums' 1, and the kit is played together (loopAt on a common cycle), so relative phase between kit loops is musical content. export_take now derives the downbeat slot ONCE per shared time window from its most rhythmic stem (drums > bass > other > vocals priority) and applies that same slot to every stem of the window (_rotate_to_downbeat force_slot; per-stem roll still zc-snaps within ±10 ms on the stem's own mono ref). Stems at different windows keep independent rotation. Stem reads are cached (each stem was loaded twice otherwise). Test: two-stem synthetic window, drums downbeat at slot 3, other's own loudest attack at slot 6 — drums' marker must land at 0 and other's at 3 (= 6−3, following drums), not 0. 86 passed.
PLN (Algolia) authored3f9c27df
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| test_autotune.py | Loading commit data... | |
| test_correlate.py | Loading commit data... | |
| test_engine.py | Loading commit data... | |
| test_grade.py | Loading commit data... | |
| test_loops.py | Loading commit data... | |
| test_naming.py | Loading commit data... | |
| test_vox.py | Loading commit data... |