diff --git a/packages/core/ui.mjs b/packages/core/ui.mjs index 84f799ef..68a4a6cb 100644 --- a/packages/core/ui.mjs +++ b/packages/core/ui.mjs @@ -6,10 +6,6 @@ This program is free software: you can redistribute it and/or modify it under th import { getTime } from './time.mjs'; -export const hideHeader = () => { - document.getElementById('header').style = 'display:none'; -}; - function frame(callback) { if (window.strudelAnimation) { cancelAnimationFrame(window.strudelAnimation); diff --git a/repl/README.md b/repl/README.md index c72b799a..dbb9d6c1 100644 --- a/repl/README.md +++ b/repl/README.md @@ -31,8 +31,8 @@ currently broken / buggy: - [x] MiniREPL - [x] repl log section -- [ ] hideHeader flag -- [ ] pending flag +- [-] hideHeader flag => can now use zen mode +- [x] pending flag - [x] web midi, TODO: test - [x] draw / pianoroll - [x] repl url hash does not work @@ -43,8 +43,9 @@ currently broken / buggy: - [x] highlighting seems too late (off by latency ?) - [x] highlighting sometimes drops highlights (zeldasRescue first note) - [x] highlighting still sometimes drops highlights (zeldasRescue somtimes) -- [ ] highlighting out of range error is back (delete large chunk at the top while highlighting below is triggered) -- [ ] find a way to display errors when console is closed / another tab selected - [x] scheduler.getPhase is quantized to clock interval - => draw was choppy + that also caused useHighlighting bugs -- [ ] pianoroll keeps rolling when pressing stop +- [x] pianoroll keeps rolling when pressing stop +- [ ] find a way to display errors when console is closed / another tab selected +- [ ] highlighting out of range error is back (delete large chunk at the top while highlighting below is triggered) +- [ ] idea: interpolate between running and evaluated code! diff --git a/repl/src/App.jsx b/repl/src/App.jsx index c6c363ca..17b021fe 100644 --- a/repl/src/App.jsx +++ b/repl/src/App.jsx @@ -59,8 +59,6 @@ Promise.all([...modules, presets]).then((data) => { loadedSamples = Object.entries(getLoadedSamples() || {}); }); -const hideHeader = false; -const pending = false; const getTime = () => getAudioContext().currentTime; async function initCode() { @@ -109,6 +107,7 @@ function App() { const [lastShared, setLastShared] = useState(); const [activeFooter, setActiveFooter] = useState(''); const [isZen, setIsZen] = useState(false); + const [pending, setPending] = useState(false); const { code, setCode, scheduler, evaluate, activateCode, isDirty, activeCode, pattern, started, stop } = useStrudel({ initialCode: '// LOADING', @@ -118,6 +117,10 @@ function App() { beforeEval: () => { cleanupUi(); cleanupDraw(); + setPending(true); + }, + afterEval: () => { + setPending(false); }, onToggle: (play) => !play && cleanupDraw(false), }); @@ -249,7 +252,7 @@ function App() { // 'bg-gradient-to-t from-green-900 to-slate-900', // )} > - {!hideHeader &&
} +
tune: hyperpop 1`] = ` ] `; +exports[`renders tunes > tune: juxUndTollerei 1`] = ` +[ + "3/4 -> 1/1: {\\"note\\":\\"c3\\",\\"s\\":\\"sawtooth\\",\\"pan\\":0,\\"cutoff\\":1670.953955747281,\\"decay\\":0.05,\\"sustain\\":0,\\"room\\":0.6,\\"delay\\":0.5,\\"delaytime\\":0.1,\\"delayfeedback\\":0.4}", + "1/2 -> 3/4: {\\"note\\":\\"eb3\\",\\"s\\":\\"sawtooth\\",\\"pan\\":0,\\"cutoff\\":1524.257063143398,\\"decay\\":0.05,\\"sustain\\":0,\\"room\\":0.6,\\"delay\\":0.5,\\"delaytime\\":0.1,\\"delayfeedback\\":0.4}", + "1/4 -> 1/2: {\\"note\\":\\"g3\\",\\"s\\":\\"sawtooth\\",\\"pan\\":0,\\"cutoff\\":1361.2562095290161,\\"decay\\":0.05,\\"sustain\\":0,\\"room\\":0.6,\\"delay\\":0.5,\\"delaytime\\":0.1,\\"delayfeedback\\":0.4}", + "0/1 -> 1/4: {\\"note\\":\\"bb3\\",\\"s\\":\\"sawtooth\\",\\"pan\\":0,\\"cutoff\\":1188.2154262966046,\\"decay\\":0.05,\\"sustain\\":0,\\"room\\":0.6,\\"delay\\":0.5,\\"delaytime\\":0.1,\\"delayfeedback\\":0.4}", + "0/1 -> 1/4: {\\"note\\":\\"c3\\",\\"s\\":\\"sawtooth\\",\\"pan\\":1,\\"cutoff\\":1188.2154262966046,\\"decay\\":0.05,\\"sustain\\":0,\\"room\\":0.6,\\"delay\\":0.5,\\"delaytime\\":0.1,\\"delayfeedback\\":0.4}", + "1/4 -> 1/2: {\\"note\\":\\"eb3\\",\\"s\\":\\"sawtooth\\",\\"pan\\":1,\\"cutoff\\":1361.2562095290161,\\"decay\\":0.05,\\"sustain\\":0,\\"room\\":0.6,\\"delay\\":0.5,\\"delaytime\\":0.1,\\"delayfeedback\\":0.4}", + "1/2 -> 3/4: {\\"note\\":\\"g3\\",\\"s\\":\\"sawtooth\\",\\"pan\\":1,\\"cutoff\\":1524.257063143398,\\"decay\\":0.05,\\"sustain\\":0,\\"room\\":0.6,\\"delay\\":0.5,\\"delaytime\\":0.1,\\"delayfeedback\\":0.4}", + "3/4 -> 1/1: {\\"note\\":\\"bb3\\",\\"s\\":\\"sawtooth\\",\\"pan\\":1,\\"cutoff\\":1670.953955747281,\\"decay\\":0.05,\\"sustain\\":0,\\"room\\":0.6,\\"delay\\":0.5,\\"delaytime\\":0.1,\\"delayfeedback\\":0.4}", + "101/200 -> 201/200: {\\"note\\":65,\\"s\\":\\"triangle\\",\\"pan\\":0,\\"cutoff\\":1601.4815730092653,\\"decay\\":0.05,\\"sustain\\":0,\\"room\\":0.6,\\"delay\\":0.5,\\"delaytime\\":0.1,\\"delayfeedback\\":0.4}", + "101/200 -> 201/200: {\\"note\\":55,\\"s\\":\\"triangle\\",\\"pan\\":1,\\"cutoff\\":1601.4815730092653,\\"decay\\":0.05,\\"sustain\\":0,\\"room\\":0.6,\\"delay\\":0.5,\\"delaytime\\":0.1,\\"delayfeedback\\":0.4}", +] +`; + exports[`renders tunes > tune: meltingsubmarine 1`] = ` [ "0/1 -> 3/2: {\\"s\\":\\"bd\\",\\"speed\\":0.7519542165100574}",