| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| __init__.py | ||
| autotune.py | ||
| correlate.py | ||
| demos.py | ||
| fetch.py | ||
| grade.py | ||
| loops.py | ||
| model.py | ||
| naming.py | ||
| publish.py | ||
| separate.py | ||
| vox.py |
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.
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| __init__.py | Loading commit data... | |
| autotune.py | Loading commit data... | |
| correlate.py | Loading commit data... | |
| demos.py | Loading commit data... | |
| fetch.py | Loading commit data... | |
| grade.py | Loading commit data... | |
| loops.py | Loading commit data... | |
| model.py | Loading commit data... | |
| naming.py | Loading commit data... | |
| publish.py | Loading commit data... | |
| separate.py | Loading commit data... | |
| vox.py | Loading commit data... |