10 Commits

7 changed files with 3405 additions and 2955 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

File diff suppressed because one or more lines are too long

View File

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

View File

@@ -65,12 +65,6 @@ function MasterLfoHandler() {
initVisArr[0] = true; initVisArr[0] = true;
const [viewMode, setViewMode] = React.useState(ViewModes.MOD); 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 [lockMode, setLockMode] = React.useState(LockModes.UNLOCK);
const toggleLockMode = () => { const toggleLockMode = () => {
@@ -80,6 +74,18 @@ function MasterLfoHandler() {
setLockMode(LockModes.UNLOCK); 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 /// MODULATOR ARRAYS
let userDefinedWavesBase = []; let userDefinedWavesBase = [];
let userDefinedFunctionsBase = []; let userDefinedFunctionsBase = [];
@@ -96,7 +102,7 @@ function MasterLfoHandler() {
const [modTypeArr, setModTypeArr] = React.useState(Array(MAXLFOS).fill('LFO')); const [modTypeArr, setModTypeArr] = React.useState(Array(MAXLFOS).fill('LFO'));
const [modInstanceNumArr, setModInstanceNumArr] = React.useState(Array(MAXLFOS).fill('1')); const [modInstanceNumArr, setModInstanceNumArr] = React.useState(Array(MAXLFOS).fill('1'));
const [modCenterVals, setModCenterVals] = React.useState({ '1': {}, '2': {}, '3': {}, '4': {} }); const [modCenterVals, setModCenterVals] = React.useState({ '1': {}, '2': {}, '3': {}, '4': {}, '5': {}, '6': {}});
const [ticks, setTicks] = React.useState(0); const [ticks, setTicks] = React.useState(0);
const [beatsInMeasure, setBeatsInMeasure] = React.useState(4); const [beatsInMeasure, setBeatsInMeasure] = React.useState(4);
@@ -534,16 +540,19 @@ function MasterLfoHandler() {
var grid; var grid;
var title; var modButtonClass;
var enumButtonClass;
var labels; var labels;
if (viewMode === ViewModes.MOD) { if (viewMode === ViewModes.MOD) {
grid = modContents; grid = modContents;
title = "MODULATORS"; modButtonClass = "highlighted-button";
enumButtonClass = "unhighlighted-button";
labels = MODULATORLABELS; labels = MODULATORLABELS;
} }
else { else {
grid = enumContents; grid = enumContents;
title = "ENUMERATORS"; modButtonClass = "unhighlighted-button";
enumButtonClass = "highlighted-button";
labels = ENUMERATORLABELS; labels = ENUMERATORLABELS;
} }
@@ -557,16 +566,19 @@ function MasterLfoHandler() {
return e('div', null, return e('div', null,
e('div', { className: 'header' }, 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 //allows lock mode
//e('span', { className: lockClass, onClick: toggleLockMode }, null) //e('span', { className: lockClass, onClick: toggleLockMode }, null)
), ),
//e('h5', null, title), displayIfEnabled(
e('table', { id: 'table' }, e('table', { id: 'table' },
e('thead', null, e('tr', { id: 'headers' }, ...labels.map(x => e('th', null, x)))), e('thead', null, e('tr', { id: 'headers' }, ...labels.map(x => e('th', null, x)))),
e('tbody', null, ...grid) e('tbody', null, ...grid)
) ))
); );
} }

View File

@@ -7,7 +7,7 @@ var TYPEOPTIONS = ["LFO", "Noise"];
var SHAPETYPES = ["Sine", "SawUp", "SawDown", "Tri", "Square", "Custom_1", "Custom_2", "Custom_3", "Custom_4"]; var SHAPETYPES = ["Sine", "SawUp", "SawDown", "Tri", "Square", "Custom_1", "Custom_2", "Custom_3", "Custom_4"];
var NOISETYPES = ["Rand", "Line Int.", "Sine Int."] var NOISETYPES = ["Rand", "Line Int.", "Sine Int."]
var INSTANCEOPTIONS = ["1", "2", "3", "4"]; var INSTANCEOPTIONS = ["1", "2", "3", "4", "5", "6"];
const MODPARAMOPTIONS = ["NONE", "stream", "pulse_length", "eventfulness", "event_length", "metriclarity", const MODPARAMOPTIONS = ["NONE", "stream", "pulse_length", "eventfulness", "event_length", "metriclarity",
"harmoniclarity", "melodic_cohesion", "melody_scope", "tonic_pitch", "pitch_center", "pitch_range", "dynamics", "harmoniclarity", "melodic_cohesion", "melody_scope", "tonic_pitch", "pitch_center", "pitch_range", "dynamics",