commit 78637606f64fd4f9fad4e748d5df175493f57295
parent 8476c1ed170623d453b4fecc082d26b44e3b1ddb
Author: Isabel Kaspriskie <ikaspriskie@gmail.com>
Date: Wed, 5 May 2021 21:40:43 -0500
First steps at templating through scripting
Diffstat:
8 files changed, 1122 insertions(+), 5328 deletions(-)
diff --git a/gen/projects/example/exporter.maxpat b/gen/projects/example/exporter.maxpat
@@ -0,0 +1,752 @@
+{
+ "patcher" : {
+ "fileversion" : 1,
+ "appversion" : {
+ "major" : 8,
+ "minor" : 1,
+ "revision" : 10,
+ "architecture" : "x64",
+ "modernui" : 1
+ }
+,
+ "classnamespace" : "box",
+ "rect" : [ 564.0, 471.0, 885.0, 491.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-16",
+ "maxclass" : "message",
+ "numinlets" : 2,
+ "numoutlets" : 1,
+ "outlettype" : [ "" ],
+ "patching_rect" : [ 288.0, 127.0, 93.0, 22.0 ],
+ "text" : "build myModule"
+ }
+
+ }
+, {
+ "box" : {
+ "id" : "obj-15",
+ "maxclass" : "message",
+ "numinlets" : 2,
+ "numoutlets" : 1,
+ "outlettype" : [ "" ],
+ "patching_rect" : [ 288.0, 101.0, 101.0, 22.0 ],
+ "text" : "create myModule"
+ }
+
+ }
+, {
+ "box" : {
+ "id" : "obj-9",
+ "maxclass" : "message",
+ "numinlets" : 2,
+ "numoutlets" : 1,
+ "outlettype" : [ "" ],
+ "patching_rect" : [ 249.0, 62.0, 64.0, 22.0 ],
+ "text" : "script start"
+ }
+
+ }
+, {
+ "box" : {
+ "bgmode" : 0,
+ "border" : 0,
+ "clickthrough" : 0,
+ "enablehscroll" : 0,
+ "enablevscroll" : 0,
+ "id" : "obj-3",
+ "lockeddragscroll" : 0,
+ "maxclass" : "bpatcher",
+ "name" : "n4m.monitor.maxpat",
+ "numinlets" : 1,
+ "numoutlets" : 1,
+ "offset" : [ 0.0, 0.0 ],
+ "outlettype" : [ "bang" ],
+ "patching_rect" : [ 431.0, 204.0, 400.0, 220.0 ],
+ "viewvisibility" : 1
+ }
+
+ }
+, {
+ "box" : {
+ "id" : "obj-2",
+ "maxclass" : "newobj",
+ "numinlets" : 1,
+ "numoutlets" : 2,
+ "outlettype" : [ "", "" ],
+ "patching_rect" : [ 249.0, 173.0, 201.0, 22.0 ],
+ "saved_object_attributes" : {
+ "autostart" : 1,
+ "defer" : 0,
+ "node_bin_path" : "",
+ "npm_bin_path" : "",
+ "watch" : 0
+ }
+,
+ "text" : "node.script gen-rack.js @autostart 1"
+ }
+
+ }
+, {
+ "box" : {
+ "bubble" : 1,
+ "id" : "obj-10",
+ "maxclass" : "comment",
+ "numinlets" : 1,
+ "numoutlets" : 0,
+ "patching_rect" : [ 120.0, 264.0, 139.0, 24.0 ],
+ "text" : "Build gen code here"
+ }
+
+ }
+, {
+ "box" : {
+ "id" : "obj-8",
+ "maxclass" : "newobj",
+ "numinlets" : 1,
+ "numoutlets" : 1,
+ "outlettype" : [ "" ],
+ "patching_rect" : [ 31.5, 86.0, 72.0, 22.0 ],
+ "text" : "prepend set"
+ }
+
+ }
+, {
+ "box" : {
+ "id" : "obj-6",
+ "maxclass" : "newobj",
+ "numinlets" : 1,
+ "numoutlets" : 1,
+ "outlettype" : [ "" ],
+ "patching_rect" : [ 31.5, 55.0, 110.0, 22.0 ],
+ "text" : "loadmess gen-rack"
+ }
+
+ }
+, {
+ "box" : {
+ "id" : "obj-5",
+ "maxclass" : "message",
+ "numinlets" : 2,
+ "numoutlets" : 1,
+ "outlettype" : [ "" ],
+ "patching_rect" : [ 107.5, 214.5, 68.0, 22.0 ],
+ "text" : "exportcode"
+ }
+
+ }
+, {
+ "box" : {
+ "id" : "obj-27",
+ "maxclass" : "newobj",
+ "numinlets" : 1,
+ "numoutlets" : 1,
+ "outlettype" : [ "" ],
+ "patcher" : {
+ "fileversion" : 1,
+ "appversion" : {
+ "major" : 8,
+ "minor" : 1,
+ "revision" : 10,
+ "architecture" : "x64",
+ "modernui" : 1
+ }
+,
+ "classnamespace" : "box",
+ "rect" : [ 1079.0, 348.0, 302.0, 412.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-2",
+ "maxclass" : "newobj",
+ "numinlets" : 1,
+ "numoutlets" : 1,
+ "outlettype" : [ "bang" ],
+ "patching_rect" : [ 112.0, 92.0, 22.0, 22.0 ],
+ "text" : "t b"
+ }
+
+ }
+, {
+ "box" : {
+ "id" : "obj-3",
+ "maxclass" : "message",
+ "numinlets" : 2,
+ "numoutlets" : 1,
+ "outlettype" : [ "" ],
+ "patching_rect" : [ 112.0, 123.0, 32.0, 22.0 ],
+ "text" : "path"
+ }
+
+ }
+, {
+ "box" : {
+ "id" : "obj-8",
+ "maxclass" : "newobj",
+ "numinlets" : 1,
+ "numoutlets" : 2,
+ "outlettype" : [ "", "" ],
+ "patching_rect" : [ 112.0, 152.0, 67.0, 22.0 ],
+ "save" : [ "#N", "thispatcher", ";", "#Q", "end", ";" ],
+ "text" : "thispatcher"
+ }
+
+ }
+, {
+ "box" : {
+ "id" : "obj-22",
+ "maxclass" : "newobj",
+ "numinlets" : 1,
+ "numoutlets" : 1,
+ "outlettype" : [ "" ],
+ "patching_rect" : [ 72.0, 296.0, 119.0, 22.0 ],
+ "text" : "prepend exportfolder"
+ }
+
+ }
+, {
+ "box" : {
+ "id" : "obj-21",
+ "maxclass" : "newobj",
+ "numinlets" : 1,
+ "numoutlets" : 1,
+ "outlettype" : [ "" ],
+ "patching_rect" : [ 26.0, 263.0, 119.0, 22.0 ],
+ "text" : "prepend exportname"
+ }
+
+ }
+, {
+ "box" : {
+ "id" : "obj-19",
+ "maxclass" : "newobj",
+ "numinlets" : 1,
+ "numoutlets" : 1,
+ "outlettype" : [ "" ],
+ "patching_rect" : [ 26.0, 156.0, 57.0, 22.0 ],
+ "text" : "tosymbol"
+ }
+
+ }
+, {
+ "box" : {
+ "id" : "obj-18",
+ "maxclass" : "newobj",
+ "numinlets" : 2,
+ "numoutlets" : 2,
+ "outlettype" : [ "", "" ],
+ "patching_rect" : [ 26.0, 125.0, 59.0, 22.0 ],
+ "text" : "route text"
+ }
+
+ }
+, {
+ "box" : {
+ "id" : "obj-15",
+ "maxclass" : "message",
+ "numinlets" : 2,
+ "numoutlets" : 1,
+ "outlettype" : [ "" ],
+ "patching_rect" : [ 160.0, 189.0, 49.0, 22.0 ],
+ "text" : "path $1"
+ }
+
+ }
+, {
+ "box" : {
+ "id" : "obj-13",
+ "maxclass" : "message",
+ "numinlets" : 2,
+ "numoutlets" : 1,
+ "outlettype" : [ "" ],
+ "patching_rect" : [ 26.0, 189.0, 55.0, 22.0 ],
+ "text" : "name $1"
+ }
+
+ }
+, {
+ "box" : {
+ "id" : "obj-11",
+ "maxclass" : "newobj",
+ "numinlets" : 1,
+ "numoutlets" : 1,
+ "outlettype" : [ "" ],
+ "patching_rect" : [ 26.0, 229.0, 93.0, 22.0 ],
+ "saved_object_attributes" : {
+ "filename" : "path-helper.js",
+ "parameter_enable" : 0
+ }
+,
+ "text" : "js path-helper.js"
+ }
+
+ }
+, {
+ "box" : {
+ "comment" : "name",
+ "id" : "obj-25",
+ "index" : 1,
+ "maxclass" : "inlet",
+ "numinlets" : 0,
+ "numoutlets" : 1,
+ "outlettype" : [ "" ],
+ "patching_rect" : [ 26.0, 29.0, 30.0, 30.0 ]
+ }
+
+ }
+, {
+ "box" : {
+ "comment" : "",
+ "id" : "obj-26",
+ "index" : 1,
+ "maxclass" : "outlet",
+ "numinlets" : 1,
+ "numoutlets" : 0,
+ "patching_rect" : [ 26.0, 355.0, 30.0, 30.0 ]
+ }
+
+ }
+ ],
+ "lines" : [ {
+ "patchline" : {
+ "destination" : [ "obj-21", 0 ],
+ "source" : [ "obj-11", 0 ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "destination" : [ "obj-11", 0 ],
+ "source" : [ "obj-13", 0 ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "destination" : [ "obj-11", 0 ],
+ "source" : [ "obj-15", 0 ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "destination" : [ "obj-19", 0 ],
+ "source" : [ "obj-18", 0 ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "destination" : [ "obj-13", 0 ],
+ "source" : [ "obj-19", 0 ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "destination" : [ "obj-3", 0 ],
+ "source" : [ "obj-2", 0 ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "destination" : [ "obj-26", 0 ],
+ "source" : [ "obj-21", 0 ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "destination" : [ "obj-26", 0 ],
+ "source" : [ "obj-22", 0 ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "destination" : [ "obj-18", 0 ],
+ "order" : 1,
+ "source" : [ "obj-25", 0 ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "destination" : [ "obj-2", 0 ],
+ "order" : 0,
+ "source" : [ "obj-25", 0 ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "destination" : [ "obj-8", 0 ],
+ "source" : [ "obj-3", 0 ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "destination" : [ "obj-15", 0 ],
+ "source" : [ "obj-8", 1 ]
+ }
+
+ }
+ ]
+ }
+,
+ "patching_rect" : [ 31.5, 172.0, 79.0, 22.0 ],
+ "saved_object_attributes" : {
+ "description" : "",
+ "digest" : "",
+ "globalpatchername" : "",
+ "tags" : ""
+ }
+,
+ "text" : "p export-help"
+ }
+
+ }
+, {
+ "box" : {
+ "id" : "obj-24",
+ "maxclass" : "comment",
+ "numinlets" : 1,
+ "numoutlets" : 0,
+ "patching_rect" : [ 75.5, 119.5, 39.0, 20.0 ],
+ "text" : "name"
+ }
+
+ }
+, {
+ "box" : {
+ "id" : "obj-17",
+ "keymode" : 1,
+ "lines" : 1,
+ "maxclass" : "textedit",
+ "numinlets" : 1,
+ "numoutlets" : 4,
+ "outlettype" : [ "", "int", "", "" ],
+ "parameter_enable" : 0,
+ "patching_rect" : [ 31.5, 141.5, 92.0, 22.0 ],
+ "text" : "gen-rack",
+ "wordwrap" : 0
+ }
+
+ }
+, {
+ "box" : {
+ "id" : "obj-7",
+ "maxclass" : "message",
+ "numinlets" : 2,
+ "numoutlets" : 1,
+ "outlettype" : [ "" ],
+ "patching_rect" : [ 64.5, 214.5, 35.0, 22.0 ],
+ "text" : "open"
+ }
+
+ }
+, {
+ "box" : {
+ "id" : "obj-1",
+ "maxclass" : "newobj",
+ "numinlets" : 2,
+ "numoutlets" : 2,
+ "outlettype" : [ "signal", "signal" ],
+ "patcher" : {
+ "fileversion" : 1,
+ "appversion" : {
+ "major" : 8,
+ "minor" : 1,
+ "revision" : 10,
+ "architecture" : "x64",
+ "modernui" : 1
+ }
+,
+ "classnamespace" : "dsp.gen",
+ "rect" : [ 279.0, 334.0, 600.0, 450.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-5",
+ "maxclass" : "newobj",
+ "numinlets" : 1,
+ "numoutlets" : 0,
+ "patching_rect" : [ 301.5, 405.0, 35.0, 22.0 ],
+ "text" : "out 2"
+ }
+
+ }
+, {
+ "box" : {
+ "id" : "obj-1",
+ "maxclass" : "newobj",
+ "numinlets" : 0,
+ "numoutlets" : 1,
+ "outlettype" : [ "" ],
+ "patching_rect" : [ 50.0, 14.0, 28.0, 22.0 ],
+ "text" : "in 1"
+ }
+
+ }
+, {
+ "box" : {
+ "id" : "obj-2",
+ "maxclass" : "newobj",
+ "numinlets" : 0,
+ "numoutlets" : 1,
+ "outlettype" : [ "" ],
+ "patching_rect" : [ 305.0, 14.0, 28.0, 22.0 ],
+ "text" : "in 2"
+ }
+
+ }
+, {
+ "box" : {
+ "id" : "obj-3",
+ "maxclass" : "newobj",
+ "numinlets" : 2,
+ "numoutlets" : 1,
+ "outlettype" : [ "" ],
+ "patching_rect" : [ 176.0, 149.0, 29.5, 22.0 ],
+ "text" : "+"
+ }
+
+ }
+, {
+ "box" : {
+ "id" : "obj-4",
+ "maxclass" : "newobj",
+ "numinlets" : 1,
+ "numoutlets" : 0,
+ "patching_rect" : [ 56.0, 405.0, 35.0, 22.0 ],
+ "text" : "out 1"
+ }
+
+ }
+ ],
+ "lines" : [ {
+ "patchline" : {
+ "destination" : [ "obj-3", 0 ],
+ "source" : [ "obj-1", 0 ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "destination" : [ "obj-3", 1 ],
+ "source" : [ "obj-2", 0 ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "destination" : [ "obj-4", 0 ],
+ "order" : 1,
+ "source" : [ "obj-3", 0 ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "destination" : [ "obj-5", 0 ],
+ "order" : 0,
+ "source" : [ "obj-3", 0 ]
+ }
+
+ }
+ ]
+ }
+,
+ "patching_rect" : [ 31.5, 264.0, 79.0, 22.0 ],
+ "saved_object_attributes" : {
+ "exportfolder" : "C:/Users/Isabel Kaspriskie/dev/vcv/gen-rack/gen/exports/",
+ "exportname" : "test"
+ }
+,
+ "text" : "gen~"
+ }
+
+ }
+ ],
+ "lines" : [ {
+ "patchline" : {
+ "destination" : [ "obj-2", 0 ],
+ "source" : [ "obj-15", 0 ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "destination" : [ "obj-2", 0 ],
+ "source" : [ "obj-16", 0 ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "destination" : [ "obj-27", 0 ],
+ "source" : [ "obj-17", 0 ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "destination" : [ "obj-3", 0 ],
+ "source" : [ "obj-2", 1 ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "destination" : [ "obj-1", 0 ],
+ "source" : [ "obj-27", 0 ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "destination" : [ "obj-1", 0 ],
+ "source" : [ "obj-5", 0 ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "destination" : [ "obj-8", 0 ],
+ "source" : [ "obj-6", 0 ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "destination" : [ "obj-1", 0 ],
+ "source" : [ "obj-7", 0 ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "destination" : [ "obj-17", 0 ],
+ "source" : [ "obj-8", 0 ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "destination" : [ "obj-2", 0 ],
+ "source" : [ "obj-9", 0 ]
+ }
+
+ }
+ ],
+ "dependency_cache" : [ {
+ "name" : "gen-rack.js",
+ "bootpath" : "~/dev/vcv/gen-rack/gen/projects/example",
+ "patcherrelativepath" : ".",
+ "type" : "TEXT",
+ "implicit" : 1
+ }
+, {
+ "name" : "n4m.monitor.maxpat",
+ "bootpath" : "C74:/packages/Node For Max/patchers/debug-monitor",
+ "type" : "JSON",
+ "implicit" : 1
+ }
+, {
+ "name" : "resize_n4m_monitor_patcher.js",
+ "bootpath" : "C74:/packages/Node For Max/patchers/debug-monitor",
+ "type" : "TEXT",
+ "implicit" : 1
+ }
+, {
+ "name" : "fit_jweb_to_bounds.js",
+ "bootpath" : "C74:/packages/Node For Max/patchers/debug-monitor",
+ "type" : "TEXT",
+ "implicit" : 1
+ }
+ ],
+ "autosave" : 0
+ }
+
+}
diff --git a/gen/projects/example/gen-rack.js b/gen/projects/example/gen-rack.js
@@ -0,0 +1,32 @@
+const maxApi = require('max-api');
+const fs = require('fs');
+
+maxApi.addHandlers({
+ // Write the .cpp file
+ create: async (name) => {
+ let basedir = process.cwd() + '/../../../'; // => /gen-rack
+
+ // Replace GEN_RACK_DISPLAY_NAME with all lowercase name
+ // Replace GEN_RACK_NAME with name with the first letter capitalized
+ fs.readFile(basedir + 'src/module.in', 'utf8', function (err, data) {
+ if (err) {
+ maxApi.post('Error reading module.in.');
+ return;
+ }
+ let result = data.split('GEN_RACK_DISPLAY_NAME').join(name.toLowerCase());
+ result = result.split('GEN_RACK_NAME').join(name.charAt(0).toUpperCase() + name.slice(1));
+
+ fs.writeFile(basedir + 'src/' + name + '.cpp', result, 'utf8', function (err) {
+ if (err) {
+ maxApi.post('Error writing .cpp');
+ }
+ })
+ });
+ // TODO - Add to plugin.cpp, plugin.hpp, and plugin.json
+ },
+
+ // TODO - Run `make install`
+ build: async (name) => {
+
+ }
+});
+\ No newline at end of file
diff --git a/gen/projects/example/helper.js b/gen/projects/example/path-helper.js
diff --git a/gen/projects/example/starter.maxpat b/gen/projects/example/starter.maxpat
@@ -1,647 +0,0 @@
-{
- "patcher" : {
- "fileversion" : 1,
- "appversion" : {
- "major" : 8,
- "minor" : 1,
- "revision" : 10,
- "architecture" : "x64",
- "modernui" : 1
- }
-,
- "classnamespace" : "box",
- "rect" : [ 913.0, 489.0, 548.0, 352.0 ],
- "bglocked" : 0,
- "openinpresentation" : 1,
- "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" : {
- "bubble" : 1,
- "id" : "obj-10",
- "maxclass" : "comment",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 125.0, 221.0, 139.0, 24.0 ],
- "text" : "Build gen code here"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-8",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 36.5, 43.0, 72.0, 22.0 ],
- "text" : "prepend set"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-6",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 36.5, 12.0, 110.0, 22.0 ],
- "text" : "loadmess gen-rack"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-5",
- "maxclass" : "message",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 112.5, 171.5, 68.0, 22.0 ],
- "presentation" : 1,
- "presentation_rect" : [ 164.5, 34.5, 68.0, 22.0 ],
- "text" : "exportcode"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-27",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patcher" : {
- "fileversion" : 1,
- "appversion" : {
- "major" : 8,
- "minor" : 1,
- "revision" : 10,
- "architecture" : "x64",
- "modernui" : 1
- }
-,
- "classnamespace" : "box",
- "rect" : [ 1079.0, 348.0, 302.0, 412.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-2",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "bang" ],
- "patching_rect" : [ 112.0, 92.0, 22.0, 22.0 ],
- "text" : "t b"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-3",
- "maxclass" : "message",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 112.0, 123.0, 32.0, 22.0 ],
- "text" : "path"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-8",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 2,
- "outlettype" : [ "", "" ],
- "patching_rect" : [ 112.0, 152.0, 67.0, 22.0 ],
- "save" : [ "#N", "thispatcher", ";", "#Q", "end", ";" ],
- "text" : "thispatcher"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-22",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 72.0, 296.0, 119.0, 22.0 ],
- "text" : "prepend exportfolder"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-21",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 26.0, 263.0, 119.0, 22.0 ],
- "text" : "prepend exportname"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-19",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 26.0, 156.0, 57.0, 22.0 ],
- "text" : "tosymbol"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-18",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 2,
- "outlettype" : [ "", "" ],
- "patching_rect" : [ 26.0, 125.0, 59.0, 22.0 ],
- "text" : "route text"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-15",
- "maxclass" : "message",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 160.0, 189.0, 49.0, 22.0 ],
- "text" : "path $1"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-13",
- "maxclass" : "message",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 26.0, 189.0, 55.0, 22.0 ],
- "text" : "name $1"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-11",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 2,
- "outlettype" : [ "", "" ],
- "patching_rect" : [ 26.0, 229.0, 65.0, 22.0 ],
- "saved_object_attributes" : {
- "filename" : "helper.js",
- "parameter_enable" : 0
- }
-,
- "text" : "js helper.js"
- }
-
- }
-, {
- "box" : {
- "comment" : "name",
- "id" : "obj-25",
- "index" : 1,
- "maxclass" : "inlet",
- "numinlets" : 0,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 26.0, 29.0, 30.0, 30.0 ]
- }
-
- }
-, {
- "box" : {
- "comment" : "",
- "id" : "obj-26",
- "index" : 1,
- "maxclass" : "outlet",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 26.0, 355.0, 30.0, 30.0 ]
- }
-
- }
- ],
- "lines" : [ {
- "patchline" : {
- "destination" : [ "obj-21", 0 ],
- "source" : [ "obj-11", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-22", 0 ],
- "source" : [ "obj-11", 1 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-11", 0 ],
- "source" : [ "obj-13", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-11", 0 ],
- "source" : [ "obj-15", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-19", 0 ],
- "source" : [ "obj-18", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-13", 0 ],
- "source" : [ "obj-19", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-3", 0 ],
- "source" : [ "obj-2", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-26", 0 ],
- "source" : [ "obj-21", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-26", 0 ],
- "source" : [ "obj-22", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-18", 0 ],
- "order" : 1,
- "source" : [ "obj-25", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-2", 0 ],
- "order" : 0,
- "source" : [ "obj-25", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-8", 0 ],
- "source" : [ "obj-3", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-15", 0 ],
- "source" : [ "obj-8", 1 ]
- }
-
- }
- ]
- }
-,
- "patching_rect" : [ 36.5, 129.0, 79.0, 22.0 ],
- "saved_object_attributes" : {
- "description" : "",
- "digest" : "",
- "globalpatchername" : "",
- "tags" : ""
- }
-,
- "text" : "p export-help"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-24",
- "maxclass" : "comment",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 80.5, 76.5, 39.0, 20.0 ],
- "presentation" : 1,
- "presentation_rect" : [ 5.5, 10.5, 39.0, 20.0 ],
- "text" : "name"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-17",
- "keymode" : 1,
- "lines" : 1,
- "maxclass" : "textedit",
- "numinlets" : 1,
- "numoutlets" : 4,
- "outlettype" : [ "", "int", "", "" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 36.5, 98.5, 92.0, 22.0 ],
- "presentation" : 1,
- "presentation_rect" : [ 49.5, 10.5, 108.0, 22.0 ],
- "text" : "test",
- "wordwrap" : 0
- }
-
- }
-, {
- "box" : {
- "id" : "obj-7",
- "maxclass" : "message",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 69.5, 171.5, 35.0, 22.0 ],
- "presentation" : 1,
- "presentation_rect" : [ 164.5, 10.5, 35.0, 22.0 ],
- "text" : "open"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-1",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 2,
- "outlettype" : [ "signal", "signal" ],
- "patcher" : {
- "fileversion" : 1,
- "appversion" : {
- "major" : 8,
- "minor" : 1,
- "revision" : 10,
- "architecture" : "x64",
- "modernui" : 1
- }
-,
- "classnamespace" : "dsp.gen",
- "rect" : [ 279.0, 334.0, 600.0, 450.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-5",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 301.5, 405.0, 35.0, 22.0 ],
- "text" : "out 2"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-1",
- "maxclass" : "newobj",
- "numinlets" : 0,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 50.0, 14.0, 28.0, 22.0 ],
- "text" : "in 1"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-2",
- "maxclass" : "newobj",
- "numinlets" : 0,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 305.0, 14.0, 28.0, 22.0 ],
- "text" : "in 2"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-3",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 176.0, 149.0, 29.5, 22.0 ],
- "text" : "+"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-4",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 56.0, 405.0, 35.0, 22.0 ],
- "text" : "out 1"
- }
-
- }
- ],
- "lines" : [ {
- "patchline" : {
- "destination" : [ "obj-3", 0 ],
- "source" : [ "obj-1", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-3", 1 ],
- "source" : [ "obj-2", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-4", 0 ],
- "order" : 1,
- "source" : [ "obj-3", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-5", 0 ],
- "order" : 0,
- "source" : [ "obj-3", 0 ]
- }
-
- }
- ]
- }
-,
- "patching_rect" : [ 36.5, 221.0, 79.0, 22.0 ],
- "presentation" : 1,
- "presentation_rect" : [ 49.5, 34.5, 108.0, 22.0 ],
- "saved_object_attributes" : {
- "exportfolder" : "C:/Users/Isabel Kaspriskie/dev/vcv/gen-rack/gen/exports/",
- "exportname" : "test"
- }
-,
- "text" : "gen~"
- }
-
- }
- ],
- "lines" : [ {
- "patchline" : {
- "destination" : [ "obj-27", 0 ],
- "source" : [ "obj-17", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-1", 0 ],
- "source" : [ "obj-27", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-1", 0 ],
- "source" : [ "obj-5", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-8", 0 ],
- "source" : [ "obj-6", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-1", 0 ],
- "source" : [ "obj-7", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-17", 0 ],
- "source" : [ "obj-8", 0 ]
- }
-
- }
- ],
- "dependency_cache" : [ {
- "name" : "helper.js",
- "bootpath" : "~/dev/vcv/gen-rack/gen/projects/_starter",
- "patcherrelativepath" : ".",
- "type" : "TEXT",
- "implicit" : 1
- }
- ],
- "autosave" : 0
- }
-
-}
diff --git a/gen/projects/gigaverb/gigaverb.js b/gen/projects/gigaverb/gigaverb.js
diff --git a/gen/projects/gigaverb/gigaverb.maxpat b/gen/projects/gigaverb/gigaverb.maxpat
@@ -1,4662 +0,0 @@
-{
- "patcher" : {
- "fileversion" : 1,
- "appversion" : {
- "major" : 8,
- "minor" : 1,
- "revision" : 10,
- "architecture" : "x64",
- "modernui" : 1
- }
-,
- "classnamespace" : "box",
- "rect" : [ 962.0, 302.0, 496.0, 367.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-17",
- "maxclass" : "message",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 218.0, 311.0, 50.0, 22.0 ]
- }
-
- }
-, {
- "box" : {
- "id" : "obj-15",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 2,
- "outlettype" : [ "", "" ],
- "patching_rect" : [ 201.0, 265.0, 67.0, 22.0 ],
- "save" : [ "#N", "thispatcher", ";", "#Q", "end", ";" ],
- "text" : "thispatcher"
- }
-
- }
-, {
- "box" : {
- "fontsize" : 13.0,
- "id" : "obj-13",
- "lastchannelcount" : 0,
- "maxclass" : "live.gain~",
- "numinlets" : 2,
- "numoutlets" : 5,
- "orientation" : 1,
- "outlettype" : [ "signal", "signal", "", "float", "list" ],
- "parameter_enable" : 1,
- "patching_rect" : [ 14.0, 260.0, 136.0, 41.0 ],
- "saved_attribute_attributes" : {
- "valueof" : {
- "parameter_initial" : [ -70 ],
- "parameter_initial_enable" : 1,
- "parameter_longname" : "live.gain~",
- "parameter_mmax" : 6.0,
- "parameter_mmin" : -70.0,
- "parameter_shortname" : "live.gain~",
- "parameter_type" : 0,
- "parameter_unitstyle" : 4
- }
-
- }
-,
- "showname" : 0,
- "varname" : "live.gain~"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-14",
- "local" : 1,
- "maxclass" : "ezdac~",
- "numinlets" : 2,
- "numoutlets" : 0,
- "patching_rect" : [ 14.0, 311.0, 44.0, 44.0 ],
- "prototypename" : "helpfile"
- }
-
- }
-, {
- "box" : {
- "args" : [ "@loop", 1, "@file", "drumLoop.aif" ],
- "bgmode" : 0,
- "border" : 0,
- "clickthrough" : 0,
- "enablehscroll" : 0,
- "enablevscroll" : 0,
- "id" : "obj-12",
- "lockeddragscroll" : 0,
- "maxclass" : "bpatcher",
- "name" : "demosound.maxpat",
- "numinlets" : 0,
- "numoutlets" : 1,
- "offset" : [ 0.0, 0.0 ],
- "outlettype" : [ "signal" ],
- "patching_rect" : [ 14.0, 42.0, 225.0, 105.0 ],
- "viewvisibility" : 1
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-4",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 2,
- "outlettype" : [ "signal", "signal" ],
- "patcher" : {
- "fileversion" : 1,
- "appversion" : {
- "major" : 8,
- "minor" : 1,
- "revision" : 10,
- "architecture" : "x64",
- "modernui" : 1
- }
-,
- "classnamespace" : "dsp.gen",
- "rect" : [ 0.0, 44.0, 1024.0, 810.0 ],
- "bglocked" : 0,
- "openinpresentation" : 0,
- "default_fontsize" : 12.0,
- "default_fontface" : 0,
- "default_fontname" : "Lato",
- "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" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-307",
- "maxclass" : "comment",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 1200.0, 1365.0, 60.0, 20.0 ],
- "text" : "Dry mix"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-304",
- "maxclass" : "newobj",
- "numinlets" : 0,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 975.0, 1365.0, 30.0, 20.0 ],
- "text" : "in 2"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-305",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 975.0, 1395.0, 32.5, 20.0 ],
- "text" : "*"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-306",
- "maxclass" : "newobj",
- "numinlets" : 0,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 1005.0, 1365.0, 172.0, 20.0 ],
- "text" : "param dry 1 @min 0 @max 1"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-303",
- "linecount" : 2,
- "maxclass" : "comment",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 45.0, 1230.0, 60.0, 34.0 ],
- "text" : "Diffusion\nchains"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-302",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 270.0, 885.0, 32.5, 20.0 ],
- "text" : "+"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-300",
- "maxclass" : "newobj",
- "numinlets" : 0,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 285.0, 930.0, 30.0, 20.0 ],
- "text" : "in 1"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-299",
- "maxclass" : "newobj",
- "numinlets" : 0,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 658.5, 930.0, 30.0, 20.0 ],
- "text" : "in 2"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-298",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 840.0, 60.0, 50.0, 20.0 ],
- "text" : "* 0.707"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-297",
- "maxclass" : "newobj",
- "numinlets" : 0,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 840.0, 30.0, 30.0, 20.0 ],
- "text" : "in 1"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-296",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 645.0, 990.0, 32.5, 20.0 ],
- "text" : "+"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-294",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 1140.0, 825.0, 32.5, 20.0 ],
- "text" : "+"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-295",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 990.0, 825.0, 32.5, 20.0 ],
- "text" : "+"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-293",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 345.0, 825.0, 32.5, 20.0 ],
- "text" : "+"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-292",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 195.0, 825.0, 32.5, 20.0 ],
- "text" : "+"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-289",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 495.0, 690.0, 36.0, 20.0 ],
- "text" : "* 0.5"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-288",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 345.0, 690.0, 36.0, 20.0 ],
- "text" : "* 0.5"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-287",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 195.0, 690.0, 36.0, 20.0 ],
- "text" : "* 0.5"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-286",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 45.000003999999997, 690.0, 36.0, 20.0 ],
- "text" : "* 0.5"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-284",
- "maxclass" : "newobj",
- "numinlets" : 0,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 465.0, 1365.0, 30.0, 20.0 ],
- "text" : "in 1"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-283",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 465.0, 1395.0, 32.5, 20.0 ],
- "text" : "*"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-278",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 270.0, 990.0, 32.5, 20.0 ],
- "text" : "+"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-277",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 1065.0, 855.0, 32.5, 20.0 ],
- "text" : "-"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-276",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 270.0, 855.0, 32.5, 20.0 ],
- "text" : "-"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-271",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 1290.0, 780.0, 32.5, 20.0 ],
- "text" : "*"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-272",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 1140.0, 780.0, 32.5, 20.0 ],
- "text" : "*"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-273",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 990.0, 780.0, 32.5, 20.0 ],
- "text" : "*"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-274",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 840.0, 780.0, 32.5, 20.0 ],
- "text" : "*"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-275",
- "linecount" : 2,
- "maxclass" : "newobj",
- "numinlets" : 0,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 1335.0, 735.0, 120.0, 33.0 ],
- "text" : "param early 0.25 @min 0 @max 1"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-269",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 495.0, 780.0, 32.5, 20.0 ],
- "text" : "*"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-270",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 345.0, 780.0, 32.5, 20.0 ],
- "text" : "*"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-267",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 195.0, 780.0, 32.5, 20.0 ],
- "text" : "*"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-266",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 45.000003999999997, 780.0, 32.5, 20.0 ],
- "text" : "*"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-264",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 345.0, 660.0, 28.0, 20.0 ],
- "text" : "!- 0"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-263",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 495.0, 630.0, 32.5, 20.0 ],
- "text" : "+"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-262",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 345.0, 630.0, 32.5, 20.0 ],
- "text" : "+"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-261",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 195.0, 630.0, 32.5, 20.0 ],
- "text" : "-"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-260",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 435.0, 585.0, 32.5, 20.0 ],
- "text" : "-"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-259",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 45.000003999999997, 630.0, 32.5, 20.0 ],
- "text" : "-"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-258",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 360.0, 585.0, 32.5, 20.0 ],
- "text" : "+"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-257",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 135.0, 585.0, 32.5, 20.0 ],
- "text" : "-"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-256",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 60.0, 585.0, 32.5, 20.0 ],
- "text" : "+"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-249",
- "linecount" : 2,
- "maxclass" : "comment",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 255.0, 570.0, 60.0, 33.0 ],
- "text" : "FDN matrix"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-245",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 525.0, 720.0, 32.5, 20.0 ],
- "text" : "+"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-246",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 375.0, 720.0, 32.5, 20.0 ],
- "text" : "+"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-247",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 225.0, 720.0, 32.5, 20.0 ],
- "text" : "+"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-248",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 75.0, 720.0, 32.5, 20.0 ],
- "text" : "+"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-231",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 510.0, 435.0, 113.0, 20.0 ],
- "text" : "expr -pow(in2\\,in1)"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-232",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 495.0, 465.0, 32.5, 20.0 ],
- "text" : "*"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-233",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 555.0, 540.0, 47.0, 20.0 ],
- "text" : "history"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-234",
- "maxclass" : "newobj",
- "numinlets" : 3,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 495.0, 540.0, 46.0, 20.0 ],
- "text" : "mix"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-236",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 495.0, 405.0, 78.0, 20.0 ],
- "text" : "delay 48000"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-238",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 360.0, 435.0, 113.0, 20.0 ],
- "text" : "expr -pow(in2\\,in1)"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-239",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 345.0, 465.0, 32.5, 20.0 ],
- "text" : "*"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-240",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 405.0, 540.0, 47.0, 20.0 ],
- "text" : "history"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-241",
- "maxclass" : "newobj",
- "numinlets" : 3,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 345.0, 540.0, 46.0, 20.0 ],
- "text" : "mix"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-243",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 345.0, 405.0, 78.0, 20.0 ],
- "text" : "delay 48000"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-224",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 210.0, 435.0, 113.0, 20.0 ],
- "text" : "expr -pow(in2\\,in1)"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-225",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 195.0, 465.0, 32.5, 20.0 ],
- "text" : "*"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-226",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 255.0, 540.0, 47.0, 20.0 ],
- "text" : "history"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-227",
- "maxclass" : "newobj",
- "numinlets" : 3,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 195.0, 540.0, 46.0, 20.0 ],
- "text" : "mix"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-229",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 195.0, 405.0, 78.0, 20.0 ],
- "text" : "delay 48000"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-214",
- "maxclass" : "newobj",
- "numinlets" : 5,
- "numoutlets" : 4,
- "outlettype" : [ "", "", "", "" ],
- "patching_rect" : [ 840.0, 540.0, 465.0, 20.0 ],
- "text" : "delay 48000 4"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-213",
- "linecount" : 2,
- "maxclass" : "comment",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 780.0, 540.0, 60.0, 33.0 ],
- "text" : "Tap delays"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-212",
- "maxclass" : "comment",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 900.0, 240.000014999999991, 75.0, 20.0 ],
- "text" : "prediffuse"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-211",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 945.0, 1425.0, 38.0, 20.0 ],
- "text" : "out 2"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-210",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 435.0, 1425.0, 38.0, 20.0 ],
- "text" : "out 1"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-204",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 1290.0, 600.0, 32.5, 20.0 ],
- "text" : "*"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-205",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 1305.0, 570.0, 109.0, 20.0 ],
- "text" : "expr pow(in2\\,in1)"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-202",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 1140.0, 600.0, 32.5, 20.0 ],
- "text" : "*"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-203",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 1155.0, 570.0, 109.0, 20.0 ],
- "text" : "expr pow(in2\\,in1)"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-200",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 990.0, 600.0, 32.5, 20.0 ],
- "text" : "*"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-201",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 1005.0, 570.0, 109.0, 20.0 ],
- "text" : "expr pow(in2\\,in1)"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-199",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 840.0, 600.0, 32.5, 20.0 ],
- "text" : "*"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-198",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 855.0, 570.0, 109.0, 20.0 ],
- "text" : "expr pow(in2\\,in1)"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-197",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 1305.0, 510.0, 28.0, 20.0 ],
- "text" : "+ 5"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-196",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 1155.0, 510.0, 28.0, 20.0 ],
- "text" : "+ 5"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-195",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 1005.0, 510.0, 28.0, 20.0 ],
- "text" : "+ 5"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-194",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 855.0, 510.0, 28.0, 20.0 ],
- "text" : "+ 5"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-191",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 1155.0, 480.0, 50.0, 20.0 ],
- "text" : "* 0.155"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-192",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 1005.0, 480.0, 36.0, 20.0 ],
- "text" : "* 0.3"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-193",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 855.0, 480.0, 43.0, 20.0 ],
- "text" : "* 0.41"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-173",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 975.0, 1110.0, 49.0, 20.0 ],
- "text" : "!- 1341"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-174",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 930.0, 1110.0, 32.5, 20.0 ],
- "text" : "!-"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-175",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 930.0, 1080.0, 42.0, 20.0 ],
- "text" : "+ 369"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-176",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 975.0, 1080.0, 42.0, 20.0 ],
- "text" : "+ 931"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-177",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 975.0, 1050.0, 74.0, 20.0 ],
- "text" : "* -0.380445"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-178",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 885.0, 1110.0, 42.0, 20.0 ],
- "text" : "+ 159"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-179",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 885.0, 1050.0, 74.0, 20.0 ],
- "text" : "* -0.568366"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-134",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 945.0, 1320.0, 45.0, 20.0 ],
- "text" : "+"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-136",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 945.0, 1290.0, 50.0, 20.0 ],
- "text" : "* 0.625"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-137",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 945.0, 1260.0, 32.5, 20.0 ],
- "text" : "-"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-140",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 960.0, 1230.0, 50.0, 20.0 ],
- "text" : "* 0.625"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-141",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 990.0, 1200.0, 78.0, 20.0 ],
- "text" : "delay 12000"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-142",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 1020.00006099999996, 1170.0, 32.5, 20.0 ],
- "text" : "*"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-144",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 795.0, 1320.0, 45.0, 20.0 ],
- "text" : "+"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-146",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 795.0, 1290.0, 50.0, 20.0 ],
- "text" : "* 0.625"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-147",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 795.0, 1260.0, 32.5, 20.0 ],
- "text" : "-"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-150",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 810.0, 1230.0, 50.0, 20.0 ],
- "text" : "* 0.625"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-151",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 840.0, 1200.0, 78.0, 20.0 ],
- "text" : "delay 16000"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-152",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 870.0, 1170.0, 32.5, 20.0 ],
- "text" : "*"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-154",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 645.0, 1320.0, 45.0, 20.0 ],
- "text" : "+"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-156",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 645.0, 1290.0, 43.0, 20.0 ],
- "text" : "* 0.75"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-157",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 645.0, 1260.0, 32.5, 20.0 ],
- "text" : "-"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-160",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 660.0, 1230.0, 43.0, 20.0 ],
- "text" : "* 0.75"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-161",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 690.0, 1200.0, 71.0, 20.0 ],
- "text" : "delay 7000"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-162",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 720.0, 1170.0, 32.5, 20.0 ],
- "text" : "*"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-131",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 330.0, 1110.0, 49.0, 20.0 ],
- "text" : "!- 1341"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-129",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 270.0, 1110.0, 32.5, 20.0 ],
- "text" : "!-"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-127",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 270.0, 1080.0, 42.0, 20.0 ],
- "text" : "+ 369"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-125",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 330.0, 1080.0, 42.0, 20.0 ],
- "text" : "+ 931"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-124",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 330.0, 1050.0, 70.0, 20.0 ],
- "text" : "* 0.376623"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-112",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 435.0, 1320.0, 45.0, 20.0 ],
- "text" : "+"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-114",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 435.0, 1290.0, 50.0, 20.0 ],
- "text" : "* 0.625"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-116",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 435.0, 1260.0, 32.5, 20.0 ],
- "text" : "-"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-119",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 450.0, 1230.0, 50.0, 20.0 ],
- "text" : "* 0.625"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-120",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 480.0, 1200.0, 78.0, 20.0 ],
- "text" : "delay 10000"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-121",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 510.000061000000017, 1170.0, 32.5, 20.0 ],
- "text" : "*"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-98",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 285.0, 1320.0, 45.0, 20.0 ],
- "text" : "+"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-100",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 285.0, 1290.0, 50.0, 20.0 ],
- "text" : "* 0.625"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-102",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 285.0, 1260.0, 32.5, 20.0 ],
- "text" : "-"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-105",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 300.0, 1230.0, 50.0, 20.0 ],
- "text" : "* 0.625"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-106",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 330.0, 1200.0, 78.0, 20.0 ],
- "text" : "delay 15000"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-107",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 360.0, 1170.0, 32.5, 20.0 ],
- "text" : "*"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-95",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 224.999968999999993, 1110.0, 42.0, 20.0 ],
- "text" : "+ 159"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-88",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 224.999968999999993, 1050.0, 70.0, 20.0 ],
- "text" : "* 0.125541"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-77",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 134.999968999999993, 1320.0, 45.0, 20.0 ],
- "text" : "+"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-79",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 134.999968999999993, 1290.0, 43.0, 20.0 ],
- "text" : "* 0.75"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-81",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 134.999968999999993, 1260.0, 32.5, 20.0 ],
- "text" : "-"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-84",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 149.999968999999993, 1230.0, 43.0, 20.0 ],
- "text" : "* 0.75"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-85",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 179.999968999999993, 1200.0, 71.0, 20.0 ],
- "text" : "delay 5000"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-86",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 209.999968999999993, 1170.0, 32.5, 20.0 ],
- "text" : "*"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-74",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 840.0, 300.0, 45.0, 20.0 ],
- "text" : "+"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-72",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 840.0, 270.0, 43.0, 20.0 ],
- "text" : "* 0.75"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-67",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 840.0, 240.000014999999991, 32.5, 20.0 ],
- "text" : "-"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-64",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 855.0, 210.000014999999991, 43.0, 20.0 ],
- "text" : "* 0.75"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-63",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 885.0, 180.000014999999991, 71.0, 20.0 ],
- "text" : "delay 6000"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-62",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 930.0, 150.0, 70.0, 20.0 ],
- "text" : "* 0.110732"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-52",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 675.0, 1110.0, 24.0, 20.0 ],
- "text" : "int"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-51",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 675.0, 1080.0, 70.0, 20.0 ],
- "text" : "* 0.000527"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-45",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 60.0, 435.0, 113.0, 20.0 ],
- "text" : "expr -pow(in2\\,in1)"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-44",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 45.000003999999997, 465.0, 32.5, 20.0 ],
- "text" : "*"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-42",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 555.0, 345.0, 63.0, 20.0 ],
- "text" : "* 0.63245"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-43",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 405.0, 345.0, 57.0, 20.0 ],
- "text" : "* 0.7071"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-41",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 255.0, 345.0, 63.0, 20.0 ],
- "text" : "* 0.81649"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-40",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 105.0, 345.0, 26.0, 20.0 ],
- "text" : "* 1"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-35",
- "linecount" : 2,
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 1125.0, 390.0, 240.0, 33.0 ],
- "text" : "expr pow(pow(10\\,-60/20)\\,1./(in1*samplerate))"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-31",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 105.0, 540.0, 47.0, 20.0 ],
- "text" : "history"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-32",
- "maxclass" : "newobj",
- "numinlets" : 3,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 45.000003999999997, 540.0, 46.0, 20.0 ],
- "text" : "mix"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-33",
- "linecount" : 2,
- "maxclass" : "comment",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 90.0, 495.0, 60.0, 33.0 ],
- "text" : "FDN dampers"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-30",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 45.000003999999997, 405.0, 78.0, 20.0 ],
- "text" : "delay 48000"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-28",
- "linecount" : 3,
- "maxclass" : "comment",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 30.0, 330.0, 75.0, 47.0 ],
- "text" : "Feeedback delay network"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-27",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 900.0, 104.999992000000006, 47.0, 20.0 ],
- "text" : "history"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-17",
- "maxclass" : "newobj",
- "numinlets" : 3,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 840.0, 104.999992000000006, 46.0, 20.0 ],
- "text" : "mix"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-16",
- "maxclass" : "comment",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 960.0, 105.0, 90.0, 20.0 ],
- "text" : "input damper"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-14",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 960.0, 75.0, 28.0, 20.0 ],
- "text" : "!- 1"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-11",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 675.0, 120.0, 144.0, 20.0 ],
- "text" : "expr in1*samplerate/340"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-10",
- "linecount" : 2,
- "maxclass" : "newobj",
- "numinlets" : 0,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 570.0, 735.0, 105.0, 33.0 ],
- "text" : "param tail 0.25 @min 0 @max 1"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-7",
- "linecount" : 2,
- "maxclass" : "newobj",
- "numinlets" : 0,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 960.0, 30.0, 135.0, 33.0 ],
- "text" : "param bandwidth 0.5 @min 0 @max 1"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-6",
- "linecount" : 2,
- "maxclass" : "newobj",
- "numinlets" : 0,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 885.0, 990.0, 120.0, 33.0 ],
- "text" : "param spread 23 @min 0 @max 100"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-5",
- "linecount" : 2,
- "maxclass" : "newobj",
- "numinlets" : 0,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 540.0, 495.0, 120.0, 33.0 ],
- "text" : "param damping 0.7 @min 0 @max 1"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-4",
- "maxclass" : "newobj",
- "numinlets" : 0,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 1125.0, 360.0, 163.0, 20.0 ],
- "text" : "param revtime 11 @min 0.1"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-3",
- "linecount" : 2,
- "maxclass" : "newobj",
- "numinlets" : 0,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 675.0, 75.0, 135.0, 33.0 ],
- "text" : "param roomsize 75 @min 0.1 @max 300"
- }
-
- }
-, {
- "box" : {
- "fontname" : "Lato",
- "fontsize" : 12.0,
- "id" : "obj-1",
- "maxclass" : "newobj",
- "numinlets" : 0,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 885.0, 30.0, 30.0, 20.0 ],
- "text" : "in 2"
- }
-
- }
- ],
- "lines" : [ {
- "patchline" : {
- "destination" : [ "obj-298", 0 ],
- "source" : [ "obj-1", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-266", 1 ],
- "midpoints" : [ 579.5, 774.5, 68.00000399999999, 774.5 ],
- "order" : 3,
- "source" : [ "obj-10", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-267", 1 ],
- "midpoints" : [ 579.5, 774.5, 218.0, 774.5 ],
- "order" : 2,
- "source" : [ "obj-10", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-269", 1 ],
- "midpoints" : [ 579.5, 774.5, 518.0, 774.5 ],
- "order" : 0,
- "source" : [ "obj-10", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-270", 1 ],
- "midpoints" : [ 579.5, 774.5, 368.0, 774.5 ],
- "order" : 1,
- "source" : [ "obj-10", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-98", 0 ],
- "source" : [ "obj-100", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-100", 0 ],
- "order" : 1,
- "source" : [ "obj-102", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-106", 0 ],
- "order" : 0,
- "source" : [ "obj-102", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-102", 1 ],
- "source" : [ "obj-105", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-105", 0 ],
- "order" : 1,
- "source" : [ "obj-106", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-98", 1 ],
- "order" : 0,
- "source" : [ "obj-106", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-106", 1 ],
- "source" : [ "obj-107", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "color" : [ 0.827451, 0.737255, 0.835294, 1.0 ],
- "destination" : [ "obj-191", 0 ],
- "midpoints" : [ 684.5, 339.5, 1164.5, 339.5 ],
- "order" : 1,
- "source" : [ "obj-11", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "color" : [ 0.827451, 0.737255, 0.835294, 1.0 ],
- "destination" : [ "obj-192", 0 ],
- "midpoints" : [ 684.5, 339.5, 1014.5, 339.5 ],
- "order" : 2,
- "source" : [ "obj-11", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "color" : [ 0.827451, 0.737255, 0.835294, 1.0 ],
- "destination" : [ "obj-193", 0 ],
- "midpoints" : [ 684.5, 339.5, 864.5, 339.5 ],
- "order" : 4,
- "source" : [ "obj-11", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "color" : [ 0.827451, 0.737255, 0.835294, 1.0 ],
- "destination" : [ "obj-197", 0 ],
- "midpoints" : [ 684.5, 338.394897000000014, 1314.5, 338.394897000000014 ],
- "order" : 0,
- "source" : [ "obj-11", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "color" : [ 0.827451, 0.737255, 0.835294, 1.0 ],
- "destination" : [ "obj-40", 0 ],
- "midpoints" : [ 684.5, 337.166503999999975, 114.5, 337.166503999999975 ],
- "order" : 9,
- "source" : [ "obj-11", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "color" : [ 0.827451, 0.737255, 0.835294, 1.0 ],
- "destination" : [ "obj-41", 0 ],
- "midpoints" : [ 684.5, 337.166503999999975, 264.5, 337.166503999999975 ],
- "order" : 8,
- "source" : [ "obj-11", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "color" : [ 0.827451, 0.737255, 0.835294, 1.0 ],
- "destination" : [ "obj-42", 0 ],
- "midpoints" : [ 684.5, 338.630584999999996, 564.5, 338.630584999999996 ],
- "order" : 6,
- "source" : [ "obj-11", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "color" : [ 0.827451, 0.737255, 0.835294, 1.0 ],
- "destination" : [ "obj-43", 0 ],
- "midpoints" : [ 684.5, 335.702392999999972, 414.5, 335.702392999999972 ],
- "order" : 7,
- "source" : [ "obj-11", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "color" : [ 0.827451, 0.737255, 0.835294, 1.0 ],
- "destination" : [ "obj-51", 0 ],
- "midpoints" : [ 684.5, 609.5, 684.5, 609.5 ],
- "order" : 5,
- "source" : [ "obj-11", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "color" : [ 0.827451, 0.737255, 0.835294, 1.0 ],
- "destination" : [ "obj-62", 0 ],
- "midpoints" : [ 684.5, 144.679504000000009, 939.5, 144.679504000000009 ],
- "order" : 3,
- "source" : [ "obj-11", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-210", 0 ],
- "source" : [ "obj-112", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-112", 0 ],
- "source" : [ "obj-114", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-114", 0 ],
- "order" : 1,
- "source" : [ "obj-116", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-120", 0 ],
- "order" : 0,
- "source" : [ "obj-116", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-116", 1 ],
- "source" : [ "obj-119", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-112", 1 ],
- "order" : 0,
- "source" : [ "obj-120", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-119", 0 ],
- "order" : 1,
- "source" : [ "obj-120", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-120", 1 ],
- "source" : [ "obj-121", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-125", 0 ],
- "source" : [ "obj-124", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-129", 1 ],
- "order" : 1,
- "source" : [ "obj-125", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-131", 0 ],
- "order" : 0,
- "source" : [ "obj-125", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-129", 0 ],
- "source" : [ "obj-127", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-107", 1 ],
- "source" : [ "obj-129", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-121", 1 ],
- "source" : [ "obj-131", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-211", 0 ],
- "source" : [ "obj-134", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-134", 0 ],
- "source" : [ "obj-136", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-136", 0 ],
- "order" : 1,
- "source" : [ "obj-137", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-141", 0 ],
- "order" : 0,
- "source" : [ "obj-137", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-17", 2 ],
- "source" : [ "obj-14", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-137", 1 ],
- "source" : [ "obj-140", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-134", 1 ],
- "order" : 0,
- "source" : [ "obj-141", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-140", 0 ],
- "order" : 1,
- "source" : [ "obj-141", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-141", 1 ],
- "source" : [ "obj-142", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-137", 0 ],
- "source" : [ "obj-144", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-144", 0 ],
- "source" : [ "obj-146", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-146", 0 ],
- "order" : 1,
- "source" : [ "obj-147", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-151", 0 ],
- "order" : 0,
- "source" : [ "obj-147", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-147", 1 ],
- "source" : [ "obj-150", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-144", 1 ],
- "order" : 0,
- "source" : [ "obj-151", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-150", 0 ],
- "order" : 1,
- "source" : [ "obj-151", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-151", 1 ],
- "source" : [ "obj-152", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-147", 0 ],
- "source" : [ "obj-154", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-154", 0 ],
- "source" : [ "obj-156", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-156", 0 ],
- "order" : 1,
- "source" : [ "obj-157", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-161", 0 ],
- "order" : 0,
- "source" : [ "obj-157", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-157", 1 ],
- "source" : [ "obj-160", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-154", 1 ],
- "order" : 0,
- "source" : [ "obj-161", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-160", 0 ],
- "order" : 1,
- "source" : [ "obj-161", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-161", 1 ],
- "source" : [ "obj-162", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-27", 0 ],
- "order" : 0,
- "source" : [ "obj-17", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-67", 0 ],
- "order" : 1,
- "source" : [ "obj-17", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-142", 1 ],
- "source" : [ "obj-173", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-152", 1 ],
- "source" : [ "obj-174", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-174", 0 ],
- "source" : [ "obj-175", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-173", 0 ],
- "order" : 0,
- "source" : [ "obj-176", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-174", 1 ],
- "order" : 1,
- "source" : [ "obj-176", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-176", 0 ],
- "source" : [ "obj-177", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-162", 1 ],
- "source" : [ "obj-178", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-175", 0 ],
- "order" : 0,
- "source" : [ "obj-179", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-178", 0 ],
- "order" : 1,
- "source" : [ "obj-179", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-196", 0 ],
- "source" : [ "obj-191", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-195", 0 ],
- "source" : [ "obj-192", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-194", 0 ],
- "source" : [ "obj-193", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-198", 0 ],
- "order" : 1,
- "source" : [ "obj-194", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-214", 1 ],
- "order" : 0,
- "source" : [ "obj-194", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-201", 0 ],
- "order" : 1,
- "source" : [ "obj-195", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-214", 2 ],
- "order" : 0,
- "source" : [ "obj-195", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-203", 0 ],
- "order" : 1,
- "source" : [ "obj-196", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-214", 3 ],
- "order" : 0,
- "source" : [ "obj-196", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-205", 0 ],
- "order" : 0,
- "source" : [ "obj-197", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-214", 4 ],
- "order" : 1,
- "source" : [ "obj-197", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-199", 1 ],
- "source" : [ "obj-198", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-248", 1 ],
- "order" : 1,
- "source" : [ "obj-199", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-274", 0 ],
- "order" : 0,
- "source" : [ "obj-199", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-247", 1 ],
- "order" : 1,
- "source" : [ "obj-200", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-273", 0 ],
- "order" : 0,
- "source" : [ "obj-200", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-200", 1 ],
- "source" : [ "obj-201", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-246", 1 ],
- "order" : 1,
- "source" : [ "obj-202", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-272", 0 ],
- "order" : 0,
- "source" : [ "obj-202", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-202", 1 ],
- "source" : [ "obj-203", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-245", 1 ],
- "order" : 1,
- "source" : [ "obj-204", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-271", 0 ],
- "order" : 0,
- "source" : [ "obj-204", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-204", 1 ],
- "source" : [ "obj-205", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-199", 0 ],
- "source" : [ "obj-214", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-200", 0 ],
- "source" : [ "obj-214", 1 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-202", 0 ],
- "source" : [ "obj-214", 2 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-204", 0 ],
- "source" : [ "obj-214", 3 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-225", 1 ],
- "source" : [ "obj-224", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-227", 0 ],
- "source" : [ "obj-225", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-227", 1 ],
- "source" : [ "obj-226", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-226", 0 ],
- "order" : 0,
- "source" : [ "obj-227", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-256", 1 ],
- "order" : 2,
- "source" : [ "obj-227", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-257", 1 ],
- "order" : 1,
- "source" : [ "obj-227", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-225", 0 ],
- "source" : [ "obj-229", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-232", 1 ],
- "source" : [ "obj-231", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-234", 0 ],
- "source" : [ "obj-232", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-234", 1 ],
- "source" : [ "obj-233", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-233", 0 ],
- "order" : 0,
- "source" : [ "obj-234", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-258", 1 ],
- "order" : 2,
- "source" : [ "obj-234", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-260", 1 ],
- "order" : 1,
- "source" : [ "obj-234", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-232", 0 ],
- "source" : [ "obj-236", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-239", 1 ],
- "source" : [ "obj-238", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-241", 0 ],
- "source" : [ "obj-239", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-241", 1 ],
- "source" : [ "obj-240", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-240", 0 ],
- "order" : 1,
- "source" : [ "obj-241", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-258", 0 ],
- "order" : 2,
- "source" : [ "obj-241", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-260", 0 ],
- "order" : 0,
- "source" : [ "obj-241", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-239", 0 ],
- "source" : [ "obj-243", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-236", 0 ],
- "midpoints" : [ 534.5, 749.0, 488.5, 749.0, 488.5, 395.0, 504.5, 395.0 ],
- "source" : [ "obj-245", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-243", 0 ],
- "midpoints" : [ 384.5, 749.0, 339.5, 749.0, 339.5, 395.0, 354.5, 395.0 ],
- "source" : [ "obj-246", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-229", 0 ],
- "midpoints" : [ 234.5, 749.0, 188.5, 749.0, 188.5, 395.0, 204.5, 395.0 ],
- "source" : [ "obj-247", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-30", 0 ],
- "midpoints" : [ 84.5, 749.0, 39.5, 749.0, 39.5, 395.0, 54.500003999999997, 395.0 ],
- "source" : [ "obj-248", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-259", 0 ],
- "order" : 1,
- "source" : [ "obj-256", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-263", 0 ],
- "order" : 0,
- "source" : [ "obj-256", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-261", 0 ],
- "order" : 1,
- "source" : [ "obj-257", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-262", 0 ],
- "order" : 0,
- "source" : [ "obj-257", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-259", 1 ],
- "order" : 1,
- "source" : [ "obj-258", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-263", 1 ],
- "order" : 0,
- "source" : [ "obj-258", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-286", 0 ],
- "source" : [ "obj-259", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-261", 1 ],
- "order" : 1,
- "source" : [ "obj-260", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-262", 1 ],
- "order" : 0,
- "source" : [ "obj-260", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-287", 0 ],
- "source" : [ "obj-261", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-264", 0 ],
- "source" : [ "obj-262", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-289", 0 ],
- "source" : [ "obj-263", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-288", 0 ],
- "source" : [ "obj-264", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-292", 0 ],
- "source" : [ "obj-266", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-293", 0 ],
- "source" : [ "obj-267", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-293", 1 ],
- "source" : [ "obj-269", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-17", 1 ],
- "source" : [ "obj-27", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-292", 1 ],
- "source" : [ "obj-270", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-294", 1 ],
- "source" : [ "obj-271", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-295", 1 ],
- "source" : [ "obj-272", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-294", 0 ],
- "source" : [ "obj-273", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-295", 0 ],
- "source" : [ "obj-274", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-271", 1 ],
- "midpoints" : [ 1344.5, 774.5, 1313.0, 774.5 ],
- "order" : 0,
- "source" : [ "obj-275", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-272", 1 ],
- "midpoints" : [ 1344.5, 774.5, 1163.0, 774.5 ],
- "order" : 1,
- "source" : [ "obj-275", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-273", 1 ],
- "midpoints" : [ 1344.5, 774.5, 1013.0, 774.5 ],
- "order" : 2,
- "source" : [ "obj-275", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-274", 1 ],
- "midpoints" : [ 1344.5, 774.5, 863.0, 774.5 ],
- "order" : 3,
- "source" : [ "obj-275", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-302", 0 ],
- "midpoints" : [ 279.5, 879.5, 279.5, 879.5 ],
- "source" : [ "obj-276", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-302", 1 ],
- "midpoints" : [ 1074.5, 879.5, 293.0, 879.5 ],
- "source" : [ "obj-277", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-81", 0 ],
- "midpoints" : [ 279.5, 1020.479736000000003, 144.499968999999993, 1020.479736000000003 ],
- "source" : [ "obj-278", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-210", 0 ],
- "source" : [ "obj-283", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-283", 0 ],
- "source" : [ "obj-284", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-248", 0 ],
- "order" : 0,
- "source" : [ "obj-286", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-266", 0 ],
- "order" : 1,
- "source" : [ "obj-286", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-247", 0 ],
- "order" : 0,
- "source" : [ "obj-287", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-267", 0 ],
- "order" : 1,
- "source" : [ "obj-287", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-246", 0 ],
- "order" : 0,
- "source" : [ "obj-288", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-270", 0 ],
- "order" : 1,
- "source" : [ "obj-288", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-245", 0 ],
- "order" : 0,
- "source" : [ "obj-289", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-269", 0 ],
- "order" : 1,
- "source" : [ "obj-289", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-276", 0 ],
- "source" : [ "obj-292", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-276", 1 ],
- "source" : [ "obj-293", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-277", 1 ],
- "source" : [ "obj-294", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-277", 0 ],
- "source" : [ "obj-295", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-157", 0 ],
- "midpoints" : [ 654.5, 1019.015625, 654.5, 1019.015625 ],
- "source" : [ "obj-296", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-298", 0 ],
- "source" : [ "obj-297", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-17", 0 ],
- "source" : [ "obj-298", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-296", 1 ],
- "source" : [ "obj-299", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-11", 0 ],
- "source" : [ "obj-3", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-44", 0 ],
- "source" : [ "obj-30", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-278", 1 ],
- "source" : [ "obj-300", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-278", 0 ],
- "midpoints" : [ 279.5, 916.253906000000029, 279.5, 916.253906000000029 ],
- "order" : 1,
- "source" : [ "obj-302", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-296", 0 ],
- "midpoints" : [ 279.5, 916.253906000000029, 654.5, 916.253906000000029 ],
- "order" : 0,
- "source" : [ "obj-302", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-305", 0 ],
- "source" : [ "obj-304", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-211", 0 ],
- "source" : [ "obj-305", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-283", 1 ],
- "midpoints" : [ 1014.5, 1389.5, 488.0, 1389.5 ],
- "order" : 1,
- "source" : [ "obj-306", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-305", 1 ],
- "order" : 0,
- "source" : [ "obj-306", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-32", 1 ],
- "source" : [ "obj-31", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-256", 0 ],
- "order" : 2,
- "source" : [ "obj-32", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-257", 0 ],
- "order" : 0,
- "source" : [ "obj-32", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-31", 0 ],
- "order" : 1,
- "source" : [ "obj-32", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "color" : [ 0.917647, 0.937255, 0.670588, 1.0 ],
- "destination" : [ "obj-198", 1 ],
- "midpoints" : [ 1134.5, 429.869415000000004, 954.5, 429.869415000000004 ],
- "order" : 3,
- "source" : [ "obj-35", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "color" : [ 0.917647, 0.937255, 0.670588, 1.0 ],
- "destination" : [ "obj-201", 1 ],
- "midpoints" : [ 1134.5, 429.869415000000004, 1104.5, 429.869415000000004 ],
- "order" : 2,
- "source" : [ "obj-35", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "color" : [ 0.917647, 0.937255, 0.670588, 1.0 ],
- "destination" : [ "obj-203", 1 ],
- "midpoints" : [ 1134.5, 431.333496000000025, 1254.5, 431.333496000000025 ],
- "order" : 1,
- "source" : [ "obj-35", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "color" : [ 0.917647, 0.937255, 0.670588, 1.0 ],
- "destination" : [ "obj-205", 1 ],
- "midpoints" : [ 1134.5, 428.405304000000001, 1404.5, 428.405304000000001 ],
- "order" : 0,
- "source" : [ "obj-35", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "color" : [ 0.917647, 0.937255, 0.670588, 1.0 ],
- "destination" : [ "obj-224", 1 ],
- "midpoints" : [ 1134.5, 429.0, 313.5, 429.0 ],
- "order" : 6,
- "source" : [ "obj-35", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "color" : [ 0.917647, 0.937255, 0.670588, 1.0 ],
- "destination" : [ "obj-231", 1 ],
- "midpoints" : [ 1134.5, 429.0, 613.5, 429.0 ],
- "order" : 4,
- "source" : [ "obj-35", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "color" : [ 0.917647, 0.937255, 0.670588, 1.0 ],
- "destination" : [ "obj-238", 1 ],
- "midpoints" : [ 1134.5, 429.0, 463.5, 429.0 ],
- "order" : 5,
- "source" : [ "obj-35", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "color" : [ 0.917647, 0.937255, 0.670588, 1.0 ],
- "destination" : [ "obj-45", 1 ],
- "midpoints" : [ 1134.5, 429.0, 163.5, 429.0 ],
- "order" : 7,
- "source" : [ "obj-35", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-35", 0 ],
- "source" : [ "obj-4", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-30", 1 ],
- "order" : 0,
- "source" : [ "obj-40", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-45", 0 ],
- "order" : 1,
- "source" : [ "obj-40", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-224", 0 ],
- "order" : 1,
- "source" : [ "obj-41", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-229", 1 ],
- "order" : 0,
- "source" : [ "obj-41", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-231", 0 ],
- "order" : 1,
- "source" : [ "obj-42", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-236", 1 ],
- "order" : 0,
- "source" : [ "obj-42", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-238", 0 ],
- "order" : 1,
- "source" : [ "obj-43", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-243", 1 ],
- "order" : 0,
- "source" : [ "obj-43", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-32", 0 ],
- "source" : [ "obj-44", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-44", 1 ],
- "source" : [ "obj-45", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-227", 2 ],
- "midpoints" : [ 549.5, 534.0, 231.5, 534.0 ],
- "order" : 2,
- "source" : [ "obj-5", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-234", 2 ],
- "midpoints" : [ 549.5, 534.0, 531.5, 534.0 ],
- "order" : 0,
- "source" : [ "obj-5", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-241", 2 ],
- "midpoints" : [ 549.5, 534.0, 381.5, 534.0 ],
- "order" : 1,
- "source" : [ "obj-5", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-32", 2 ],
- "midpoints" : [ 549.5, 534.0, 81.50000399999999, 534.0 ],
- "order" : 3,
- "source" : [ "obj-5", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-52", 0 ],
- "source" : [ "obj-51", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "color" : [ 0.67451, 0.819608, 0.572549, 1.0 ],
- "destination" : [ "obj-107", 0 ],
- "midpoints" : [ 684.5, 1149.5, 369.5, 1149.5 ],
- "order" : 4,
- "source" : [ "obj-52", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "color" : [ 0.67451, 0.819608, 0.572549, 1.0 ],
- "destination" : [ "obj-121", 0 ],
- "midpoints" : [ 684.5, 1149.5, 519.50006099999996, 1149.5 ],
- "order" : 3,
- "source" : [ "obj-52", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "color" : [ 0.67451, 0.819608, 0.572549, 1.0 ],
- "destination" : [ "obj-142", 0 ],
- "midpoints" : [ 684.5, 1149.5, 1029.50006099999996, 1149.5 ],
- "order" : 0,
- "source" : [ "obj-52", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "color" : [ 0.67451, 0.819608, 0.572549, 1.0 ],
- "destination" : [ "obj-152", 0 ],
- "midpoints" : [ 684.5, 1149.5, 879.5, 1149.5 ],
- "order" : 1,
- "source" : [ "obj-52", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "color" : [ 0.67451, 0.819608, 0.572549, 1.0 ],
- "destination" : [ "obj-162", 0 ],
- "midpoints" : [ 684.5, 1149.5, 729.5, 1149.5 ],
- "order" : 2,
- "source" : [ "obj-52", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "color" : [ 0.67451, 0.819608, 0.572549, 1.0 ],
- "destination" : [ "obj-86", 0 ],
- "midpoints" : [ 684.5, 1149.5, 219.499968999999993, 1149.5 ],
- "order" : 5,
- "source" : [ "obj-52", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-124", 0 ],
- "midpoints" : [ 894.5, 1037.0, 339.5, 1037.0 ],
- "order" : 2,
- "source" : [ "obj-6", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-177", 0 ],
- "midpoints" : [ 894.5, 1037.0, 984.5, 1037.0 ],
- "order" : 0,
- "source" : [ "obj-6", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-179", 0 ],
- "midpoints" : [ 894.5, 1037.0, 894.5, 1037.0 ],
- "order" : 1,
- "source" : [ "obj-6", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-88", 0 ],
- "midpoints" : [ 894.5, 1037.0, 234.499968999999993, 1037.0 ],
- "order" : 3,
- "source" : [ "obj-6", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-63", 1 ],
- "source" : [ "obj-62", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-64", 0 ],
- "order" : 1,
- "source" : [ "obj-63", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-74", 1 ],
- "order" : 0,
- "source" : [ "obj-63", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-67", 1 ],
- "source" : [ "obj-64", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-63", 0 ],
- "order" : 0,
- "source" : [ "obj-67", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-72", 0 ],
- "order" : 1,
- "source" : [ "obj-67", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-14", 0 ],
- "source" : [ "obj-7", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-74", 0 ],
- "source" : [ "obj-72", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-214", 0 ],
- "source" : [ "obj-74", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-102", 0 ],
- "source" : [ "obj-77", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-77", 0 ],
- "source" : [ "obj-79", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-79", 0 ],
- "order" : 1,
- "source" : [ "obj-81", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-85", 0 ],
- "order" : 0,
- "source" : [ "obj-81", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-81", 1 ],
- "source" : [ "obj-84", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-77", 1 ],
- "order" : 0,
- "source" : [ "obj-85", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-84", 0 ],
- "order" : 1,
- "source" : [ "obj-85", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-85", 1 ],
- "source" : [ "obj-86", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-127", 0 ],
- "order" : 0,
- "source" : [ "obj-88", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-95", 0 ],
- "order" : 1,
- "source" : [ "obj-88", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-86", 1 ],
- "source" : [ "obj-95", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-116", 0 ],
- "source" : [ "obj-98", 0 ]
- }
-
- }
- ],
- "bgcolor" : [ 0.9, 0.9, 0.9, 1.0 ],
- "editing_bgcolor" : [ 0.9, 0.9, 0.9, 1.0 ]
- }
-,
- "patching_rect" : [ 14.0, 214.0, 35.0, 23.0 ],
- "text" : "gen~"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-2",
- "maxclass" : "comment",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 14.0, 13.0, 213.0, 20.0 ],
- "text" : "Gigaverb from gen~.gigaverb example"
- }
-
- }
-, {
- "box" : {
- "attr" : "spread",
- "id" : "obj-3",
- "maxclass" : "attrui",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 315.0, 138.0, 150.0, 22.0 ]
- }
-
- }
-, {
- "box" : {
- "attr" : "roomsize",
- "id" : "obj-5",
- "maxclass" : "attrui",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 315.0, 114.0, 150.0, 22.0 ]
- }
-
- }
-, {
- "box" : {
- "attr" : "dry",
- "id" : "obj-6",
- "maxclass" : "attrui",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 315.0, 90.0, 150.0, 22.0 ]
- }
-
- }
-, {
- "box" : {
- "attr" : "damping",
- "id" : "obj-7",
- "maxclass" : "attrui",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 315.0, 162.0, 150.0, 22.0 ]
- }
-
- }
-, {
- "box" : {
- "attr" : "early",
- "id" : "obj-8",
- "maxclass" : "attrui",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 315.0, 186.0, 150.0, 22.0 ]
- }
-
- }
-, {
- "box" : {
- "attr" : "tail",
- "id" : "obj-9",
- "maxclass" : "attrui",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 315.0, 210.0, 150.0, 22.0 ]
- }
-
- }
-, {
- "box" : {
- "attr" : "revtime",
- "id" : "obj-10",
- "maxclass" : "attrui",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 315.0, 66.0, 150.0, 22.0 ]
- }
-
- }
-, {
- "box" : {
- "attr" : "bandwidth",
- "id" : "obj-11",
- "maxclass" : "attrui",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 315.0, 42.0, 150.0, 22.0 ]
- }
-
- }
-, {
- "box" : {
- "attr" : "exportfolder",
- "id" : "obj-1",
- "maxclass" : "attrui",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 14.0, 184.0, 150.0, 22.0 ]
- }
-
- }
- ],
- "lines" : [ {
- "patchline" : {
- "destination" : [ "obj-4", 0 ],
- "source" : [ "obj-1", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-4", 0 ],
- "midpoints" : [ 324.5, 90.0, 249.0, 90.0, 249.0, 208.0, 23.5, 208.0 ],
- "source" : [ "obj-10", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-4", 0 ],
- "midpoints" : [ 324.5, 66.0, 249.0, 66.0, 249.0, 207.0, 23.5, 207.0 ],
- "source" : [ "obj-11", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-4", 1 ],
- "order" : 0,
- "source" : [ "obj-12", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-4", 0 ],
- "order" : 1,
- "source" : [ "obj-12", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-14", 1 ],
- "source" : [ "obj-13", 1 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-14", 0 ],
- "source" : [ "obj-13", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-17", 1 ],
- "source" : [ "obj-15", 1 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-4", 0 ],
- "midpoints" : [ 248.0, 159.0, 248.0, 210.0, 23.5, 210.0 ],
- "source" : [ "obj-3", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-13", 1 ],
- "source" : [ "obj-4", 1 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-13", 0 ],
- "source" : [ "obj-4", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-4", 0 ],
- "midpoints" : [ 324.5, 138.0, 249.0, 138.0, 249.0, 208.0, 23.5, 208.0 ],
- "source" : [ "obj-5", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-4", 0 ],
- "midpoints" : [ 324.5, 114.0, 249.0, 114.0, 249.0, 208.0, 23.5, 208.0 ],
- "source" : [ "obj-6", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-4", 0 ],
- "midpoints" : [ 248.0, 184.0, 248.0, 209.0, 23.5, 209.0 ],
- "source" : [ "obj-7", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-4", 0 ],
- "midpoints" : [ 23.0, 206.0 ],
- "source" : [ "obj-8", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-4", 0 ],
- "midpoints" : [ 324.5, 238.0, 247.0, 238.0, 247.0, 206.0, 23.5, 206.0 ],
- "source" : [ "obj-9", 0 ]
- }
-
- }
- ],
- "parameters" : {
- "obj-12::obj-21::obj-6" : [ "live.tab[3]", "live.tab[1]", 0 ],
- "obj-12::obj-35" : [ "[5]", "Level", 0 ],
- "obj-13" : [ "live.gain~", "live.gain~", 0 ],
- "parameterbanks" : {
-
- }
-,
- "inherited_shortname" : 1
- }
-,
- "dependency_cache" : [ {
- "name" : "demosound.maxpat",
- "bootpath" : "C74:/help/msp",
- "type" : "JSON",
- "implicit" : 1
- }
-, {
- "name" : "sine.svg",
- "bootpath" : "C74:/media/max/picts/m4l-picts",
- "type" : "svg",
- "implicit" : 1
- }
-, {
- "name" : "saw.svg",
- "bootpath" : "C74:/media/max/picts/m4l-picts",
- "type" : "svg",
- "implicit" : 1
- }
-, {
- "name" : "square.svg",
- "bootpath" : "C74:/media/max/picts/m4l-picts",
- "type" : "svg",
- "implicit" : 1
- }
-, {
- "name" : "random.svg",
- "bootpath" : "C74:/media/max/picts/m4l-picts",
- "type" : "svg",
- "implicit" : 1
- }
-, {
- "name" : "interfacecolor.js",
- "bootpath" : "C74:/interfaces",
- "type" : "TEXT",
- "implicit" : 1
- }
- ],
- "autosave" : 0
- }
-
-}
diff --git a/src/gigaverb.cpp b/src/gigaverb.cpp
@@ -1,6 +1,7 @@
#include "plugin.hpp"
#include "gigaverb.h"
+using namespace gigaverb;
/// Processing
@@ -19,12 +20,12 @@ struct Gigaverb : Module {
Gigaverb() {
// Set default sample rate of 44100 Hz and vector size 1 (VCV uses single sample processing)
// and update it later if needed
- moduleState = (CommonState *)gigaverb::create(44100, currentBufferSize);
- gigaverb::reset(moduleState);
+ moduleState = (CommonState *)create(44100, currentBufferSize);
+ reset(moduleState);
- numParams = gigaverb::num_params();
- numInputs = gigaverb::num_inputs();
- numOutputs = gigaverb::num_outputs();
+ numParams = num_params();
+ numInputs = num_inputs();
+ numOutputs = num_outputs();
// Initialize sample buffers
inputBuffers = new t_sample *[numInputs];
@@ -41,13 +42,13 @@ struct Gigaverb : Module {
// Configure parameters
config(numParams, numInputs + numParams, numOutputs, 0);
for (int i = 0; i < numParams; i++) {
- std::string name = std::string(gigaverb::getparametername(moduleState, i));
- std::string units = std::string(gigaverb::getparameterunits(moduleState, i));
+ std::string name = std::string(getparametername(moduleState, i));
+ std::string units = std::string(getparameterunits(moduleState, i));
float min = 0.0;
float max = 1.0;
- if (gigaverb::getparameterhasminmax(moduleState, i)) {
- min = gigaverb::getparametermin(moduleState, i);
- max = gigaverb::getparametermax(moduleState, i);
+ if (getparameterhasminmax(moduleState, i)) {
+ min = getparametermin(moduleState, i);
+ max = getparametermax(moduleState, i);
}
configParam(i, min, max, min, name, units);
}
@@ -55,7 +56,7 @@ struct Gigaverb : Module {
~Gigaverb() {
- gigaverb::destroy(moduleState);
+ destroy(moduleState);
deleteBuffers();
}
@@ -126,16 +127,16 @@ struct Gigaverb : Module {
float cvVal = inputs[i + numInputs].isConnected() ? inputs[i + numInputs].getVoltage() / 5.f : 0.f; // Normalize to -1..1
// Scale to range of parameter
- t_param min = gigaverb::getparametermin(moduleState, i);
- t_param max = gigaverb::getparametermax(moduleState, i);
+ t_param min = getparametermin(moduleState, i);
+ t_param max = getparametermax(moduleState, i);
t_param range = fabs(max - min);
t_param val = clamp(knobVal + cvVal * range, min, max); // Offset the knobVal by the CV input
- gigaverb::setparameter(moduleState, i, val, NULL);
+ setparameter(moduleState, i, val, NULL);
}
// Fill the buffers
- gigaverb::perform(moduleState, inputBuffers, numInputs, outputBuffers, numOutputs, currentBufferSize);
+ perform(moduleState, inputBuffers, numInputs, outputBuffers, numOutputs, currentBufferSize);
}
}
};
@@ -192,7 +193,7 @@ struct GigaverbWidget : ModuleWidget {
panel = new genrack::Panel(40, 40, 40);
addChild(panel);
panel->box.size = box.size;
- genrack::Title *title = new genrack::Title(box.size.x / 2, top_margin, box.size.x, "gigaverb");
+ genrack::Title *title = new genrack::Title(box.size.x / 2, top_margin, box.size.x, gigaverb);
addChild(title);
if (module) {
@@ -212,7 +213,7 @@ struct GigaverbWidget : ModuleWidget {
}
for (int i = 0; i < numParams; i++) {
- std::string paramLabel = std::string(gigaverb::getparametername(module->moduleState, i));
+ std::string paramLabel = std::string(getparametername(module->moduleState, i));
paramLabel.resize(10);
paramLabels.push_back(paramLabel);
}
@@ -242,7 +243,7 @@ struct GigaverbWidget : ModuleWidget {
panel->box.size = box.size;
// Title text
- genrack::Title *title = new genrack::Title(box.size.x / 2, top_margin, box.size.x, "gigaverb");
+ genrack::Title *title = new genrack::Title(box.size.x / 2, top_margin, box.size.x, gigaverb);
addChild(title);
// Screws
@@ -313,4 +314,4 @@ struct GigaverbWidget : ModuleWidget {
/// Register the model
-Model* modelGigaverb = createModel<Gigaverb, GigaverbWidget>("gigaverb");
+Model* modelGigaverb = createModel<Gigaverb, GigaverbWidget>(gigaverb);
diff --git a/src/module.in b/src/module.in
@@ -0,0 +1,317 @@
+#include "plugin.hpp"
+#include "GEN_RACK_DISPLAY_NAME.h"
+
+using namespace GEN_RACK_DISPLAY_NAME;
+
+/// Processing
+
+struct GEN_RACK_NAME : Module {
+ CommonState *moduleState;
+ t_sample **inputBuffers; // access like: buffer[input #][sample #]
+ t_sample **outputBuffers;
+ int currentBufferSize = 256;
+
+ int numParams;
+ int numInputs;
+ int numOutputs;
+
+ int count = 0;
+
+ GEN_RACK_NAME() {
+ // Set default sample rate of 44100 Hz and vector size 1 (VCV uses single sample processing)
+ // and update it later if needed
+ moduleState = (CommonState *)create(44100, currentBufferSize);
+ reset(moduleState);
+
+ numParams = num_params();
+ numInputs = num_inputs();
+ numOutputs = num_outputs();
+
+ // Initialize sample buffers
+ inputBuffers = new t_sample *[numInputs];
+ for (int i = 0; i < numInputs; i++) {
+ inputBuffers[i] = new t_sample[currentBufferSize];
+ }
+
+ outputBuffers = new t_sample *[numOutputs];
+ for (int i = 0; i < numOutputs; i++) {
+ outputBuffers[i] = new t_sample[currentBufferSize];
+ }
+
+
+ // Configure parameters
+ config(numParams, numInputs + numParams, numOutputs, 0);
+ for (int i = 0; i < numParams; i++) {
+ std::string name = std::string(getparametername(moduleState, i));
+ std::string units = std::string(getparameterunits(moduleState, i));
+ float min = 0.0;
+ float max = 1.0;
+ if (getparameterhasminmax(moduleState, i)) {
+ min = getparametermin(moduleState, i);
+ max = getparametermax(moduleState, i);
+ }
+ configParam(i, min, max, min, name, units);
+ }
+ }
+
+
+ ~GEN_RACK_NAME() {
+ destroy(moduleState);
+ deleteBuffers();
+ }
+
+ void deleteBuffers() {
+ for (int i = 0; i < numInputs; i++) {
+ if (inputBuffers[i]) {
+ delete inputBuffers[i];
+ }
+ }
+
+ for (int i = 0; i < numOutputs; i++) {
+ if (outputBuffers[i]) {
+ delete outputBuffers[i];
+ }
+ }
+ }
+
+
+ void assureBufferSize(long bufferSize) {
+ if (bufferSize > currentBufferSize) {
+ for (int i = 0; i < numInputs; i++) {
+ if (inputBuffers[i]) {
+ delete inputBuffers[i];
+ }
+ inputBuffers[i] = new t_sample[bufferSize];
+ }
+
+ for (int i = 0; i < numOutputs; i++) {
+ if (outputBuffers[i]) {
+ delete outputBuffers[i];
+ }
+ outputBuffers[i] = new t_sample[bufferSize];
+ }
+ currentBufferSize = bufferSize;
+ }
+ }
+
+
+ void process(const ProcessArgs& args) override {
+ if (count >= currentBufferSize) {
+ count = 0;
+ }
+
+ // Fill inputs
+ for (int i = 0; i < numInputs; i++) {
+ if (inputs[i].isConnected()) {
+ inputBuffers[i][count] = inputs[i].getVoltage() / 5.f;
+ }
+ else {
+ inputBuffers[i][count] = 0.f;
+ }
+ }
+
+ // Set output
+ for (int i = 0; i < numOutputs; i++) {
+ outputs[i].setVoltage(outputBuffers[i][count] * 5.f);
+ }
+
+ // Step forward
+ count++;
+
+ // Perform when we've filled the buffer
+ if (count == currentBufferSize) {
+ // Update any parameters
+ for (int i = 0; i < numParams; i++) {
+ // Get VCV inputs
+ float knobVal = params[i].getValue(); // Already scaled to range that genlib will understand
+ float cvVal = inputs[i + numInputs].isConnected() ? inputs[i + numInputs].getVoltage() / 5.f : 0.f; // Normalize to -1..1
+
+ // Scale to range of parameter
+ t_param min = getparametermin(moduleState, i);
+ t_param max = getparametermax(moduleState, i);
+ t_param range = fabs(max - min);
+ t_param val = clamp(knobVal + cvVal * range, min, max); // Offset the knobVal by the CV input
+
+ setparameter(moduleState, i, val, NULL);
+ }
+
+ // Fill the buffers
+ perform(moduleState, inputBuffers, numInputs, outputBuffers, numOutputs, currentBufferSize);
+ }
+ }
+};
+
+
+/// Main module UI
+
+struct GEN_RACK_NAMEWidget : ModuleWidget {
+ int numParams;
+ int numInputs;
+ int numOutputs;
+
+ std::vector<std::string> inputLabels;
+ std::vector<std::string> outputLabels;
+ std::vector<std::string> paramLabels;
+
+ // Each column of ports has a certain number of "cells" that contain a port and label.
+ int ports_per_col = 6;
+
+ // Each column of params has a certain number of "cells" that contain a port, a label, and a knob.
+ int params_per_col = 4;
+
+ // Box off the actual section of "cells" with a margin
+ int l_margin = RACK_GRID_WIDTH;
+ int r_margin = RACK_GRID_WIDTH;
+ int bot_margin = 2 * RACK_GRID_WIDTH;
+ // The title and top margin together make up the top band of margin
+ int top_margin = RACK_GRID_WIDTH;
+ int h_title = 3 * RACK_GRID_WIDTH;
+ // The height of the actual part that will contain ports and knobs
+ int active_box_height = RACK_GRID_HEIGHT - bot_margin - h_title - top_margin;
+
+ // A column will take up 3HP
+ int w_col = 3 * RACK_GRID_WIDTH;
+
+ // Offset from the top of a cell to the knobs, ports, and labels
+ float port_center_offset = active_box_height / ports_per_col * 0.25f;
+ float label_port_offset = active_box_height / ports_per_col * 0.55f;
+ float param_knob_center_offset = active_box_height / params_per_col * 0.25f;
+ float param_port_center_offset = active_box_height / params_per_col * 0.65f;
+ float param_label_offset = active_box_height / params_per_col * 0.85f;
+
+ int module_hp = 12;
+
+ genrack::Panel *panel;
+ bool dirty = false;
+
+
+ GEN_RACK_NAMEWidget(GEN_RACK_NAME* module) {
+ setModule(module);
+ box.size = Vec(RACK_GRID_WIDTH * module_hp, RACK_GRID_HEIGHT);
+
+ // Default background and title for module browser - will be drawn over when step() is called
+ panel = new genrack::Panel(40, 40, 40);
+ addChild(panel);
+ panel->box.size = box.size;
+ genrack::Title *title = new genrack::Title(box.size.x / 2, top_margin, box.size.x, GEN_RACK_DISPLAY_NAME);
+ addChild(title);
+
+ if (module) {
+ // Make these publically accessible to the widget
+ numParams = module->numParams;
+ numInputs = module->numInputs;
+ numOutputs = module->numOutputs;
+
+ for (int i = 0; i < numInputs; i++) {
+ std::string inputLabel = std::string("in ") + std::to_string(i + 1);
+ inputLabels.push_back(inputLabel);
+ }
+
+ for (int i = 0; i < numOutputs; i++) {
+ std::string outputLabel = std::string("out ") + std::to_string(i + 1);
+ outputLabels.push_back(outputLabel);
+ }
+
+ for (int i = 0; i < numParams; i++) {
+ std::string paramLabel = std::string(getparametername(module->moduleState, i));
+ paramLabel.resize(10);
+ paramLabels.push_back(paramLabel);
+ }
+
+ // Figure out the width of the module
+ module_hp = 2 + 3 * (genrack::util::int_div_round_up(numInputs, ports_per_col)
+ + genrack::util::int_div_round_up(numOutputs, ports_per_col)
+ + genrack::util::int_div_round_up(numParams, params_per_col));
+
+ box.size = Vec(RACK_GRID_WIDTH * module_hp, RACK_GRID_HEIGHT);
+
+ // Draw on the next step
+ dirty = true;
+ step();
+ }
+ }
+
+
+ // Runs with every UI frame update
+ void step() override {
+
+ // The widget will be dirtied after the module is registered in the constructor
+ if (dirty) {
+ // Background panel
+ panel = new genrack::Panel(40, 40, 40);
+ addChild(panel);
+ panel->box.size = box.size;
+
+ // Title text
+ genrack::Title *title = new genrack::Title(box.size.x / 2, top_margin, box.size.x, GEN_RACK_DISPLAY_NAME);
+ addChild(title);
+
+ // Screws
+ addChild(createWidget<ScrewSilver>(Vec(RACK_GRID_WIDTH, 0)));
+ addChild(createWidget<ScrewSilver>(Vec(box.size.x - 30, 0)));
+ addChild(createWidget<ScrewSilver>(Vec(RACK_GRID_WIDTH, 365)));
+ addChild(createWidget<ScrewSilver>(Vec(box.size.x - 30, 365)));
+
+ // PORTS, PARAMS, LABELS
+ for (int i = 0; i < numInputs; i++) {
+ float left_x = l_margin
+ + int(i / ports_per_col) * w_col;
+ float center_x = left_x + w_col / 2;
+
+ float top_y = top_margin + h_title + (i % ports_per_col) * (active_box_height / ports_per_col);
+ float port_center_y = top_y + port_center_offset;
+ float label_center_y = top_y + label_port_offset;
+
+ addInput(createInputCentered<PJ301MPort>(Vec(center_x, port_center_y), module, i));
+
+ genrack::TextLabel *label = new genrack::TextLabel(center_x, label_center_y, left_x, inputLabels[i].c_str(), nvgRGB(230, 230, 230), 10);
+ addChild(label);
+ }
+
+ for (int i = 0; i < numParams; i++) {
+ float left_x = l_margin
+ + genrack::util::int_div_round_up(numInputs, ports_per_col) * w_col
+ + int(i / params_per_col) * w_col;
+ float center_x = left_x + w_col / 2;
+
+ float top_y = top_margin + h_title + (i % params_per_col) * (active_box_height / params_per_col);
+
+ float knob_center_y = top_y + param_knob_center_offset;
+ float port_center_y = top_y + param_port_center_offset;
+ float label_center_y = top_y + param_label_offset;
+
+ addParam(createParamCentered<RoundSmallBlackKnob>(Vec(center_x, knob_center_y), module, i));
+ addInput(createInputCentered<PJ301MPort>(Vec(center_x, port_center_y), module, i + numInputs));
+
+ genrack::TextLabel *label = new genrack::TextLabel(center_x, label_center_y, left_x, paramLabels[i].c_str(), nvgRGB(230, 230, 230), 10);
+ addChild(label);
+ }
+
+ for (int i = 0; i < numOutputs; i++) {
+ float left_x = l_margin
+ + genrack::util::int_div_round_up(numInputs, ports_per_col) * w_col
+ + genrack::util::int_div_round_up(numParams, params_per_col) * w_col
+ + int(i / ports_per_col) * w_col;
+
+ float center_x = left_x + w_col / 2;
+
+ float top_y = top_margin + h_title + (i % ports_per_col) * (active_box_height / ports_per_col);
+ float port_center_y = top_y + port_center_offset;
+ float label_center_y = top_y + label_port_offset;
+
+ addOutput(createOutputCentered<PJ301MPort>(Vec(center_x, port_center_y), module, i));
+
+ genrack::TextLabel *label = new genrack::TextLabel(center_x, label_center_y, left_x, outputLabels[i].c_str(), nvgRGB(230, 230, 230), 10);
+ addChild(label);
+ }
+
+ dirty = false;
+ }
+
+ ModuleWidget::step();
+ }
+};
+
+
+/// Register the model
+Model* modelGEN_RACK_NAME = createModel<GEN_RACK_NAME, GEN_RACK_NAMEWidget>(GEN_RACK_DISPLAY_NAME);