non functional enumeration. FIX
This commit is contained in:
parent
72858f0959
commit
148e8211b3
16
enums.js
16
enums.js
@ -27,4 +27,18 @@ function EnumeratorRow(props){
|
||||
if (props.visible){
|
||||
return content;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
// FIX THIS
|
||||
function enumerate(name, inval, count, keys, vals){
|
||||
let output = "OUT OF RANGE";
|
||||
for (let i=0; i < count; i++){
|
||||
if (inval >= keys[i]){
|
||||
output = vals[i - 1];
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
window.max.outlet(name + " " + output);
|
||||
}
|
||||
|
||||
|
30
lfogui.js
30
lfogui.js
@ -120,12 +120,36 @@ function MasterLfoHandler(){
|
||||
window.max.setDict(event.detail, {"data" : data});
|
||||
}
|
||||
|
||||
|
||||
// only called internally by 1. Handler after modulator processing 2. LFO outputs
|
||||
function handleEnum(event){
|
||||
let name = event.detail[0];
|
||||
let val = event.detail[1];
|
||||
|
||||
// if none of the Enums use this param, then we output it
|
||||
let i = 0;
|
||||
while (i < MAXENUMS){
|
||||
if (enumVisibleArr[i] && enumNames[i] == name)
|
||||
break;
|
||||
i++
|
||||
}
|
||||
if (i == MAXENUMS){
|
||||
window.max.outlet(name + ' ' + val);
|
||||
}
|
||||
else {
|
||||
window.max.outlet(name + ' ' + val);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
function handleParam(event) {
|
||||
|
||||
let name = event.detail[0];
|
||||
let val = event.detail[1];
|
||||
|
||||
// if none of the LFOs use this param, then we output it raw
|
||||
// if none of the LFOs use this param, then we send it straight to the enum
|
||||
let i = 0;
|
||||
while (i < MAXLFOS){
|
||||
if (modVisibleArr[i] && djParamArr[i] == name)
|
||||
@ -133,7 +157,7 @@ function MasterLfoHandler(){
|
||||
i++
|
||||
}
|
||||
if (i == MAXLFOS){
|
||||
window.max.outlet(name + ' ' + val);
|
||||
window.dispatchEvent(new CustomEvent('enum', {'detail' : [name, val]}));
|
||||
}
|
||||
|
||||
modCenterVals[name] = val;
|
||||
@ -156,12 +180,14 @@ function MasterLfoHandler(){
|
||||
window.addEventListener('saveDict', handleSave);
|
||||
window.addEventListener('tick', handleTick);
|
||||
window.addEventListener('param', handleParam);
|
||||
window.addEventListener('enum', handleEnum);
|
||||
|
||||
return () => {
|
||||
window.removeEventListener('loadDict', handleLoad);
|
||||
window.removeEventListener('saveDict', handleSave);
|
||||
window.removeEventListener('tick', handleTick);
|
||||
window.removeEventListener('param', handleParam);
|
||||
window.removeEventListener('enum', handleEnum);
|
||||
};
|
||||
}, [...allModArrays, ...allEnumArrays, ...allEnumMats, modCenterVals]);
|
||||
|
||||
|
@ -52,18 +52,17 @@ function operateModulators(visibleArr, paramNames, centers, freqs, amps, waveTyp
|
||||
if (centers.hasOwnProperty(name)){
|
||||
center = centers[name];
|
||||
}
|
||||
let output = operateModulator(name, center, freqs[i], amps[i], waveTypes[i], phaseArr, i, delta);
|
||||
window.max.outlet(output);
|
||||
let output = operateModulator(center, freqs[i], amps[i], waveTypes[i], phaseArr, i, delta);
|
||||
window.dispatchEvent(new CustomEvent('enum', {'detail' : [name, output]}));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function operateModulator(paramName, center, freq, amp, waveType, phaseArr, phaseI, delta){
|
||||
function operateModulator(center, freq, amp, waveType, phaseArr, phaseI, delta){
|
||||
|
||||
let oldPhase = phaseArr[phaseI];
|
||||
let newPhase = (oldPhase + freq * delta) % 1.00;
|
||||
|
||||
phaseArr[phaseI] = newPhase;
|
||||
let outputVal = indexWave(waveType, newPhase) * amp + center;
|
||||
return paramName + ' ' + outputVal.toString();
|
||||
return indexWave(waveType, newPhase) * amp + center;
|
||||
}
|
Loading…
Reference in New Issue
Block a user