9 Commits

5 changed files with 3361 additions and 2696 deletions

65
ModEnum.maxhelp Normal file
View File

@@ -0,0 +1,65 @@
{
"patcher" : {
"fileversion" : 1,
"appversion" : {
"major" : 9,
"minor" : 0,
"revision" : 5,
"architecture" : "x64",
"modernui" : 1
}
,
"classnamespace" : "box",
"rect" : [ 203.0, 196.0, 750.0, 734.0 ],
"gridsize" : [ 15.0, 15.0 ],
"boxes" : [ {
"box" : {
"bgmode" : 0,
"border" : 0,
"clickthrough" : 0,
"enablehscroll" : 0,
"enablevscroll" : 0,
"id" : "obj-1",
"lockeddragscroll" : 0,
"lockedsize" : 0,
"maxclass" : "bpatcher",
"name" : "ModEnum.maxpat",
"numinlets" : 1,
"numoutlets" : 6,
"offset" : [ 0.0, 0.0 ],
"outlettype" : [ "", "", "", "", "", "" ],
"patching_rect" : [ 25.30120575428009, 154.216873168945312, 838.631580829620361, 601.0 ],
"varname" : "ModEnum",
"viewvisibility" : 1
}
}
],
"lines" : [ ],
"originid" : "pat-3701",
"parameters" : {
"obj-1::obj-25" : [ "dict", "dict", 0 ],
"parameterbanks" : {
"0" : {
"index" : 0,
"name" : "",
"parameters" : [ "-", "-", "-", "-", "-", "-", "-", "-" ]
}
}
,
"inherited_shortname" : 1
}
,
"dependency_cache" : [ {
"name" : "ModEnum.maxpat",
"bootpath" : "~/Documents/max-mod-enum",
"patcherrelativepath" : ".",
"type" : "JSON",
"implicit" : 1
}
],
"autosave" : 0
}
}

3260
ModEnum.maxpat Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -205,7 +205,15 @@ h5 {
#pulse {
animation: pulse-animation 0.2s normal;
}
/* :::::::::::::: SELECTING MODULATORS/ENUMERATORS */
.highlighted-button {
background-color: gray;
}
.unhighlighted-button {
background-color: white;
}
/* :::::::::::::: LOCK CSS */
.locked-component {
@@ -217,7 +225,7 @@ h5 {
.header {
display: flex;
width: 100%;
justify-content: space-between;
flex-direction: flex;
}
/* Locked */

View File

@@ -9,8 +9,8 @@ else
const e = React.createElement;
let lfos = [];
const MAXLFOS = 20;
const MAXENUMS = 20;
const MAXLFOS = 200;
const MAXENUMS = 200;
const MAXENUMPOINTS = 10;
const MAXUSERDEFINED = 4;
@@ -65,12 +65,6 @@ function MasterLfoHandler() {
initVisArr[0] = true;
const [viewMode, setViewMode] = React.useState(ViewModes.MOD);
const toggleViewMode = () => {
if (viewMode === ViewModes.MOD)
setViewMode(ViewModes.ENUM);
else
setViewMode(ViewModes.MOD);
};
const [lockMode, setLockMode] = React.useState(LockModes.UNLOCK);
const toggleLockMode = () => {
@@ -80,6 +74,18 @@ function MasterLfoHandler() {
setLockMode(LockModes.UNLOCK);
};
const [enabled, setEnabled] = React.useState(false);
const toggleEnabled = () => {
setEnabled(!enabled);
};
const displayIfEnabled = (content) => {
if (enabled)
return content
}
let toggleEnabledText = enabled ? "Hide" : "Show";
/// MODULATOR ARRAYS
let userDefinedWavesBase = [];
let userDefinedFunctionsBase = [];
@@ -534,16 +540,19 @@ function MasterLfoHandler() {
var grid;
var title;
var modButtonClass;
var enumButtonClass;
var labels;
if (viewMode === ViewModes.MOD) {
grid = modContents;
title = "MODULATORS";
modButtonClass = "highlighted-button";
enumButtonClass = "unhighlighted-button";
labels = MODULATORLABELS;
}
else {
grid = enumContents;
title = "ENUMERATORS";
modButtonClass = "unhighlighted-button";
enumButtonClass = "highlighted-button";
labels = ENUMERATORLABELS;
}
@@ -557,16 +566,19 @@ function MasterLfoHandler() {
return e('div', null,
e('div', { className: 'header' },
e(Switch, { ontoggle: toggleViewMode }, null),
displayIfEnabled(e('button', { onClick: () => setViewMode(ViewModes.MOD), className: modButtonClass}, 'Modulators')),
displayIfEnabled(e('button', { onClick: () => setViewMode(ViewModes.ENUM), className: enumButtonClass }, 'Enumerators')),
e('button', { onClick: toggleEnabled, }, toggleEnabledText),
//allows lock mode
//e('span', { className: lockClass, onClick: toggleLockMode }, null)
),
//e('h5', null, title),
e('table', { id: 'table' },
displayIfEnabled(
e('table', { id: 'table' },
e('thead', null, e('tr', { id: 'headers' }, ...labels.map(x => e('th', null, x)))),
e('tbody', null, ...grid)
)
))
);
}