13 Commits

Author SHA1 Message Date
51767ff058 setting viewMode directly from Max 2025-07-21 16:14:12 +02:00
Eveline-97
fe68764e7d fix aligning 2025-07-02 14:29:59 +02:00
Eveline-97
40d0927a0e streamline layout patch 2025-07-02 12:16:30 +02:00
Eveline-97
92b7545e90 match Max layout to jweb 2025-07-02 12:07:53 +02:00
Eveline-97
4912b398dd Merge remote-tracking branch 'refs/remotes/origin/main'
merge
2025-07-01 16:34:50 +02:00
Eveline-97
02d5c6e914 cleanup modulator table 2025-07-01 16:34:27 +02:00
13f3a18c4c Merge pull request 'bpatcher-embed' (#15) from bpatcher-embed into main
Reviewed-on: #15
2025-07-01 16:32:05 +02:00
f21220e7b2 Merge branch 'main' into bpatcher-embed 2025-07-01 16:31:40 +02:00
fe165b77e5 working saving for bpatcher 2025-07-01 16:30:08 +02:00
43d37f215f Merge branch 'main' into bpatcher-embed 2025-07-01 16:12:51 +02:00
64da80b742 WIP 2025-07-01 09:25:27 +02:00
0b7dbbb775 Merge branch 'main' into bpatcher-embed 2025-06-30 12:00:29 +02:00
541ab6d459 created initial bpatcher file and maxhelp 2025-06-30 11:44:03 +02:00
6 changed files with 3724 additions and 2692 deletions

267
ModEnum.maxhelp Normal file
View File

@@ -0,0 +1,267 @@
{
"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
}
}

3345
ModEnum.maxpat Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@@ -27,8 +27,7 @@ body {
height: 100%;
margin: 0px;
border: 0;
overflow-x: hidden;
/* no horizontal scrollbar*/
overflow-x: scroll;
overflow-y: scroll;
display: block;
/* No floating content on sides */
@@ -77,12 +76,17 @@ td button {
/* table */
table {
overflow: scroll;
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;
@@ -90,18 +94,26 @@ th {
thead {
color: white;
background-color: royalblue;
background-color: var(--active);
}
tr, td {
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;
@@ -113,12 +125,14 @@ option, select>* {
option {
background-color: var(--active);
}
option:not(:checked) {
background-color: white;
}
/* input */
input, select {
input,
select {
border: 1px solid var(--active);
color: var(--active);
margin: 0;
@@ -128,6 +142,11 @@ input, select {
box-sizing: border-box;
}
input {
padding-left: 5px;
/*slight padding on left*/
}
input[type=number] {
width: 50px;
}
@@ -249,6 +268,8 @@ h5 {
font-size: small;
margin-left: 2px;
margin-top: 5px;
display: none;
/*hide*/
}

View File

@@ -30,7 +30,7 @@ const LockModes = Object.freeze({
var modPhases = Array(MAXLFOS).fill(0);
var firstUpdateTime = Date.now();
const MODULATORLABELS = ["inst", "type", "shape", "param", "timebase", "min", "max", "phase", "center"];
const MODULATORLABELS = ["inst", "type", "shape", "param", "timebase", "min", "max", "phase", "center", "result", "", ""];
const ENUMERATORLABELS = ["inst", "parameter", "# points"];
@@ -282,6 +282,11 @@ function MasterLfoHandler() {
setTicks(event.detail);
}
function handleChangeViewMode(event){
setEnabled(true);
setViewMode(event.detail);
}
function setNN(event) {
for (let i = 0; i < MAXLFOS; i++) {
@@ -352,6 +357,7 @@ function MasterLfoHandler() {
window.addEventListener('userFunction', handleChangeUserFunction);
window.addEventListener('userDefinedType', handleChangeUserDefinedType);
window.addEventListener('maxTicks', handleMaxTicks);
window.addEventListener('viewMode', handleChangeViewMode);
return () => {
window.removeEventListener('loadDict', handleLoad);
@@ -366,6 +372,7 @@ function MasterLfoHandler() {
window.removeEventListener('userFunction', handleChangeUserFunction);
window.removeEventListener('userDefinedType', handleChangeUserDefinedType);
window.removeEventListener('maxTicks', handleMaxTicks);
window.removeEventListener('viewMode', handleChangeViewMode);
};
}, [...allModArrays, ...allEnumArrays, ...allEnumMats, userDefinedWaves, userDefinedFunctions, userDefinedTypes, modCenterVals, render, beatsInMeasure, ticks]);
@@ -628,6 +635,10 @@ if (!DEBUG) {
window.dispatchEvent(new CustomEvent('userWave', { 'detail': data }));
});
window.max.bindInlet("viewMode", (mode) => {
window.dispatchEvent(new CustomEvent('viewMode', { 'detail': parseInt(mode) }));
});
window.max.bindInlet("userFunction", (index, ...points) => {
//list of 101 points between 0-100
let data = { points, index };

File diff suppressed because one or more lines are too long