diff --git a/packages/codemirror/codemirror.mjs b/packages/codemirror/codemirror.mjs index 6aac0c8a4..71e5c49ab 100644 --- a/packages/codemirror/codemirror.mjs +++ b/packages/codemirror/codemirror.mjs @@ -444,14 +444,16 @@ export class StrudelMirror { this.setFontSize(value); } } - setCode(code) { - const changes = { - from: 0, - to: this.editor.state.doc.length, - insert: code, - }; + replaceCode(code, from, to) { + const changes = { from, to, insert: code }; this.editor.dispatch({ changes }); } + insertCode(code, position) { + this.replaceCode(code, position, position); + } + setCode(code) { + this.replaceCode(code, 0, this.editor.state.doc.length); + } // used for debugging but could serve other purposes getActiveWidgets() { return getActiveWidgets(this.editor); diff --git a/packages/superdough/synth.mjs b/packages/superdough/synth.mjs index 38ad643de..224936914 100644 --- a/packages/superdough/synth.mjs +++ b/packages/superdough/synth.mjs @@ -485,8 +485,10 @@ export function waveformN(partials, phases, type) { if (phase !== 0) { const c = Math.cos(PI2 * phase); const s = Math.sin(PI2 * phase); - R = c * R - s * I; - I = s * R + c * I; + const R0 = R; + const I0 = I; + R = c * R0 - s * I0; + I = s * R0 + c * I0; } real[n + 1] = R; imag[n + 1] = I;