mirror of
https://github.com/eliasstepanik/strudel-docker.git
synced 2026-01-18 17:18:33 +00:00
add play function
This commit is contained in:
parent
05095805f1
commit
9009eccc8e
@ -24,6 +24,7 @@ export function repl({
|
|||||||
getTime,
|
getTime,
|
||||||
onToggle,
|
onToggle,
|
||||||
});
|
});
|
||||||
|
let playPatterns = [];
|
||||||
const setPattern = (pattern, autostart = true) => {
|
const setPattern = (pattern, autostart = true) => {
|
||||||
pattern = editPattern?.(pattern) || pattern;
|
pattern = editPattern?.(pattern) || pattern;
|
||||||
scheduler.setPattern(pattern, autostart);
|
scheduler.setPattern(pattern, autostart);
|
||||||
@ -35,7 +36,11 @@ export function repl({
|
|||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
await beforeEval?.({ code });
|
await beforeEval?.({ code });
|
||||||
|
playPatterns = [];
|
||||||
let { pattern, meta } = await _evaluate(code, transpiler);
|
let { pattern, meta } = await _evaluate(code, transpiler);
|
||||||
|
if (playPatterns.length) {
|
||||||
|
pattern = pattern.stack(...playPatterns);
|
||||||
|
}
|
||||||
logger(`[eval] code updated`);
|
logger(`[eval] code updated`);
|
||||||
setPattern(pattern, autostart);
|
setPattern(pattern, autostart);
|
||||||
afterEval?.({ code, pattern, meta });
|
afterEval?.({ code, pattern, meta });
|
||||||
@ -57,6 +62,10 @@ export function repl({
|
|||||||
return pat.loopAtCps(cycles, scheduler.cps);
|
return pat.loopAtCps(cycles, scheduler.cps);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const play = register('play', (pat) => {
|
||||||
|
playPatterns.push(pat);
|
||||||
|
});
|
||||||
|
|
||||||
const fit = register('fit', (pat) =>
|
const fit = register('fit', (pat) =>
|
||||||
pat.withHap((hap) =>
|
pat.withHap((hap) =>
|
||||||
hap.withValue((v) => ({
|
hap.withValue((v) => ({
|
||||||
@ -70,6 +79,7 @@ export function repl({
|
|||||||
evalScope({
|
evalScope({
|
||||||
loopAt,
|
loopAt,
|
||||||
fit,
|
fit,
|
||||||
|
play,
|
||||||
setCps,
|
setCps,
|
||||||
setcps: setCps,
|
setcps: setCps,
|
||||||
setCpm,
|
setCpm,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user