From b860254884c8083625e708b2aba23ff73d0bae46 Mon Sep 17 00:00:00 2001 From: Kieran McAuliffe Date: Mon, 29 Jul 2024 11:56:40 +0200 Subject: [PATCH] range instead of amp --- lfogui.js | 25 ++++++++++++++++++------- modulators.js | 15 ++++++++------- 2 files changed, 26 insertions(+), 14 deletions(-) diff --git a/lfogui.js b/lfogui.js index ea01a39..96195ef 100644 --- a/lfogui.js +++ b/lfogui.js @@ -24,7 +24,7 @@ const ViewModes = Object.freeze({ var modPhases = Array(MAXLFOS).fill(0); var firstUpdateTime = Date.now(); -const MODULATORLABELS = ["-type-", "---shape---", "-------param-------", "--freq--", "-amp-", "-phase-", "-min", "-max"]; +const MODULATORLABELS = ["-type-", "---shape---", "-------param-------", "--freq--", "-min-", "-max", "-phase-", "center"]; const ENUMERATORLABELS = ["---parameter---", "-# points-"]; @@ -51,11 +51,15 @@ function MasterLfoHandler(){ const [djParamArr, setDjParamArr] = React.useState(Array(MAXLFOS).fill('NONE')); const [freqArr, setFreqArr] = React.useState(Array(MAXLFOS).fill('1')); - const [ampArr, setAmpArr] = React.useState(Array(MAXLFOS).fill('1')); + + // const [ampArr, setAmpArr] = React.useState(Array(MAXLFOS).fill('1')); + const [minArr, setMinArr] = React.useState(Array(MAXLFOS).fill('0')); + const [maxArr, setMaxArr] = React.useState(Array(MAXLFOS).fill('1')); + const [phaseArr, setPhaseArr] = React.useState(Array(MAXLFOS).fill('0')); - const allModArrays = [modVisibleArr, shapeArr, djParamArr, freqArr, ampArr, phaseArr]; - const allModSetters = [setModVisibleArr, setShapeArr, setDjParamArr, setFreqArr, setAmpArr, setPhaseArr]; + const allModArrays = [modVisibleArr, shapeArr, djParamArr, freqArr, minArr, maxArr, phaseArr]; + const allModSetters = [setModVisibleArr, setShapeArr, setDjParamArr, setFreqArr, setMinArr, setMaxArr, setPhaseArr]; const modBlankVals = [true, SHAPETYPES[0], MODPARAMOPTIONS[0], '1', '1', '0']; @@ -182,7 +186,7 @@ function MasterLfoHandler(){ function handleTick(event) { let time = (Date.now() - firstUpdateTime) / 1000; - operateModulators(modVisibleArr, djParamArr, modCenterVals, freqArr, ampArr, shapeArr, phaseArr, time); + operateModulators(modVisibleArr, djParamArr, modCenterVals, freqArr, minArr, maxArr, shapeArr, phaseArr, time); } @@ -222,8 +226,15 @@ function MasterLfoHandler(){ freq: freqArr[i], setFreq: CreateParamChanger(freqArr, setFreqArr, i), - amp: ampArr[i], - setAmp: CreateParamChanger(ampArr, setAmpArr, i), + + //amp: ampArr[i], + //setAmp: CreateParamChanger(ampArr, setAmpArr, i), + + min: minArr[i], + setMin : CreateParamChanger(minArr, setMinArr, i), + max: maxArr[i], + setMax: CreateParamChanger(maxArr, setMaxArr, i), + phase: phaseArr[i], setPhase: CreateParamChanger(phaseArr, setPhaseArr, i), visible: modVisibleArr[i], diff --git a/modulators.js b/modulators.js index 23a86f2..2db8fe2 100644 --- a/modulators.js +++ b/modulators.js @@ -25,10 +25,11 @@ function LfoRow(props){ ListItem(DropDown({onChange: props.setShape, value:props.shape, options: SHAPETYPES})), ListItem(DropDown({onChange: props.setDjParam, value: props.djParam, options: MODPARAMOPTIONS})), 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.setMin, value:props.min, step:0.1}, null)), + ListItem(e(NumberBox, {onChange:props.setMax, value:props.max, 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("div", {className:"base-val"}, center.toString())), - ListItem(e("div", {className:"base-val"}, center + parseFloat(props.amp))), 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)) @@ -53,7 +54,7 @@ function indexWave(type, phase){ } } -function operateModulators(visibleArr, paramNames, centers, freqs, amps, waveTypes, phaseArr, time){ +function operateModulators(visibleArr, paramNames, centers, freqs, mins, maxs, waveTypes, phaseArr, time){ for (let i=0; i