Compare commits
10 Commits
increase-m
...
0b7dbbb775
| Author | SHA1 | Date | |
|---|---|---|---|
| 0b7dbbb775 | |||
| 290ff73524 | |||
| 9b1a9f2e03 | |||
| 541ab6d459 | |||
| b96f2aa53b | |||
| edcddde844 | |||
| e41567c101 | |||
| 8002ae8bdb | |||
| 286a43b0b2 | |||
| 229ddb9c37 |
65
ModEnum.maxhelp
Normal file
65
ModEnum.maxhelp
Normal 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
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
303
example.maxpat
303
example.maxpat
File diff suppressed because one or more lines are too long
10
lfogui.css
10
lfogui.css
@@ -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 */
|
||||||
|
|||||||
40
lfogui.js
40
lfogui.js
@@ -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)
|
||||||
)
|
))
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
Reference in New Issue
Block a user