Compare commits
No commits in common. "main" and "hotfix" have entirely different histories.
267
ModEnum.maxhelp
267
ModEnum.maxhelp
@ -1,267 +0,0 @@
|
|||||||
{
|
|
||||||
"patcher" : {
|
|
||||||
"fileversion" : 1,
|
|
||||||
"appversion" : {
|
|
||||||
"major" : 8,
|
|
||||||
"minor" : 6,
|
|
||||||
"revision" : 5,
|
|
||||||
"architecture" : "x64",
|
|
||||||
"modernui" : 1
|
|
||||||
}
|
|
||||||
,
|
|
||||||
"classnamespace" : "box",
|
|
||||||
"rect" : [ 347.0, 100.0, 1131.0, 790.0 ],
|
|
||||||
"bglocked" : 0,
|
|
||||||
"openinpresentation" : 0,
|
|
||||||
"default_fontsize" : 12.0,
|
|
||||||
"default_fontface" : 0,
|
|
||||||
"default_fontname" : "Arial",
|
|
||||||
"gridonopen" : 1,
|
|
||||||
"gridsize" : [ 15.0, 15.0 ],
|
|
||||||
"gridsnaponopen" : 1,
|
|
||||||
"objectsnaponopen" : 1,
|
|
||||||
"statusbarvisible" : 2,
|
|
||||||
"toolbarvisible" : 1,
|
|
||||||
"lefttoolbarpinned" : 0,
|
|
||||||
"toptoolbarpinned" : 0,
|
|
||||||
"righttoolbarpinned" : 0,
|
|
||||||
"bottomtoolbarpinned" : 0,
|
|
||||||
"toolbars_unpinned_last_save" : 0,
|
|
||||||
"tallnewobj" : 0,
|
|
||||||
"boxanimatetime" : 200,
|
|
||||||
"enablehscroll" : 1,
|
|
||||||
"enablevscroll" : 1,
|
|
||||||
"devicewidth" : 0.0,
|
|
||||||
"description" : "",
|
|
||||||
"digest" : "",
|
|
||||||
"tags" : "",
|
|
||||||
"style" : "",
|
|
||||||
"subpatcher_template" : "",
|
|
||||||
"assistshowspatchername" : 0,
|
|
||||||
"boxes" : [ {
|
|
||||||
"box" : {
|
|
||||||
"id" : "obj-12",
|
|
||||||
"maxclass" : "message",
|
|
||||||
"numinlets" : 2,
|
|
||||||
"numoutlets" : 1,
|
|
||||||
"outlettype" : [ "" ],
|
|
||||||
"patching_rect" : [ 29.113923668861389, 96.202530384063721, 42.0, 22.0 ],
|
|
||||||
"text" : "reload"
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
, {
|
|
||||||
"box" : {
|
|
||||||
"id" : "obj-51",
|
|
||||||
"maxclass" : "newobj",
|
|
||||||
"numinlets" : 1,
|
|
||||||
"numoutlets" : 1,
|
|
||||||
"outlettype" : [ "" ],
|
|
||||||
"patching_rect" : [ 294.936704993247986, 112.658226370811462, 277.0, 22.0 ],
|
|
||||||
"saved_object_attributes" : {
|
|
||||||
"client_rect" : [ 0, 99, 1470, 922 ],
|
|
||||||
"parameter_enable" : 0,
|
|
||||||
"parameter_mappable" : 0,
|
|
||||||
"storage_rect" : [ 1282, 626, 1887, 1000 ]
|
|
||||||
}
|
|
||||||
,
|
|
||||||
"text" : "pattrstorage myStorage @savemode 3 @greedy 1",
|
|
||||||
"varname" : "myStorage"
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
, {
|
|
||||||
"box" : {
|
|
||||||
"id" : "obj-10",
|
|
||||||
"maxclass" : "preset",
|
|
||||||
"numinlets" : 1,
|
|
||||||
"numoutlets" : 5,
|
|
||||||
"outlettype" : [ "preset", "int", "preset", "int", "" ],
|
|
||||||
"patching_rect" : [ 55.696201801300049, 24.05063259601593, 100.0, 40.0 ],
|
|
||||||
"pattrstorage" : "myStorage"
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
, {
|
|
||||||
"box" : {
|
|
||||||
"id" : "obj-8",
|
|
||||||
"maxclass" : "message",
|
|
||||||
"numinlets" : 2,
|
|
||||||
"numoutlets" : 1,
|
|
||||||
"outlettype" : [ "" ],
|
|
||||||
"patching_rect" : [ 851.30120575428009, 786.0, 50.0, 22.0 ]
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
, {
|
|
||||||
"box" : {
|
|
||||||
"id" : "obj-9",
|
|
||||||
"maxclass" : "message",
|
|
||||||
"numinlets" : 2,
|
|
||||||
"numoutlets" : 1,
|
|
||||||
"outlettype" : [ "" ],
|
|
||||||
"patching_rect" : [ 679.901205754280113, 786.0, 50.0, 22.0 ]
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
, {
|
|
||||||
"box" : {
|
|
||||||
"id" : "obj-6",
|
|
||||||
"maxclass" : "message",
|
|
||||||
"numinlets" : 2,
|
|
||||||
"numoutlets" : 1,
|
|
||||||
"outlettype" : [ "" ],
|
|
||||||
"patching_rect" : [ 508.501205754280136, 786.0, 50.0, 22.0 ]
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
, {
|
|
||||||
"box" : {
|
|
||||||
"id" : "obj-7",
|
|
||||||
"maxclass" : "message",
|
|
||||||
"numinlets" : 2,
|
|
||||||
"numoutlets" : 1,
|
|
||||||
"outlettype" : [ "" ],
|
|
||||||
"patching_rect" : [ 337.101205754280102, 786.0, 50.0, 22.0 ]
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
, {
|
|
||||||
"box" : {
|
|
||||||
"id" : "obj-5",
|
|
||||||
"linecount" : 2,
|
|
||||||
"maxclass" : "message",
|
|
||||||
"numinlets" : 2,
|
|
||||||
"numoutlets" : 1,
|
|
||||||
"outlettype" : [ "" ],
|
|
||||||
"patching_rect" : [ 165.701205754280096, 786.0, 50.0, 35.0 ],
|
|
||||||
"text" : "stream 0.802"
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
, {
|
|
||||||
"box" : {
|
|
||||||
"id" : "obj-3",
|
|
||||||
"linecount" : 4,
|
|
||||||
"maxclass" : "message",
|
|
||||||
"numinlets" : 2,
|
|
||||||
"numoutlets" : 1,
|
|
||||||
"outlettype" : [ "" ],
|
|
||||||
"patching_rect" : [ 46.0, 786.0, 50.0, 62.0 ],
|
|
||||||
"text" : "pulse_length 0.981862"
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
, {
|
|
||||||
"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, 876.0, 621.0 ],
|
|
||||||
"varname" : "ModEnum",
|
|
||||||
"viewvisibility" : 1
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"lines" : [ {
|
|
||||||
"patchline" : {
|
|
||||||
"destination" : [ "obj-3", 1 ],
|
|
||||||
"source" : [ "obj-1", 0 ]
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
, {
|
|
||||||
"patchline" : {
|
|
||||||
"destination" : [ "obj-5", 1 ],
|
|
||||||
"source" : [ "obj-1", 1 ]
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
, {
|
|
||||||
"patchline" : {
|
|
||||||
"destination" : [ "obj-6", 1 ],
|
|
||||||
"source" : [ "obj-1", 3 ]
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
, {
|
|
||||||
"patchline" : {
|
|
||||||
"destination" : [ "obj-7", 1 ],
|
|
||||||
"source" : [ "obj-1", 2 ]
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
, {
|
|
||||||
"patchline" : {
|
|
||||||
"destination" : [ "obj-8", 1 ],
|
|
||||||
"source" : [ "obj-1", 5 ]
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
, {
|
|
||||||
"patchline" : {
|
|
||||||
"destination" : [ "obj-9", 1 ],
|
|
||||||
"source" : [ "obj-1", 4 ]
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
, {
|
|
||||||
"patchline" : {
|
|
||||||
"destination" : [ "obj-12", 0 ],
|
|
||||||
"source" : [ "obj-10", 1 ]
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
, {
|
|
||||||
"patchline" : {
|
|
||||||
"destination" : [ "obj-1", 0 ],
|
|
||||||
"source" : [ "obj-12", 0 ]
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"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 8/Library/max-mod-enum",
|
|
||||||
"patcherrelativepath" : ".",
|
|
||||||
"type" : "JSON",
|
|
||||||
"implicit" : 1
|
|
||||||
}
|
|
||||||
, {
|
|
||||||
"name" : "myStorage.json",
|
|
||||||
"bootpath" : "~/Documents/Max 8/Library/max-mod-enum",
|
|
||||||
"patcherrelativepath" : ".",
|
|
||||||
"type" : "JSON",
|
|
||||||
"implicit" : 1
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"autosave" : 0
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
3570
ModEnum.maxpat
3570
ModEnum.maxpat
File diff suppressed because one or more lines are too long
2680
example-with-dj.maxpat
Normal file
2680
example-with-dj.maxpat
Normal file
File diff suppressed because it is too large
Load Diff
428
lfogui.css
428
lfogui.css
@ -1,14 +1,14 @@
|
|||||||
* {
|
* {
|
||||||
--locked-color: #5fadbf;
|
--locked-color: #5fadbf;
|
||||||
--unlocked-color: #ff5153;
|
--unlocked-color: #ff5153;
|
||||||
}
|
}
|
||||||
|
|
||||||
:root {
|
:root {
|
||||||
--background: white;
|
--background: ivory;
|
||||||
--active: royalblue;
|
--active: royalblue;
|
||||||
--nonactive: rgb(205, 205, 205);
|
--nonactive: lightsteelblue;
|
||||||
--alert: red;
|
--alert: red;
|
||||||
--textcolor: black;
|
--textcolor: #737373;
|
||||||
}
|
}
|
||||||
|
|
||||||
@import url('https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap');
|
@import url('https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap');
|
||||||
@ -21,143 +21,49 @@ body {
|
|||||||
font-family: "Poppins", sans-serif;
|
font-family: "Poppins", sans-serif;
|
||||||
}
|
}
|
||||||
|
|
||||||
html,
|
html, body {
|
||||||
body {
|
width: 100%;
|
||||||
width: 100%;
|
height: 100%;
|
||||||
height: 100%;
|
margin: 0px;
|
||||||
margin: 0px;
|
border: 0;
|
||||||
border: 0;
|
overflow-x: hidden; /* no horizontal scrollbar*/
|
||||||
overflow-x: scroll;
|
overflow-y: scroll;
|
||||||
overflow-y: scroll;
|
display: block; /* No floating content on sides */
|
||||||
display: block;
|
|
||||||
/* No floating content on sides */
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*navigation*/
|
ul {
|
||||||
.header {
|
list-style-type: none;
|
||||||
display: flex;
|
|
||||||
flex-flow: row nowrap;
|
|
||||||
justify-content: space-between;
|
|
||||||
align-items: center;
|
|
||||||
margin: 1em;
|
|
||||||
border-bottom: 1px solid var(--active);
|
|
||||||
}
|
|
||||||
|
|
||||||
.header button {
|
|
||||||
border: 1px solid var(--active);
|
|
||||||
color: var(--active);
|
|
||||||
background-color: white;
|
|
||||||
padding: 4px;
|
|
||||||
text-align: center;
|
|
||||||
display: inline-block;
|
|
||||||
padding: 0.5em;
|
|
||||||
margin: 4px;
|
|
||||||
font-size: 0.9em;
|
|
||||||
min-width: 4.5em;
|
|
||||||
}
|
|
||||||
|
|
||||||
td button {
|
|
||||||
background-color: white;
|
|
||||||
color: var(--active);
|
|
||||||
border: 1px solid var(--active);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* :::::::::::::: SELECTING MODULATORS/ENUMERATORS */
|
|
||||||
|
|
||||||
.header button.highlighted-button {
|
|
||||||
color: var(--active);
|
|
||||||
border: 1px solid var(--active);
|
|
||||||
}
|
|
||||||
|
|
||||||
.header button.unhighlighted-button {
|
|
||||||
color: var(--nonactive);
|
|
||||||
border: 1px solid var(--nonactive);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* table */
|
|
||||||
table {
|
|
||||||
margin: 1em;
|
|
||||||
padding: 0em;
|
|
||||||
border-collapse: collapse;
|
|
||||||
background-color: lightsteelblue;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* points datacells should have a min-width*/
|
|
||||||
.enum-count {
|
|
||||||
min-width: 5.6em;
|
|
||||||
}
|
|
||||||
|
|
||||||
th {
|
|
||||||
padding: 0.4em 0.3em;
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
thead {
|
|
||||||
color: white;
|
|
||||||
background-color: var(--active);
|
|
||||||
}
|
|
||||||
|
|
||||||
tr,
|
|
||||||
td {
|
|
||||||
margin: 0em;
|
|
||||||
}
|
|
||||||
|
|
||||||
td:last-child {
|
|
||||||
white-space: nowrap;
|
|
||||||
overflow: hidden;
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* input types */
|
|
||||||
/* dropdown list */
|
|
||||||
select {
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
option, select>* {
|
|
||||||
font-size: 0.8em !important;
|
|
||||||
padding: 0em !important;
|
|
||||||
margin: 0em !important;
|
|
||||||
min-height: 0em !important;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
option {
|
|
||||||
background-color: var(--active);
|
|
||||||
}
|
|
||||||
|
|
||||||
option:not(:checked) {
|
|
||||||
background-color: white;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* input */
|
|
||||||
input,
|
|
||||||
select {
|
|
||||||
border: 1px solid var(--active);
|
|
||||||
color: var(--active);
|
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
line-height: 1.5em;
|
overflow: hidden;
|
||||||
height: 1.5em;
|
background-color: #333333;
|
||||||
box-sizing: border-box;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
input {
|
li {
|
||||||
padding-left: 5px;
|
float: left;
|
||||||
/*slight padding on left*/
|
}
|
||||||
|
|
||||||
|
table {
|
||||||
|
overflow: scroll;
|
||||||
}
|
}
|
||||||
|
|
||||||
input[type=number] {
|
input[type=number] {
|
||||||
width: 50px;
|
width: 50px;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
input[type=text] {
|
input[type=text] {
|
||||||
width: 60px;
|
width: 60px;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
.timeInput {
|
.timeInput {
|
||||||
width: 80px;
|
width: 80px;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#matrix {
|
#matrix {
|
||||||
@ -174,205 +80,223 @@ input[type=text] {
|
|||||||
|
|
||||||
.numbox-clicked {
|
.numbox-clicked {
|
||||||
user-select: none;
|
user-select: none;
|
||||||
border: solid;
|
border : solid;
|
||||||
font-size: 12vw;
|
font-size: 12vw;
|
||||||
}
|
}
|
||||||
|
|
||||||
.param-input-label {
|
.param-input-label {
|
||||||
width: 93%;
|
width: 93%;
|
||||||
font-size: 5vw;
|
font-size: 5vw;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lfo-input-label {
|
.lfo-input-label {
|
||||||
width: 40%;
|
width: 40%;
|
||||||
font-size: 5vw;
|
font-size: 5vw;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* The switch - the box around the slider */
|
/* The switch - the box around the slider */
|
||||||
.switch {
|
.switch {
|
||||||
position: relative;
|
position: relative;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
width: 30px;
|
width: 30px;
|
||||||
height: 17px;
|
height: 17px;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Hide default HTML checkbox */
|
/* Hide default HTML checkbox */
|
||||||
.switch input {
|
.switch input {
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
width: 0;
|
width: 0;
|
||||||
height: 0;
|
height: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* The slider */
|
/* The slider */
|
||||||
input[type="range"] {
|
.slider {
|
||||||
appearance: none;
|
position: absolute;
|
||||||
-webkit-appearance: none;
|
cursor: pointer;
|
||||||
height: 8px;
|
top: 0;
|
||||||
border-radius: 6px;
|
left: 0;
|
||||||
background-color: white;
|
right: 0;
|
||||||
outline: none;
|
bottom: 0;
|
||||||
opacity: 0.7;
|
background-color: #ccc;
|
||||||
-webkit-transition: .2s;
|
-webkit-transition: .4s;
|
||||||
transition: opacity .2s;
|
transition: .4s;
|
||||||
overflow: hidden;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*slider knob*/
|
.slider:before {
|
||||||
input[type="range"]::-webkit-slider-runnable-track {
|
position: absolute;
|
||||||
-webkit-appearance: none;
|
content: "";
|
||||||
color: var(--active);
|
height: 13px;
|
||||||
margin-top: -1px;
|
width: 13px;
|
||||||
|
left: 2px;
|
||||||
|
bottom: 2px;
|
||||||
|
background-color: white;
|
||||||
|
-webkit-transition: .4s;
|
||||||
|
transition: .4s;
|
||||||
}
|
}
|
||||||
|
|
||||||
input[type="range"]::-webkit-slider-thumb {
|
input:checked + .slider {
|
||||||
-webkit-appearance: none;
|
background-color: #2196F3;
|
||||||
appearance: none;
|
|
||||||
width: 20px;
|
|
||||||
height: 20px;
|
|
||||||
border-radius: 50%;
|
|
||||||
background: var(--active);
|
|
||||||
box-shadow: -80px 0 0 80px var(--active);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
input[type="range"]::-moz-range-progress {
|
input:focus + .slider {
|
||||||
background-color: var(--active);
|
box-shadow: 0 0 1px #2196F3;
|
||||||
|
}
|
||||||
|
|
||||||
|
input:checked + .slider:before {
|
||||||
|
-webkit-transform: translateX(13px);
|
||||||
|
-ms-transform: translateX(13px);
|
||||||
|
transform: translateX(13px);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Rounded sliders */
|
||||||
|
.slider.round {
|
||||||
|
border-radius: 17px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.slider.round:before {
|
||||||
|
border-radius: 50%;
|
||||||
}
|
}
|
||||||
|
|
||||||
h5 {
|
h5 {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.enum-count {
|
||||||
|
background-color: aquamarine;
|
||||||
}
|
}
|
||||||
|
|
||||||
.label {
|
.label {
|
||||||
background-color: aliceblue;
|
background-color: aliceblue;
|
||||||
padding: 0 4px 0 4px;
|
padding: 0 4px 0 4px;
|
||||||
margin: 0 2px 0 2px;
|
margin: 0 2px 0 2px;
|
||||||
border-color: #333333;
|
border-color: #333333;
|
||||||
border-width: 1px;
|
border-width: 1px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.base-val {
|
.base-val {
|
||||||
border: none;
|
background-color: lightgray;
|
||||||
color: white;
|
border-color: #333333;
|
||||||
text-align: center;
|
border-width: 1px;
|
||||||
font-size: 0.9em;
|
width: 50px;
|
||||||
width: 50px;
|
margin-left: 2px;
|
||||||
margin: 0;
|
margin-top: 1px;
|
||||||
padding: 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.linked {
|
.linked {
|
||||||
color: red;
|
color: red;
|
||||||
border-width: 1px;
|
border-width: 1px;
|
||||||
width: 50px;
|
width: 50px;
|
||||||
font-size: small;
|
font-size: small;
|
||||||
margin-left: 2px;
|
margin-left: 2px;
|
||||||
margin-top: 5px;
|
margin-top: 5px;
|
||||||
display: none;
|
|
||||||
/*hide*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@keyframes pulse-animation {
|
@keyframes pulse-animation {
|
||||||
0% {
|
0% {
|
||||||
color: black;
|
color: black;
|
||||||
}
|
}
|
||||||
|
100% {
|
||||||
100% {
|
color: red;
|
||||||
color: red;
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#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 {
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
background-color: #333333;
|
background-color: #333333;
|
||||||
color: white;
|
color : white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.header {
|
||||||
|
display: flex;
|
||||||
|
width: 100%;
|
||||||
|
flex-direction: flex;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Locked */
|
/* Locked */
|
||||||
.lock {
|
.lock {
|
||||||
margin-top: 14px;
|
margin-top: 14px;
|
||||||
width: 24px;
|
width: 24px;
|
||||||
height: 21px;
|
height: 21px;
|
||||||
border: 3px solid var(--locked-color);
|
border: 3px solid var(--locked-color);
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
position: relative;
|
position: relative;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
-webkit-transition: all 0.1s ease-in-out;
|
-webkit-transition: all 0.1s ease-in-out;
|
||||||
transition: all 0.1s ease-in-out;
|
transition: all 0.1s ease-in-out;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lock:after {
|
.lock:after {
|
||||||
content: "";
|
content: "";
|
||||||
display: block;
|
display: block;
|
||||||
background: var(--locked-color);
|
background: var(--locked-color);
|
||||||
width: 3px;
|
width: 3px;
|
||||||
height: 7px;
|
height: 7px;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 50%;
|
top: 50%;
|
||||||
left: 50%;
|
left: 50%;
|
||||||
margin: -3.5px 0 0 -2px;
|
margin: -3.5px 0 0 -2px;
|
||||||
-webkit-transition: all 0.1s ease-in-out;
|
-webkit-transition: all 0.1s ease-in-out;
|
||||||
transition: all 0.1s ease-in-out;
|
transition: all 0.1s ease-in-out;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lock:before {
|
.lock:before {
|
||||||
content: "";
|
content: "";
|
||||||
display: block;
|
display: block;
|
||||||
width: 10px;
|
width: 10px;
|
||||||
height: 10px;
|
height: 10px;
|
||||||
bottom: 100%;
|
bottom: 100%;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
left: 50%;
|
left: 50%;
|
||||||
margin-left: -8px;
|
margin-left: -8px;
|
||||||
border: 3px solid var(--locked-color);
|
border: 3px solid var(--locked-color);
|
||||||
border-top-right-radius: 50%;
|
border-top-right-radius: 50%;
|
||||||
border-top-left-radius: 50%;
|
border-top-left-radius: 50%;
|
||||||
border-bottom: 0;
|
border-bottom: 0;
|
||||||
-webkit-transition: all 0.1s ease-in-out;
|
-webkit-transition: all 0.1s ease-in-out;
|
||||||
transition: all 0.1s ease-in-out;
|
transition: all 0.1s ease-in-out;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Locked Hover */
|
/* Locked Hover */
|
||||||
.lock:hover:before {
|
.lock:hover:before {
|
||||||
height: 12px;
|
height: 12px;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Unlocked */
|
/* Unlocked */
|
||||||
.unlocked {
|
.unlocked {
|
||||||
transform: rotate(10deg);
|
transform: rotate(10deg);
|
||||||
}
|
}
|
||||||
|
|
||||||
.unlocked:before {
|
.unlocked:before {
|
||||||
bottom: 130%;
|
bottom: 130%;
|
||||||
left: 31%;
|
left: 31%;
|
||||||
margin-left: -11.5px;
|
margin-left: -11.5px;
|
||||||
transform: rotate(-45deg);
|
transform: rotate(-45deg);
|
||||||
}
|
}
|
||||||
|
|
||||||
.unlocked,
|
.unlocked,
|
||||||
.unlocked:before {
|
.unlocked:before {
|
||||||
border-color: var(--unlocked-color);
|
border-color: var(--unlocked-color);
|
||||||
}
|
}
|
||||||
|
|
||||||
.unlocked:after {
|
.unlocked:after {
|
||||||
background: var(--unlocked-color);
|
background: var(--unlocked-color);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Unlocked Hover */
|
/* Unlocked Hover */
|
||||||
.unlocked:hover {
|
.unlocked:hover {
|
||||||
transform: rotate(3deg);
|
transform: rotate(3deg);
|
||||||
}
|
}
|
||||||
|
|
||||||
.unlocked:hover:before {
|
.unlocked:hover:before {
|
||||||
height: 10px;
|
height: 10px;
|
||||||
left: 40%;
|
left: 40%;
|
||||||
bottom: 124%;
|
bottom: 124%;
|
||||||
transform: rotate(-30deg);
|
transform: rotate(-30deg);
|
||||||
}
|
}
|
22
lfogui.html
22
lfogui.html
@ -7,20 +7,22 @@
|
|||||||
-->
|
-->
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8">
|
<link rel="stylesheet" href="./lfogui.css">
|
||||||
<link rel="stylesheet" href="./lfogui.css">
|
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<div id="lfo-container"></div>
|
<div id="lfo-container"></div>
|
||||||
|
|
||||||
<script src="./react.js"></script>
|
<script src="./react.js"></script>
|
||||||
<script src="./react-dom.js"></script>
|
<script src="./react-dom.js"></script>
|
||||||
<script src="./moment.js"></script>
|
<script src="./moment.js"></script>
|
||||||
<script src="./common.js"></script>
|
<script src="./common.js"></script>
|
||||||
<script src="./enums.js"></script>
|
<script src="./enums.js"></script>
|
||||||
<script src="./modulators.js"></script>
|
<script src="./modulators.js"></script>
|
||||||
<script src="./lfogui.js"></script>
|
<script src="./lfogui.js">
|
||||||
|
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
|
14
lfogui.js
14
lfogui.js
@ -30,7 +30,7 @@ const LockModes = Object.freeze({
|
|||||||
var modPhases = Array(MAXLFOS).fill(0);
|
var modPhases = Array(MAXLFOS).fill(0);
|
||||||
var firstUpdateTime = Date.now();
|
var firstUpdateTime = Date.now();
|
||||||
|
|
||||||
const MODULATORLABELS = ["inst", "type", "shape", "param", "timebase", "min", "max", "phase", "center", "result", "", ""];
|
const MODULATORLABELS = ["inst", "type", "shape", "param", "timebase", "min", "max", "phase", "center"];
|
||||||
const ENUMERATORLABELS = ["inst", "parameter", "# points"];
|
const ENUMERATORLABELS = ["inst", "parameter", "# points"];
|
||||||
|
|
||||||
|
|
||||||
@ -84,7 +84,7 @@ function MasterLfoHandler() {
|
|||||||
return content
|
return content
|
||||||
}
|
}
|
||||||
|
|
||||||
let toggleEnabledText = enabled ? `Hide \u{25BE}` : `Show \u{25B8}`;
|
let toggleEnabledText = enabled ? "Hide" : "Show";
|
||||||
|
|
||||||
/// MODULATOR ARRAYS
|
/// MODULATOR ARRAYS
|
||||||
let userDefinedWavesBase = [];
|
let userDefinedWavesBase = [];
|
||||||
@ -576,11 +576,9 @@ function MasterLfoHandler() {
|
|||||||
|
|
||||||
return e('div', null,
|
return e('div', null,
|
||||||
e('div', { className: 'header' },
|
e('div', { className: 'header' },
|
||||||
e('div', {className: 'nav'},
|
displayIfEnabled(e('button', { onClick: () => setViewMode(ViewModes.MOD), className: modButtonClass}, 'Modulators')),
|
||||||
displayIfEnabled(e('button', { onClick: () => setViewMode(ViewModes.MOD), className: modButtonClass}, 'Modulators')),
|
displayIfEnabled(e('button', { onClick: () => setViewMode(ViewModes.ENUM), className: enumButtonClass }, 'Enumerators')),
|
||||||
displayIfEnabled(e('button', { onClick: () => setViewMode(ViewModes.ENUM), className: enumButtonClass }, 'Enumerators'))
|
e('button', { onClick: toggleEnabled, }, toggleEnabledText),
|
||||||
),
|
|
||||||
e('button', { onClick: toggleEnabled, id: 'hide-button'}, toggleEnabledText),
|
|
||||||
|
|
||||||
//allows lock mode
|
//allows lock mode
|
||||||
//e('span', { className: lockClass, onClick: toggleLockMode }, null)
|
//e('span', { className: lockClass, onClick: toggleLockMode }, null)
|
||||||
@ -588,7 +586,7 @@ function MasterLfoHandler() {
|
|||||||
|
|
||||||
displayIfEnabled(
|
displayIfEnabled(
|
||||||
e('table', { id: 'table' },
|
e('table', { id: 'table' },
|
||||||
e('thead', null, e('tr', { id: 'headers' }, ...labels.map(x => e('th', {id: x == '# points' ? 'points' : x}, x)))),
|
e('thead', null, e('tr', { id: 'headers' }, ...labels.map(x => e('th', null, x)))),
|
||||||
e('tbody', null, ...grid)
|
e('tbody', null, ...grid)
|
||||||
))
|
))
|
||||||
);
|
);
|
||||||
|
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue
Block a user