musical timing
This commit is contained in:
parent
ebd09dfd26
commit
1d8610fa5f
@ -39,12 +39,12 @@ function Switch(props){
|
|||||||
e('span', {className: 'slider round'}, null))
|
e('span', {className: 'slider round'}, null))
|
||||||
}
|
}
|
||||||
|
|
||||||
function CreateParamChanger(arr, setArr, index, cb=() => {}){
|
function CreateParamChanger(arr, setArr, index, postCB=() => {}, preCB=(val) => val){
|
||||||
return (event) => {
|
return (event) => {
|
||||||
let newArr = arr.slice();
|
let newArr = arr.slice();
|
||||||
newArr[index] = event.target.value;
|
newArr[index] = preCB(event.target.value);
|
||||||
setArr(newArr);
|
setArr(newArr);
|
||||||
cb();
|
postCB();
|
||||||
log(`${index} ${event.target.value}`);
|
log(`${index} ${event.target.value}`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
456
example.maxpat
456
example.maxpat
@ -10,7 +10,7 @@
|
|||||||
}
|
}
|
||||||
,
|
,
|
||||||
"classnamespace" : "box",
|
"classnamespace" : "box",
|
||||||
"rect" : [ 533.0, 91.0, 930.0, 869.0 ],
|
"rect" : [ 533.0, 91.0, 1344.0, 869.0 ],
|
||||||
"bglocked" : 0,
|
"bglocked" : 0,
|
||||||
"openinpresentation" : 0,
|
"openinpresentation" : 0,
|
||||||
"default_fontsize" : 12.0,
|
"default_fontsize" : 12.0,
|
||||||
@ -39,6 +39,54 @@
|
|||||||
"subpatcher_template" : "",
|
"subpatcher_template" : "",
|
||||||
"assistshowspatchername" : 0,
|
"assistshowspatchername" : 0,
|
||||||
"boxes" : [ {
|
"boxes" : [ {
|
||||||
|
"box" : {
|
||||||
|
"id" : "obj-53",
|
||||||
|
"maxclass" : "button",
|
||||||
|
"numinlets" : 1,
|
||||||
|
"numoutlets" : 1,
|
||||||
|
"outlettype" : [ "bang" ],
|
||||||
|
"parameter_enable" : 0,
|
||||||
|
"patching_rect" : [ 737.0, 43.0, 24.0, 24.0 ]
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
, {
|
||||||
|
"box" : {
|
||||||
|
"id" : "obj-1",
|
||||||
|
"maxclass" : "newobj",
|
||||||
|
"numinlets" : 1,
|
||||||
|
"numoutlets" : 1,
|
||||||
|
"outlettype" : [ "" ],
|
||||||
|
"patching_rect" : [ 684.0, 146.0, 94.0, 22.0 ],
|
||||||
|
"text" : "prepend timesig"
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
, {
|
||||||
|
"box" : {
|
||||||
|
"id" : "obj-52",
|
||||||
|
"maxclass" : "newobj",
|
||||||
|
"numinlets" : 1,
|
||||||
|
"numoutlets" : 1,
|
||||||
|
"outlettype" : [ "" ],
|
||||||
|
"patching_rect" : [ 545.0, 135.0, 89.0, 22.0 ],
|
||||||
|
"text" : "prepend tempo"
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
, {
|
||||||
|
"box" : {
|
||||||
|
"id" : "obj-49",
|
||||||
|
"linecount" : 2,
|
||||||
|
"maxclass" : "comment",
|
||||||
|
"numinlets" : 1,
|
||||||
|
"numoutlets" : 0,
|
||||||
|
"patching_rect" : [ 868.0, 96.0, 150.0, 33.0 ],
|
||||||
|
"text" : "ADD SUPPORT FOR MUSICAL TIMINGS"
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
, {
|
||||||
"box" : {
|
"box" : {
|
||||||
"id" : "obj-37",
|
"id" : "obj-37",
|
||||||
"maxclass" : "newobj",
|
"maxclass" : "newobj",
|
||||||
@ -115,9 +163,9 @@
|
|||||||
"patching_rect" : [ 643.0, 770.0, 40.0, 22.0 ],
|
"patching_rect" : [ 643.0, 770.0, 40.0, 22.0 ],
|
||||||
"restore" : [ {
|
"restore" : [ {
|
||||||
"data" : {
|
"data" : {
|
||||||
"enumArrays" : [ [ 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ "3", 2, 2, "2", "2", "2", "2", "2", "2", "2" ], [ "meter", "NONE", "NONE", "attenuation", "attenuation", "attenuation", "attenuation", "attenuation", "attenuation", "attenuation" ] ],
|
"enumArrays" : [ [ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ "3", 2, 2, "2", "2", "2", "2", "2", "2", "2" ], [ "meter", "NONE", "NONE", "attenuation", "attenuation", "attenuation", "attenuation", "attenuation", "attenuation", "attenuation" ] ],
|
||||||
"enumMats" : [ [ [ 0, "1", "2", 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ] ], [ [ "3 4", "4 4", "7 8", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ] ] ],
|
"enumMats" : [ [ [ 0, "1", "2", 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ] ], [ [ "3 4", "4 4", "7 8", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ] ] ],
|
||||||
"modArrays" : [ [ 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ "Sine", "Sine", "Sine", "Sine", "Sine", "Sine", "Sine", "Sine", "Sine", "Sine", "Sine", "Sine", "Sine", "Sine", "Sine", "Sine", "Sine", "Sine", "Sine", "Sine" ], [ "meter", "eventfulness", "NONE", "NONE", "NONE", "NONE", "NONE", "NONE", "NONE", "NONE", "NONE", "NONE", "NONE", "NONE", "NONE", "NONE", "NONE", "NONE", "NONE", "NONE" ], [ "0.1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1" ], [ "0.5", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0" ], [ "2.5", "0", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1" ], [ "0", null, "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0" ] ]
|
"modArrays" : [ [ 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ "Sine", "Sine", "Sine", "Sine", "Sine", "Sine", "Sine", "Sine", "Sine", "Sine", "Sine", "Sine", "Sine", "Sine", "Sine", "Sine", "Sine", "Sine", "Sine", "Sine" ], [ "meter", "eventfulness", "NONE", "NONE", "NONE", "NONE", "NONE", "NONE", "NONE", "NONE", "NONE", "NONE", "NONE", "NONE", "NONE", "NONE", "NONE", "NONE", "NONE", "NONE" ], [ "0.1hz", "1hz", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1" ], [ "0.5", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0" ], [ "2.5", "0", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1" ], [ "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0" ] ]
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -136,9 +184,9 @@
|
|||||||
"box" : {
|
"box" : {
|
||||||
"data" : {
|
"data" : {
|
||||||
"data" : {
|
"data" : {
|
||||||
"enumArrays" : [ [ 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ "3", 2, 2, "2", "2", "2", "2", "2", "2", "2" ], [ "meter", "NONE", "NONE", "attenuation", "attenuation", "attenuation", "attenuation", "attenuation", "attenuation", "attenuation" ] ],
|
"enumArrays" : [ [ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ "3", 2, 2, "2", "2", "2", "2", "2", "2", "2" ], [ "meter", "NONE", "NONE", "attenuation", "attenuation", "attenuation", "attenuation", "attenuation", "attenuation", "attenuation" ] ],
|
||||||
"enumMats" : [ [ [ 0, "1", "2", 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ] ], [ [ "3 4", "4 4", "7 8", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ] ] ],
|
"enumMats" : [ [ [ 0, "1", "2", 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ] ], [ [ "3 4", "4 4", "7 8", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ], [ "param", "param", "param", "param", "param", "param", "param", "param", "param", "param" ] ] ],
|
||||||
"modArrays" : [ [ 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ "Sine", "Sine", "Sine", "Sine", "Sine", "Sine", "Sine", "Sine", "Sine", "Sine", "Sine", "Sine", "Sine", "Sine", "Sine", "Sine", "Sine", "Sine", "Sine", "Sine" ], [ "meter", "eventfulness", "NONE", "NONE", "NONE", "NONE", "NONE", "NONE", "NONE", "NONE", "NONE", "NONE", "NONE", "NONE", "NONE", "NONE", "NONE", "NONE", "NONE", "NONE" ], [ "0.1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1" ], [ "0.5", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0" ], [ "2.5", "0", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1" ], [ "0", null, "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0" ] ]
|
"modArrays" : [ [ 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ "Sine", "Sine", "Sine", "Sine", "Sine", "Sine", "Sine", "Sine", "Sine", "Sine", "Sine", "Sine", "Sine", "Sine", "Sine", "Sine", "Sine", "Sine", "Sine", "Sine" ], [ "meter", "eventfulness", "NONE", "NONE", "NONE", "NONE", "NONE", "NONE", "NONE", "NONE", "NONE", "NONE", "NONE", "NONE", "NONE", "NONE", "NONE", "NONE", "NONE", "NONE" ], [ "0.1hz", "1hz", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1" ], [ "0.5", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0" ], [ "2.5", "0", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1" ], [ "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0" ] ]
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -170,31 +218,6 @@
|
|||||||
"text" : "print"
|
"text" : "print"
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
|
||||||
, {
|
|
||||||
"box" : {
|
|
||||||
"id" : "obj-9",
|
|
||||||
"linecount" : 2,
|
|
||||||
"maxclass" : "comment",
|
|
||||||
"numinlets" : 1,
|
|
||||||
"numoutlets" : 0,
|
|
||||||
"patching_rect" : [ 904.0, 80.0, 150.0, 33.0 ],
|
|
||||||
"text" : "FINISH THE SAVING THING!!!"
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
, {
|
|
||||||
"box" : {
|
|
||||||
"id" : "obj-48",
|
|
||||||
"maxclass" : "newobj",
|
|
||||||
"numinlets" : 1,
|
|
||||||
"numoutlets" : 4,
|
|
||||||
"outlettype" : [ "", "bang", "", "dictionary" ],
|
|
||||||
"patching_rect" : [ 129.0, 107.0, 50.5, 22.0 ],
|
|
||||||
"text" : "DJster",
|
|
||||||
"varname" : "DJster"
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
, {
|
, {
|
||||||
"box" : {
|
"box" : {
|
||||||
@ -203,22 +226,10 @@
|
|||||||
"numinlets" : 2,
|
"numinlets" : 2,
|
||||||
"numoutlets" : 9,
|
"numoutlets" : 9,
|
||||||
"outlettype" : [ "int", "int", "float", "float", "float", "", "int", "float", "" ],
|
"outlettype" : [ "int", "int", "float", "float", "float", "", "int", "float", "" ],
|
||||||
"patching_rect" : [ 253.0, 520.0, 103.0, 22.0 ],
|
"patching_rect" : [ 744.815790414810181, 107.0, 103.0, 22.0 ],
|
||||||
"text" : "transport"
|
"text" : "transport"
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
|
||||||
, {
|
|
||||||
"box" : {
|
|
||||||
"id" : "obj-46",
|
|
||||||
"linecount" : 4,
|
|
||||||
"maxclass" : "comment",
|
|
||||||
"numinlets" : 1,
|
|
||||||
"numoutlets" : 0,
|
|
||||||
"patching_rect" : [ 1045.5, 6.0, 153.0, 60.0 ],
|
|
||||||
"text" : "Should be an indicator for modulators if there is a corresponding enumerator and vice versa"
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
, {
|
, {
|
||||||
"box" : {
|
"box" : {
|
||||||
@ -323,19 +334,20 @@
|
|||||||
"numoutlets" : 1,
|
"numoutlets" : 1,
|
||||||
"outlettype" : [ "" ],
|
"outlettype" : [ "" ],
|
||||||
"patching_rect" : [ 569.0, 647.0, 87.0, 22.0 ],
|
"patching_rect" : [ 569.0, 647.0, 87.0, 22.0 ],
|
||||||
"text" : "meter 7 8"
|
"text" : "meter 4 4"
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
, {
|
, {
|
||||||
"box" : {
|
"box" : {
|
||||||
"id" : "obj-31",
|
"id" : "obj-31",
|
||||||
|
"linecount" : 2,
|
||||||
"maxclass" : "message",
|
"maxclass" : "message",
|
||||||
"numinlets" : 2,
|
"numinlets" : 2,
|
||||||
"numoutlets" : 1,
|
"numoutlets" : 1,
|
||||||
"outlettype" : [ "" ],
|
"outlettype" : [ "" ],
|
||||||
"patching_rect" : [ 485.0, 647.0, 80.0, 22.0 ],
|
"patching_rect" : [ 485.0, 647.0, 80.0, 35.0 ],
|
||||||
"text" : "stream 0.364"
|
"text" : "stream 0.207125"
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -347,7 +359,7 @@
|
|||||||
"numoutlets" : 1,
|
"numoutlets" : 1,
|
||||||
"outlettype" : [ "" ],
|
"outlettype" : [ "" ],
|
||||||
"patching_rect" : [ 347.0, 647.0, 133.0, 22.0 ],
|
"patching_rect" : [ 347.0, 647.0, 133.0, 22.0 ],
|
||||||
"text" : "metriclarity param2"
|
"text" : "metriclarity 20"
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -370,7 +382,7 @@
|
|||||||
"maxclass" : "comment",
|
"maxclass" : "comment",
|
||||||
"numinlets" : 1,
|
"numinlets" : 1,
|
||||||
"numoutlets" : 0,
|
"numoutlets" : 0,
|
||||||
"patching_rect" : [ 522.0, 528.0, 268.0, 33.0 ],
|
"patching_rect" : [ 518.0, 541.0, 268.0, 33.0 ],
|
||||||
"text" : "we can only output symbols from jweb, so this turns them into lists"
|
"text" : "we can only output symbols from jweb, so this turns them into lists"
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -382,7 +394,7 @@
|
|||||||
"numinlets" : 1,
|
"numinlets" : 1,
|
||||||
"numoutlets" : 1,
|
"numoutlets" : 1,
|
||||||
"outlettype" : [ "" ],
|
"outlettype" : [ "" ],
|
||||||
"patching_rect" : [ 423.5, 539.0, 71.0, 22.0 ],
|
"patching_rect" : [ 423.5, 552.0, 71.0, 22.0 ],
|
||||||
"text" : "fromsymbol"
|
"text" : "fromsymbol"
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -607,7 +619,7 @@
|
|||||||
"numinlets" : 1,
|
"numinlets" : 1,
|
||||||
"numoutlets" : 1,
|
"numoutlets" : 1,
|
||||||
"outlettype" : [ "" ],
|
"outlettype" : [ "" ],
|
||||||
"patching_rect" : [ 403.52631402015686, 149.0, 774.105266809463501, 365.0 ],
|
"patching_rect" : [ 402.0, 174.0, 788.631580829620361, 367.0 ],
|
||||||
"rendermode" : 0,
|
"rendermode" : 0,
|
||||||
"url" : "file://lfogui.html"
|
"url" : "file://lfogui.html"
|
||||||
}
|
}
|
||||||
@ -615,6 +627,13 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"lines" : [ {
|
"lines" : [ {
|
||||||
|
"patchline" : {
|
||||||
|
"destination" : [ "obj-2", 0 ],
|
||||||
|
"source" : [ "obj-1", 0 ]
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
, {
|
||||||
"patchline" : {
|
"patchline" : {
|
||||||
"destination" : [ "obj-27", 0 ],
|
"destination" : [ "obj-27", 0 ],
|
||||||
"source" : [ "obj-10", 0 ]
|
"source" : [ "obj-10", 0 ]
|
||||||
@ -759,7 +778,7 @@
|
|||||||
, {
|
, {
|
||||||
"patchline" : {
|
"patchline" : {
|
||||||
"destination" : [ "obj-15", 0 ],
|
"destination" : [ "obj-15", 0 ],
|
||||||
"order" : 1,
|
"order" : 2,
|
||||||
"source" : [ "obj-37", 0 ]
|
"source" : [ "obj-37", 0 ]
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -767,6 +786,14 @@
|
|||||||
, {
|
, {
|
||||||
"patchline" : {
|
"patchline" : {
|
||||||
"destination" : [ "obj-16", 0 ],
|
"destination" : [ "obj-16", 0 ],
|
||||||
|
"order" : 1,
|
||||||
|
"source" : [ "obj-37", 0 ]
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
, {
|
||||||
|
"patchline" : {
|
||||||
|
"destination" : [ "obj-47", 0 ],
|
||||||
"order" : 0,
|
"order" : 0,
|
||||||
"source" : [ "obj-37", 0 ]
|
"source" : [ "obj-37", 0 ]
|
||||||
}
|
}
|
||||||
@ -794,6 +821,20 @@
|
|||||||
"source" : [ "obj-40", 0 ]
|
"source" : [ "obj-40", 0 ]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
, {
|
||||||
|
"patchline" : {
|
||||||
|
"destination" : [ "obj-1", 0 ],
|
||||||
|
"source" : [ "obj-47", 5 ]
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
, {
|
||||||
|
"patchline" : {
|
||||||
|
"destination" : [ "obj-52", 0 ],
|
||||||
|
"source" : [ "obj-47", 4 ]
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
, {
|
, {
|
||||||
"patchline" : {
|
"patchline" : {
|
||||||
@ -801,6 +842,20 @@
|
|||||||
"source" : [ "obj-5", 0 ]
|
"source" : [ "obj-5", 0 ]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
, {
|
||||||
|
"patchline" : {
|
||||||
|
"destination" : [ "obj-2", 0 ],
|
||||||
|
"source" : [ "obj-52", 0 ]
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
, {
|
||||||
|
"patchline" : {
|
||||||
|
"destination" : [ "obj-47", 0 ],
|
||||||
|
"source" : [ "obj-53", 0 ]
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
, {
|
, {
|
||||||
"patchline" : {
|
"patchline" : {
|
||||||
@ -810,304 +865,7 @@
|
|||||||
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"parameters" : {
|
"dependency_cache" : [ ],
|
||||||
"obj-48::obj-1" : [ "Outset Pulses", "Outset Pulses", 0 ],
|
|
||||||
"obj-48::obj-104" : [ "Tonality Profile", "Tonality Profile", 0 ],
|
|
||||||
"obj-48::obj-109" : [ "Play", "Play", 0 ],
|
|
||||||
"obj-48::obj-11" : [ "Eventfulness", "Eventfulness", 0 ],
|
|
||||||
"obj-48::obj-110" : [ "Event Length", "Event Length", 0 ],
|
|
||||||
"obj-48::obj-122" : [ "Choice", "Choice", 0 ],
|
|
||||||
"obj-48::obj-128" : [ "Ostinato Buffer", "Ostinato Buffer", 0 ],
|
|
||||||
"obj-48::obj-13" : [ "Melody Scope", "Melody Scope", 0 ],
|
|
||||||
"obj-48::obj-136" : [ "Sorted", "Sorted", 0 ],
|
|
||||||
"obj-48::obj-155" : [ "Use Transport", "Use Transport", 0 ],
|
|
||||||
"obj-48::obj-158" : [ "Subdivision", "Subdivision", 0 ],
|
|
||||||
"obj-48::obj-16" : [ "Scale", "Scale", 0 ],
|
|
||||||
"obj-48::obj-187" : [ "meters", "meters", 0 ],
|
|
||||||
"obj-48::obj-188" : [ "Pitchsets", "Pitchsets", 0 ],
|
|
||||||
"obj-48::obj-206" : [ "Chordal Weight", "Chordal Weight", 0 ],
|
|
||||||
"obj-48::obj-217" : [ "Overlap", "Overlap", 0 ],
|
|
||||||
"obj-48::obj-22" : [ "Pulse Length", "Pulse Length", 0 ],
|
|
||||||
"obj-48::obj-24" : [ "Harmoniclarity", "Harmoniclarity", 0 ],
|
|
||||||
"obj-48::obj-25" : [ "Pitch Center", "Pitch Center", 0 ],
|
|
||||||
"obj-48::obj-26" : [ "Pitch Range", "Pitch Range", 0 ],
|
|
||||||
"obj-48::obj-27" : [ "Dynamics", "Dynamics", 0 ],
|
|
||||||
"obj-48::obj-28" : [ "Attenuation", "Attenuation", 0 ],
|
|
||||||
"obj-48::obj-29" : [ "Ostinato", "Ostinato", 0 ],
|
|
||||||
"obj-48::obj-32" : [ "live.text[1]", "Clear Scales", 0 ],
|
|
||||||
"obj-48::obj-47" : [ "Silent Downbeat", "Silent Downbeat", 0 ],
|
|
||||||
"obj-48::obj-49" : [ "Sync", "Sync", 0 ],
|
|
||||||
"obj-48::obj-5" : [ "Metriclarity", "Metriclarity", 0 ],
|
|
||||||
"obj-48::obj-52" : [ "Tonic Pitch", "Tonic Pitch", 0 ],
|
|
||||||
"obj-48::obj-53" : [ "Precision", "Precision", 0 ],
|
|
||||||
"obj-48::obj-56" : [ "Precision[1]", "Preset Tab", 0 ],
|
|
||||||
"obj-48::obj-77" : [ "Melodic Cohesion", "Melodic Cohesion", 0 ],
|
|
||||||
"obj-48::obj-87" : [ "Sync Type", "menu", 0 ],
|
|
||||||
"obj-48::obj-88" : [ "Scala Browser", "Scala Browser", 0 ],
|
|
||||||
"parameterbanks" : {
|
|
||||||
"0" : {
|
|
||||||
"index" : 0,
|
|
||||||
"name" : "",
|
|
||||||
"parameters" : [ "-", "-", "-", "-", "-", "-", "-", "-" ]
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
,
|
|
||||||
"parameter_overrides" : {
|
|
||||||
"obj-48::obj-1" : {
|
|
||||||
"parameter_range" : [ 1, 8 ]
|
|
||||||
}
|
|
||||||
,
|
|
||||||
"obj-48::obj-13" : {
|
|
||||||
"parameter_unitstyle" : 7
|
|
||||||
}
|
|
||||||
,
|
|
||||||
"obj-48::obj-25" : {
|
|
||||||
"parameter_unitstyle" : 8
|
|
||||||
}
|
|
||||||
,
|
|
||||||
"obj-48::obj-26" : {
|
|
||||||
"parameter_unitstyle" : 7
|
|
||||||
}
|
|
||||||
,
|
|
||||||
"obj-48::obj-52" : {
|
|
||||||
"parameter_unitstyle" : 8
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
,
|
|
||||||
"inherited_shortname" : 1
|
|
||||||
}
|
|
||||||
,
|
|
||||||
"dependency_cache" : [ {
|
|
||||||
"name" : "AdditiveMeter2.maxpat",
|
|
||||||
"bootpath" : "~/Documents/Max 8/Packages/MaxScore/patchers/DJster/dispenser",
|
|
||||||
"patcherrelativepath" : "../../Max 8/Packages/MaxScore/patchers/DJster/dispenser",
|
|
||||||
"type" : "JSON",
|
|
||||||
"implicit" : 1
|
|
||||||
}
|
|
||||||
, {
|
|
||||||
"name" : "Autobusk-µPlayer.maxpat",
|
|
||||||
"bootpath" : "~/Documents/Max 8/Packages/MaxScore/patchers/DJster/core",
|
|
||||||
"patcherrelativepath" : "../../Max 8/Packages/MaxScore/patchers/DJster/core",
|
|
||||||
"type" : "JSON",
|
|
||||||
"implicit" : 1
|
|
||||||
}
|
|
||||||
, {
|
|
||||||
"name" : "DJster.maxpat",
|
|
||||||
"bootpath" : "~/Documents/Max 8/Packages/MaxScore/patchers/DJster",
|
|
||||||
"patcherrelativepath" : "../../Max 8/Packages/MaxScore/patchers/DJster",
|
|
||||||
"type" : "JSON",
|
|
||||||
"implicit" : 1
|
|
||||||
}
|
|
||||||
, {
|
|
||||||
"name" : "Inner-Equation.5.maxpat",
|
|
||||||
"bootpath" : "~/Documents/Max 8/Packages/MaxScore/patchers/DJster/dispenser",
|
|
||||||
"patcherrelativepath" : "../../Max 8/Packages/MaxScore/patchers/DJster/dispenser",
|
|
||||||
"type" : "JSON",
|
|
||||||
"implicit" : 1
|
|
||||||
}
|
|
||||||
, {
|
|
||||||
"name" : "Inside.3.maxpat",
|
|
||||||
"bootpath" : "~/Documents/Max 8/Packages/MaxScore/patchers/DJster/dispenser",
|
|
||||||
"patcherrelativepath" : "../../Max 8/Packages/MaxScore/patchers/DJster/dispenser",
|
|
||||||
"type" : "JSON",
|
|
||||||
"implicit" : 1
|
|
||||||
}
|
|
||||||
, {
|
|
||||||
"name" : "Mod.2.maxpat",
|
|
||||||
"bootpath" : "~/Documents/Max 8/Packages/MaxScore/patchers/DJster/dispenser",
|
|
||||||
"patcherrelativepath" : "../../Max 8/Packages/MaxScore/patchers/DJster/dispenser",
|
|
||||||
"type" : "JSON",
|
|
||||||
"implicit" : 1
|
|
||||||
}
|
|
||||||
, {
|
|
||||||
"name" : "Pof_(Qi)(i=0toz-r-1).2.maxpat",
|
|
||||||
"bootpath" : "~/Documents/Max 8/Packages/MaxScore/patchers/DJster/dispenser",
|
|
||||||
"patcherrelativepath" : "../../Max 8/Packages/MaxScore/patchers/DJster/dispenser",
|
|
||||||
"type" : "JSON",
|
|
||||||
"implicit" : 1
|
|
||||||
}
|
|
||||||
, {
|
|
||||||
"name" : "Pof_(Qj)(j=1toz).2.maxpat",
|
|
||||||
"bootpath" : "~/Documents/Max 8/Packages/MaxScore/patchers/DJster/dispenser",
|
|
||||||
"patcherrelativepath" : "../../Max 8/Packages/MaxScore/patchers/DJster/dispenser",
|
|
||||||
"type" : "JSON",
|
|
||||||
"implicit" : 1
|
|
||||||
}
|
|
||||||
, {
|
|
||||||
"name" : "Pof_(Qz+1-k)(k=0tor).2.maxpat",
|
|
||||||
"bootpath" : "~/Documents/Max 8/Packages/MaxScore/patchers/DJster/dispenser",
|
|
||||||
"patcherrelativepath" : "../../Max 8/Packages/MaxScore/patchers/DJster/dispenser",
|
|
||||||
"type" : "JSON",
|
|
||||||
"implicit" : 1
|
|
||||||
}
|
|
||||||
, {
|
|
||||||
"name" : "Qz+1-k2.maxpat",
|
|
||||||
"bootpath" : "~/Documents/Max 8/Packages/MaxScore/patchers/DJster/dispenser",
|
|
||||||
"patcherrelativepath" : "../../Max 8/Packages/MaxScore/patchers/DJster/dispenser",
|
|
||||||
"type" : "JSON",
|
|
||||||
"implicit" : 1
|
|
||||||
}
|
|
||||||
, {
|
|
||||||
"name" : "Qz-r2.maxpat",
|
|
||||||
"bootpath" : "~/Documents/Max 8/Packages/MaxScore/patchers/DJster/dispenser",
|
|
||||||
"patcherrelativepath" : "../../Max 8/Packages/MaxScore/patchers/DJster/dispenser",
|
|
||||||
"type" : "JSON",
|
|
||||||
"implicit" : 1
|
|
||||||
}
|
|
||||||
, {
|
|
||||||
"name" : "TIE.7.maxpat",
|
|
||||||
"bootpath" : "~/Documents/Max 8/Packages/MaxScore/patchers/DJster/dispenser",
|
|
||||||
"patcherrelativepath" : "../../Max 8/Packages/MaxScore/patchers/DJster/dispenser",
|
|
||||||
"type" : "JSON",
|
|
||||||
"implicit" : 1
|
|
||||||
}
|
|
||||||
, {
|
|
||||||
"name" : "Total-Internal-Equation.6.maxpat",
|
|
||||||
"bootpath" : "~/Documents/Max 8/Packages/MaxScore/patchers/DJster/dispenser",
|
|
||||||
"patcherrelativepath" : "../../Max 8/Packages/MaxScore/patchers/DJster/dispenser",
|
|
||||||
"type" : "JSON",
|
|
||||||
"implicit" : 1
|
|
||||||
}
|
|
||||||
, {
|
|
||||||
"name" : "bytecount.maxpat",
|
|
||||||
"bootpath" : "~/Documents/Max 8/Packages/MaxScore/patchers/DJster/core",
|
|
||||||
"patcherrelativepath" : "../../Max 8/Packages/MaxScore/patchers/DJster/core",
|
|
||||||
"type" : "JSON",
|
|
||||||
"implicit" : 1
|
|
||||||
}
|
|
||||||
, {
|
|
||||||
"name" : "composite-meters.txt",
|
|
||||||
"bootpath" : "~/Documents/Max 8/Packages/MaxScore/patchers/DJster/dispenser",
|
|
||||||
"patcherrelativepath" : "../../Max 8/Packages/MaxScore/patchers/DJster/dispenser",
|
|
||||||
"type" : "TEXT",
|
|
||||||
"implicit" : 1
|
|
||||||
}
|
|
||||||
, {
|
|
||||||
"name" : "dispenser.maxpat",
|
|
||||||
"bootpath" : "~/Documents/Max 8/Packages/MaxScore/patchers/DJster/dispenser",
|
|
||||||
"patcherrelativepath" : "../../Max 8/Packages/MaxScore/patchers/DJster/dispenser",
|
|
||||||
"type" : "JSON",
|
|
||||||
"implicit" : 1
|
|
||||||
}
|
|
||||||
, {
|
|
||||||
"name" : "djster.accum.maxpat",
|
|
||||||
"bootpath" : "~/Documents/Max 8/Packages/MaxScore/patchers/DJster/core",
|
|
||||||
"patcherrelativepath" : "../../Max 8/Packages/MaxScore/patchers/DJster/core",
|
|
||||||
"type" : "JSON",
|
|
||||||
"implicit" : 1
|
|
||||||
}
|
|
||||||
, {
|
|
||||||
"name" : "dumper.2.maxpat",
|
|
||||||
"bootpath" : "~/Documents/Max 8/Packages/MaxScore/patchers/DJster/dispenser",
|
|
||||||
"patcherrelativepath" : "../../Max 8/Packages/MaxScore/patchers/DJster/dispenser",
|
|
||||||
"type" : "JSON",
|
|
||||||
"implicit" : 1
|
|
||||||
}
|
|
||||||
, {
|
|
||||||
"name" : "harmonic-energy-profile.txt",
|
|
||||||
"bootpath" : "~/Documents/Max 8/Packages/MaxScore/patchers/DJster/Profiles",
|
|
||||||
"patcherrelativepath" : "../../Max 8/Packages/MaxScore/patchers/DJster/Profiles",
|
|
||||||
"type" : "TEXT",
|
|
||||||
"implicit" : 1
|
|
||||||
}
|
|
||||||
, {
|
|
||||||
"name" : "harmonicity.maxpat",
|
|
||||||
"bootpath" : "~/Documents/Max 8/Packages/MaxScore/patchers/DJster/Tonality",
|
|
||||||
"patcherrelativepath" : "../../Max 8/Packages/MaxScore/patchers/DJster/Tonality",
|
|
||||||
"type" : "JSON",
|
|
||||||
"implicit" : 1
|
|
||||||
}
|
|
||||||
, {
|
|
||||||
"name" : "indigestibility.maxpat",
|
|
||||||
"bootpath" : "~/Documents/Max 8/Packages/MaxScore/patchers/DJster/Tonality",
|
|
||||||
"patcherrelativepath" : "../../Max 8/Packages/MaxScore/patchers/DJster/Tonality",
|
|
||||||
"type" : "JSON",
|
|
||||||
"implicit" : 1
|
|
||||||
}
|
|
||||||
, {
|
|
||||||
"name" : "meter-subpatch.maxpat",
|
|
||||||
"bootpath" : "~/Documents/Max 8/Packages/MaxScore/patchers/DJster/core",
|
|
||||||
"patcherrelativepath" : "../../Max 8/Packages/MaxScore/patchers/DJster/core",
|
|
||||||
"type" : "JSON",
|
|
||||||
"implicit" : 1
|
|
||||||
}
|
|
||||||
, {
|
|
||||||
"name" : "mxj.mxo",
|
|
||||||
"type" : "iLaX"
|
|
||||||
}
|
|
||||||
, {
|
|
||||||
"name" : "outset.maxpat",
|
|
||||||
"bootpath" : "~/Documents/Max 8/Packages/MaxScore/patchers/DJster/core",
|
|
||||||
"patcherrelativepath" : "../../Max 8/Packages/MaxScore/patchers/DJster/core",
|
|
||||||
"type" : "JSON",
|
|
||||||
"implicit" : 1
|
|
||||||
}
|
|
||||||
, {
|
|
||||||
"name" : "packback.maxpat",
|
|
||||||
"bootpath" : "~/Documents/Max 8/Packages/MaxScore/patchers/abstractions",
|
|
||||||
"patcherrelativepath" : "../../Max 8/Packages/MaxScore/patchers/abstractions",
|
|
||||||
"type" : "JSON",
|
|
||||||
"implicit" : 1
|
|
||||||
}
|
|
||||||
, {
|
|
||||||
"name" : "platform.js",
|
|
||||||
"bootpath" : "~/Documents/Max 8/Packages/MaxScore/javascript",
|
|
||||||
"patcherrelativepath" : "../../Max 8/Packages/MaxScore/javascript",
|
|
||||||
"type" : "TEXT",
|
|
||||||
"implicit" : 1
|
|
||||||
}
|
|
||||||
, {
|
|
||||||
"name" : "primefactors.txt",
|
|
||||||
"bootpath" : "~/Documents/Max 8/Packages/MaxScore/patchers/maps/microMaps",
|
|
||||||
"patcherrelativepath" : "../../Max 8/Packages/MaxScore/patchers/maps/microMaps",
|
|
||||||
"type" : "TEXT",
|
|
||||||
"implicit" : 1
|
|
||||||
}
|
|
||||||
, {
|
|
||||||
"name" : "psi-functions.txt",
|
|
||||||
"bootpath" : "~/Documents/Max 8/Packages/MaxScore/patchers/DJster/dispenser",
|
|
||||||
"patcherrelativepath" : "../../Max 8/Packages/MaxScore/patchers/DJster/dispenser",
|
|
||||||
"type" : "TEXT",
|
|
||||||
"implicit" : 1
|
|
||||||
}
|
|
||||||
, {
|
|
||||||
"name" : "reader.maxpat",
|
|
||||||
"bootpath" : "~/Documents/Max 8/Packages/MaxScore/patchers/DJster/dispenser",
|
|
||||||
"patcherrelativepath" : "../../Max 8/Packages/MaxScore/patchers/DJster/dispenser",
|
|
||||||
"type" : "JSON",
|
|
||||||
"implicit" : 1
|
|
||||||
}
|
|
||||||
, {
|
|
||||||
"name" : "reader2.maxpat",
|
|
||||||
"bootpath" : "~/Documents/Max 8/Packages/MaxScore/patchers/DJster/dispenser",
|
|
||||||
"patcherrelativepath" : "../../Max 8/Packages/MaxScore/patchers/DJster/dispenser",
|
|
||||||
"type" : "JSON",
|
|
||||||
"implicit" : 1
|
|
||||||
}
|
|
||||||
, {
|
|
||||||
"name" : "scalaFileBase.js",
|
|
||||||
"bootpath" : "~/Documents/Max 8/Packages/MaxScore/javascript",
|
|
||||||
"patcherrelativepath" : "../../Max 8/Packages/MaxScore/javascript",
|
|
||||||
"type" : "TEXT",
|
|
||||||
"implicit" : 1
|
|
||||||
}
|
|
||||||
, {
|
|
||||||
"name" : "scale-subpatch-exp.maxpat",
|
|
||||||
"bootpath" : "~/Documents/Max 8/Packages/MaxScore/patchers/DJster/core",
|
|
||||||
"patcherrelativepath" : "../../Max 8/Packages/MaxScore/patchers/DJster/core",
|
|
||||||
"type" : "JSON",
|
|
||||||
"implicit" : 1
|
|
||||||
}
|
|
||||||
, {
|
|
||||||
"name" : "scriptingname.js",
|
|
||||||
"bootpath" : "~/Documents/Max 8/Packages/MaxScore/javascript",
|
|
||||||
"patcherrelativepath" : "../../Max 8/Packages/MaxScore/javascript",
|
|
||||||
"type" : "TEXT",
|
|
||||||
"implicit" : 1
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"autosave" : 0
|
"autosave" : 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -200,6 +200,7 @@
|
|||||||
|
|
||||||
<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="./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>
|
||||||
|
39
lfogui.js
39
lfogui.js
@ -28,6 +28,8 @@ const MODULATORLABELS = ["-type-", "---shape---", "-------param-------", "--time
|
|||||||
const ENUMERATORLABELS = ["---parameter---", "-# points-"];
|
const ENUMERATORLABELS = ["---parameter---", "-# points-"];
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function MasterLfoHandler(){
|
function MasterLfoHandler(){
|
||||||
|
|
||||||
let initVisArr = Array(MAXLFOS).fill(false);
|
let initVisArr = Array(MAXLFOS).fill(false);
|
||||||
@ -47,10 +49,13 @@ function MasterLfoHandler(){
|
|||||||
|
|
||||||
const [modCenterVals, setModCenterVals] = React.useState({});
|
const [modCenterVals, setModCenterVals] = React.useState({});
|
||||||
|
|
||||||
|
const [bpm, setBpm] = React.useState(100);
|
||||||
|
const [beatsInMeasure, setBeatsInMeasure] = React.useState(4);
|
||||||
|
|
||||||
const [shapeArr, setShapeArr] = React.useState(Array(MAXLFOS).fill('Sine'));
|
const [shapeArr, setShapeArr] = React.useState(Array(MAXLFOS).fill('Sine'));
|
||||||
const [djParamArr, setDjParamArr] = React.useState(Array(MAXLFOS).fill('NONE'));
|
const [djParamArr, setDjParamArr] = React.useState(Array(MAXLFOS).fill('NONE'));
|
||||||
|
|
||||||
const [timeArr, setTimeArr] = React.useState(Array(MAXLFOS).fill('1hz'));
|
const [freqArr, setFreqArr] = React.useState(Array(MAXLFOS).fill('1hz'));
|
||||||
|
|
||||||
// const [ampArr, setAmpArr] = React.useState(Array(MAXLFOS).fill('1'));
|
// const [ampArr, setAmpArr] = React.useState(Array(MAXLFOS).fill('1'));
|
||||||
const [minArr, setMinArr] = React.useState(Array(MAXLFOS).fill('0'));
|
const [minArr, setMinArr] = React.useState(Array(MAXLFOS).fill('0'));
|
||||||
@ -58,8 +63,8 @@ function MasterLfoHandler(){
|
|||||||
|
|
||||||
const [phaseArr, setPhaseArr] = React.useState(Array(MAXLFOS).fill('0'));
|
const [phaseArr, setPhaseArr] = React.useState(Array(MAXLFOS).fill('0'));
|
||||||
|
|
||||||
const allModArrays = [modVisibleArr, shapeArr, djParamArr, timeArr, minArr, maxArr, phaseArr];
|
const allModArrays = [modVisibleArr, shapeArr, djParamArr, freqArr, minArr, maxArr, phaseArr];
|
||||||
const allModSetters = [setModVisibleArr, setShapeArr, setDjParamArr, setTimeArr, setMinArr, setMaxArr, setPhaseArr];
|
const allModSetters = [setModVisibleArr, setShapeArr, setDjParamArr, setFreqArr, setMinArr, setMaxArr, setPhaseArr];
|
||||||
const modBlankVals = [true, SHAPETYPES[0], MODPARAMOPTIONS[0], '1', '0', '1', '0'];
|
const modBlankVals = [true, SHAPETYPES[0], MODPARAMOPTIONS[0], '1', '0', '1', '0'];
|
||||||
|
|
||||||
|
|
||||||
@ -186,7 +191,15 @@ function MasterLfoHandler(){
|
|||||||
|
|
||||||
function handleTick(event) {
|
function handleTick(event) {
|
||||||
let time = (Date.now() - firstUpdateTime) / 1000;
|
let time = (Date.now() - firstUpdateTime) / 1000;
|
||||||
operateModulators(modVisibleArr, djParamArr, modCenterVals, timeArr, minArr, maxArr, shapeArr, phaseArr, time);
|
operateModulators(modVisibleArr, djParamArr, modCenterVals, freqArr, minArr, maxArr, shapeArr, phaseArr, time, bpm, beatsInMeasure);
|
||||||
|
}
|
||||||
|
|
||||||
|
function handleBpm(event) {
|
||||||
|
setBpm(event.detail);
|
||||||
|
}
|
||||||
|
|
||||||
|
function handleTimeSig(event) {
|
||||||
|
setBeatsInMeasure(parseFloat(event.detail[0]) * parseFloat(event.detail[1])/ 4);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -195,6 +208,8 @@ function MasterLfoHandler(){
|
|||||||
window.addEventListener('tick', handleTick);
|
window.addEventListener('tick', handleTick);
|
||||||
window.addEventListener('param', handleParam);
|
window.addEventListener('param', handleParam);
|
||||||
window.addEventListener('enum', handleEnum);
|
window.addEventListener('enum', handleEnum);
|
||||||
|
window.addEventListener('tempo', handleBpm);
|
||||||
|
window.addEventListener('timesig', handleTimeSig);
|
||||||
|
|
||||||
return () => {
|
return () => {
|
||||||
window.removeEventListener('loadDict', handleLoad);
|
window.removeEventListener('loadDict', handleLoad);
|
||||||
@ -202,8 +217,10 @@ function MasterLfoHandler(){
|
|||||||
window.removeEventListener('tick', handleTick);
|
window.removeEventListener('tick', handleTick);
|
||||||
window.removeEventListener('param', handleParam);
|
window.removeEventListener('param', handleParam);
|
||||||
window.removeEventListener('enum', handleEnum);
|
window.removeEventListener('enum', handleEnum);
|
||||||
|
window.removeEventListener('tempo', handleBpm);
|
||||||
|
window.removeEventListener('timesig', handleTimeSig);
|
||||||
};
|
};
|
||||||
}, [...allModArrays, ...allEnumArrays, ...allEnumMats, modCenterVals, render]);
|
}, [...allModArrays, ...allEnumArrays, ...allEnumMats, modCenterVals, render, bpm, beatsInMeasure]);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -224,8 +241,8 @@ function MasterLfoHandler(){
|
|||||||
setDjParam: CreateParamChanger(djParamArr, setDjParamArr, i),
|
setDjParam: CreateParamChanger(djParamArr, setDjParamArr, i),
|
||||||
centerVals: modCenterVals,
|
centerVals: modCenterVals,
|
||||||
|
|
||||||
freq: timeArr[i],
|
freq: freqArr[i],
|
||||||
setFreq: CreateParamChanger(timeArr, setTimeArr, i),
|
setFreq: CreateParamChanger(freqArr, setFreqArr, i),
|
||||||
|
|
||||||
//amp: ampArr[i],
|
//amp: ampArr[i],
|
||||||
//setAmp: CreateParamChanger(ampArr, setAmpArr, i),
|
//setAmp: CreateParamChanger(ampArr, setAmpArr, i),
|
||||||
@ -388,6 +405,14 @@ if (!DEBUG){
|
|||||||
window.dispatchEvent(new CustomEvent('param', {'detail' : [paramName, val]}));
|
window.dispatchEvent(new CustomEvent('param', {'detail' : [paramName, val]}));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
window.max.bindInlet("tempo", (val) => {
|
||||||
|
window.dispatchEvent(new CustomEvent('tempo', {'detail' : val}));
|
||||||
|
});
|
||||||
|
|
||||||
|
window.max.bindInlet("timesig", (top, bottom) => {
|
||||||
|
window.dispatchEvent(new CustomEvent('timesig', {'detail' : [top, bottom]}));
|
||||||
|
});
|
||||||
|
|
||||||
setInterval(() => {
|
setInterval(() => {
|
||||||
window.dispatchEvent(new CustomEvent('tick'));
|
window.dispatchEvent(new CustomEvent('tick'));
|
||||||
}, 200);
|
}, 200);
|
||||||
|
@ -56,7 +56,7 @@ function indexWave(type, phase){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function operateModulators(visibleArr, paramNames, centers, lfoTimes, mins, maxs, waveTypes, phaseArr, currTime){
|
function operateModulators(visibleArr, paramNames, centers, freqs, mins, maxs, waveTypes, phaseArr, currTime, bpm, beatsInMeasure){
|
||||||
for (let i=0; i<paramNames.length; i++){
|
for (let i=0; i<paramNames.length; i++){
|
||||||
if (visibleArr[i]){
|
if (visibleArr[i]){
|
||||||
let name = paramNames[i];
|
let name = paramNames[i];
|
||||||
@ -64,16 +64,16 @@ function operateModulators(visibleArr, paramNames, centers, lfoTimes, mins, maxs
|
|||||||
if (centers.hasOwnProperty(name)){
|
if (centers.hasOwnProperty(name)){
|
||||||
center = centers[name];
|
center = centers[name];
|
||||||
}
|
}
|
||||||
let output = operateModulator(center, lfoTimes[i], mins[i], maxs[i], waveTypes[i], phaseArr, i, name, currTime);
|
let output = operateModulator(center, freqs[i], mins[i], maxs[i], waveTypes[i], phaseArr, i, name, currTime, bpm, beatsInMeasure);
|
||||||
if (name !== "NONE")
|
if (name !== "NONE")
|
||||||
window.dispatchEvent(new CustomEvent('enum', {'detail' : [name, output]}));
|
window.dispatchEvent(new CustomEvent('enum', {'detail' : [name, output]}));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function operateModulator(center, lfoTime, min, max, waveType, phaseArr, phaseI, name, currTime){
|
function operateModulator(center, freq, min, max, waveType, phaseArr, phaseI, name, currTime, bpm, beatsInMeasure){
|
||||||
let amp = parseFloat(max) - parseFloat(min);
|
let amp = parseFloat(max) - parseFloat(min);
|
||||||
let freq = parseLfoTime(lfoTime);
|
freq = parseLfoTime(freq, bpm, beatsInMeasure);
|
||||||
let phase = (currTime * freq + parseFloat(phaseArr[phaseI])) % 1.00;
|
let phase = (currTime * freq + parseFloat(phaseArr[phaseI])) % 1.00;
|
||||||
let unscaled = indexWave(waveType, phase);
|
let unscaled = indexWave(waveType, phase);
|
||||||
let el = document.getElementById(`slider-${name}`);
|
let el = document.getElementById(`slider-${name}`);
|
||||||
@ -84,9 +84,33 @@ function operateModulator(center, lfoTime, min, max, waveType, phaseArr, phaseI,
|
|||||||
return unscaled * amp + center + parseFloat(min);
|
return unscaled * amp + center + parseFloat(min);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* @param */
|
|
||||||
function parseLfoTime(lfoTime){
|
function parseLfoTime(lfoTime, bpm, beatsInMeasure){
|
||||||
if (lfoTime.slice(-2) == "hz"){
|
if (lfoTime.slice(-2) == "hz"){
|
||||||
return parseFloat(lfoTime.slice(0, -2));
|
return parseFloat(lfoTime.slice(0, -2));
|
||||||
}
|
}
|
||||||
}
|
else if (lfoTime.slice(-2) == "ms"){
|
||||||
|
return 1000 / parseFloat(lfoTime.slice(0, -2));
|
||||||
|
}
|
||||||
|
else if (lfoTime.slice(-1) == "s"){
|
||||||
|
return 1 / parseFloat(lfoTime.slice(0, -1));
|
||||||
|
}
|
||||||
|
else if ((lfoTime.match(/:/g) || []).length == 2){
|
||||||
|
return 1 / moment.duration(lfoTime).asSeconds();
|
||||||
|
}
|
||||||
|
else if ((lfoTime.match(/\./g) || []).length == 2){
|
||||||
|
return musicalTimingToFreq(...lfoTime.split('.'), bpm, beatsInMeasure)
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function musicalTimingToFreq(bars, beats, ticks, bpm, beatsInMeasure){
|
||||||
|
let totalTicks = (parseFloat(bars) * parseFloat(beatsInMeasure) + beats) * 480 + parseFloat(ticks);
|
||||||
|
let tpm = bpm * 480;
|
||||||
|
let cyclesPerMinute = tpm / totalTicks;
|
||||||
|
let hz = cyclesPerMinute / 60;
|
||||||
|
return hz;
|
||||||
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user