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}",