Compare commits

..

No commits in common. "964620031d833ae8f31ba6bcfcebf9f99681df2f" and "1b16a61930b62f585d9fcb3df5e33fed20e97624" have entirely different histories.

2 changed files with 3 additions and 15 deletions

View file

@ -1 +1 @@
0.0.5 0.0.4

View file

@ -555,7 +555,7 @@ function advanceMaster(ahead) {
} }
} }
segBarCount = barIndex; // whole bars elapsed in this segment segBarCount = barIndex; // whole bars elapsed in this segment
if (segBars > 0 && barIndex >= segBars && !pendingSwitch && state.running && continueMode) { // bar-count auto-advance (Continue) if (segBars > 0 && barIndex >= segBars && !pendingSwitch && state.running) { // bar-count auto-advance
const nx = nextLoadedTarget(); const nx = nextLoadedTarget();
if (nx) { pendingSwitch = { sl: nx.sl, item: nx.item, atTime: masterBeatTime, reason: "auto" }; break; } // cut at this downbeat if (nx) { pendingSwitch = { sl: nx.sl, item: nx.item, atTime: masterBeatTime, reason: "auto" }; break; } // cut at this downbeat
} }
@ -1258,18 +1258,6 @@ const SEED_SETLISTS = [
["Tempo builder 80↑", "t80;woodblock:4;rmp80/4/4"], ["Tempo builder 80↑", "t80;woodblock:4;rmp80/4/4"],
["Gap trainer (play 2 / rest 2)", "t100;kick:4;hatClosed:4/2;tr2/2"], ["Gap trainer (play 2 / rest 2)", "t100;kick:4;hatClosed:4/2;tr2/2"],
] }, ] },
// A continuous ~4:00 song: each item has a bar length (b<n>) so it auto-advances (with
// Continue on) through tempo ramps and shifting styles. Durations ≈ bars × beats × 60/bpm.
{ title: "🎵 Song — continuous (~4:00)", description: "A full song: turn on Continue, press ▶ on “Intro”, and it plays straight through (~4 min) — segments auto-advance on their bar counts, through tempo ramps and shifting styles.", items: [
["Intro — hats & kick", "t88;b8;kick:4=X.x.;hatClosed:4/2=gggggggg"],
["Groove in — backbeat", "t88;b16;kick:4=X.x.;snare:4=.X.X;hatClosed:4/2"],
["Half-time shuffle", "t92;b12;kick:4/3=X....x...x..;snare:4/3=..gg.gX.gg.g;hatClosed:4/3=X.xX.xX.xX.x"],
["Build — ramp 92→120", "t92;b16;rmp92/4/2;kick:4;snare:4=.X.X;hatClosed:4/2"],
["Four-on-the-floor (909)", "t124;b18;kick909:4;clap909:4=.X.X;hat909:4/2=.X.X.X.X"],
["Samba break (2/4)", "t116;b24;tomLow:2/4=x...X...;hatClosed:2/4;woodblock:2/4=X.xx.xX."],
["Peak — 16ths", "t132;b16;kick:4=X..x;snare:4=.X.X;hatClosed:4/4"],
["Outro — ramp down", "t132;b8;rmp132/-7/1;kick:4=X..x;hatClosed:4/2=gggggggg"],
] },
]; ];
/* ========================================================================= /* =========================================================================
@ -1499,7 +1487,7 @@ window.addEventListener("keydown", (e) => {
// Seed the demo set lists. Versioned + additive: a newer SEED_VERSION adds any // Seed the demo set lists. Versioned + additive: a newer SEED_VERSION adds any
// seed list whose title isn't already present, without clobbering the user's lists // seed list whose title isn't already present, without clobbering the user's lists
// (and won't re-add one they've deleted at the same version). // (and won't re-add one they've deleted at the same version).
const SEED_VERSION = 3; const SEED_VERSION = 2;
if ((lsGet(LS.seeded, 0) | 0) < SEED_VERSION) { if ((lsGet(LS.seeded, 0) | 0) < SEED_VERSION) {
for (const s of SEED_SETLISTS) { for (const s of SEED_SETLISTS) {
if (!setlists.some((x) => x.title === s.title)) { if (!setlists.some((x) => x.title === s.title)) {