From 108ecd1a1dd936a9e6af53e83bab9e7f6f38f4e8 Mon Sep 17 00:00:00 2001 From: Kieran McAuliffe Date: Mon, 22 Jul 2024 11:51:12 +0200 Subject: [PATCH] lfo movement display --- modulators.js | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/modulators.js b/modulators.js index 2ac8f04..f32a963 100644 --- a/modulators.js +++ b/modulators.js @@ -21,6 +21,7 @@ function LfoRow(props){ ListItem(e(NumberBox, {onChange:props.setFreq, value:props.freq, step: 0.1}, null)), ListItem(e(NumberBox, {onChange:props.setAmp, value:props.amp, step:0.1}, null)), ListItem(e(NumberBox, {onChange:props.setPhase, value:props.phase, step:0.1}, null)), + ListItem(e("input", {type: 'range', min: 0, max: 1, step: 0.01, readonly: true, id: `slider-${props.djParam}`})), ListItem(e(Button, {text:'+', onClick: props.addLfo}, null)), ListItem(e(Button, {text:'-', onClick: props.removeLfo}, null)) ); @@ -32,7 +33,7 @@ function LfoRow(props){ function indexWave(type, phase){ switch (type){ case "Sine": - return (Math.sin(phase * Math.PI * 2)/2) + 1; + return (Math.sin(phase * Math.PI * 2) / 2) + 0.5; case "SawUp": return phase; case "SawDown": @@ -52,17 +53,19 @@ function operateModulators(visibleArr, paramNames, centers, freqs, amps, waveTyp if (centers.hasOwnProperty(name)){ center = centers[name]; } - let output = operateModulator(center, freqs[i], amps[i], waveTypes[i], phaseArr, i, delta); + let output = operateModulator(center, freqs[i], amps[i], waveTypes[i], phaseArr, i, delta, name); window.dispatchEvent(new CustomEvent('enum', {'detail' : [name, output]})); } } } -function operateModulator(center, freq, amp, waveType, phaseArr, phaseI, delta){ +function operateModulator(center, freq, amp, waveType, phaseArr, phaseI, delta, name){ let oldPhase = phaseArr[phaseI]; let newPhase = (oldPhase + freq * delta) % 1.00; + let unscaled = indexWave(waveType, newPhase); + document.getElementById(`slider-${name}`).value = unscaled; phaseArr[phaseI] = newPhase; - return indexWave(waveType, newPhase) * amp + center; + return unscaled * amp + center; } \ No newline at end of file