Recent changes

Audio levels
GUI changes
Bug fixes
This commit is contained in:
computermusik 2024-12-12 23:53:37 +01:00
parent c7426c6d7a
commit 3c01031c7b
2 changed files with 990 additions and 529 deletions

File diff suppressed because one or more lines are too long

View File

@ -1,7 +1,6 @@
inlets = 2
outlets = 4;
var jpieces = {};
var presets = [];
var filename = "";
var currentPiece = "";
@ -40,7 +39,18 @@ if(jsarguments.length>1) // argument 0 is the name of the js file
metaComposition = jsarguments[1];
}
var path = this.patcher.filepath.slice(0, this.patcher.filepath.lastIndexOf("/") + 1);
function loadbang()
{
bang();
post("currentPiece", path, "\n");
}
function bang()
{
if (metaComposition != "") readPiece(path + metaComposition);
}
//
function dictionary(d)
@ -48,24 +58,24 @@ function dictionary(d)
net.name = d;
hsspiece[currentPiece]["networkData"] = JSON.parse(net.stringify());
outdict.parse(JSON.stringify(hsspiece));
jpieces = JSON.parse(outdict.stringify());
//jpieces = JSON.parse(outdict.stringify());
setMenu();
}
function readPiece(path)
{
outdict.import_json(path);
jpieces = JSON.parse(outdict.stringify());
hsspiece = JSON.parse(outdict.stringify());
setMenu();
}
function setMenu()
{
this.patcher.getnamed("currentPiece").message("clear");
for (var i = 0; i < Object.keys(jpieces).length; i++) this.patcher.getnamed("currentPiece").message("append", Object.keys(jpieces)[i]);
this.patcher.getnamed("currentPiece").message("set", Object.keys(jpieces).length - 1);
for (var i = 0; i < Object.keys(hsspiece).length; i++) this.patcher.getnamed("currentPiece").message("append", Object.keys(hsspiece)[i]);
this.patcher.getnamed("currentPiece").message("set", Object.keys(hsspiece).length - 1);
this.patcher.getnamed("currentPiece").message("clearchecks");
this.patcher.getnamed("currentPiece").message("checkitem", Object.keys(jpieces).length - 1, 1);
this.patcher.getnamed("currentPiece").message("checkitem", Object.keys(hsspiece).length - 1, 1);
}
function writePiece()
@ -75,7 +85,7 @@ function writePiece()
function setDict()
{
jpieces = JSON.parse(outdict.stringify());
hsspiece = JSON.parse(outdict.stringify());
}
function setSection(section)
@ -86,7 +96,8 @@ function setSection(section)
outlet(1, "predict", 0.5, 0.5);
outlet(0, 0.5, 0.5);
if (outdict.contains(section + "::breakpoints")) this.patcher.getnamed("mc.function").setvalueof(outdict.get(section + "::breakpoints"));
if (outdict.contains(section + "::audiolevels")) for (var i = 0; i < 4; i++) this.patcher.getnamed("hub").subpatcher().getnamed("global").subpatcher().getnamed("level_" + (i + 1)).setvalueof(outdict.get(section + "::audiolevels")[i]);
post("data", outdict.get(section + "::audiolevels"), "\n");
if (outdict.contains(section + "::audiolevels")) for (var i = 0; i < 4; i++) outlet(2, "hub::global::level_" + (i + 1), outdict.get(section + "::audiolevels")[i]);
}
currentPiece = section;
}
@ -145,14 +156,16 @@ function setPresetFile(f)
{
filename = f;
currentPiece = filename.slice(filename.lastIndexOf("/") + 1, filename.lastIndexOf("."));
post("currentPiece", currentPiece, "\n");
hsspiece[currentPiece] = {};
outdict.parse(JSON.stringify(hsspiece));
setMenu();
}
function train()
{
presets = new Dict;
presets.import_json(filename);
hsspiece[currentPiece] = {};
if (!hsspiece.hasOwnProperty(currentPiece)) hsspiece[currentPiece] = {};
var slots = presets.get("pattrstorage::slots").getkeys();//number of slots here
outlet(1, "clear_data");
for (var j = 0; j < slots.length; j++){
@ -210,23 +223,23 @@ function list()
case 14 : //enum
//val = "Major";
//post(vector[k], Math.floor(vector[k]/0.2 + 1), "\n");
outlet(2, "Djster.µbus[" + i + "]::" + keys[j], jpieces[currentPiece][parseInt(vector[k]/0.2 + 1)]["Djster.µbus[" + i + "]::scale"]);
outlet(2, "Djster.µbus[" + i + "]::" + keys[j], hsspiece[currentPiece][parseInt(vector[k]/0.2 + 1)]["Djster.µbus[" + i + "]::scale"]);
break;
case 17 :
//val = "2 2 2";
outlet(2, "Djster.µbus[" + i + "]::" + keys[j], jpieces[currentPiece][parseInt(vector[k]/0.2 + 1)]["Djster.µbus[" + i + "]::meter"]);
outlet(2, "Djster.µbus[" + i + "]::" + keys[j], hsspiece[currentPiece][parseInt(vector[k]/0.2 + 1)]["Djster.µbus[" + i + "]::meter"]);
break;
case 19 :
//val = "4"
outlet(2, "Djster.µbus[" + i + "]::" + keys[j], jpieces[currentPiece][parseInt(vector[k]/0.2 + 1)]["Djster.µbus[" + i + "]::timesig_denominator"]);
outlet(2, "Djster.µbus[" + i + "]::" + keys[j], hsspiece[currentPiece][parseInt(vector[k]/0.2 + 1)]["Djster.µbus[" + i + "]::timesig_denominator"]);
break;
case 21 :
//tonic pitch
outlet(2, "Djster.µbus[" + i + "]::" + keys[j], jpieces[currentPiece][parseInt(vector[k]/0.2 + 1)]["Djster.µbus[" + i + "]::tonic_pitch"]);
outlet(2, "Djster.µbus[" + i + "]::" + keys[j], hsspiece[currentPiece][parseInt(vector[k]/0.2 + 1)]["Djster.µbus[" + i + "]::tonic_pitch"]);
break;
case 22 :
val = "4"
outlet(2, "hub::instrument::instrument-" + (i + 1), jpieces[currentPiece][parseInt(vector[k]/0.2 + 1)]["hub::instrument::instrument-" + (i + 1)]);
outlet(2, "hub::instrument::instrument-" + (i + 1), hsspiece[currentPiece][parseInt(vector[k]/0.2 + 1)]["hub::instrument::instrument-" + (i + 1)]);
break;
case 23 :
src[0] = scale(vector[k], 0, 1, 0, 127);
@ -247,16 +260,16 @@ function setBreakPoints()
{
hsspiece[currentPiece]["breakpoints"] = this.patcher.getnamed("mc.function").getvalueof();
outdict.parse(JSON.stringify(hsspiece));
jpieces = JSON.parse(outdict.stringify());
//jpieces = JSON.parse(outdict.stringify());
}
function setAudioLevels()
{
post("jpieces", currentPiece, "\n");
hsspiece[currentPiece]["audiolevels"] = [ this.patcher.getnamed("hub").subpatcher().getnamed("global").subpatcher().getnamed("level_1").getvalueof(), this.patcher.getnamed("hub").subpatcher().getnamed("global").subpatcher().getnamed("level_2").getvalueof(), this.patcher.getnamed("hub").subpatcher().getnamed("global").subpatcher().getnamed("level_3").getvalueof(), this.patcher.getnamed("hub").subpatcher().getnamed("global").subpatcher().getnamed("level_4").getvalueof() ];
post("hsspiece", currentPiece, "\n");
hsspiece[currentPiece]["audiolevels"] = this.patcher.getnamed("hub").subpatcher().getnamed("global").subpatcher().getnamed("level_1").getvalueof().concat(this.patcher.getnamed("hub").subpatcher().getnamed("global").subpatcher().getnamed("level_2").getvalueof(), this.patcher.getnamed("hub").subpatcher().getnamed("global").subpatcher().getnamed("level_3").getvalueof(), this.patcher.getnamed("hub").subpatcher().getnamed("global").subpatcher().getnamed("level_4").getvalueof());
outdict.parse(JSON.stringify(hsspiece));
jpieces = JSON.parse(outdict.stringify());
//jpieces = JSON.parse(outdict.stringify());
}