diff --git a/docs/tc.preset.maxref.xml b/docs/tc.preset.maxref.xml
index 6917e0e..f88c5f1 100644
--- a/docs/tc.preset.maxref.xml
+++ b/docs/tc.preset.maxref.xml
@@ -72,6 +72,13 @@
With no argument, it resets colors for the select preset to default values.
+
+ Move a preset to another slot
+ The word move followed by two integers move the stored preset located in the slot designaded by the first integer to the slot designated by the second integer.
+ This is the message equivalent of dragging a preset with the mouse.
+ If a preset gets moved to a slot with another existing preset, that preset and the subsequent ones will be offset by 1 slot.
+
+
Link to named pattrstorage object
The word 'pattrstorage' followed by the name of an existing pattrstorage links the jsui to that pattrstorage.
diff --git a/help/max8.tc.preset.maxhelp b/help/max8.tc.preset.maxhelp
index 01a6e41..0b73c2c 100644
--- a/help/max8.tc.preset.maxhelp
+++ b/help/max8.tc.preset.maxhelp
@@ -1,5589 +1,4851 @@
{
- "patcher" : {
- "fileversion" : 1,
- "appversion" : {
- "major" : 8,
- "minor" : 6,
- "revision" : 5,
- "architecture" : "x64",
- "modernui" : 1
- }
-,
- "classnamespace" : "box",
- "rect" : [ 100.0, 100.0, 899.0, 646.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" : "",
- "showrootpatcherontab" : 0,
- "showontab" : 0,
- "assistshowspatchername" : 0,
- "boxes" : [ {
- "box" : {
- "id" : "obj-19",
- "maxclass" : "newobj",
- "numinlets" : 0,
- "numoutlets" : 0,
- "patcher" : {
- "fileversion" : 1,
- "appversion" : {
- "major" : 8,
- "minor" : 6,
- "revision" : 5,
- "architecture" : "x64",
- "modernui" : 1
- }
-,
- "classnamespace" : "box",
- "rect" : [ 0.0, 26.0, 899.0, 620.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" : "",
- "showontab" : 1,
- "assistshowspatchername" : 0,
- "boxes" : [ ],
- "lines" : [ ]
- }
-,
- "patching_rect" : [ 756.0, 25.7999267578125, 50.0, 22.0 ],
- "saved_object_attributes" : {
- "description" : "",
- "digest" : "",
- "globalpatchername" : "",
- "tags" : ""
- }
-,
- "text" : "p ?",
- "varname" : "q_tab"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-14",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 431.0, 262.0, 138.0, 22.0 ],
- "saved_object_attributes" : {
- "filename" : "helpstarter.js",
- "parameter_enable" : 0
- }
-,
- "text" : "js helpstarter.js tc.preset"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-5",
- "maxclass" : "newobj",
- "numinlets" : 0,
- "numoutlets" : 0,
- "patcher" : {
- "fileversion" : 1,
- "appversion" : {
- "major" : 8,
- "minor" : 6,
- "revision" : 5,
- "architecture" : "x64",
- "modernui" : 1
- }
-,
- "classnamespace" : "box",
- "rect" : [ 0.0, 26.0, 899.0, 620.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" : "",
- "showontab" : 1,
- "assistshowspatchername" : 0,
- "boxes" : [ {
- "box" : {
- "id" : "obj-38",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 3,
- "outlettype" : [ "", "", "" ],
- "patching_rect" : [ 636.0, 16.0, 40.0, 22.0 ],
- "restore" : [ -0.714285714285714, -0.714285714285714, -0.6, -0.542857142857143, -0.457142857142857, -0.342857142857143, -0.171428571428571, -0.028571428571429, 0.028571428571428, 0.142857142857143, 0.228571428571429, 0.371428571428571, 0.485714285714286, 0.571428571428571, 0.714285714285714, 0.8 ],
- "saved_object_attributes" : {
- "parameter_enable" : 0,
- "parameter_mappable" : 0
- }
-,
- "text" : "pattr",
- "varname" : "u099005226"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-39",
- "maxclass" : "multislider",
- "numinlets" : 1,
- "numoutlets" : 2,
- "outlettype" : [ "", "" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 647.0, 43.0, 136.0, 78.0 ],
- "size" : 16,
- "varname" : "multislider"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-30",
- "maxclass" : "comment",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 680.0, 17.0, 118.0, 20.0 ],
- "text" : "Some data to store"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-32",
- "maxclass" : "comment",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 472.0, 377.0, 365.0, 20.0 ],
- "text" : "Recalls the nth (0-based) filled preset, regardless of its slot number"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-26",
- "maxclass" : "message",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 389.0, 376.0, 79.0, 22.0 ],
- "text" : "recall_filled 4"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-23",
- "maxclass" : "message",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 464.0, 249.0, 42.0, 22.0 ],
- "text" : "lockall"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-18",
- "maxclass" : "message",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 618.0, 249.0, 60.0, 22.0 ],
- "text" : "renumber"
- }
-
- }
-, {
- "box" : {
- "fontface" : 1,
- "id" : "obj-28",
- "maxclass" : "comment",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 389.0, 350.0, 168.0, 20.0 ],
- "text" : "tc.preset specific messages"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-15",
- "linecount" : 7,
- "maxclass" : "comment",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 405.0, 146.0, 308.0, 100.0 ],
- "text" : "Lots of pattrstorage methods modify presets but don't trigger any output from the pattrstorage object. If you need timing accuracy, send these messages to the pattrstorage first, then send a 'resync' to tc.preset. Otherwise, you can send them directly to tc.preset, which will act as a passthrough and trigger its resync method automatically."
- }
-
- }
-, {
- "box" : {
- "id" : "obj-25",
- "maxclass" : "message",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 685.0, 249.0, 59.0, 22.0 ],
- "text" : "remove 3"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-19",
- "maxclass" : "message",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 564.0, 249.0, 48.0, 22.0 ],
- "text" : "insert 3"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-13",
- "maxclass" : "message",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 750.0, 249.0, 35.0, 22.0 ],
- "text" : "clear"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-54",
- "linecount" : 3,
- "maxclass" : "comment",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 10.0, 120.0, 181.0, 47.0 ],
- "text" : "\"recallmulti\" and \"slotname\" should be sent to the pattrstorage first then to the jsui"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-52",
- "linecount" : 3,
- "maxclass" : "comment",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 199.0, 120.0, 163.0, 47.0 ],
- "text" : "Recall and delete messages should be sent to the pattrstorage only"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-50",
- "maxclass" : "message",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 253.0, 172.0, 84.0, 22.0 ],
- "text" : "recall 1 3 0.75"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-48",
- "maxclass" : "message",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 199.0, 172.0, 47.0, 22.0 ],
- "text" : "recall 3"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-46",
- "maxclass" : "message",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 42.0, 201.0, 94.0, 22.0 ],
- "text" : "slotname 3 third"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-44",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 2,
- "outlettype" : [ "", "" ],
- "patching_rect" : [ 10.0, 233.0, 38.0, 22.0 ],
- "text" : "t l l"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-43",
- "maxclass" : "message",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 10.0, 172.0, 123.0, 22.0 ],
- "text" : "recallmulti 1.6 2.1 3.3"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-37",
- "maxclass" : "comment",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 472.0, 481.0, 225.0, 20.0 ],
- "text" : "Sets the lock state of the selected preset"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-35",
- "maxclass" : "toggle",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "int" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 405.0, 450.0, 24.0, 24.0 ]
- }
-
- }
-, {
- "box" : {
- "id" : "obj-33",
- "maxclass" : "message",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 405.0, 480.0, 63.0, 22.0 ],
- "text" : "setlock $1"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-31",
- "linecount" : 2,
- "maxclass" : "comment",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 472.0, 411.0, 285.0, 33.0 ],
- "text" : "Select a preset. Doesn't recall it, but updates the umenu, textedit and lock toggle underneath the jsui."
- }
-
- }
-, {
- "box" : {
- "id" : "obj-29",
- "maxclass" : "message",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 418.0, 417.0, 50.0, 22.0 ],
- "text" : "select 3"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-22",
- "maxclass" : "message",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 254.0, 202.0, 51.0, 22.0 ],
- "text" : "delete 2"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-20",
- "maxclass" : "message",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 408.0, 249.0, 50.0, 22.0 ],
- "text" : "lock 3 1"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-56",
- "maxclass" : "toggle",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "int" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 242.5, 506.0, 24.0, 24.0 ]
- }
-
- }
-, {
- "box" : {
- "id" : "obj-27",
- "keymode" : 1,
- "lines" : 1,
- "maxclass" : "textedit",
- "nosymquotes" : 1,
- "numinlets" : 1,
- "numoutlets" : 4,
- "outlettype" : [ "", "int", "", "" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 129.0, 506.0, 102.0, 24.0 ],
- "text" : "up"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-17",
- "items" : [ 1, "up", ",", 2, "down", ",", 3, "sine", ",", 4, "random", ",", 7, "W" ],
- "maxclass" : "umenu",
- "numinlets" : 1,
- "numoutlets" : 3,
- "outlettype" : [ "int", "", "" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 10.0, 507.0, 115.0, 22.0 ]
- }
-
- }
-, {
- "box" : {
- "id" : "obj-16",
- "maxclass" : "comment",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 472.0, 507.0, 198.0, 20.0 ],
- "text" : "Set the name of the selected preset"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-14",
- "maxclass" : "message",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 345.0, 506.0, 123.0, 22.0 ],
- "text" : "setslotname myname"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-11",
- "linecount" : 2,
- "maxclass" : "comment",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 472.0, 530.0, 171.0, 33.0 ],
- "text" : "A fail-safe message to resync the jsui to the pattrstorage"
- }
-
- }
-, {
- "box" : {
- "fontsize" : 13.0,
- "id" : "obj-8",
- "linecount" : 2,
- "maxclass" : "comment",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 10.0, 65.0, 489.0, 36.0 ],
- "text" : "The pattrstorage object doesn't provide an output for all of its available methods.\nTo keep tc.preset in sync, some messages need to be addressed in a specific way."
- }
-
- }
-, {
- "box" : {
- "id" : "obj-6",
- "maxclass" : "message",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 424.0, 535.0, 44.0, 22.0 ],
- "text" : "resync"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-3",
- "maxclass" : "message",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 513.0, 249.0, 45.0, 22.0 ],
- "text" : "store 3"
- }
-
- }
-, {
- "box" : {
- "border" : 0,
- "filename" : "helpname.js",
- "id" : "obj-4",
- "ignoreclick" : 1,
- "jsarguments" : [ "tc.preset" ],
- "maxclass" : "jsui",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 10.0, 10.0, 188.288009643554688, 57.599853515625 ]
- }
-
- }
-, {
- "box" : {
- "border" : 0,
- "embedstate" : [ [ "use_uid", 0 ], [ "color_mode", 0 ], [ "bubblesize", 14 ], [ "nbslot_edit", 1 ], [ "color_5", 0.283, 0.606, 0.559, 1 ], [ "min_rows", 10 ], [ "interp_slot_color", 1, 1, 1, 0.8 ], [ "margin", 4 ], [ "fontsize", 14 ], [ "recall_passthrough", 1 ], [ "color_1", 0.743, 0.41, 0.501, 1 ], [ "slot_round", 0 ], [ "color_6", 0.316, 0.616, 0.377, 1 ], [ "fontname", "Arial" ], [ "text_bg_color", 1, 1, 1, 0.5 ], [ "pattrstorage", "test" ], [ "ui_rename", 0 ], [ "menu_mode", 0 ], [ "color_2", 0.679, 0.405, 0.669, 1 ], [ "bgcolor", 0.2, 0.2, 0.2, 1 ], [ "ignoreslotzero", 1 ], [ "empty_slot_color", 0.349, 0.349, 0.349, 1 ], [ "send_name", "none" ], [ "text_color", 0.129, 0.129, 0.129, 1 ], [ "poll_edited", 0 ], [ "color_3", 0.527, 0.459, 0.756, 1 ], [ "layout", 0 ], [ "display_interp", 1 ], [ "spacing", 4 ], [ "active_slot_color", 0.808, 0.898, 0.91, 1 ], [ "autowriteagain", 0 ], [ "scrollable", 0 ], [ "unique_names", 0 ], [ "select_mode", 0 ], [ "edited_color", 1, 0.49, 0.263, 1 ], [ "color_4", 0.367, 0.542, 0.712, 1 ], [ "stored_slot_color", 0.502, 0.502, 0.502, 1 ] ],
- "filename" : "tc.preset.js",
- "id" : "obj-10",
- "maxclass" : "jsui",
- "numinlets" : 1,
- "numoutlets" : 5,
- "outlettype" : [ "", "", "", "", "" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 10.0, 378.0, 257.0, 112.0 ]
- }
-
- }
-, {
- "box" : {
- "id" : "obj-1",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 29.0, 303.0, 176.0, 22.0 ],
- "saved_object_attributes" : {
- "client_rect" : [ 100, 172, 596, 755 ],
- "parameter_enable" : 0,
- "parameter_mappable" : 0,
- "storage_rect" : [ 365, 44, 816, 172 ]
- }
-,
- "text" : "pattrstorage test @savemode 0",
- "varname" : "test"
- }
-
- }
- ],
- "lines" : [ {
- "patchline" : {
- "destination" : [ "obj-10", 0 ],
- "source" : [ "obj-1", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-17", 0 ],
- "source" : [ "obj-10", 1 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-27", 0 ],
- "source" : [ "obj-10", 2 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-56", 0 ],
- "source" : [ "obj-10", 3 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-10", 0 ],
- "source" : [ "obj-13", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-10", 0 ],
- "source" : [ "obj-14", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-10", 0 ],
- "source" : [ "obj-18", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-10", 0 ],
- "source" : [ "obj-19", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-10", 0 ],
- "source" : [ "obj-20", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-1", 0 ],
- "source" : [ "obj-22", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-10", 0 ],
- "source" : [ "obj-23", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-10", 0 ],
- "source" : [ "obj-25", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-10", 0 ],
- "source" : [ "obj-26", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-10", 0 ],
- "source" : [ "obj-29", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-10", 0 ],
- "source" : [ "obj-3", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-10", 0 ],
- "source" : [ "obj-33", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-33", 0 ],
- "source" : [ "obj-35", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-39", 0 ],
- "source" : [ "obj-38", 1 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-44", 0 ],
- "source" : [ "obj-43", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-1", 0 ],
- "source" : [ "obj-44", 1 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-10", 0 ],
- "source" : [ "obj-44", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-44", 0 ],
- "source" : [ "obj-46", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-1", 0 ],
- "source" : [ "obj-48", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-1", 0 ],
- "source" : [ "obj-50", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-10", 0 ],
- "source" : [ "obj-6", 0 ]
- }
-
- }
- ]
- }
-,
- "patching_rect" : [ 311.0, 27.7999267578125, 73.0, 22.0 ],
- "saved_object_attributes" : {
- "description" : "",
- "digest" : "",
- "globalpatchername" : "",
- "tags" : ""
- }
-,
- "text" : "p messages",
- "varname" : "messages"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-26",
- "maxclass" : "newobj",
- "numinlets" : 0,
- "numoutlets" : 0,
- "patcher" : {
- "fileversion" : 1,
- "appversion" : {
- "major" : 8,
- "minor" : 6,
- "revision" : 5,
- "architecture" : "x64",
- "modernui" : 1
- }
-,
- "classnamespace" : "box",
- "rect" : [ 0.0, 26.0, 899.0, 620.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" : "",
- "showontab" : 1,
- "assistshowspatchername" : 0,
- "boxes" : [ {
- "box" : {
- "id" : "obj-11",
- "linecount" : 8,
- "maxclass" : "comment",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 567.0, 75.0, 309.0, 114.0 ],
- "text" : "By default, clicking a stored preset in tc.preset recalls it immediately, the recall message being sent remotely to pattrstorage.\nWhen recall_passthrough is disabled, the recall mesage is first sent out of tc.preset leftmost outlet and it's up to the user to pass it to pattrstorage, potentially with some custom logic, like for triggering interpolations (see the red patch cord)"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-2",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patcher" : {
- "fileversion" : 1,
- "appversion" : {
- "major" : 8,
- "minor" : 6,
- "revision" : 5,
- "architecture" : "x64",
- "modernui" : 1
- }
-,
- "classnamespace" : "box",
- "rect" : [ 59.0, 107.0, 640.0, 480.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" : 2,
- "numoutlets" : 2,
- "outlettype" : [ "", "" ],
- "patching_rect" : [ 52.5, 109.0, 68.0, 22.0 ],
- "text" : "route recall"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-3",
- "maxclass" : "message",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 159.166666666666686, 276.0, 45.0, 22.0 ],
- "text" : "store 0"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-5",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 3,
- "outlettype" : [ "bang", "int", "bang" ],
- "patching_rect" : [ 52.5, 170.0, 125.666666666666686, 22.0 ],
- "text" : "t b i b"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-4",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "int" ],
- "patching_rect" : [ 52.5, 239.0, 29.5, 22.0 ],
- "text" : "i"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-1",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 218.0, 170.0, 90.0, 22.0 ],
- "text" : "loadmess 1000"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-31",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 2,
- "outlettype" : [ "bang", "float" ],
- "patching_rect" : [ 52.5, 334.0, 29.5, 22.0 ],
- "text" : "t b f"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-29",
- "maxclass" : "newobj",
- "numinlets" : 3,
- "numoutlets" : 2,
- "outlettype" : [ "", "bang" ],
- "patching_rect" : [ 52.5, 307.0, 41.0, 22.0 ],
- "text" : "line 0."
- }
-
- }
-, {
- "box" : {
- "id" : "obj-25",
- "maxclass" : "message",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 52.5, 276.0, 52.0, 22.0 ],
- "text" : "0., 1. $1"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-14",
- "maxclass" : "newobj",
- "numinlets" : 4,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 52.5, 383.0, 99.0, 22.0 ],
- "text" : "pack recall 0 0 0."
- }
-
- }
-, {
- "box" : {
- "comment" : "",
- "id" : "obj-32",
- "index" : 1,
- "maxclass" : "inlet",
- "numinlets" : 0,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 52.5, 40.0, 30.0, 30.0 ]
- }
-
- }
-, {
- "box" : {
- "comment" : "",
- "id" : "obj-33",
- "index" : 1,
- "maxclass" : "outlet",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 52.5, 444.0, 30.0, 30.0 ]
- }
-
- }
- ],
- "lines" : [ {
- "patchline" : {
- "destination" : [ "obj-4", 1 ],
- "source" : [ "obj-1", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-33", 0 ],
- "source" : [ "obj-14", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-5", 0 ],
- "source" : [ "obj-2", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-29", 0 ],
- "source" : [ "obj-25", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-31", 0 ],
- "source" : [ "obj-29", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-33", 0 ],
- "source" : [ "obj-3", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-14", 3 ],
- "source" : [ "obj-31", 1 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-14", 0 ],
- "source" : [ "obj-31", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-2", 0 ],
- "source" : [ "obj-32", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-25", 0 ],
- "source" : [ "obj-4", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-14", 2 ],
- "source" : [ "obj-5", 1 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-3", 0 ],
- "source" : [ "obj-5", 2 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-4", 0 ],
- "source" : [ "obj-5", 0 ]
- }
-
- }
- ]
- }
-,
- "patching_rect" : [ 10.0, 506.0, 52.0, 22.0 ],
- "saved_object_attributes" : {
- "description" : "",
- "digest" : "",
- "globalpatchername" : "",
- "tags" : ""
- }
-,
- "text" : "p interp"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-38",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 3,
- "outlettype" : [ "", "", "" ],
- "patching_rect" : [ 293.0, 378.0, 40.0, 22.0 ],
- "restore" : [ 0.873015873015873, 0.714285714285714, 0.587301587301587, 0.46031746031746, 0.301587301587302, 0.174603174603175, 0.015873015873016, -0.111111111111111, -0.238095238095238, -0.333333333333333, -0.428571428571429, -0.523809523809524, -0.587301587301587, -0.682539682539683, -0.777777777777778, -0.873015873015873 ],
- "saved_object_attributes" : {
- "parameter_enable" : 0,
- "parameter_mappable" : 0
- }
-,
- "text" : "pattr",
- "varname" : "u099005226"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-34",
- "maxclass" : "multislider",
- "numinlets" : 1,
- "numoutlets" : 2,
- "outlettype" : [ "", "" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 304.0, 405.0, 136.0, 78.0 ],
- "size" : 16,
- "varname" : "multislider"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-30",
- "maxclass" : "comment",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 337.0, 379.0, 118.0, 20.0 ],
- "text" : "Some data to store"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-24",
- "linecount" : 16,
- "maxclass" : "comment",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 567.0, 262.0, 303.0, 221.0 ],
- "text" : "The value of poll_edited defines the period at which tc.preset polls pattrstorage with the `getedited' message to know if the data in the currently active preset has been edited. If so, a colored dot appears on top of the preset. This can be used as a reminder to re-save the preset after some changes. At 0., the feature is disabled.\n\nRecall a preset by double-clicking it, and draw a shape in the multislider below to see this feature in action.\n\nThis 'edited' state is very sensitive and doesn't necessarily means that the value of a parameter has changed. If a pattrized object receives the same value it is currently at, pattrstorage will report the current preset as 'edited' even though no value has changed."
- }
-
- }
-, {
- "box" : {
- "id" : "obj-20",
- "linecount" : 6,
- "maxclass" : "comment",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 441.0, 527.0, 261.0, 87.0 ],
- "text" : "Make the preset menu to be populated by the preset number and/or their name.\nIn modes 0 and 2, use the leftmost outlet of umenu prepended by the recall_filled message to recall the correct preset. In mode 1, you can use the umenu's middle outlet directly."
- }
-
- }
-, {
- "box" : {
- "id" : "obj-18",
- "maxclass" : "message",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 69.5, 592.0, 85.0, 22.0 ],
- "text" : "recall_filled $1"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-14",
- "linecount" : 4,
- "maxclass" : "comment",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 293.0, 145.0, 242.0, 60.0 ],
- "text" : "Forces preset names to be unique when by appending \"bis\" to them. Gets applied only to presets subsequently renamed through tc.preset."
- }
-
- }
-, {
- "box" : {
- "id" : "obj-12",
- "linecount" : 6,
- "maxclass" : "comment",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 293.0, 246.0, 240.0, 87.0 ],
- "text" : "Use the attached textedit, if any, to edit slot names directly in the JSUI frame when clicking a slot while holding the control key. When disabled, the textedit remains untouched but gets focused when clicking a slot while holding the control key."
- }
-
- }
-, {
- "box" : {
- "id" : "obj-56",
- "maxclass" : "toggle",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "int" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 248.0, 505.0, 24.0, 24.0 ]
- }
-
- }
-, {
- "box" : {
- "fontface" : 0,
- "fontname" : "Arial",
- "fontsize" : 12.0,
- "id" : "obj-27",
- "keymode" : 1,
- "lines" : 1,
- "maxclass" : "textedit",
- "nosymquotes" : 1,
- "numinlets" : 1,
- "numoutlets" : 4,
- "outlettype" : [ "", "int", "", "" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 129.0, 505.0, 102.0, 24.0 ],
- "text" : "yes !"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-17",
- "items" : [ 1, "up", ",", 2, "down", ",", 3, "sine", ",", 4, "random", ",", 7, "W" ],
- "maxclass" : "umenu",
- "numinlets" : 1,
- "numoutlets" : 3,
- "outlettype" : [ "int", "", "" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 69.5, 563.0, 115.0, 22.0 ]
- }
-
- }
-, {
- "box" : {
- "border" : 0,
- "embedstate" : [ [ "use_uid", 0 ], [ "color_mode", 0 ], [ "bubblesize", 14 ], [ "nbslot_edit", 1 ], [ "color_5", 0.283, 0.606, 0.559, 1 ], [ "min_rows", 10 ], [ "interp_slot_color", 1, 1, 1, 0.8 ], [ "margin", 4 ], [ "fontsize", 14 ], [ "recall_passthrough", 0 ], [ "color_1", 0.743, 0.41, 0.501, 1 ], [ "slot_round", 0 ], [ "color_6", 0.316, 0.616, 0.377, 1 ], [ "fontname", "Arial" ], [ "text_bg_color", 1, 1, 1, 0.5 ], [ "pattrstorage", "test" ], [ "ui_rename", 1 ], [ "menu_mode", 0 ], [ "color_2", 0.679, 0.405, 0.669, 1 ], [ "bgcolor", 0.2, 0.2, 0.2, 1 ], [ "ignoreslotzero", 1 ], [ "empty_slot_color", 0.349, 0.349, 0.349, 1 ], [ "send_name", "none" ], [ "text_color", 0.129, 0.129, 0.129, 1 ], [ "poll_edited", 1 ], [ "color_3", 0.527, 0.459, 0.756, 1 ], [ "layout", 0 ], [ "display_interp", 1 ], [ "spacing", 4 ], [ "active_slot_color", 0.808, 0.898, 0.91, 1 ], [ "autowriteagain", 0 ], [ "scrollable", 0 ], [ "unique_names", 0 ], [ "select_mode", 1 ], [ "edited_color", 1, 0.49, 0.263, 1 ], [ "color_4", 0.367, 0.542, 0.712, 1 ], [ "stored_slot_color", 0.502, 0.502, 0.502, 1 ] ],
- "filename" : "tc.preset.js",
- "id" : "obj-10",
- "maxclass" : "jsui",
- "numinlets" : 1,
- "numoutlets" : 5,
- "outlettype" : [ "", "", "", "", "" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 10.0, 378.0, 257.0, 112.0 ]
- }
-
- }
-, {
- "box" : {
- "id" : "obj-1",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 10.0, 309.0, 176.0, 22.0 ],
- "saved_object_attributes" : {
- "client_rect" : [ 100, 172, 596, 755 ],
- "parameter_enable" : 0,
- "parameter_mappable" : 0,
- "storage_rect" : [ 365, 44, 816, 172 ]
- }
-,
- "text" : "pattrstorage test @savemode 0",
- "varname" : "test"
- }
-
- }
-, {
- "box" : {
- "border" : 0,
- "filename" : "helpname.js",
- "id" : "obj-4",
- "ignoreclick" : 1,
- "jsarguments" : [ "tc.preset" ],
- "maxclass" : "jsui",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 10.0, 10.0, 188.288009643554688, 57.599853515625 ]
- }
-
- }
-, {
- "box" : {
- "id" : "obj-115",
- "linecount" : 5,
- "maxclass" : "comment",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 10.0, 101.0, 247.0, 74.0 ],
- "text" : "When select mode is enabled, a single click selects a stored preset without recalling it. A double click recalls the preset. It allows to drag it, set its name and lock state while keeping the last recalled preset active."
- }
-
- }
-, {
- "box" : {
- "id" : "obj-50",
- "linecount" : 4,
- "maxclass" : "comment",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 293.0, 46.0, 249.0, 60.0 ],
- "text" : "Makes displayed previous active slot and interpolation status to ignore slot 0. Can be convenient when using slot 0 as a temporary step for interpolation. It is enabled by default."
- }
-
- }
-, {
- "box" : {
- "id" : "obj-90",
- "linecount" : 4,
- "maxclass" : "comment",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 10.0, 218.0, 241.0, 60.0 ],
- "text" : "When enabled, sends writeagain to pattrstrage when a preset has been stored/renamed/deleted/moved/(un)locked, keeping the json file always up to date."
- }
-
- }
-, {
- "box" : {
- "attr" : "autowriteagain",
- "id" : "obj-40",
- "maxclass" : "attrui",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 10.0, 194.0, 123.0, 22.0 ]
- }
-
- }
-, {
- "box" : {
- "attr" : "ignoreslotzero",
- "id" : "obj-46",
- "maxclass" : "attrui",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 293.0, 22.0, 124.0, 22.0 ]
- }
-
- }
-, {
- "box" : {
- "attr" : "select_mode",
- "id" : "obj-127",
- "maxclass" : "attrui",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 10.0, 77.0, 123.0, 22.0 ]
- }
-
- }
-, {
- "box" : {
- "attr" : "unique_names",
- "id" : "obj-6",
- "maxclass" : "attrui",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 293.0, 121.0, 124.0, 22.0 ],
- "text_width" : 101.0
- }
-
- }
-, {
- "box" : {
- "attr" : "ui_rename",
- "id" : "obj-8",
- "maxclass" : "attrui",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 293.0, 222.0, 101.0, 22.0 ],
- "text_width" : 78.0
- }
-
- }
-, {
- "box" : {
- "attr" : "menu_mode",
- "id" : "obj-15",
- "maxclass" : "attrui",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 197.0, 563.0, 242.0, 22.0 ],
- "text_width" : 87.0
- }
-
- }
-, {
- "box" : {
- "attr" : "edited_color",
- "id" : "obj-21",
- "maxclass" : "attrui",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 567.0, 237.0, 187.0, 22.0 ]
- }
-
- }
-, {
- "box" : {
- "attr" : "poll_edited",
- "id" : "obj-22",
- "maxclass" : "attrui",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 567.0, 213.0, 150.0, 22.0 ]
- }
-
- }
-, {
- "box" : {
- "attr" : "recall_passthrough",
- "id" : "obj-5",
- "maxclass" : "attrui",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 567.0, 49.0, 145.0, 22.0 ],
- "text_width" : 122.0
- }
-
- }
- ],
- "lines" : [ {
- "patchline" : {
- "destination" : [ "obj-10", 0 ],
- "source" : [ "obj-1", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-17", 0 ],
- "source" : [ "obj-10", 1 ]
- }
-
- }
-, {
- "patchline" : {
- "color" : [ 0.839172840118408, 0.0, 0.0, 1.0 ],
- "destination" : [ "obj-2", 0 ],
- "source" : [ "obj-10", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-27", 0 ],
- "source" : [ "obj-10", 2 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-56", 0 ],
- "source" : [ "obj-10", 3 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-10", 0 ],
- "hidden" : 1,
- "source" : [ "obj-127", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-10", 0 ],
- "hidden" : 1,
- "source" : [ "obj-15", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-18", 0 ],
- "source" : [ "obj-17", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-10", 0 ],
- "midpoints" : [ 79.0, 617.3515625, 3.55078125, 617.3515625, 3.55078125, 375.0, 19.5, 375.0 ],
- "source" : [ "obj-18", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "color" : [ 0.839172840118408, 0.0, 0.0, 1.0 ],
- "destination" : [ "obj-1", 0 ],
- "midpoints" : [ 19.5, 531.0, 7.359375, 531.0, 7.359375, 303.64453125, 19.5, 303.64453125 ],
- "source" : [ "obj-2", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-10", 0 ],
- "hidden" : 1,
- "source" : [ "obj-21", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-10", 0 ],
- "hidden" : 1,
- "source" : [ "obj-22", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-10", 0 ],
- "midpoints" : [ 138.5, 540.0, 3.4296875, 540.0, 3.4296875, 375.0, 19.5, 375.0 ],
- "source" : [ "obj-27", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-34", 0 ],
- "source" : [ "obj-38", 1 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-10", 0 ],
- "hidden" : 1,
- "source" : [ "obj-40", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-10", 0 ],
- "hidden" : 1,
- "source" : [ "obj-46", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-10", 0 ],
- "hidden" : 1,
- "source" : [ "obj-5", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-10", 0 ],
- "hidden" : 1,
- "source" : [ "obj-6", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-10", 0 ],
- "hidden" : 1,
- "source" : [ "obj-8", 0 ]
- }
-
- }
- ]
- }
-,
- "patching_rect" : [ 393.0, 26.7999267578125, 65.0, 22.0 ],
- "saved_object_attributes" : {
- "description" : "",
- "digest" : "",
- "globalpatchername" : "",
- "tags" : ""
- }
-,
- "text" : "p behavior",
- "varname" : "behavior"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-9",
- "maxclass" : "newobj",
- "numinlets" : 0,
- "numoutlets" : 0,
- "patcher" : {
- "fileversion" : 1,
- "appversion" : {
- "major" : 8,
- "minor" : 6,
- "revision" : 5,
- "architecture" : "x64",
- "modernui" : 1
- }
-,
- "classnamespace" : "box",
- "rect" : [ 0.0, 26.0, 899.0, 620.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" : "",
- "showontab" : 1,
- "assistshowspatchername" : 0,
- "boxes" : [ {
- "box" : {
- "bgcolor" : [ 0.56078431372549, 0.796078431372549, 0.474509803921569, 1.0 ],
- "bgmode" : 2,
- "border" : 0,
- "clickthrough" : 0,
- "embed" : 1,
- "enablehscroll" : 0,
- "enablevscroll" : 0,
- "id" : "obj-23",
- "lockeddragscroll" : 0,
- "lockedsize" : 0,
- "maxclass" : "bpatcher",
- "numinlets" : 0,
- "numoutlets" : 0,
- "offset" : [ 0.0, 0.0 ],
- "patcher" : {
- "fileversion" : 1,
- "appversion" : {
- "major" : 8,
- "minor" : 6,
- "revision" : 5,
- "architecture" : "x64",
- "modernui" : 1
- }
-,
- "classnamespace" : "box",
- "rect" : [ 59.0, 119.0, 1000.0, 755.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" : {
- "fontface" : 1,
- "fontsize" : 16.0,
- "id" : "obj-4",
- "maxclass" : "comment",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 159.0, 13.0, 107.0, 24.0 ],
- "text" : "tc.preset_list"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-27",
- "keymode" : 1,
- "lines" : 1,
- "maxclass" : "textedit",
- "nosymquotes" : 1,
- "numinlets" : 1,
- "numoutlets" : 4,
- "outlettype" : [ "", "int", "", "" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 156.5, 110.0, 100.0, 23.0 ]
- }
-
- }
-, {
- "box" : {
- "id" : "obj-8",
- "items" : "",
- "maxclass" : "umenu",
- "numinlets" : 1,
- "numoutlets" : 3,
- "outlettype" : [ "int", "", "" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 156.5, 74.0, 112.0, 22.0 ]
- }
-
- }
-, {
- "box" : {
- "border" : 0,
- "embedstate" : [ [ "use_uid", 0 ], [ "color_mode", 0 ], [ "bubblesize", 14 ], [ "nbslot_edit", 1 ], [ "color_5", 0.283, 0.606, 0.559, 1 ], [ "min_rows", 10 ], [ "interp_slot_color", 1, 1, 1, 0.8 ], [ "margin", 4 ], [ "fontsize", 14 ], [ "recall_passthrough", 1 ], [ "color_1", 0.743, 0.41, 0.501, 1 ], [ "slot_round", 0 ], [ "color_6", 0.316, 0.616, 0.377, 1 ], [ "fontname", "Arial" ], [ "text_bg_color", 1, 1, 1, 0.5 ], [ "pattrstorage", "mypat" ], [ "ui_rename", 1 ], [ "menu_mode", 0 ], [ "color_2", 0.679, 0.405, 0.669, 1 ], [ "bgcolor", 0.2, 0.2, 0.2, 1 ], [ "ignoreslotzero", 1 ], [ "empty_slot_color", 0.349, 0.349, 0.349, 1 ], [ "send_name", "none" ], [ "text_color", 0.129, 0.129, 0.129, 1 ], [ "poll_edited", 0 ], [ "color_3", 0.527, 0.459, 0.756, 1 ], [ "layout", 1 ], [ "display_interp", 1 ], [ "spacing", 4 ], [ "active_slot_color", 0.808, 0.898, 0.91, 1 ], [ "autowriteagain", 0 ], [ "scrollable", 1 ], [ "unique_names", 0 ], [ "select_mode", 0 ], [ "edited_color", 1, 0.49, 0.263, 1 ], [ "color_4", 0.367, 0.542, 0.712, 1 ], [ "stored_slot_color", 0.502, 0.502, 0.502, 1 ] ],
- "filename" : "tc.preset.js",
- "id" : "obj-10",
- "maxclass" : "jsui",
- "numinlets" : 1,
- "numoutlets" : 5,
- "outlettype" : [ "", "", "", "", "" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 16.0, 74.0, 130.0, 95.0 ]
- }
-
- }
-, {
- "box" : {
- "id" : "obj-1",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 16.0, 34.0, 109.0, 22.0 ],
- "saved_object_attributes" : {
- "client_rect" : [ 100, 172, 596, 755 ],
- "parameter_enable" : 0,
- "parameter_mappable" : 0,
- "storage_rect" : [ 365, 44, 816, 172 ]
- }
-,
- "text" : "pattrstorage mypat",
- "varname" : "mypat"
- }
-
- }
- ],
- "lines" : [ {
- "patchline" : {
- "destination" : [ "obj-10", 0 ],
- "source" : [ "obj-1", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-27", 0 ],
- "source" : [ "obj-10", 2 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-8", 0 ],
- "source" : [ "obj-10", 1 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-10", 0 ],
- "source" : [ "obj-27", 0 ]
- }
-
- }
- ]
- }
-,
- "patching_rect" : [ 75.0, 366.0, 287.0, 194.0 ],
- "varname" : "bpatcher[1]",
- "viewvisibility" : 1
- }
-
- }
-, {
- "box" : {
- "bgcolor" : [ 0.486274509803922, 0.741176470588235, 0.705882352941177, 1.0 ],
- "bgmode" : 2,
- "border" : 0,
- "clickthrough" : 0,
- "embed" : 1,
- "enablehscroll" : 0,
- "enablevscroll" : 0,
- "id" : "obj-22",
- "lockeddragscroll" : 0,
- "lockedsize" : 0,
- "maxclass" : "bpatcher",
- "numinlets" : 0,
- "numoutlets" : 0,
- "offset" : [ 0.0, 0.0 ],
- "patcher" : {
- "fileversion" : 1,
- "appversion" : {
- "major" : 8,
- "minor" : 6,
- "revision" : 5,
- "architecture" : "x64",
- "modernui" : 1
- }
-,
- "classnamespace" : "box",
- "rect" : [ 59.0, 119.0, 584.0, 605.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-1",
- "items" : [ "Classic", ",", "Cycle", ",", "Select", ",", "Custom" ],
- "maxclass" : "umenu",
- "numinlets" : 1,
- "numoutlets" : 3,
- "outlettype" : [ "int", "", "" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 171.0, 2.0, 100.0, 22.0 ]
- }
-
- }
-, {
- "box" : {
- "embedstate" : [ [ "use_uid", 0 ], [ "color_mode", 0 ], [ "bubblesize", 14 ], [ "nbslot_edit", 1 ], [ "color_5", 0.283, 0.606, 0.559, 1 ], [ "min_rows", 10 ], [ "interp_slot_color", 1, 1, 1, 0.8 ], [ "margin", 4 ], [ "fontsize", 14 ], [ "recall_passthrough", 1 ], [ "color_1", 0.743, 0.41, 0.501, 1 ], [ "slot_round", 0 ], [ "color_6", 0.316, 0.616, 0.377, 1 ], [ "fontname", "Arial" ], [ "text_bg_color", 1, 1, 1, 0.5 ], [ "pattrstorage", "mypat" ], [ "ui_rename", 0 ], [ "menu_mode", 0 ], [ "color_2", 0.679, 0.405, 0.669, 1 ], [ "bgcolor", 0.2, 0.2, 0.2, 1 ], [ "ignoreslotzero", 1 ], [ "empty_slot_color", 0.349, 0.349, 0.349, 1 ], [ "send_name", "none" ], [ "text_color", 0.129, 0.129, 0.129, 1 ], [ "poll_edited", 0 ], [ "color_3", 0.527, 0.459, 0.756, 1 ], [ "layout", 0 ], [ "display_interp", 1 ], [ "spacing", 4 ], [ "active_slot_color", 0.808, 0.898, 0.91, 1 ], [ "autowriteagain", 0 ], [ "scrollable", 0 ], [ "unique_names", 0 ], [ "select_mode", 0 ], [ "edited_color", 1, 0.49, 0.263, 1 ], [ "color_4", 0.367, 0.542, 0.712, 1 ], [ "stored_slot_color", 0.502, 0.502, 0.502, 1 ] ],
- "filename" : "tc.preset.js",
- "id" : "obj-2",
- "maxclass" : "jsui",
- "numinlets" : 1,
- "numoutlets" : 5,
- "outlettype" : [ "", "", "", "", "" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 20.0, 115.0, 130.0, 58.0 ]
- }
-
- }
-, {
- "box" : {
- "fontface" : 1,
- "fontsize" : 16.0,
- "id" : "obj-4",
- "maxclass" : "comment",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 20.0, 17.0, 123.0, 24.0 ],
- "text" : "tc.preset_color"
- }
-
- }
-, {
- "box" : {
- "button" : 1,
- "id" : "obj-17",
- "maxclass" : "tab",
- "numinlets" : 1,
- "numoutlets" : 3,
- "outlettype" : [ "int", "", "" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 171.0, 52.0, 139.0, 24.0 ],
- "tabs" : [ "1", "2", "3", "4", "5", "6" ],
- "varname" : "sel"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-12",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 171.0, 121.0, 98.0, 22.0 ],
- "text" : "prepend setcolor"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-3",
- "maxclass" : "swatch",
- "numinlets" : 3,
- "numoutlets" : 2,
- "outlettype" : [ "", "float" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 171.0, 80.0, 128.0, 32.0 ],
- "saturation" : 1.0,
- "varname" : "cust"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-7",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 3,
- "outlettype" : [ "", "", "" ],
- "patching_rect" : [ 171.0, 151.0, 126.0, 22.0 ],
- "restore" : [ 0 ],
- "saved_object_attributes" : {
- "parameter_enable" : 0,
- "parameter_mappable" : 0
- }
-,
- "text" : "pattr preset_metadata",
- "varname" : "preset_metadata"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-16",
- "keymode" : 1,
- "lines" : 1,
- "maxclass" : "textedit",
- "nosymquotes" : 1,
- "numinlets" : 1,
- "numoutlets" : 4,
- "outlettype" : [ "", "int", "", "" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 136.5, 189.0, 100.0, 23.0 ]
- }
-
- }
-, {
- "box" : {
- "id" : "obj-18",
- "items" : "",
- "maxclass" : "umenu",
- "numinlets" : 1,
- "numoutlets" : 3,
- "outlettype" : [ "int", "", "" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 18.5, 189.0, 112.0, 22.0 ]
- }
-
- }
-, {
- "box" : {
- "id" : "obj-20",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 20.0, 76.0, 109.0, 22.0 ],
- "saved_object_attributes" : {
- "client_rect" : [ 100, 172, 596, 755 ],
- "parameter_enable" : 0,
- "parameter_mappable" : 0,
- "storage_rect" : [ 365, 44, 816, 172 ]
- }
-,
- "text" : "pattrstorage mypat",
- "varname" : "mypat"
- }
-
- }
-, {
- "box" : {
- "attr" : "color_mode",
- "id" : "obj-5",
- "maxclass" : "attrui",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 171.0, 26.0, 128.0, 22.0 ]
- }
-
- }
- ],
- "lines" : [ {
- "patchline" : {
- "destination" : [ "obj-5", 0 ],
- "source" : [ "obj-1", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-2", 0 ],
- "source" : [ "obj-12", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-12", 0 ],
- "source" : [ "obj-17", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-16", 0 ],
- "source" : [ "obj-2", 2 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-18", 0 ],
- "source" : [ "obj-2", 1 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-2", 0 ],
- "source" : [ "obj-20", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-12", 0 ],
- "source" : [ "obj-3", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-2", 0 ],
- "source" : [ "obj-5", 0 ]
- }
-
- }
- ]
- }
-,
- "patching_rect" : [ 434.0, 28.0, 347.0, 219.0 ],
- "varname" : "patcher",
- "viewvisibility" : 1
- }
-
- }
-, {
- "box" : {
- "bgcolor" : [ 0.870588235294118, 0.537254901960784, 0.537254901960784, 1.0 ],
- "bgmode" : 2,
- "border" : 0,
- "clickthrough" : 0,
- "embed" : 1,
- "enablehscroll" : 0,
- "enablevscroll" : 0,
- "id" : "obj-21",
- "lockeddragscroll" : 0,
- "lockedsize" : 0,
- "maxclass" : "bpatcher",
- "numinlets" : 0,
- "numoutlets" : 0,
- "offset" : [ 0.0, 0.0 ],
- "patcher" : {
- "fileversion" : 1,
- "appversion" : {
- "major" : 8,
- "minor" : 6,
- "revision" : 5,
- "architecture" : "x64",
- "modernui" : 1
- }
-,
- "classnamespace" : "box",
- "rect" : [ 59.0, 119.0, 1000.0, 755.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" : {
- "fontface" : 1,
- "fontsize" : 16.0,
- "id" : "obj-4",
- "maxclass" : "comment",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 148.0, 13.0, 129.0, 24.0 ],
- "text" : "tc.preset_interp"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-6",
- "maxclass" : "number",
- "minimum" : 0,
- "numinlets" : 1,
- "numoutlets" : 2,
- "outlettype" : [ "", "bang" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 122.0, 177.0, 50.0, 22.0 ]
- }
-
- }
-, {
- "box" : {
- "id" : "obj-34",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patcher" : {
- "fileversion" : 1,
- "appversion" : {
- "major" : 8,
- "minor" : 6,
- "revision" : 5,
- "architecture" : "x64",
- "modernui" : 1
- }
-,
- "classnamespace" : "box",
- "rect" : [ 439.0, 167.0, 640.0, 480.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-9",
- "maxclass" : "comment",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 266.0, 45.0, 101.0, 20.0 ],
- "text" : "Interpolation time"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-6",
- "maxclass" : "comment",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 84.5, 45.0, 89.0, 20.0 ],
- "text" : "Preset to recall"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-1",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 2,
- "outlettype" : [ "", "" ],
- "patching_rect" : [ 52.5, 105.0, 68.0, 22.0 ],
- "text" : "route recall"
- }
-
- }
-, {
- "box" : {
- "comment" : "",
- "id" : "obj-2",
- "index" : 2,
- "maxclass" : "inlet",
- "numinlets" : 0,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 234.0, 40.0, 30.0, 30.0 ]
- }
-
- }
-, {
- "box" : {
- "id" : "obj-8",
- "maxclass" : "message",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 158.5, 249.0, 45.0, 22.0 ],
- "text" : "store 0"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-5",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 3,
- "outlettype" : [ "bang", "int", "bang" ],
- "patching_rect" : [ 52.5, 170.0, 125.666666666666686, 22.0 ],
- "text" : "t b i b"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-4",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "int" ],
- "patching_rect" : [ 52.5, 239.0, 29.5, 22.0 ],
- "text" : "i"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-31",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 2,
- "outlettype" : [ "bang", "float" ],
- "patching_rect" : [ 52.5, 334.0, 29.5, 22.0 ],
- "text" : "t b f"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-29",
- "maxclass" : "newobj",
- "numinlets" : 3,
- "numoutlets" : 2,
- "outlettype" : [ "", "bang" ],
- "patching_rect" : [ 52.5, 307.0, 41.0, 22.0 ],
- "text" : "line 0."
- }
-
- }
-, {
- "box" : {
- "id" : "obj-25",
- "maxclass" : "message",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 52.5, 276.0, 52.0, 22.0 ],
- "text" : "0., 1. $1"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-14",
- "maxclass" : "newobj",
- "numinlets" : 4,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 52.5, 362.0, 99.0, 22.0 ],
- "text" : "pack recall 0 0 0."
- }
-
- }
-, {
- "box" : {
- "comment" : "",
- "id" : "obj-32",
- "index" : 1,
- "maxclass" : "inlet",
- "numinlets" : 0,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 52.5, 40.0, 30.0, 30.0 ]
- }
-
- }
-, {
- "box" : {
- "comment" : "",
- "id" : "obj-33",
- "index" : 1,
- "maxclass" : "outlet",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 52.5, 444.0, 30.0, 30.0 ]
- }
-
- }
- ],
- "lines" : [ {
- "patchline" : {
- "destination" : [ "obj-5", 0 ],
- "source" : [ "obj-1", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-33", 0 ],
- "source" : [ "obj-14", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-4", 1 ],
- "source" : [ "obj-2", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-29", 0 ],
- "source" : [ "obj-25", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-31", 0 ],
- "source" : [ "obj-29", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-14", 3 ],
- "source" : [ "obj-31", 1 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-14", 0 ],
- "source" : [ "obj-31", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-1", 0 ],
- "source" : [ "obj-32", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-25", 0 ],
- "source" : [ "obj-4", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-14", 2 ],
- "source" : [ "obj-5", 1 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-4", 0 ],
- "source" : [ "obj-5", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-8", 0 ],
- "source" : [ "obj-5", 2 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-33", 0 ],
- "source" : [ "obj-8", 0 ]
- }
-
- }
- ]
- }
-,
- "patching_rect" : [ 16.0, 206.0, 125.0, 22.0 ],
- "saved_object_attributes" : {
- "description" : "",
- "digest" : "",
- "globalpatchername" : "",
- "tags" : ""
- }
-,
- "text" : "p trigger_interpolation"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-27",
- "keymode" : 1,
- "lines" : 1,
- "maxclass" : "textedit",
- "nosymquotes" : 1,
- "numinlets" : 1,
- "numoutlets" : 4,
- "outlettype" : [ "", "int", "", "" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 161.0, 143.0, 100.0, 23.0 ]
- }
-
- }
-, {
- "box" : {
- "id" : "obj-8",
- "items" : "",
- "maxclass" : "umenu",
- "numinlets" : 1,
- "numoutlets" : 3,
- "outlettype" : [ "int", "", "" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 43.0, 143.0, 112.0, 22.0 ]
- }
-
- }
-, {
- "box" : {
- "border" : 0,
- "embedstate" : [ [ "use_uid", 0 ], [ "color_mode", 0 ], [ "bubblesize", 14 ], [ "nbslot_edit", 1 ], [ "color_5", 0.283, 0.606, 0.559, 1 ], [ "min_rows", 10 ], [ "interp_slot_color", 1, 1, 1, 0.8 ], [ "margin", 4 ], [ "fontsize", 14 ], [ "recall_passthrough", 0 ], [ "color_1", 0.743, 0.41, 0.501, 1 ], [ "slot_round", 0 ], [ "color_6", 0.316, 0.616, 0.377, 1 ], [ "fontname", "Arial" ], [ "text_bg_color", 1, 1, 1, 0.5 ], [ "pattrstorage", "mypat" ], [ "ui_rename", 1 ], [ "menu_mode", 0 ], [ "color_2", 0.679, 0.405, 0.669, 1 ], [ "bgcolor", 0.2, 0.2, 0.2, 1 ], [ "ignoreslotzero", 1 ], [ "empty_slot_color", 0.349, 0.349, 0.349, 1 ], [ "send_name", "none" ], [ "text_color", 0.129, 0.129, 0.129, 1 ], [ "poll_edited", 0 ], [ "color_3", 0.527, 0.459, 0.756, 1 ], [ "layout", 0 ], [ "display_interp", 1 ], [ "spacing", 4 ], [ "active_slot_color", 0.808, 0.898, 0.91, 1 ], [ "autowriteagain", 0 ], [ "scrollable", 0 ], [ "unique_names", 0 ], [ "select_mode", 0 ], [ "edited_color", 1, 0.49, 0.263, 1 ], [ "color_4", 0.367, 0.542, 0.712, 1 ], [ "stored_slot_color", 0.502, 0.502, 0.502, 1 ] ],
- "filename" : "tc.preset.js",
- "id" : "obj-10",
- "maxclass" : "jsui",
- "numinlets" : 1,
- "numoutlets" : 5,
- "outlettype" : [ "", "", "", "", "" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 16.0, 74.0, 130.0, 59.0 ]
- }
-
- }
-, {
- "box" : {
- "id" : "obj-1",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 16.0, 41.0, 109.0, 22.0 ],
- "saved_object_attributes" : {
- "client_rect" : [ 100, 172, 596, 755 ],
- "parameter_enable" : 0,
- "parameter_mappable" : 0,
- "storage_rect" : [ 365, 44, 816, 172 ]
- }
-,
- "text" : "pattrstorage mypat",
- "varname" : "mypat"
- }
-
- }
- ],
- "lines" : [ {
- "patchline" : {
- "destination" : [ "obj-10", 0 ],
- "source" : [ "obj-1", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-27", 0 ],
- "source" : [ "obj-10", 2 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-34", 0 ],
- "source" : [ "obj-10", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-8", 0 ],
- "source" : [ "obj-10", 1 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-10", 0 ],
- "source" : [ "obj-27", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-1", 0 ],
- "source" : [ "obj-34", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-34", 1 ],
- "source" : [ "obj-6", 0 ]
- }
-
- }
- ]
- }
-,
- "patching_rect" : [ 75.0, 18.0, 287.0, 239.0 ],
- "varname" : "bpatcher",
- "viewvisibility" : 1
- }
-
- }
-, {
- "box" : {
- "bubble" : 1,
- "fontsize" : 14.0,
- "id" : "obj-5",
- "linecount" : 4,
- "maxclass" : "comment",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 0.0, 270.0, 426.0, 73.0 ],
- "text" : "Get these snippets from any patch through the Snippets menu!\n\nAfter renaming the pattrstorage, remind to also update the 'pattrstorage' attribute of tc.preset."
- }
-
- }
- ],
- "lines" : [ ]
- }
-,
- "patching_rect" : [ 687.0, 25.7999267578125, 63.0, 22.0 ],
- "saved_object_attributes" : {
- "description" : "",
- "digest" : "",
- "globalpatchername" : "",
- "tags" : ""
- }
-,
- "text" : "p snippets",
- "varname" : "snippet"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-45",
- "maxclass" : "newobj",
- "numinlets" : 0,
- "numoutlets" : 0,
- "patcher" : {
- "fileversion" : 1,
- "appversion" : {
- "major" : 8,
- "minor" : 6,
- "revision" : 5,
- "architecture" : "x64",
- "modernui" : 1
- }
-,
- "classnamespace" : "box",
- "rect" : [ 100.0, 126.0, 899.0, 620.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" : "",
- "showontab" : 1,
- "assistshowspatchername" : 0,
- "boxes" : [ {
- "box" : {
- "hidden" : 1,
- "id" : "obj-5",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 146.0, 160.0, 89.0, 22.0 ],
- "text" : "loadmess set 1"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-3",
- "maxclass" : "tab",
- "numinlets" : 1,
- "numoutlets" : 3,
- "outlettype" : [ "int", "", "" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 56.0, 130.0, 150.0, 26.0 ],
- "tabs" : [ "Grid", "List" ]
- }
-
- }
-, {
- "box" : {
- "id" : "obj-38",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 3,
- "outlettype" : [ "", "", "" ],
- "patching_rect" : [ 293.0, 378.0, 40.0, 22.0 ],
- "restore" : [ -0.079365079365079, 0.206349206349206, 0.428571428571429, 0.682539682539683, 0.904761904761905, 0.904761904761905, 0.841269841269841, 0.555555555555556, 0.047619047619048, -0.301587301587302, -0.587301587301587, -0.682539682539683, -0.650793650793651, -0.428571428571429, -0.111111111111111, 0.079365079365079 ],
- "saved_object_attributes" : {
- "parameter_enable" : 0,
- "parameter_mappable" : 0
- }
-,
- "text" : "pattr",
- "varname" : "u099005226"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-34",
- "maxclass" : "multislider",
- "numinlets" : 1,
- "numoutlets" : 2,
- "outlettype" : [ "", "" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 304.0, 405.0, 136.0, 78.0 ],
- "size" : 16,
- "varname" : "multislider"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-30",
- "maxclass" : "comment",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 337.0, 379.0, 118.0, 20.0 ],
- "text" : "Some data to store"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-18",
- "linecount" : 5,
- "maxclass" : "comment",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 409.0, 120.0, 241.0, 74.0 ],
- "text" : "When scrollable is enabled, adds a - and + buttons at the end of the presets list which, when clicked, respectively remove or add a row of empty slot(s). The minimum number of rows is capped by min_rows."
- }
-
- }
-, {
- "box" : {
- "attr" : "nbslot_edit",
- "id" : "obj-16",
- "maxclass" : "attrui",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 304.0, 146.0, 103.0, 22.0 ],
- "text_width" : 78.0
- }
-
- }
-, {
- "box" : {
- "bubble" : 1,
- "bubbleside" : 0,
- "id" : "obj-6",
- "maxclass" : "comment",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 20.5, 484.0, 236.0, 39.0 ],
- "text" : "Scroll the list with your mouse or trackpad!"
- }
-
- }
-, {
- "box" : {
- "border" : 0,
- "embedstate" : [ [ "use_uid", 0 ], [ "color_mode", 0 ], [ "bubblesize", 14 ], [ "nbslot_edit", 1 ], [ "color_5", 0.283, 0.606, 0.559, 1 ], [ "min_rows", 10 ], [ "interp_slot_color", 1, 1, 1, 0.8 ], [ "margin", 4 ], [ "fontsize", 14 ], [ "recall_passthrough", 1 ], [ "color_1", 0.743, 0.41, 0.501, 1 ], [ "slot_round", 0 ], [ "color_6", 0.316, 0.616, 0.377, 1 ], [ "fontname", "Arial" ], [ "text_bg_color", 1, 1, 1, 0.5 ], [ "pattrstorage", "test" ], [ "ui_rename", 0 ], [ "menu_mode", 0 ], [ "color_2", 0.679, 0.405, 0.669, 1 ], [ "bgcolor", 0.2, 0.2, 0.2, 1 ], [ "ignoreslotzero", 1 ], [ "empty_slot_color", 0.349, 0.349, 0.349, 1 ], [ "send_name", "none" ], [ "text_color", 0.129, 0.129, 0.129, 1 ], [ "poll_edited", 0 ], [ "color_3", 0.527, 0.459, 0.756, 1 ], [ "layout", 1 ], [ "display_interp", 1 ], [ "spacing", 4 ], [ "active_slot_color", 0.808, 0.898, 0.91, 1 ], [ "autowriteagain", 0 ], [ "scrollable", 1 ], [ "unique_names", 0 ], [ "select_mode", 0 ], [ "edited_color", 1, 0.49, 0.263, 1 ], [ "color_4", 0.367, 0.542, 0.712, 1 ], [ "stored_slot_color", 0.502, 0.502, 0.502, 1 ] ],
- "filename" : "tc.preset.js",
- "id" : "obj-10",
- "maxclass" : "jsui",
- "numinlets" : 1,
- "numoutlets" : 5,
- "outlettype" : [ "", "", "", "", "" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 10.0, 378.0, 257.0, 112.0 ]
- }
-
- }
-, {
- "box" : {
- "id" : "obj-1",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 10.0, 309.0, 176.0, 22.0 ],
- "saved_object_attributes" : {
- "client_rect" : [ 100, 172, 596, 755 ],
- "parameter_enable" : 0,
- "parameter_mappable" : 0,
- "storage_rect" : [ 365, 44, 816, 172 ]
- }
-,
- "text" : "pattrstorage test @savemode 0",
- "varname" : "test"
- }
-
- }
-, {
- "box" : {
- "border" : 0,
- "filename" : "helpname.js",
- "id" : "obj-4",
- "ignoreclick" : 1,
- "jsarguments" : [ "tc.preset" ],
- "maxclass" : "jsui",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 10.0, 10.0, 188.288009643554688, 57.599853515625 ]
- }
-
- }
-, {
- "box" : {
- "bubble" : 1,
- "bubbleside" : 3,
- "id" : "obj-78",
- "linecount" : 6,
- "maxclass" : "comment",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 668.0, 103.0, 231.0, 91.0 ],
- "text" : "...and: bgcolor, empty_slot_color, stored_slot_color, interp_slot_color, active_slot_color, fontname, fontsize, text_bg_color, text_color\n(see the tc.preset attributes in the inspector or in its Reference page)"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-65",
- "linecount" : 2,
- "maxclass" : "comment",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 463.0, 214.0, 196.0, 33.0 ],
- "text" : "Minimum number of rows to display when scrollable is enabled."
- }
-
- }
-, {
- "box" : {
- "id" : "obj-62",
- "maxclass" : "comment",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 278.0, 55.0, 211.0, 20.0 ],
- "text" : "Enable to scroll through your presets! "
- }
-
- }
-, {
- "box" : {
- "id" : "obj-39",
- "linecount" : 2,
- "maxclass" : "comment",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 56.0, 93.0, 150.0, 33.0 ],
- "text" : "Choose to display presets as a grid (0) or a list (1)!"
- }
-
- }
-, {
- "box" : {
- "attr" : "layout",
- "id" : "obj-129",
- "maxclass" : "attrui",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 56.0, 160.0, 78.0, 22.0 ],
- "text_width" : 53.0
- }
-
- }
-, {
- "box" : {
- "attr" : "scrollable",
- "id" : "obj-130",
- "maxclass" : "attrui",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 278.0, 80.0, 95.0, 22.0 ],
- "text_width" : 73.0
- }
-
- }
-, {
- "box" : {
- "attr" : "min_rows",
- "id" : "obj-131",
- "maxclass" : "attrui",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 345.0, 220.0, 116.0, 22.0 ],
- "text_width" : 72.0
- }
-
- }
-, {
- "box" : {
- "attr" : "bubblesize",
- "id" : "obj-7",
- "maxclass" : "attrui",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 404.0, 287.0, 150.0, 22.0 ]
- }
-
- }
-, {
- "box" : {
- "attr" : "spacing",
- "id" : "obj-8",
- "maxclass" : "attrui",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 557.0, 287.0, 150.0, 22.0 ]
- }
-
- }
-, {
- "box" : {
- "attr" : "margin",
- "id" : "obj-11",
- "maxclass" : "attrui",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 557.0, 311.0, 150.0, 22.0 ]
- }
-
- }
-, {
- "box" : {
- "attr" : "slot_round",
- "id" : "obj-14",
- "maxclass" : "attrui",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 404.0, 311.0, 150.0, 22.0 ]
- }
-
- }
- ],
- "lines" : [ {
- "patchline" : {
- "destination" : [ "obj-10", 0 ],
- "source" : [ "obj-1", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-10", 0 ],
- "source" : [ "obj-11", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-10", 0 ],
- "source" : [ "obj-129", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-10", 0 ],
- "source" : [ "obj-130", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-10", 0 ],
- "source" : [ "obj-131", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-10", 0 ],
- "source" : [ "obj-14", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-10", 0 ],
- "source" : [ "obj-16", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-129", 0 ],
- "source" : [ "obj-3", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-34", 0 ],
- "source" : [ "obj-38", 1 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-3", 0 ],
- "hidden" : 1,
- "source" : [ "obj-5", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-10", 0 ],
- "source" : [ "obj-7", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-10", 0 ],
- "source" : [ "obj-8", 0 ]
- }
-
- }
- ]
- }
-,
- "patching_rect" : [ 468.0, 26.7999267578125, 82.0, 22.0 ],
- "saved_object_attributes" : {
- "description" : "",
- "digest" : "",
- "globalpatchername" : "",
- "tags" : ""
- }
-,
- "text" : "p appearance",
- "varname" : "appearance"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-29",
- "maxclass" : "newobj",
- "numinlets" : 0,
- "numoutlets" : 0,
- "patcher" : {
- "fileversion" : 1,
- "appversion" : {
- "major" : 8,
- "minor" : 6,
- "revision" : 5,
- "architecture" : "x64",
- "modernui" : 1
- }
-,
- "classnamespace" : "box",
- "rect" : [ 0.0, 26.0, 899.0, 620.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" : "",
- "showontab" : 1,
- "assistshowspatchername" : 0,
- "boxes" : [ {
- "box" : {
- "hidden" : 1,
- "id" : "obj-5",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 227.5, 131.0, 89.0, 22.0 ],
- "text" : "loadmess set 1"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-3",
- "items" : [ "Classic", ",", "Cycle", ",", "Select", ",", "Custom" ],
- "maxclass" : "umenu",
- "numinlets" : 1,
- "numoutlets" : 3,
- "outlettype" : [ "int", "", "" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 109.5, 131.0, 100.0, 22.0 ]
- }
-
- }
-, {
- "box" : {
- "id" : "obj-2",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 3,
- "outlettype" : [ "", "", "" ],
- "patching_rect" : [ 614.0, 312.0, 156.0, 22.0 ],
- "saved_object_attributes" : {
- "legacy" : 0
- }
-,
- "text" : "dict.unpack by_uid: by_slot:"
- }
-
- }
-, {
- "box" : {
- "fontface" : 0,
- "fontname" : "Arial",
- "fontsize" : 12.0,
- "id" : "obj-27",
- "keymode" : 1,
- "lines" : 1,
- "maxclass" : "textedit",
- "nosymquotes" : 1,
- "numinlets" : 1,
- "numoutlets" : 4,
- "outlettype" : [ "", "int", "", "" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 128.5, 499.0, 102.0, 24.0 ],
- "text" : "Preset 1"
- }
-
- }
-, {
- "box" : {
- "bubble" : 1,
- "bubbleside" : 2,
- "id" : "obj-40",
- "linecount" : 5,
- "maxclass" : "comment",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 591.5, 146.0, 249.0, 93.0 ],
- "text" : "When enabled, each stored preset gets a unique identifier, following the preset when it gets renamed, moved and overwritten. This can be useful when doing some complex preset management."
- }
-
- }
-, {
- "box" : {
- "id" : "obj-38",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 3,
- "outlettype" : [ "", "", "" ],
- "patching_rect" : [ 636.0, 16.0, 40.0, 22.0 ],
- "restore" : [ -0.23, -0.57, 0.26, 0.02, 0.72, -0.18, -0.46, 0.4, 0.16, -0.92, 0.77, 0.95, -0.37, 0.25, -0.07, -0.38 ],
- "saved_object_attributes" : {
- "parameter_enable" : 0,
- "parameter_mappable" : 0
- }
-,
- "text" : "pattr",
- "varname" : "u099005226"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-39",
- "maxclass" : "multislider",
- "numinlets" : 1,
- "numoutlets" : 2,
- "outlettype" : [ "", "" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 647.0, 43.0, 136.0, 78.0 ],
- "size" : 16,
- "varname" : "multislider"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-35",
- "maxclass" : "comment",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 680.0, 17.0, 118.0, 20.0 ],
- "text" : "Some data to store"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-21",
- "maxclass" : "newobj",
- "numinlets" : 0,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 614.0, 280.0, 119.0, 22.0 ],
- "text" : "r colors_presets_dict"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-22",
- "maxclass" : "dict.view",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 614.0, 345.0, 253.0, 267.0 ]
- }
-
- }
-, {
- "box" : {
- "id" : "obj-36",
- "maxclass" : "newobj",
- "numinlets" : 0,
- "numoutlets" : 0,
- "patcher" : {
- "fileversion" : 1,
- "appversion" : {
- "major" : 8,
- "minor" : 6,
- "revision" : 5,
- "architecture" : "x64",
- "modernui" : 1
- }
-,
- "classnamespace" : "box",
- "rect" : [ 703.0, 163.0, 460.0, 440.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-21",
- "linecount" : 3,
- "maxclass" : "comment",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 188.0, 419.0, 206.0, 47.0 ],
- "text" : "If you move presets around, or write presets to disk and read them back later, colors will still be here."
- }
-
- }
-, {
- "box" : {
- "id" : "obj-19",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 141.0, 370.0, 98.0, 22.0 ],
- "text" : "prepend setcolor"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-18",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 2,
- "outlettype" : [ "int", "bang" ],
- "patching_rect" : [ 141.0, 270.0, 29.5, 22.0 ],
- "text" : "t i b"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-17",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 3,
- "outlettype" : [ "", "", "" ],
- "patcher" : {
- "fileversion" : 1,
- "appversion" : {
- "major" : 8,
- "minor" : 6,
- "revision" : 5,
- "architecture" : "x64",
- "modernui" : 1
- }
-,
- "classnamespace" : "box",
- "rect" : [ 59.0, 119.0, 640.0, 480.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" : {
- "comment" : "",
- "id" : "obj-2",
- "index" : 1,
- "maxclass" : "inlet",
- "numinlets" : 0,
- "numoutlets" : 1,
- "outlettype" : [ "bang" ],
- "patching_rect" : [ 50.0, 43.0, 30.0, 30.0 ]
- }
-
- }
-, {
- "box" : {
- "id" : "obj-25",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 120.0, 168.0, 131.0, 22.0 ],
- "text" : "random @floatoutput 1"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-24",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 85.0, 134.0, 131.0, 22.0 ],
- "text" : "random @floatoutput 1"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-1",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 50.0, 100.0, 131.0, 22.0 ],
- "text" : "random @floatoutput 1"
- }
-
- }
-, {
- "box" : {
- "comment" : "",
- "id" : "obj-13",
- "index" : 1,
- "maxclass" : "outlet",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 50.0, 230.0, 30.0, 30.0 ]
- }
-
- }
-, {
- "box" : {
- "comment" : "",
- "id" : "obj-15",
- "index" : 2,
- "maxclass" : "outlet",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 85.0, 230.0, 30.0, 30.0 ]
- }
-
- }
-, {
- "box" : {
- "comment" : "",
- "id" : "obj-16",
- "index" : 3,
- "maxclass" : "outlet",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 120.0, 230.0, 30.0, 30.0 ]
- }
-
- }
- ],
- "lines" : [ {
- "patchline" : {
- "destination" : [ "obj-13", 0 ],
- "source" : [ "obj-1", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-1", 0 ],
- "order" : 2,
- "source" : [ "obj-2", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-24", 0 ],
- "order" : 1,
- "source" : [ "obj-2", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-25", 0 ],
- "order" : 0,
- "source" : [ "obj-2", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-15", 0 ],
- "source" : [ "obj-24", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-16", 0 ],
- "source" : [ "obj-25", 0 ]
- }
-
- }
- ]
- }
-,
- "patching_rect" : [ 156.0, 303.0, 92.0, 22.0 ],
- "saved_object_attributes" : {
- "description" : "",
- "digest" : "",
- "globalpatchername" : "",
- "tags" : ""
- }
-,
- "text" : "p random_color"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-9",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 3,
- "outlettype" : [ "bang", "bang", "int" ],
- "patching_rect" : [ 119.0, 244.0, 41.0, 22.0 ],
- "text" : "uzi 20"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-14",
- "maxclass" : "comment",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 161.0, 169.0, 175.0, 20.0 ],
- "text" : "Set selected preset color to red"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-23",
- "maxclass" : "comment",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 121.0, 129.0, 123.0, 20.0 ],
- "text" : "Change preset colors"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-11",
- "maxclass" : "message",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 52.0, 167.0, 104.0, 22.0 ],
- "text" : "setcolor 1. 0. 0. 1."
- }
-
- }
-, {
- "box" : {
- "id" : "obj-4",
- "maxclass" : "newobj",
- "numinlets" : 5,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 141.0, 338.0, 97.0, 22.0 ],
- "text" : "pack 0 0. 0. 0. 1."
- }
-
- }
-, {
- "box" : {
- "id" : "obj-8",
- "maxclass" : "button",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "bang" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 119.0, 207.0, 24.0, 24.0 ]
- }
-
- }
-, {
- "box" : {
- "id" : "obj-6",
- "maxclass" : "comment",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 149.0, 209.0, 265.0, 20.0 ],
- "text" : "Set a random color for the first 20 presets"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-2",
- "maxclass" : "comment",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 142.0, 70.0, 163.0, 20.0 ],
- "text" : "Set color mode to 3 (custom)"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-3",
- "maxclass" : "message",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 26.0, 69.0, 81.0, 22.0 ],
- "text" : "color_mode 3"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-10",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 26.0, 439.0, 81.0, 22.0 ],
- "text" : "s to_tc.preset"
- }
-
- }
-, {
- "box" : {
- "background" : 1,
- "bgcolor" : [ 1.0, 0.788235, 0.470588, 1.0 ],
- "fontface" : 1,
- "hint" : "",
- "id" : "obj-20",
- "ignoreclick" : 1,
- "legacytextcolor" : 1,
- "maxclass" : "textbutton",
- "numinlets" : 1,
- "numoutlets" : 3,
- "outlettype" : [ "", "", "int" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 115.0, 70.0, 20.0, 20.0 ],
- "rounded" : 60.0,
- "text" : "1",
- "textcolor" : [ 0.34902, 0.34902, 0.34902, 1.0 ]
- }
-
- }
-, {
- "box" : {
- "background" : 1,
- "bgcolor" : [ 1.0, 0.788235, 0.470588, 1.0 ],
- "fontface" : 1,
- "hint" : "",
- "id" : "obj-22",
- "ignoreclick" : 1,
- "legacytextcolor" : 1,
- "maxclass" : "textbutton",
- "numinlets" : 1,
- "numoutlets" : 3,
- "outlettype" : [ "", "", "int" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 161.0, 432.5, 20.0, 20.0 ],
- "rounded" : 60.0,
- "text" : "3",
- "textcolor" : [ 0.34902, 0.34902, 0.34902, 1.0 ]
- }
-
- }
-, {
- "box" : {
- "background" : 1,
- "bgcolor" : [ 1.0, 0.788235, 0.470588, 1.0 ],
- "fontface" : 1,
- "hint" : "",
- "id" : "obj-12",
- "ignoreclick" : 1,
- "legacytextcolor" : 1,
- "maxclass" : "textbutton",
- "numinlets" : 1,
- "numoutlets" : 3,
- "outlettype" : [ "", "", "int" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 94.0, 129.0, 20.0, 20.0 ],
- "rounded" : 60.0,
- "text" : "2",
- "textcolor" : [ 0.34902, 0.34902, 0.34902, 1.0 ]
- }
-
- }
- ],
- "lines" : [ {
- "patchline" : {
- "destination" : [ "obj-10", 0 ],
- "source" : [ "obj-11", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-4", 3 ],
- "source" : [ "obj-17", 2 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-4", 2 ],
- "source" : [ "obj-17", 1 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-4", 1 ],
- "source" : [ "obj-17", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-17", 0 ],
- "source" : [ "obj-18", 1 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-4", 0 ],
- "source" : [ "obj-18", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-10", 0 ],
- "source" : [ "obj-19", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-10", 0 ],
- "source" : [ "obj-3", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-19", 0 ],
- "source" : [ "obj-4", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-9", 0 ],
- "source" : [ "obj-8", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-18", 0 ],
- "source" : [ "obj-9", 2 ]
- }
-
- }
- ]
- }
-,
- "patching_rect" : [ 227.5, 191.0, 94.0, 22.0 ],
- "saved_object_attributes" : {
- "description" : "",
- "digest" : "",
- "globalpatchername" : "",
- "tags" : ""
- }
-,
- "text" : "p custom_mode"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-34",
- "maxclass" : "newobj",
- "numinlets" : 0,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 148.0, 340.0, 79.0, 22.0 ],
- "text" : "r to_tc.preset"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-33",
- "maxclass" : "newobj",
- "numinlets" : 0,
- "numoutlets" : 0,
- "patcher" : {
- "fileversion" : 1,
- "appversion" : {
- "major" : 8,
- "minor" : 6,
- "revision" : 5,
- "architecture" : "x64",
- "modernui" : 1
- }
-,
- "classnamespace" : "box",
- "rect" : [ 703.0, 163.0, 481.0, 436.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-1",
- "linecount" : 3,
- "maxclass" : "comment",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 219.0, 365.0, 216.0, 47.0 ],
- "text" : "If you move presets around, or write them to disk and read them back later, the set colors index will still be here."
- }
-
- }
-, {
- "box" : {
- "id" : "obj-23",
- "maxclass" : "comment",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 180.5, 150.0, 123.0, 20.0 ],
- "text" : "Change preset colors"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-18",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "int" ],
- "patching_rect" : [ 199.5, 273.0, 29.5, 22.0 ],
- "text" : "+ 1"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-19",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 199.5, 244.0, 59.0, 22.0 ],
- "text" : "random 6"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-21",
- "maxclass" : "button",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "bang" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 199.5, 213.0, 24.0, 24.0 ]
- }
-
- }
-, {
- "box" : {
- "id" : "obj-22",
- "maxclass" : "comment",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 229.5, 215.0, 174.0, 20.0 ],
- "text" : "Set a random color for preset 4"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-17",
- "maxclass" : "message",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 199.5, 304.0, 77.0, 22.0 ],
- "text" : "setcolor 4 $1"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-14",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "int" ],
- "patching_rect" : [ 76.5, 242.0, 29.5, 22.0 ],
- "text" : "+ 1"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-13",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 76.5, 213.0, 59.0, 22.0 ],
- "text" : "random 6"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-8",
- "maxclass" : "button",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "bang" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 76.5, 182.0, 24.0, 24.0 ]
- }
-
- }
-, {
- "box" : {
- "id" : "obj-6",
- "maxclass" : "comment",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 106.5, 184.0, 235.0, 20.0 ],
- "text" : "Set a random color for the selected preset"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-2",
- "maxclass" : "comment",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 164.0, 94.0, 155.0, 20.0 ],
- "text" : "Set color mode to 2 (select)"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-3",
- "maxclass" : "message",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 48.0, 93.0, 81.0, 22.0 ],
- "text" : "color_mode 2"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-10",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 48.0, 407.0, 81.0, 22.0 ],
- "text" : "s to_tc.preset"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-9",
- "maxclass" : "message",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 76.5, 271.0, 67.0, 22.0 ],
- "text" : "setcolor $1"
- }
-
- }
-, {
- "box" : {
- "background" : 1,
- "bgcolor" : [ 1.0, 0.788235, 0.470588, 1.0 ],
- "fontface" : 1,
- "hint" : "",
- "id" : "obj-20",
- "ignoreclick" : 1,
- "legacytextcolor" : 1,
- "maxclass" : "textbutton",
- "numinlets" : 1,
- "numoutlets" : 3,
- "outlettype" : [ "", "", "int" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 137.0, 94.0, 20.0, 20.0 ],
- "rounded" : 60.0,
- "text" : "1",
- "textcolor" : [ 0.34902, 0.34902, 0.34902, 1.0 ]
- }
-
- }
-, {
- "box" : {
- "background" : 1,
- "bgcolor" : [ 1.0, 0.788235, 0.470588, 1.0 ],
- "fontface" : 1,
- "hint" : "",
- "id" : "obj-4",
- "ignoreclick" : 1,
- "legacytextcolor" : 1,
- "maxclass" : "textbutton",
- "numinlets" : 1,
- "numoutlets" : 3,
- "outlettype" : [ "", "", "int" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 192.0, 379.0, 20.0, 20.0 ],
- "rounded" : 60.0,
- "text" : "3",
- "textcolor" : [ 0.34902, 0.34902, 0.34902, 1.0 ]
- }
-
- }
-, {
- "box" : {
- "background" : 1,
- "bgcolor" : [ 1.0, 0.788235, 0.470588, 1.0 ],
- "fontface" : 1,
- "hint" : "",
- "id" : "obj-24",
- "ignoreclick" : 1,
- "legacytextcolor" : 1,
- "maxclass" : "textbutton",
- "numinlets" : 1,
- "numoutlets" : 3,
- "outlettype" : [ "", "", "int" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 153.5, 150.0, 20.0, 20.0 ],
- "rounded" : 60.0,
- "text" : "2",
- "textcolor" : [ 0.34902, 0.34902, 0.34902, 1.0 ]
- }
-
- }
- ],
- "lines" : [ {
- "patchline" : {
- "destination" : [ "obj-14", 0 ],
- "source" : [ "obj-13", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-9", 0 ],
- "source" : [ "obj-14", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-10", 0 ],
- "source" : [ "obj-17", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-17", 0 ],
- "source" : [ "obj-18", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-18", 0 ],
- "source" : [ "obj-19", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-19", 0 ],
- "source" : [ "obj-21", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-10", 0 ],
- "source" : [ "obj-3", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-13", 0 ],
- "source" : [ "obj-8", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-10", 0 ],
- "source" : [ "obj-9", 0 ]
- }
-
- }
- ]
- }
-,
- "patching_rect" : [ 128.5, 191.0, 87.0, 22.0 ],
- "saved_object_attributes" : {
- "description" : "",
- "digest" : "",
- "globalpatchername" : "",
- "tags" : ""
- }
-,
- "text" : "p select_mode"
- }
-
- }
-, {
- "box" : {
- "bubble" : 1,
- "id" : "obj-32",
- "linecount" : 2,
- "maxclass" : "comment",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 328.5, 184.0, 160.0, 37.0 ],
- "text" : "Open these subpatchers to get more info"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-30",
- "maxclass" : "newobj",
- "numinlets" : 0,
- "numoutlets" : 0,
- "patcher" : {
- "fileversion" : 1,
- "appversion" : {
- "major" : 8,
- "minor" : 6,
- "revision" : 5,
- "architecture" : "x64",
- "modernui" : 1
- }
-,
- "classnamespace" : "box",
- "rect" : [ 724.0, 259.0, 378.0, 380.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-10",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 44.0, 343.0, 81.0, 22.0 ],
- "text" : "s to_tc.preset"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-3",
- "maxclass" : "comment",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 179.0, 167.0, 129.0, 20.0 ],
- "text" : "Set color 5 to cyan"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-2",
- "linecount" : 7,
- "maxclass" : "comment",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 44.0, 14.0, 321.0, 100.0 ],
- "text" : "The color wheel is a set of six colors used in color_mode 1 (cycle) and 2 (select).\n\nYou can change each of the 6 colors from the color wheel either by using color_1 to color_6 messages, either by using a generic color_wheel message, or directly in the inspector when selecting the tc.preset object."
- }
-
- }
-, {
- "box" : {
- "id" : "obj-126",
- "maxclass" : "comment",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 179.0, 215.0, 164.0, 20.0 ],
- "text" : "Reset color 3 to default value"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-122",
- "maxclass" : "comment",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 179.0, 139.0, 129.0, 20.0 ],
- "text" : "Set color 3 to magenta"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-120",
- "maxclass" : "message",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 44.0, 166.0, 123.0, 22.0 ],
- "text" : "color_wheel 5 0 1 1 1"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-119",
- "maxclass" : "comment",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 179.0, 241.0, 150.0, 20.0 ],
- "text" : "Reset all colors to default"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-117",
- "maxclass" : "message",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 119.0, 214.0, 48.0, 22.0 ],
- "text" : "color_3"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-99",
- "maxclass" : "message",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 79.0, 138.0, 88.0, 22.0 ],
- "text" : "color_3 1 0 1 1"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-95",
- "maxclass" : "message",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 94.0, 240.0, 73.0, 22.0 ],
- "text" : "color_wheel"
- }
-
- }
- ],
- "lines" : [ {
- "patchline" : {
- "destination" : [ "obj-10", 0 ],
- "source" : [ "obj-117", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-10", 0 ],
- "source" : [ "obj-120", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-10", 0 ],
- "source" : [ "obj-95", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-10", 0 ],
- "source" : [ "obj-99", 0 ]
- }
-
- }
- ]
- }
-,
- "patching_rect" : [ 34.5, 191.0, 83.0, 22.0 ],
- "saved_object_attributes" : {
- "description" : "",
- "digest" : "",
- "globalpatchername" : "",
- "tags" : ""
- }
-,
- "text" : "p color_wheel"
- }
-
- }
-, {
- "box" : {
- "bubble" : 1,
- "bubble_bgcolor" : [ 0.815686274509804, 0.650980392156863, 0.650980392156863, 1.0 ],
- "bubbleside" : 2,
- "id" : "obj-28",
- "linecount" : 4,
- "maxclass" : "comment",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 182.0, 231.5, 393.0, 79.0 ],
- "text" : "For color modes 2 and 3, and use_uid to work, you need to add a pattr object named 'preset_metadata' to your patch. If using subscribe mode, make sure to add preset_metadata to the pattrstorage's subscribe list.\nPreset color data will be stored just like your other parameters."
- }
-
- }
-, {
- "box" : {
- "id" : "obj-6",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 3,
- "outlettype" : [ "", "", "" ],
- "patching_rect" : [ 319.0, 312.5, 126.0, 22.0 ],
- "restore" : [ "{\"color\":[0,0.502,0.502,0.502,1],\"uid\":\"44918fd8-bfef-42ee-87ed-13929dc21d32\"}" ],
- "saved_object_attributes" : {
- "parameter_enable" : 0,
- "parameter_mappable" : 0
- }
-,
- "text" : "pattr preset_metadata",
- "varname" : "preset_metadata"
- }
-
- }
-, {
- "box" : {
- "hidden" : 1,
- "id" : "obj-14",
- "maxclass" : "newobj",
- "numinlets" : 0,
- "numoutlets" : 2,
- "outlettype" : [ "", "" ],
- "patcher" : {
- "fileversion" : 1,
- "appversion" : {
- "major" : 8,
- "minor" : 6,
- "revision" : 5,
- "architecture" : "x64",
- "modernui" : 1
- }
-,
- "classnamespace" : "box",
- "rect" : [ 574.0, 280.0, 640.0, 480.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-10",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 2,
- "outlettype" : [ "", "bang" ],
- "patching_rect" : [ 61.0, 231.0, 29.5, 22.0 ],
- "text" : "t l b"
- }
-
- }
-, {
- "box" : {
- "comment" : "",
- "id" : "obj-9",
- "index" : 2,
- "maxclass" : "outlet",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 322.0, 270.0, 30.0, 30.0 ]
- }
-
- }
-, {
- "box" : {
- "id" : "obj-8",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "float" ],
- "patching_rect" : [ 322.0, 179.0, 39.0, 22.0 ],
- "text" : "/ 100."
- }
-
- }
-, {
- "box" : {
- "id" : "obj-5",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "int" ],
- "patching_rect" : [ 322.0, 149.0, 36.0, 22.0 ],
- "text" : "- 100"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-4",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 322.0, 120.0, 73.0, 22.0 ],
- "text" : "random 200"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-3",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 3,
- "outlettype" : [ "bang", "bang", "int" ],
- "patching_rect" : [ 322.0, 77.0, 41.0, 22.0 ],
- "text" : "uzi 16"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-2",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 2,
- "outlettype" : [ "", "" ],
- "patching_rect" : [ 322.0, 210.0, 68.0, 22.0 ],
- "text" : "zl.group 16"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-1",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 50.0, 98.0, 54.0, 22.0 ],
- "text" : "deferlow"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-12",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 72.0, 159.0, 83.0, 22.0 ],
- "text" : "prepend store"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-11",
- "maxclass" : "newobj",
- "numinlets" : 2,
- "numoutlets" : 3,
- "outlettype" : [ "bang", "bang", "int" ],
- "patching_rect" : [ 50.0, 131.0, 41.0, 22.0 ],
- "text" : "uzi 26"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-7",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "bang" ],
- "patching_rect" : [ 50.0, 65.0, 58.0, 22.0 ],
- "text" : "loadbang"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-6",
- "maxclass" : "message",
- "numinlets" : 2,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 61.0, 188.0, 202.0, 22.0 ],
- "text" : "store 34, store 44, store 56, store 65"
- }
-
- }
-, {
- "box" : {
- "comment" : "",
- "id" : "obj-13",
- "index" : 1,
- "maxclass" : "outlet",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 61.0, 270.0, 30.0, 30.0 ]
- }
-
- }
- ],
- "lines" : [ {
- "patchline" : {
- "destination" : [ "obj-11", 0 ],
- "source" : [ "obj-1", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-13", 0 ],
- "source" : [ "obj-10", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-3", 0 ],
- "source" : [ "obj-10", 1 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-12", 0 ],
- "source" : [ "obj-11", 2 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-6", 0 ],
- "source" : [ "obj-11", 1 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-10", 0 ],
- "source" : [ "obj-12", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-9", 0 ],
- "source" : [ "obj-2", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-4", 0 ],
- "source" : [ "obj-3", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-5", 0 ],
- "source" : [ "obj-4", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-8", 0 ],
- "source" : [ "obj-5", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-10", 0 ],
- "source" : [ "obj-6", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-1", 0 ],
- "source" : [ "obj-7", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-2", 0 ],
- "source" : [ "obj-8", 0 ]
- }
-
- }
- ]
- }
-,
- "patching_rect" : [ 232.0, 340.0, 34.0, 22.0 ],
- "saved_object_attributes" : {
- "description" : "",
- "digest" : "",
- "globalpatchername" : "",
- "tags" : ""
- }
-,
- "text" : "p init"
- }
-
- }
-, {
- "box" : {
- "border" : 0,
- "embedstate" : [ [ "use_uid", 1 ], [ "color_mode", 1 ], [ "bubblesize", 14 ], [ "nbslot_edit", 1 ], [ "color_5", 0.283, 0.606, 0.559, 1 ], [ "min_rows", 10 ], [ "interp_slot_color", 1, 1, 1, 0.8 ], [ "margin", 4 ], [ "fontsize", 14 ], [ "recall_passthrough", 1 ], [ "color_1", 0.743, 0.41, 0.501, 1 ], [ "slot_round", 0 ], [ "color_6", 0.316, 0.616, 0.377, 1 ], [ "fontname", "Arial" ], [ "text_bg_color", 1, 1, 1, 0.5 ], [ "pattrstorage", "colors" ], [ "ui_rename", 0 ], [ "menu_mode", 0 ], [ "color_2", 0.679, 0.405, 0.669, 1 ], [ "bgcolor", 0.2, 0.2, 0.2, 1 ], [ "ignoreslotzero", 1 ], [ "empty_slot_color", 0.349, 0.349, 0.349, 1 ], [ "send_name", "none" ], [ "text_color", 0.129, 0.129, 0.129, 1 ], [ "poll_edited", 0 ], [ "color_3", 0.527, 0.459, 0.756, 1 ], [ "layout", 0 ], [ "display_interp", 1 ], [ "spacing", 4 ], [ "active_slot_color", 0.808, 0.898, 0.91, 1 ], [ "autowriteagain", 0 ], [ "scrollable", 0 ], [ "unique_names", 0 ], [ "select_mode", 0 ], [ "edited_color", 1, 0.49, 0.263, 1 ], [ "color_4", 0.367, 0.542, 0.712, 1 ], [ "stored_slot_color", 0.502, 0.502, 0.502, 1 ] ],
- "filename" : "tc.preset.js",
- "id" : "obj-10",
- "maxclass" : "jsui",
- "numinlets" : 1,
- "numoutlets" : 5,
- "outlettype" : [ "", "", "", "", "" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 10.0, 378.0, 256.0, 112.0 ]
- }
-
- }
-, {
- "box" : {
- "border" : 0,
- "filename" : "helpname.js",
- "id" : "obj-4",
- "ignoreclick" : 1,
- "jsarguments" : [ "tc.preset" ],
- "maxclass" : "jsui",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 10.0, 10.0, 188.288009643554688, 57.599853515625 ]
- }
-
- }
-, {
- "box" : {
- "fontsize" : 13.0,
- "id" : "obj-113",
- "linecount" : 4,
- "maxclass" : "comment",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 10.0, 64.0, 470.0, 65.0 ],
- "text" : "When color_mode is set to 1 (Cycle), stored presets are shown in colors from color_1 to color_6, cyclically depending on their slot number.\nIn mode 2 (Select), you can freely choose one of the 6 colors for each preset.\nIn mode 3 (Custom), you are free to set any color in rgba format for any preset."
- }
-
- }
-, {
- "box" : {
- "alias" : {
- "preset_metadata" : "preset_metadata"
- }
-,
- "id" : "obj-1",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 10.0, 309.0, 189.0, 22.0 ],
- "saved_object_attributes" : {
- "client_rect" : [ 100, 172, 596, 755 ],
- "parameter_enable" : 0,
- "parameter_mappable" : 0,
- "storage_rect" : [ 365, 44, 816, 172 ]
- }
-,
- "text" : "pattrstorage colors @savemode 0",
- "varname" : "colors"
- }
-
- }
-, {
- "box" : {
- "attr" : "color_mode",
- "id" : "obj-11",
- "maxclass" : "attrui",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 109.5, 161.0, 125.0, 22.0 ]
- }
-
- }
-, {
- "box" : {
- "attr" : "color_1",
- "id" : "obj-13",
- "maxclass" : "attrui",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 288.0, 378.0, 226.0, 22.0 ]
- }
-
- }
-, {
- "box" : {
- "attr" : "color_2",
- "id" : "obj-16",
- "maxclass" : "attrui",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 288.0, 404.0, 226.0, 22.0 ]
- }
-
- }
-, {
- "box" : {
- "attr" : "color_3",
- "id" : "obj-17",
- "maxclass" : "attrui",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 288.0, 428.0, 226.0, 22.0 ]
- }
-
- }
-, {
- "box" : {
- "attr" : "color_4",
- "id" : "obj-18",
- "maxclass" : "attrui",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 288.0, 452.0, 226.0, 22.0 ]
- }
-
- }
-, {
- "box" : {
- "attr" : "color_5",
- "id" : "obj-19",
- "maxclass" : "attrui",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 288.0, 476.0, 226.0, 22.0 ]
- }
-
- }
-, {
- "box" : {
- "attr" : "color_6",
- "id" : "obj-20",
- "maxclass" : "attrui",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 288.0, 500.0, 226.0, 22.0 ]
- }
-
- }
-, {
- "box" : {
- "attr" : "use_uid",
- "id" : "obj-23",
- "maxclass" : "attrui",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 671.5, 244.0, 87.0, 22.0 ],
- "text_width" : 64.0
- }
-
- }
- ],
- "lines" : [ {
- "patchline" : {
- "destination" : [ "obj-10", 0 ],
- "source" : [ "obj-1", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-27", 0 ],
- "source" : [ "obj-10", 2 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-10", 0 ],
- "source" : [ "obj-11", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-10", 0 ],
- "source" : [ "obj-13", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-10", 0 ],
- "source" : [ "obj-16", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-10", 0 ],
- "source" : [ "obj-17", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-10", 0 ],
- "source" : [ "obj-18", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-10", 0 ],
- "source" : [ "obj-19", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-22", 0 ],
- "source" : [ "obj-2", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-10", 0 ],
- "source" : [ "obj-20", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-2", 0 ],
- "source" : [ "obj-21", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-10", 0 ],
- "hidden" : 1,
- "source" : [ "obj-23", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-10", 0 ],
- "midpoints" : [ 138.0, 525.0, 6.0, 525.0, 6.0, 375.0, 19.5, 375.0 ],
- "source" : [ "obj-27", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-11", 0 ],
- "source" : [ "obj-3", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-10", 0 ],
- "source" : [ "obj-34", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-39", 0 ],
- "source" : [ "obj-38", 1 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-3", 0 ],
- "hidden" : 1,
- "source" : [ "obj-5", 0 ]
- }
-
- }
- ]
- }
-,
- "patching_rect" : [ 567.0, 26.7999267578125, 112.0, 22.0 ],
- "saved_object_attributes" : {
- "description" : "",
- "digest" : "",
- "globalpatchername" : "",
- "tags" : ""
- }
-,
- "text" : "p \"slot colors & uid\"",
- "varname" : "slot colors"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-16",
- "maxclass" : "newobj",
- "numinlets" : 0,
- "numoutlets" : 0,
- "patcher" : {
- "fileversion" : 1,
- "appversion" : {
- "major" : 8,
- "minor" : 6,
- "revision" : 5,
- "architecture" : "x64",
- "modernui" : 1
- }
-,
- "classnamespace" : "box",
- "rect" : [ 0.0, 26.0, 899.0, 620.0 ],
- "bglocked" : 0,
- "openinpresentation" : 0,
- "default_fontsize" : 13.0,
- "default_fontface" : 0,
- "default_fontname" : "Arial",
- "gridonopen" : 1,
- "gridsize" : [ 5.0, 5.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" : "",
- "showontab" : 1,
- "assistshowspatchername" : 0,
- "boxes" : [ {
- "box" : {
- "id" : "obj-4",
- "maxclass" : "comment",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 219.0, 27.0, 89.0, 21.0 ],
- "text" : "Max 8 version"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-38",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 3,
- "outlettype" : [ "", "", "" ],
- "patching_rect" : [ 596.0, 159.0, 40.0, 23.0 ],
- "restore" : [ -0.079365079365079, 0.206349206349206, 0.428571428571429, 0.682539682539683, 0.904761904761905, 0.904761904761905, 0.841269841269841, 0.555555555555556, 0.047619047619048, -0.301587301587302, -0.587301587301587, -0.682539682539683, -0.650793650793651, -0.428571428571429, -0.111111111111111, 0.079365079365079 ],
- "saved_object_attributes" : {
- "parameter_enable" : 0,
- "parameter_mappable" : 0
- }
-,
- "text" : "pattr",
- "varname" : "u099005226"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-20",
- "maxclass" : "multislider",
- "numinlets" : 1,
- "numoutlets" : 2,
- "outlettype" : [ "", "" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 607.0, 186.0, 136.0, 78.0 ],
- "size" : 16,
- "varname" : "multislider"
- }
-
- }
-, {
- "box" : {
- "bubble" : 1,
- "id" : "obj-15",
- "linecount" : 2,
- "maxclass" : "comment",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 680.0, 529.0, 212.0, 40.0 ],
- "text" : "Rightmost outlet provides a dictionary with all stored presets"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-14",
- "maxclass" : "dict.view",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 490.0, 492.0, 188.0, 114.0 ]
- }
-
- }
-, {
- "box" : {
- "bubble" : 1,
- "id" : "obj-12",
- "linecount" : 3,
- "maxclass" : "comment",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 394.0, 426.0, 103.0, 54.0 ],
- "text" : "Lock state of the current preset"
- }
-
- }
-, {
- "box" : {
- "bubble" : 1,
- "bubbleside" : 0,
- "id" : "obj-6",
- "linecount" : 2,
- "maxclass" : "comment",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 228.5, 473.0, 150.0, 55.0 ],
- "text" : "Edit the selected preset name and hit enter!"
- }
-
- }
-, {
- "box" : {
- "bubble" : 1,
- "bubblepoint" : 0.8,
- "bubbleside" : 0,
- "id" : "obj-5",
- "linecount" : 4,
- "maxclass" : "comment",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 18.0, 478.0, 183.0, 84.0 ],
- "text" : "The umen is automatically updated with the list of stored presets. It also displays the currently selected preset."
- }
-
- }
-, {
- "box" : {
- "bubble" : 1,
- "id" : "obj-24",
- "linecount" : 10,
- "maxclass" : "comment",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 511.0, 305.0, 368.0, 156.0 ],
- "text" : "tc.preset handles the same user interactions as the regular preset object, plus a few useful ones:\n\n- RECALL (or SELECT if select_mode enabled): click\n- STORE: shift+click\n- DELETE: shift-(option|alt)-click\n- LOCK/UNLOCK: shift+control+click\n- RENAME: control+click (requires a [textedit] connected to third outlet)\n- MOVE: click and drag presets to reorganize them"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-30",
- "maxclass" : "comment",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 640.0, 160.0, 118.0, 21.0 ],
- "text" : "Some data to store"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-56",
- "maxclass" : "toggle",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "int" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 372.0, 440.0, 24.0, 24.0 ]
- }
-
- }
-, {
- "box" : {
- "id" : "obj-27",
- "keymode" : 1,
- "lines" : 1,
- "maxclass" : "textedit",
- "nosymquotes" : 1,
- "numinlets" : 1,
- "numoutlets" : 4,
- "outlettype" : [ "", "int", "", "" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 254.0, 441.0, 98.0, 23.0 ],
- "text" : "sine"
- }
-
- }
-, {
- "box" : {
- "id" : "obj-8",
- "items" : [ 1, "up", ",", 2, "down", ",", 3, "sine", ",", 4, "random", ",", 7, "W" ],
- "maxclass" : "umenu",
- "numinlets" : 1,
- "numoutlets" : 3,
- "outlettype" : [ "int", "", "" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 136.0, 441.0, 112.0, 23.0 ]
- }
-
- }
-, {
- "box" : {
- "border" : 0,
- "embedstate" : [ [ "use_uid", 0 ], [ "color_mode", 0 ], [ "bubblesize", 14 ], [ "nbslot_edit", 1 ], [ "color_5", 0.283, 0.606, 0.559, 1 ], [ "min_rows", 10 ], [ "interp_slot_color", 1, 1, 1, 0.8 ], [ "margin", 4 ], [ "fontsize", 14 ], [ "recall_passthrough", 1 ], [ "color_1", 0.743, 0.41, 0.501, 1 ], [ "slot_round", 0 ], [ "color_6", 0.316, 0.616, 0.377, 1 ], [ "fontname", "Arial" ], [ "text_bg_color", 1, 1, 1, 0.5 ], [ "pattrstorage", "test" ], [ "ui_rename", 0 ], [ "menu_mode", 0 ], [ "color_2", 0.679, 0.405, 0.669, 1 ], [ "bgcolor", 0.2, 0.2, 0.2, 1 ], [ "ignoreslotzero", 1 ], [ "empty_slot_color", 0.349, 0.349, 0.349, 1 ], [ "send_name", "none" ], [ "text_color", 0.129, 0.129, 0.129, 1 ], [ "poll_edited", 0 ], [ "color_3", 0.527, 0.459, 0.756, 1 ], [ "layout", 0 ], [ "display_interp", 1 ], [ "spacing", 4 ], [ "active_slot_color", 0.808, 0.898, 0.91, 1 ], [ "autowriteagain", 0 ], [ "scrollable", 0 ], [ "unique_names", 0 ], [ "select_mode", 0 ], [ "edited_color", 1, 0.49, 0.263, 1 ], [ "color_4", 0.367, 0.542, 0.712, 1 ], [ "stored_slot_color", 0.502, 0.502, 0.502, 1 ] ],
- "filename" : "tc.preset.js",
- "id" : "obj-10",
- "maxclass" : "jsui",
- "numinlets" : 1,
- "numoutlets" : 5,
- "outlettype" : [ "", "", "", "", "" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 18.0, 328.0, 491.0, 95.0 ]
- }
-
- }
-, {
- "box" : {
- "id" : "obj-1",
- "maxclass" : "newobj",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "patching_rect" : [ 18.0, 286.0, 190.0, 23.0 ],
- "saved_object_attributes" : {
- "client_rect" : [ 100, 172, 596, 755 ],
- "parameter_enable" : 0,
- "parameter_mappable" : 0,
- "storage_rect" : [ 365, 44, 816, 172 ]
- }
-,
- "text" : "pattrstorage test @savemode 0",
- "varname" : "test"
- }
-
- }
-, {
- "box" : {
- "fontsize" : 14.0,
- "id" : "obj-13",
- "linecount" : 5,
- "maxclass" : "comment",
- "numinlets" : 1,
- "numoutlets" : 0,
- "patching_rect" : [ 10.0, 136.0, 427.0, 85.0 ],
- "text" : "Get tc.preset working in 3 steps:\n1. Create a [tc.preset] (shortcut for [jsui @filename tc.preset.js])\n2. Connect its inlet to your [pattrstorage] outlet like shown below\n3. Send to tc.preset the name of your pattrstorage prepended by \"pattrstorage\", or set its name in the @pattrstorage attribute "
- }
-
- }
-, {
- "box" : {
- "border" : 0,
- "filename" : "helpdetails.js",
- "id" : "obj-2",
- "ignoreclick" : 1,
- "jsarguments" : [ "tc.preset" ],
- "maxclass" : "jsui",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 10.0, 10.0, 621.0, 124.0 ]
- }
-
- }
- ],
- "lines" : [ {
- "patchline" : {
- "destination" : [ "obj-10", 0 ],
- "source" : [ "obj-1", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-14", 0 ],
- "source" : [ "obj-10", 4 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-27", 0 ],
- "source" : [ "obj-10", 2 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-56", 0 ],
- "source" : [ "obj-10", 3 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-8", 0 ],
- "source" : [ "obj-10", 1 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-10", 0 ],
- "midpoints" : [ 263.5, 473.2890625, 9.0, 473.2890625, 9.0, 324.0, 27.5, 324.0 ],
- "source" : [ "obj-27", 0 ]
- }
-
- }
-, {
- "patchline" : {
- "destination" : [ "obj-20", 0 ],
- "source" : [ "obj-38", 1 ]
- }
-
- }
- ]
- }
-,
- "patching_rect" : [ 240.0, 27.7999267578125, 50.0, 22.0 ],
- "saved_object_attributes" : {
- "description" : "",
- "digest" : "",
- "fontsize" : 13.0,
- "globalpatchername" : "",
- "tags" : ""
- }
-,
- "text" : "p basic",
- "varname" : "basic_tab"
- }
-
- }
-, {
- "box" : {
- "border" : 0,
- "filename" : "helpname.js",
- "id" : "obj-18",
- "ignoreclick" : 1,
- "jsarguments" : [ "tc.preset" ],
- "maxclass" : "jsui",
- "numinlets" : 1,
- "numoutlets" : 1,
- "outlettype" : [ "" ],
- "parameter_enable" : 0,
- "patching_rect" : [ 10.0, 10.0, 188.288009643554688, 57.599853515625 ]
- }
-
- }
- ],
- "lines" : [ ],
- "dependency_cache" : [ {
- "name" : "colors.json",
- "bootpath" : "~/Documents/_DEV/tc.preset/help",
- "patcherrelativepath" : ".",
- "type" : "JSON",
- "implicit" : 1
- }
-, {
- "name" : "helpdetails.js",
- "bootpath" : "C74:/help/resources",
- "type" : "TEXT",
- "implicit" : 1
- }
-, {
- "name" : "helpname.js",
- "bootpath" : "C74:/help/resources",
- "type" : "TEXT",
- "implicit" : 1
- }
-, {
- "name" : "helpstarter.js",
- "bootpath" : "C74:/help/resources",
- "type" : "TEXT",
- "implicit" : 1
- }
-, {
- "name" : "tc.preset.js",
- "bootpath" : "~/Documents/Max 8/Packages/tc.preset/javascript",
- "patcherrelativepath" : "../../../Max 8/Packages/tc.preset/javascript",
- "type" : "TEXT",
- "implicit" : 1
- }
-, {
- "name" : "test.json",
- "bootpath" : "~/Documents/_DEV/tc.preset/help",
- "patcherrelativepath" : ".",
- "type" : "JSON",
- "implicit" : 1
- }
- ],
- "autosave" : 0
- }
-
-}
+ "patcher": {
+ "fileversion": 1,
+ "appversion": {
+ "major": 9,
+ "minor": 1,
+ "revision": 0,
+ "architecture": "x64",
+ "modernui": 1
+ },
+ "classnamespace": "box",
+ "rect": [ 100.0, 100.0, 899.0, 646.0 ],
+ "showrootpatcherontab": 0,
+ "showontab": 0,
+ "boxes": [
+ {
+ "box": {
+ "id": "obj-19",
+ "maxclass": "newobj",
+ "numinlets": 0,
+ "numoutlets": 0,
+ "patcher": {
+ "fileversion": 1,
+ "appversion": {
+ "major": 9,
+ "minor": 1,
+ "revision": 0,
+ "architecture": "x64",
+ "modernui": 1
+ },
+ "classnamespace": "box",
+ "rect": [ 0.0, 26.0, 899.0, 620.0 ],
+ "showontab": 1,
+ "boxes": [],
+ "lines": []
+ },
+ "patching_rect": [ 756.0, 25.7999267578125, 50.0, 22.0 ],
+ "text": "p ?",
+ "varname": "q_tab"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-14",
+ "maxclass": "newobj",
+ "numinlets": 1,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "patching_rect": [ 431.0, 262.0, 138.0, 22.0 ],
+ "saved_object_attributes": {
+ "filename": "helpstarter.js",
+ "parameter_enable": 0
+ },
+ "text": "js helpstarter.js tc.preset"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-5",
+ "maxclass": "newobj",
+ "numinlets": 0,
+ "numoutlets": 0,
+ "patcher": {
+ "fileversion": 1,
+ "appversion": {
+ "major": 9,
+ "minor": 1,
+ "revision": 0,
+ "architecture": "x64",
+ "modernui": 1
+ },
+ "classnamespace": "box",
+ "rect": [ 100.0, 126.0, 899.0, 620.0 ],
+ "showontab": 1,
+ "boxes": [
+ {
+ "box": {
+ "id": "obj-12",
+ "linecount": 2,
+ "maxclass": "comment",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 473.0, 388.0, 278.0, 33.0 ],
+ "text": "Move an existing preset to another slot\n(same action as dragging a preset with the mouse)"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-5",
+ "maxclass": "message",
+ "numinlets": 2,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "patching_rect": [ 403.0, 394.0, 65.0, 22.0 ],
+ "text": "move 4 10"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-32",
+ "maxclass": "comment",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 473.0, 367.0, 365.0, 20.0 ],
+ "text": "Recall the nth (0-based) filled preset, regardless of its slot number"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-26",
+ "maxclass": "message",
+ "numinlets": 2,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "patching_rect": [ 389.0, 366.0, 79.0, 22.0 ],
+ "text": "recall_filled 4"
+ }
+ },
+ {
+ "box": {
+ "fontface": 1,
+ "id": "obj-28",
+ "maxclass": "comment",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 390.0, 335.0, 168.0, 20.0 ],
+ "text": "tc.preset specific messages"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-37",
+ "maxclass": "comment",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 447.0, 473.0, 225.0, 20.0 ],
+ "text": "Sets the lock state of the selected preset"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-35",
+ "maxclass": "toggle",
+ "numinlets": 1,
+ "numoutlets": 1,
+ "outlettype": [ "int" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 380.0, 442.0, 24.0, 24.0 ]
+ }
+ },
+ {
+ "box": {
+ "id": "obj-33",
+ "maxclass": "message",
+ "numinlets": 2,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "patching_rect": [ 380.0, 472.0, 63.0, 22.0 ],
+ "text": "setlock $1"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-31",
+ "linecount": 2,
+ "maxclass": "comment",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 473.0, 423.0, 285.0, 33.0 ],
+ "text": "Select a preset. Doesn't recall it, but updates the umenu, textedit and lock toggle underneath the jsui."
+ }
+ },
+ {
+ "box": {
+ "id": "obj-29",
+ "maxclass": "message",
+ "numinlets": 2,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "patching_rect": [ 418.0, 429.0, 50.0, 22.0 ],
+ "text": "select 3"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-16",
+ "maxclass": "comment",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 447.0, 499.0, 198.0, 20.0 ],
+ "text": "Set the name of the selected preset"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-14",
+ "maxclass": "message",
+ "numinlets": 2,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "patching_rect": [ 320.0, 498.0, 123.0, 22.0 ],
+ "text": "setslotname myname"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-11",
+ "linecount": 2,
+ "maxclass": "comment",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 447.0, 522.0, 171.0, 33.0 ],
+ "text": "A fail-safe message to resync the jsui to the pattrstorage"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-6",
+ "maxclass": "message",
+ "numinlets": 2,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "patching_rect": [ 399.0, 527.0, 44.0, 22.0 ],
+ "text": "resync"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-38",
+ "maxclass": "newobj",
+ "numinlets": 1,
+ "numoutlets": 3,
+ "outlettype": [ "", "", "" ],
+ "patching_rect": [ 636.0, 16.0, 40.0, 22.0 ],
+ "restore": [ -0.714285714285714, -0.714285714285714, -0.6, -0.542857142857143, -0.457142857142857, -0.342857142857143, -0.171428571428571, -0.028571428571429, 0.028571428571428, 0.142857142857143, 0.228571428571429, 0.371428571428571, 0.485714285714286, 0.571428571428571, 0.714285714285714, 0.8 ],
+ "saved_object_attributes": {
+ "parameter_enable": 0,
+ "parameter_mappable": 0
+ },
+ "text": "pattr",
+ "varname": "u099005226"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-39",
+ "maxclass": "multislider",
+ "numinlets": 1,
+ "numoutlets": 2,
+ "outlettype": [ "", "" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 647.0, 43.0, 136.0, 78.0 ],
+ "size": 16,
+ "varname": "multislider"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-30",
+ "maxclass": "comment",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 680.0, 17.0, 118.0, 20.0 ],
+ "text": "Some data to store"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-23",
+ "maxclass": "message",
+ "numinlets": 2,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "patching_rect": [ 464.0, 249.0, 42.0, 22.0 ],
+ "text": "lockall"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-18",
+ "maxclass": "message",
+ "numinlets": 2,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "patching_rect": [ 618.0, 249.0, 60.0, 22.0 ],
+ "text": "renumber"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-15",
+ "linecount": 7,
+ "maxclass": "comment",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 405.0, 146.0, 308.0, 100.0 ],
+ "text": "Lots of pattrstorage methods modify presets but don't trigger any output from the pattrstorage object. If you need timing accuracy, send these messages to the pattrstorage first, then send a 'resync' to tc.preset. Otherwise, you can send them directly to tc.preset, which will act as a passthrough and trigger its resync method automatically."
+ }
+ },
+ {
+ "box": {
+ "id": "obj-25",
+ "maxclass": "message",
+ "numinlets": 2,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "patching_rect": [ 685.0, 249.0, 59.0, 22.0 ],
+ "text": "remove 3"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-19",
+ "maxclass": "message",
+ "numinlets": 2,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "patching_rect": [ 564.0, 249.0, 48.0, 22.0 ],
+ "text": "insert 3"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-13",
+ "maxclass": "message",
+ "numinlets": 2,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "patching_rect": [ 750.0, 249.0, 35.0, 22.0 ],
+ "text": "clear"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-54",
+ "linecount": 3,
+ "maxclass": "comment",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 10.0, 120.0, 181.0, 47.0 ],
+ "text": "\"recallmulti\" and \"slotname\" should be sent to the pattrstorage first then to the jsui"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-52",
+ "linecount": 3,
+ "maxclass": "comment",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 199.0, 120.0, 163.0, 47.0 ],
+ "text": "Recall and delete messages should be sent to the pattrstorage only"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-50",
+ "maxclass": "message",
+ "numinlets": 2,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "patching_rect": [ 253.0, 172.0, 84.0, 22.0 ],
+ "text": "recall 1 3 0.75"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-48",
+ "maxclass": "message",
+ "numinlets": 2,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "patching_rect": [ 199.0, 172.0, 47.0, 22.0 ],
+ "text": "recall 3"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-46",
+ "maxclass": "message",
+ "numinlets": 2,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "patching_rect": [ 42.0, 201.0, 94.0, 22.0 ],
+ "text": "slotname 3 third"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-44",
+ "maxclass": "newobj",
+ "numinlets": 1,
+ "numoutlets": 2,
+ "outlettype": [ "", "" ],
+ "patching_rect": [ 10.0, 233.0, 38.0, 22.0 ],
+ "text": "t l l"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-43",
+ "maxclass": "message",
+ "numinlets": 2,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "patching_rect": [ 10.0, 172.0, 123.0, 22.0 ],
+ "text": "recallmulti 1.6 2.1 3.3"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-22",
+ "maxclass": "message",
+ "numinlets": 2,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "patching_rect": [ 254.0, 202.0, 51.0, 22.0 ],
+ "text": "delete 2"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-20",
+ "maxclass": "message",
+ "numinlets": 2,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "patching_rect": [ 408.0, 249.0, 50.0, 22.0 ],
+ "text": "lock 3 1"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-56",
+ "maxclass": "toggle",
+ "numinlets": 1,
+ "numoutlets": 1,
+ "outlettype": [ "int" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 242.5, 506.0, 24.0, 24.0 ]
+ }
+ },
+ {
+ "box": {
+ "id": "obj-27",
+ "keymode": 1,
+ "lines": 1,
+ "maxclass": "textedit",
+ "nosymquotes": 1,
+ "numinlets": 1,
+ "numoutlets": 4,
+ "outlettype": [ "", "int", "", "" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 129.0, 506.0, 102.0, 24.0 ],
+ "text": "up"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-17",
+ "items": [ 1, "up", ",", 2, "down", ",", 3, "sine", ",", 4, "random", ",", 7, "W" ],
+ "maxclass": "umenu",
+ "numinlets": 1,
+ "numoutlets": 3,
+ "outlettype": [ "int", "", "" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 10.0, 507.0, 115.0, 22.0 ]
+ }
+ },
+ {
+ "box": {
+ "fontsize": 13.0,
+ "id": "obj-8",
+ "linecount": 2,
+ "maxclass": "comment",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 10.0, 65.0, 489.0, 36.0 ],
+ "text": "The pattrstorage object doesn't provide an output for all of its available methods.\nTo keep tc.preset in sync, some messages need to be addressed in a specific way."
+ }
+ },
+ {
+ "box": {
+ "id": "obj-3",
+ "maxclass": "message",
+ "numinlets": 2,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "patching_rect": [ 513.0, 249.0, 45.0, 22.0 ],
+ "text": "store 3"
+ }
+ },
+ {
+ "box": {
+ "border": 0,
+ "filename": "helpname.js",
+ "id": "obj-4",
+ "ignoreclick": 1,
+ "jsarguments": [ "tc.preset" ],
+ "maxclass": "jsui",
+ "numinlets": 1,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 10.0, 10.0, 188.2880096435547, 57.599853515625 ]
+ }
+ },
+ {
+ "box": {
+ "border": 0,
+ "embedstate": [
+ [ "color_5", 0.283, 0.606, 0.559, 1 ],
+ [ "ignoreslotzero", 1 ],
+ [ "edited_color", 1, 0.49, 0.263, 1 ],
+ [ "empty_slot_color", 0.349, 0.349, 0.349, 1 ],
+ [ "spacing", 4 ],
+ [ "bgcolor", 0.2, 0.2, 0.2, 1 ],
+ [ "color_1", 0.743, 0.41, 0.501, 1 ],
+ [ "text_color", 0.129, 0.129, 0.129, 1 ],
+ [ "color_mode", 0 ],
+ [ "slot_round", 0 ],
+ [ "color_6", 0.316, 0.616, 0.377, 1 ],
+ [ "nbslot_edit", 1 ],
+ [ "active_slot_color", 0.808, 0.898, 0.91, 1 ],
+ [ "min_rows", 10 ],
+ [ "select_mode", 0 ],
+ [ "unique_names", 0 ],
+ [ "color_2", 0.679, 0.405, 0.669, 1 ],
+ [ "scrollable", 0 ],
+ [ "send_name", "none" ],
+ [ "stored_slot_color", 0.502, 0.502, 0.502, 1 ],
+ [ "margin", 4 ],
+ [ "layout", 0 ],
+ [ "use_uid", 0 ],
+ [ "fontsize", 14 ],
+ [ "color_3", 0.527, 0.459, 0.756, 1 ],
+ [ "recall_passthrough", 1 ],
+ [ "ui_rename", 0 ],
+ [ "menu_mode", 0 ],
+ [ "interp_slot_color", 1, 1, 1, 0.8 ],
+ [ "fontname", "Arial" ],
+ [ "pattrstorage", "test" ],
+ [ "bubblesize", 14 ],
+ [ "color_4", 0.367, 0.542, 0.712, 1 ],
+ [ "autowriteagain", 0 ],
+ [ "poll_edited", 0 ],
+ [ "display_interp", 1 ],
+ [ "text_bg_color", 1, 1, 1, 0.5 ]
+ ],
+ "filename": "tc.preset.js",
+ "id": "obj-10",
+ "maxclass": "jsui",
+ "numinlets": 1,
+ "numoutlets": 5,
+ "outlettype": [ "", "", "", "", "" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 10.0, 378.0, 257.0, 112.0 ]
+ }
+ },
+ {
+ "box": {
+ "id": "obj-1",
+ "maxclass": "newobj",
+ "numinlets": 1,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "patching_rect": [ 29.0, 303.0, 176.0, 22.0 ],
+ "saved_object_attributes": {
+ "client_rect": [ 100, 172, 596, 755 ],
+ "parameter_enable": 0,
+ "parameter_mappable": 0,
+ "storage_rect": [ 365, 44, 816, 172 ]
+ },
+ "text": "pattrstorage test @savemode 0",
+ "varname": "test"
+ }
+ }
+ ],
+ "lines": [
+ {
+ "patchline": {
+ "destination": [ "obj-10", 0 ],
+ "source": [ "obj-1", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-17", 0 ],
+ "source": [ "obj-10", 1 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-27", 0 ],
+ "source": [ "obj-10", 2 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-56", 0 ],
+ "source": [ "obj-10", 3 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-10", 0 ],
+ "source": [ "obj-13", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-10", 0 ],
+ "source": [ "obj-14", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-10", 0 ],
+ "source": [ "obj-18", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-10", 0 ],
+ "source": [ "obj-19", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-10", 0 ],
+ "source": [ "obj-20", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-1", 0 ],
+ "source": [ "obj-22", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-10", 0 ],
+ "source": [ "obj-23", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-10", 0 ],
+ "source": [ "obj-25", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-10", 0 ],
+ "source": [ "obj-26", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-10", 0 ],
+ "source": [ "obj-29", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-10", 0 ],
+ "source": [ "obj-3", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-10", 0 ],
+ "source": [ "obj-33", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-33", 0 ],
+ "source": [ "obj-35", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-39", 0 ],
+ "source": [ "obj-38", 1 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-44", 0 ],
+ "source": [ "obj-43", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-1", 0 ],
+ "source": [ "obj-44", 1 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-10", 0 ],
+ "source": [ "obj-44", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-44", 0 ],
+ "source": [ "obj-46", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-1", 0 ],
+ "source": [ "obj-48", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-10", 0 ],
+ "source": [ "obj-5", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-1", 0 ],
+ "source": [ "obj-50", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-10", 0 ],
+ "source": [ "obj-6", 0 ]
+ }
+ }
+ ]
+ },
+ "patching_rect": [ 311.0, 27.7999267578125, 73.0, 22.0 ],
+ "text": "p messages",
+ "varname": "messages"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-26",
+ "maxclass": "newobj",
+ "numinlets": 0,
+ "numoutlets": 0,
+ "patcher": {
+ "fileversion": 1,
+ "appversion": {
+ "major": 9,
+ "minor": 1,
+ "revision": 0,
+ "architecture": "x64",
+ "modernui": 1
+ },
+ "classnamespace": "box",
+ "rect": [ 0.0, 26.0, 899.0, 620.0 ],
+ "showontab": 1,
+ "boxes": [
+ {
+ "box": {
+ "id": "obj-11",
+ "linecount": 8,
+ "maxclass": "comment",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 567.0, 75.0, 309.0, 114.0 ],
+ "text": "By default, clicking a stored preset in tc.preset recalls it immediately, the recall message being sent remotely to pattrstorage.\nWhen recall_passthrough is disabled, the recall mesage is first sent out of tc.preset leftmost outlet and it's up to the user to pass it to pattrstorage, potentially with some custom logic, like for triggering interpolations (see the red patch cord)"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-2",
+ "maxclass": "newobj",
+ "numinlets": 1,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "patcher": {
+ "fileversion": 1,
+ "appversion": {
+ "major": 9,
+ "minor": 1,
+ "revision": 0,
+ "architecture": "x64",
+ "modernui": 1
+ },
+ "classnamespace": "box",
+ "rect": [ 59.0, 107.0, 640.0, 480.0 ],
+ "boxes": [
+ {
+ "box": {
+ "id": "obj-2",
+ "maxclass": "newobj",
+ "numinlets": 2,
+ "numoutlets": 2,
+ "outlettype": [ "", "" ],
+ "patching_rect": [ 52.5, 109.0, 68.0, 22.0 ],
+ "text": "route recall"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-3",
+ "maxclass": "message",
+ "numinlets": 2,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "patching_rect": [ 159.16666666666669, 276.0, 45.0, 22.0 ],
+ "text": "store 0"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-5",
+ "maxclass": "newobj",
+ "numinlets": 1,
+ "numoutlets": 3,
+ "outlettype": [ "bang", "int", "bang" ],
+ "patching_rect": [ 52.5, 170.0, 125.66666666666669, 22.0 ],
+ "text": "t b i b"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-4",
+ "maxclass": "newobj",
+ "numinlets": 2,
+ "numoutlets": 1,
+ "outlettype": [ "int" ],
+ "patching_rect": [ 52.5, 239.0, 29.5, 22.0 ],
+ "text": "i"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-1",
+ "maxclass": "newobj",
+ "numinlets": 1,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "patching_rect": [ 218.0, 170.0, 90.0, 22.0 ],
+ "text": "loadmess 1000"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-31",
+ "maxclass": "newobj",
+ "numinlets": 1,
+ "numoutlets": 2,
+ "outlettype": [ "bang", "float" ],
+ "patching_rect": [ 52.5, 334.0, 29.5, 22.0 ],
+ "text": "t b f"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-29",
+ "maxclass": "newobj",
+ "numinlets": 3,
+ "numoutlets": 2,
+ "outlettype": [ "", "bang" ],
+ "patching_rect": [ 52.5, 307.0, 41.0, 22.0 ],
+ "text": "line 0."
+ }
+ },
+ {
+ "box": {
+ "id": "obj-25",
+ "maxclass": "message",
+ "numinlets": 2,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "patching_rect": [ 52.5, 276.0, 52.0, 22.0 ],
+ "text": "0., 1. $1"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-14",
+ "maxclass": "newobj",
+ "numinlets": 4,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "patching_rect": [ 52.5, 383.0, 99.0, 22.0 ],
+ "text": "pack recall 0 0 0."
+ }
+ },
+ {
+ "box": {
+ "comment": "",
+ "id": "obj-32",
+ "index": 1,
+ "maxclass": "inlet",
+ "numinlets": 0,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "patching_rect": [ 52.5, 40.0, 30.0, 30.0 ]
+ }
+ },
+ {
+ "box": {
+ "comment": "",
+ "id": "obj-33",
+ "index": 1,
+ "maxclass": "outlet",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 52.5, 444.0, 30.0, 30.0 ]
+ }
+ }
+ ],
+ "lines": [
+ {
+ "patchline": {
+ "destination": [ "obj-4", 1 ],
+ "source": [ "obj-1", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-33", 0 ],
+ "source": [ "obj-14", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-5", 0 ],
+ "source": [ "obj-2", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-29", 0 ],
+ "source": [ "obj-25", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-31", 0 ],
+ "source": [ "obj-29", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-33", 0 ],
+ "source": [ "obj-3", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-14", 3 ],
+ "source": [ "obj-31", 1 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-14", 0 ],
+ "source": [ "obj-31", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-2", 0 ],
+ "source": [ "obj-32", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-25", 0 ],
+ "source": [ "obj-4", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-14", 2 ],
+ "source": [ "obj-5", 1 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-3", 0 ],
+ "source": [ "obj-5", 2 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-4", 0 ],
+ "source": [ "obj-5", 0 ]
+ }
+ }
+ ]
+ },
+ "patching_rect": [ 10.0, 506.0, 52.0, 22.0 ],
+ "text": "p interp"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-38",
+ "maxclass": "newobj",
+ "numinlets": 1,
+ "numoutlets": 3,
+ "outlettype": [ "", "", "" ],
+ "patching_rect": [ 293.0, 378.0, 40.0, 22.0 ],
+ "restore": [ 0.873015873015873, 0.714285714285714, 0.587301587301587, 0.46031746031746, 0.301587301587302, 0.174603174603175, 0.015873015873016, -0.111111111111111, -0.238095238095238, -0.333333333333333, -0.428571428571429, -0.523809523809524, -0.587301587301587, -0.682539682539683, -0.777777777777778, -0.873015873015873 ],
+ "saved_object_attributes": {
+ "parameter_enable": 0,
+ "parameter_mappable": 0
+ },
+ "text": "pattr",
+ "varname": "u099005226"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-34",
+ "maxclass": "multislider",
+ "numinlets": 1,
+ "numoutlets": 2,
+ "outlettype": [ "", "" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 304.0, 405.0, 136.0, 78.0 ],
+ "size": 16,
+ "varname": "multislider"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-30",
+ "maxclass": "comment",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 337.0, 379.0, 118.0, 20.0 ],
+ "text": "Some data to store"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-24",
+ "linecount": 16,
+ "maxclass": "comment",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 567.0, 262.0, 303.0, 221.0 ],
+ "text": "The value of poll_edited defines the period at which tc.preset polls pattrstorage with the `getedited' message to know if the data in the currently active preset has been edited. If so, a colored dot appears on top of the preset. This can be used as a reminder to re-save the preset after some changes. At 0., the feature is disabled.\n\nRecall a preset by double-clicking it, and draw a shape in the multislider below to see this feature in action.\n\nThis 'edited' state is very sensitive and doesn't necessarily means that the value of a parameter has changed. If a pattrized object receives the same value it is currently at, pattrstorage will report the current preset as 'edited' even though no value has changed."
+ }
+ },
+ {
+ "box": {
+ "id": "obj-20",
+ "linecount": 6,
+ "maxclass": "comment",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 441.0, 527.0, 261.0, 87.0 ],
+ "text": "Make the preset menu to be populated by the preset number and/or their name.\nIn modes 0 and 2, use the leftmost outlet of umenu prepended by the recall_filled message to recall the correct preset. In mode 1, you can use the umenu's middle outlet directly."
+ }
+ },
+ {
+ "box": {
+ "id": "obj-18",
+ "maxclass": "message",
+ "numinlets": 2,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "patching_rect": [ 69.5, 592.0, 85.0, 22.0 ],
+ "text": "recall_filled $1"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-14",
+ "linecount": 4,
+ "maxclass": "comment",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 293.0, 145.0, 242.0, 60.0 ],
+ "text": "Forces preset names to be unique when by appending \"bis\" to them. Gets applied only to presets subsequently renamed through tc.preset."
+ }
+ },
+ {
+ "box": {
+ "id": "obj-12",
+ "linecount": 6,
+ "maxclass": "comment",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 293.0, 246.0, 240.0, 87.0 ],
+ "text": "Use the attached textedit, if any, to edit slot names directly in the JSUI frame when clicking a slot while holding the control key. When disabled, the textedit remains untouched but gets focused when clicking a slot while holding the control key."
+ }
+ },
+ {
+ "box": {
+ "id": "obj-56",
+ "maxclass": "toggle",
+ "numinlets": 1,
+ "numoutlets": 1,
+ "outlettype": [ "int" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 248.0, 505.0, 24.0, 24.0 ]
+ }
+ },
+ {
+ "box": {
+ "fontface": 0,
+ "fontname": "Arial",
+ "fontsize": 12.0,
+ "id": "obj-27",
+ "keymode": 1,
+ "lines": 1,
+ "maxclass": "textedit",
+ "nosymquotes": 1,
+ "numinlets": 1,
+ "numoutlets": 4,
+ "outlettype": [ "", "int", "", "" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 129.0, 505.0, 102.0, 24.0 ],
+ "text": "yes !"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-17",
+ "items": [ 1, "up", ",", 2, "down", ",", 3, "sine", ",", 4, "random", ",", 7, "W" ],
+ "maxclass": "umenu",
+ "numinlets": 1,
+ "numoutlets": 3,
+ "outlettype": [ "int", "", "" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 69.5, 563.0, 115.0, 22.0 ]
+ }
+ },
+ {
+ "box": {
+ "border": 0,
+ "embedstate": [
+ [ "color_5", 0.283, 0.606, 0.559, 1 ],
+ [ "ignoreslotzero", 1 ],
+ [ "edited_color", 1, 0.49, 0.263, 1 ],
+ [ "empty_slot_color", 0.349, 0.349, 0.349, 1 ],
+ [ "spacing", 4 ],
+ [ "bgcolor", 0.2, 0.2, 0.2, 1 ],
+ [ "color_1", 0.743, 0.41, 0.501, 1 ],
+ [ "text_color", 0.129, 0.129, 0.129, 1 ],
+ [ "color_mode", 0 ],
+ [ "slot_round", 0 ],
+ [ "color_6", 0.316, 0.616, 0.377, 1 ],
+ [ "nbslot_edit", 1 ],
+ [ "active_slot_color", 0.808, 0.898, 0.91, 1 ],
+ [ "min_rows", 10 ],
+ [ "select_mode", 1 ],
+ [ "unique_names", 0 ],
+ [ "color_2", 0.679, 0.405, 0.669, 1 ],
+ [ "scrollable", 0 ],
+ [ "send_name", "none" ],
+ [ "stored_slot_color", 0.502, 0.502, 0.502, 1 ],
+ [ "margin", 4 ],
+ [ "layout", 0 ],
+ [ "use_uid", 0 ],
+ [ "fontsize", 14 ],
+ [ "color_3", 0.527, 0.459, 0.756, 1 ],
+ [ "recall_passthrough", 0 ],
+ [ "ui_rename", 1 ],
+ [ "menu_mode", 0 ],
+ [ "interp_slot_color", 1, 1, 1, 0.8 ],
+ [ "fontname", "Arial" ],
+ [ "pattrstorage", "test" ],
+ [ "bubblesize", 14 ],
+ [ "color_4", 0.367, 0.542, 0.712, 1 ],
+ [ "autowriteagain", 0 ],
+ [ "poll_edited", 1 ],
+ [ "display_interp", 1 ],
+ [ "text_bg_color", 1, 1, 1, 0.5 ]
+ ],
+ "filename": "tc.preset.js",
+ "id": "obj-10",
+ "maxclass": "jsui",
+ "numinlets": 1,
+ "numoutlets": 5,
+ "outlettype": [ "", "", "", "", "" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 10.0, 378.0, 257.0, 112.0 ]
+ }
+ },
+ {
+ "box": {
+ "id": "obj-1",
+ "maxclass": "newobj",
+ "numinlets": 1,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "patching_rect": [ 10.0, 309.0, 176.0, 22.0 ],
+ "saved_object_attributes": {
+ "client_rect": [ 100, 172, 596, 755 ],
+ "parameter_enable": 0,
+ "parameter_mappable": 0,
+ "storage_rect": [ 365, 44, 816, 172 ]
+ },
+ "text": "pattrstorage test @savemode 0",
+ "varname": "test"
+ }
+ },
+ {
+ "box": {
+ "border": 0,
+ "filename": "helpname.js",
+ "id": "obj-4",
+ "ignoreclick": 1,
+ "jsarguments": [ "tc.preset" ],
+ "maxclass": "jsui",
+ "numinlets": 1,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 10.0, 10.0, 188.2880096435547, 57.599853515625 ]
+ }
+ },
+ {
+ "box": {
+ "id": "obj-115",
+ "linecount": 5,
+ "maxclass": "comment",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 10.0, 101.0, 247.0, 74.0 ],
+ "text": "When select mode is enabled, a single click selects a stored preset without recalling it. A double click recalls the preset. It allows to drag it, set its name and lock state while keeping the last recalled preset active."
+ }
+ },
+ {
+ "box": {
+ "id": "obj-50",
+ "linecount": 4,
+ "maxclass": "comment",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 293.0, 46.0, 249.0, 60.0 ],
+ "text": "Makes displayed previous active slot and interpolation status to ignore slot 0. Can be convenient when using slot 0 as a temporary step for interpolation. It is enabled by default."
+ }
+ },
+ {
+ "box": {
+ "id": "obj-90",
+ "linecount": 4,
+ "maxclass": "comment",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 10.0, 218.0, 241.0, 60.0 ],
+ "text": "When enabled, sends writeagain to pattrstrage when a preset has been stored/renamed/deleted/moved/(un)locked, keeping the json file always up to date."
+ }
+ },
+ {
+ "box": {
+ "attr": "autowriteagain",
+ "id": "obj-40",
+ "maxclass": "attrui",
+ "numinlets": 1,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 10.0, 194.0, 123.0, 22.0 ]
+ }
+ },
+ {
+ "box": {
+ "attr": "ignoreslotzero",
+ "id": "obj-46",
+ "maxclass": "attrui",
+ "numinlets": 1,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 293.0, 22.0, 124.0, 22.0 ]
+ }
+ },
+ {
+ "box": {
+ "attr": "select_mode",
+ "id": "obj-127",
+ "maxclass": "attrui",
+ "numinlets": 1,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 10.0, 77.0, 123.0, 22.0 ]
+ }
+ },
+ {
+ "box": {
+ "attr": "unique_names",
+ "id": "obj-6",
+ "maxclass": "attrui",
+ "numinlets": 1,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 293.0, 121.0, 124.0, 22.0 ],
+ "text_width": 101.0
+ }
+ },
+ {
+ "box": {
+ "attr": "ui_rename",
+ "id": "obj-8",
+ "maxclass": "attrui",
+ "numinlets": 1,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 293.0, 222.0, 101.0, 22.0 ],
+ "text_width": 78.0
+ }
+ },
+ {
+ "box": {
+ "attr": "menu_mode",
+ "id": "obj-15",
+ "maxclass": "attrui",
+ "numinlets": 1,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 197.0, 563.0, 242.0, 22.0 ],
+ "text_width": 87.0
+ }
+ },
+ {
+ "box": {
+ "attr": "edited_color",
+ "id": "obj-21",
+ "maxclass": "attrui",
+ "numinlets": 1,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 567.0, 237.0, 187.0, 22.0 ]
+ }
+ },
+ {
+ "box": {
+ "attr": "poll_edited",
+ "id": "obj-22",
+ "maxclass": "attrui",
+ "numinlets": 1,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 567.0, 213.0, 150.0, 22.0 ]
+ }
+ },
+ {
+ "box": {
+ "attr": "recall_passthrough",
+ "id": "obj-5",
+ "maxclass": "attrui",
+ "numinlets": 1,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 567.0, 49.0, 145.0, 22.0 ],
+ "text_width": 122.0
+ }
+ }
+ ],
+ "lines": [
+ {
+ "patchline": {
+ "destination": [ "obj-10", 0 ],
+ "source": [ "obj-1", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-17", 0 ],
+ "source": [ "obj-10", 1 ]
+ }
+ },
+ {
+ "patchline": {
+ "color": [ 0.839172840118408, 0.0, 0.0, 1.0 ],
+ "destination": [ "obj-2", 0 ],
+ "source": [ "obj-10", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-27", 0 ],
+ "source": [ "obj-10", 2 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-56", 0 ],
+ "source": [ "obj-10", 3 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-10", 0 ],
+ "hidden": 1,
+ "source": [ "obj-127", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-10", 0 ],
+ "hidden": 1,
+ "source": [ "obj-15", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-18", 0 ],
+ "source": [ "obj-17", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-10", 0 ],
+ "midpoints": [ 79.0, 617.3515625, 3.55078125, 617.3515625, 3.55078125, 375.0, 19.5, 375.0 ],
+ "source": [ "obj-18", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "color": [ 0.839172840118408, 0.0, 0.0, 1.0 ],
+ "destination": [ "obj-1", 0 ],
+ "midpoints": [ 19.5, 531.0, 7.359375, 531.0, 7.359375, 303.64453125, 19.5, 303.64453125 ],
+ "source": [ "obj-2", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-10", 0 ],
+ "hidden": 1,
+ "source": [ "obj-21", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-10", 0 ],
+ "hidden": 1,
+ "source": [ "obj-22", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-10", 0 ],
+ "midpoints": [ 138.5, 540.0, 3.4296875, 540.0, 3.4296875, 375.0, 19.5, 375.0 ],
+ "source": [ "obj-27", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-34", 0 ],
+ "source": [ "obj-38", 1 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-10", 0 ],
+ "hidden": 1,
+ "source": [ "obj-40", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-10", 0 ],
+ "hidden": 1,
+ "source": [ "obj-46", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-10", 0 ],
+ "hidden": 1,
+ "source": [ "obj-5", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-10", 0 ],
+ "hidden": 1,
+ "source": [ "obj-6", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-10", 0 ],
+ "hidden": 1,
+ "source": [ "obj-8", 0 ]
+ }
+ }
+ ]
+ },
+ "patching_rect": [ 393.0, 26.7999267578125, 65.0, 22.0 ],
+ "text": "p behavior",
+ "varname": "behavior"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-9",
+ "maxclass": "newobj",
+ "numinlets": 0,
+ "numoutlets": 0,
+ "patcher": {
+ "fileversion": 1,
+ "appversion": {
+ "major": 9,
+ "minor": 1,
+ "revision": 0,
+ "architecture": "x64",
+ "modernui": 1
+ },
+ "classnamespace": "box",
+ "rect": [ 0.0, 26.0, 899.0, 620.0 ],
+ "showontab": 1,
+ "boxes": [
+ {
+ "box": {
+ "bgcolor": [ 0.56078431372549, 0.796078431372549, 0.474509803921569, 1.0 ],
+ "bgmode": 2,
+ "border": 0,
+ "clickthrough": 0,
+ "embed": 1,
+ "enablehscroll": 0,
+ "enablevscroll": 0,
+ "id": "obj-23",
+ "lockeddragscroll": 0,
+ "lockedsize": 0,
+ "maxclass": "bpatcher",
+ "numinlets": 0,
+ "numoutlets": 0,
+ "offset": [ 0.0, 0.0 ],
+ "patcher": {
+ "fileversion": 1,
+ "appversion": {
+ "major": 9,
+ "minor": 1,
+ "revision": 0,
+ "architecture": "x64",
+ "modernui": 1
+ },
+ "classnamespace": "box",
+ "rect": [ 59.0, 119.0, 1000.0, 755.0 ],
+ "boxes": [
+ {
+ "box": {
+ "fontface": 1,
+ "fontsize": 16.0,
+ "id": "obj-4",
+ "maxclass": "comment",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 159.0, 13.0, 107.0, 24.0 ],
+ "text": "tc.preset_list"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-27",
+ "keymode": 1,
+ "lines": 1,
+ "maxclass": "textedit",
+ "nosymquotes": 1,
+ "numinlets": 1,
+ "numoutlets": 4,
+ "outlettype": [ "", "int", "", "" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 156.5, 110.0, 100.0, 23.0 ]
+ }
+ },
+ {
+ "box": {
+ "id": "obj-8",
+ "items": "",
+ "maxclass": "umenu",
+ "numinlets": 1,
+ "numoutlets": 3,
+ "outlettype": [ "int", "", "" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 156.5, 74.0, 112.0, 22.0 ]
+ }
+ },
+ {
+ "box": {
+ "border": 0,
+ "embedstate": [
+ [ "color_5", 0.283, 0.606, 0.559, 1 ],
+ [ "ignoreslotzero", 1 ],
+ [ "edited_color", 1, 0.49, 0.263, 1 ],
+ [ "empty_slot_color", 0.349, 0.349, 0.349, 1 ],
+ [ "spacing", 4 ],
+ [ "bgcolor", 0.2, 0.2, 0.2, 1 ],
+ [ "color_1", 0.743, 0.41, 0.501, 1 ],
+ [ "text_color", 0.129, 0.129, 0.129, 1 ],
+ [ "color_mode", 0 ],
+ [ "slot_round", 0 ],
+ [ "color_6", 0.316, 0.616, 0.377, 1 ],
+ [ "nbslot_edit", 1 ],
+ [ "active_slot_color", 0.808, 0.898, 0.91, 1 ],
+ [ "min_rows", 10 ],
+ [ "select_mode", 0 ],
+ [ "unique_names", 0 ],
+ [ "color_2", 0.679, 0.405, 0.669, 1 ],
+ [ "scrollable", 1 ],
+ [ "send_name", "none" ],
+ [ "stored_slot_color", 0.502, 0.502, 0.502, 1 ],
+ [ "margin", 4 ],
+ [ "layout", 1 ],
+ [ "use_uid", 0 ],
+ [ "fontsize", 14 ],
+ [ "color_3", 0.527, 0.459, 0.756, 1 ],
+ [ "recall_passthrough", 1 ],
+ [ "ui_rename", 1 ],
+ [ "menu_mode", 0 ],
+ [ "interp_slot_color", 1, 1, 1, 0.8 ],
+ [ "fontname", "Arial" ],
+ [ "pattrstorage", "mypat" ],
+ [ "bubblesize", 14 ],
+ [ "color_4", 0.367, 0.542, 0.712, 1 ],
+ [ "autowriteagain", 0 ],
+ [ "poll_edited", 0 ],
+ [ "display_interp", 1 ],
+ [ "text_bg_color", 1, 1, 1, 0.5 ]
+ ],
+ "filename": "tc.preset.js",
+ "id": "obj-10",
+ "maxclass": "jsui",
+ "numinlets": 1,
+ "numoutlets": 5,
+ "outlettype": [ "", "", "", "", "" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 16.0, 74.0, 130.0, 95.0 ]
+ }
+ },
+ {
+ "box": {
+ "id": "obj-1",
+ "maxclass": "newobj",
+ "numinlets": 1,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "patching_rect": [ 16.0, 34.0, 109.0, 22.0 ],
+ "saved_object_attributes": {
+ "client_rect": [ 100, 172, 596, 755 ],
+ "parameter_enable": 0,
+ "parameter_mappable": 0,
+ "storage_rect": [ 365, 44, 816, 172 ]
+ },
+ "text": "pattrstorage mypat",
+ "varname": "mypat"
+ }
+ }
+ ],
+ "lines": [
+ {
+ "patchline": {
+ "destination": [ "obj-10", 0 ],
+ "source": [ "obj-1", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-27", 0 ],
+ "source": [ "obj-10", 2 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-8", 0 ],
+ "source": [ "obj-10", 1 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-10", 0 ],
+ "source": [ "obj-27", 0 ]
+ }
+ }
+ ]
+ },
+ "patching_rect": [ 75.0, 366.0, 287.0, 194.0 ],
+ "varname": "bpatcher[1]",
+ "viewvisibility": 1
+ }
+ },
+ {
+ "box": {
+ "bgcolor": [ 0.486274509803922, 0.741176470588235, 0.705882352941177, 1.0 ],
+ "bgmode": 2,
+ "border": 0,
+ "clickthrough": 0,
+ "embed": 1,
+ "enablehscroll": 0,
+ "enablevscroll": 0,
+ "id": "obj-22",
+ "lockeddragscroll": 0,
+ "lockedsize": 0,
+ "maxclass": "bpatcher",
+ "numinlets": 0,
+ "numoutlets": 0,
+ "offset": [ 0.0, 0.0 ],
+ "patcher": {
+ "fileversion": 1,
+ "appversion": {
+ "major": 9,
+ "minor": 1,
+ "revision": 0,
+ "architecture": "x64",
+ "modernui": 1
+ },
+ "classnamespace": "box",
+ "rect": [ 59.0, 119.0, 584.0, 605.0 ],
+ "boxes": [
+ {
+ "box": {
+ "id": "obj-1",
+ "items": [ "Classic", ",", "Cycle", ",", "Select", ",", "Custom" ],
+ "maxclass": "umenu",
+ "numinlets": 1,
+ "numoutlets": 3,
+ "outlettype": [ "int", "", "" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 171.0, 2.0, 100.0, 22.0 ]
+ }
+ },
+ {
+ "box": {
+ "embedstate": [
+ [ "color_5", 0.283, 0.606, 0.559, 1 ],
+ [ "ignoreslotzero", 1 ],
+ [ "edited_color", 1, 0.49, 0.263, 1 ],
+ [ "empty_slot_color", 0.349, 0.349, 0.349, 1 ],
+ [ "spacing", 4 ],
+ [ "bgcolor", 0.2, 0.2, 0.2, 1 ],
+ [ "color_1", 0.743, 0.41, 0.501, 1 ],
+ [ "text_color", 0.129, 0.129, 0.129, 1 ],
+ [ "color_mode", 0 ],
+ [ "slot_round", 0 ],
+ [ "color_6", 0.316, 0.616, 0.377, 1 ],
+ [ "nbslot_edit", 1 ],
+ [ "active_slot_color", 0.808, 0.898, 0.91, 1 ],
+ [ "min_rows", 10 ],
+ [ "select_mode", 0 ],
+ [ "unique_names", 0 ],
+ [ "color_2", 0.679, 0.405, 0.669, 1 ],
+ [ "scrollable", 0 ],
+ [ "send_name", "none" ],
+ [ "stored_slot_color", 0.502, 0.502, 0.502, 1 ],
+ [ "margin", 4 ],
+ [ "layout", 0 ],
+ [ "use_uid", 0 ],
+ [ "fontsize", 14 ],
+ [ "color_3", 0.527, 0.459, 0.756, 1 ],
+ [ "recall_passthrough", 1 ],
+ [ "ui_rename", 0 ],
+ [ "menu_mode", 0 ],
+ [ "interp_slot_color", 1, 1, 1, 0.8 ],
+ [ "fontname", "Arial" ],
+ [ "pattrstorage", "mypat" ],
+ [ "bubblesize", 14 ],
+ [ "color_4", 0.367, 0.542, 0.712, 1 ],
+ [ "autowriteagain", 0 ],
+ [ "poll_edited", 0 ],
+ [ "display_interp", 1 ],
+ [ "text_bg_color", 1, 1, 1, 0.5 ]
+ ],
+ "filename": "tc.preset.js",
+ "id": "obj-2",
+ "maxclass": "jsui",
+ "numinlets": 1,
+ "numoutlets": 5,
+ "outlettype": [ "", "", "", "", "" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 20.0, 115.0, 130.0, 58.0 ]
+ }
+ },
+ {
+ "box": {
+ "fontface": 1,
+ "fontsize": 16.0,
+ "id": "obj-4",
+ "maxclass": "comment",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 20.0, 17.0, 123.0, 24.0 ],
+ "text": "tc.preset_color"
+ }
+ },
+ {
+ "box": {
+ "button": 1,
+ "id": "obj-17",
+ "maxclass": "tab",
+ "numinlets": 1,
+ "numoutlets": 3,
+ "outlettype": [ "int", "", "" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 171.0, 52.0, 139.0, 24.0 ],
+ "tabs": [ "1", "2", "3", "4", "5", "6" ],
+ "varname": "sel"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-12",
+ "maxclass": "newobj",
+ "numinlets": 1,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "patching_rect": [ 171.0, 121.0, 98.0, 22.0 ],
+ "text": "prepend setcolor"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-3",
+ "maxclass": "swatch",
+ "numinlets": 3,
+ "numoutlets": 2,
+ "outlettype": [ "", "float" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 171.0, 80.0, 128.0, 32.0 ],
+ "saturation": 1.0,
+ "varname": "cust"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-7",
+ "maxclass": "newobj",
+ "numinlets": 1,
+ "numoutlets": 3,
+ "outlettype": [ "", "", "" ],
+ "patching_rect": [ 171.0, 151.0, 126.0, 22.0 ],
+ "restore": [ 0 ],
+ "saved_object_attributes": {
+ "parameter_enable": 0,
+ "parameter_mappable": 0
+ },
+ "text": "pattr preset_metadata",
+ "varname": "preset_metadata"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-16",
+ "keymode": 1,
+ "lines": 1,
+ "maxclass": "textedit",
+ "nosymquotes": 1,
+ "numinlets": 1,
+ "numoutlets": 4,
+ "outlettype": [ "", "int", "", "" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 136.5, 189.0, 100.0, 23.0 ]
+ }
+ },
+ {
+ "box": {
+ "id": "obj-18",
+ "items": "",
+ "maxclass": "umenu",
+ "numinlets": 1,
+ "numoutlets": 3,
+ "outlettype": [ "int", "", "" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 18.5, 189.0, 112.0, 22.0 ]
+ }
+ },
+ {
+ "box": {
+ "id": "obj-20",
+ "maxclass": "newobj",
+ "numinlets": 1,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "patching_rect": [ 20.0, 76.0, 109.0, 22.0 ],
+ "saved_object_attributes": {
+ "client_rect": [ 100, 172, 596, 755 ],
+ "parameter_enable": 0,
+ "parameter_mappable": 0,
+ "storage_rect": [ 365, 44, 816, 172 ]
+ },
+ "text": "pattrstorage mypat",
+ "varname": "mypat"
+ }
+ },
+ {
+ "box": {
+ "attr": "color_mode",
+ "id": "obj-5",
+ "maxclass": "attrui",
+ "numinlets": 1,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 171.0, 26.0, 128.0, 22.0 ]
+ }
+ }
+ ],
+ "lines": [
+ {
+ "patchline": {
+ "destination": [ "obj-5", 0 ],
+ "source": [ "obj-1", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-2", 0 ],
+ "source": [ "obj-12", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-12", 0 ],
+ "source": [ "obj-17", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-16", 0 ],
+ "source": [ "obj-2", 2 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-18", 0 ],
+ "source": [ "obj-2", 1 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-2", 0 ],
+ "source": [ "obj-20", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-12", 0 ],
+ "source": [ "obj-3", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-2", 0 ],
+ "source": [ "obj-5", 0 ]
+ }
+ }
+ ]
+ },
+ "patching_rect": [ 434.0, 28.0, 347.0, 219.0 ],
+ "varname": "patcher",
+ "viewvisibility": 1
+ }
+ },
+ {
+ "box": {
+ "bgcolor": [ 0.870588235294118, 0.537254901960784, 0.537254901960784, 1.0 ],
+ "bgmode": 2,
+ "border": 0,
+ "clickthrough": 0,
+ "embed": 1,
+ "enablehscroll": 0,
+ "enablevscroll": 0,
+ "id": "obj-21",
+ "lockeddragscroll": 0,
+ "lockedsize": 0,
+ "maxclass": "bpatcher",
+ "numinlets": 0,
+ "numoutlets": 0,
+ "offset": [ 0.0, 0.0 ],
+ "patcher": {
+ "fileversion": 1,
+ "appversion": {
+ "major": 9,
+ "minor": 1,
+ "revision": 0,
+ "architecture": "x64",
+ "modernui": 1
+ },
+ "classnamespace": "box",
+ "rect": [ 59.0, 119.0, 1000.0, 755.0 ],
+ "boxes": [
+ {
+ "box": {
+ "fontface": 1,
+ "fontsize": 16.0,
+ "id": "obj-4",
+ "maxclass": "comment",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 148.0, 13.0, 129.0, 24.0 ],
+ "text": "tc.preset_interp"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-6",
+ "maxclass": "number",
+ "minimum": 0,
+ "numinlets": 1,
+ "numoutlets": 2,
+ "outlettype": [ "", "bang" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 122.0, 177.0, 50.0, 22.0 ]
+ }
+ },
+ {
+ "box": {
+ "id": "obj-34",
+ "maxclass": "newobj",
+ "numinlets": 2,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "patcher": {
+ "fileversion": 1,
+ "appversion": {
+ "major": 9,
+ "minor": 1,
+ "revision": 0,
+ "architecture": "x64",
+ "modernui": 1
+ },
+ "classnamespace": "box",
+ "rect": [ 439.0, 167.0, 640.0, 480.0 ],
+ "boxes": [
+ {
+ "box": {
+ "id": "obj-9",
+ "maxclass": "comment",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 266.0, 45.0, 101.0, 20.0 ],
+ "text": "Interpolation time"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-6",
+ "maxclass": "comment",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 84.5, 45.0, 89.0, 20.0 ],
+ "text": "Preset to recall"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-1",
+ "maxclass": "newobj",
+ "numinlets": 2,
+ "numoutlets": 2,
+ "outlettype": [ "", "" ],
+ "patching_rect": [ 52.5, 105.0, 68.0, 22.0 ],
+ "text": "route recall"
+ }
+ },
+ {
+ "box": {
+ "comment": "",
+ "id": "obj-2",
+ "index": 2,
+ "maxclass": "inlet",
+ "numinlets": 0,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "patching_rect": [ 234.0, 40.0, 30.0, 30.0 ]
+ }
+ },
+ {
+ "box": {
+ "id": "obj-8",
+ "maxclass": "message",
+ "numinlets": 2,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "patching_rect": [ 158.5, 249.0, 45.0, 22.0 ],
+ "text": "store 0"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-5",
+ "maxclass": "newobj",
+ "numinlets": 1,
+ "numoutlets": 3,
+ "outlettype": [ "bang", "int", "bang" ],
+ "patching_rect": [ 52.5, 170.0, 125.66666666666669, 22.0 ],
+ "text": "t b i b"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-4",
+ "maxclass": "newobj",
+ "numinlets": 2,
+ "numoutlets": 1,
+ "outlettype": [ "int" ],
+ "patching_rect": [ 52.5, 239.0, 29.5, 22.0 ],
+ "text": "i"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-31",
+ "maxclass": "newobj",
+ "numinlets": 1,
+ "numoutlets": 2,
+ "outlettype": [ "bang", "float" ],
+ "patching_rect": [ 52.5, 334.0, 29.5, 22.0 ],
+ "text": "t b f"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-29",
+ "maxclass": "newobj",
+ "numinlets": 3,
+ "numoutlets": 2,
+ "outlettype": [ "", "bang" ],
+ "patching_rect": [ 52.5, 307.0, 41.0, 22.0 ],
+ "text": "line 0."
+ }
+ },
+ {
+ "box": {
+ "id": "obj-25",
+ "maxclass": "message",
+ "numinlets": 2,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "patching_rect": [ 52.5, 276.0, 52.0, 22.0 ],
+ "text": "0., 1. $1"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-14",
+ "maxclass": "newobj",
+ "numinlets": 4,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "patching_rect": [ 52.5, 362.0, 99.0, 22.0 ],
+ "text": "pack recall 0 0 0."
+ }
+ },
+ {
+ "box": {
+ "comment": "",
+ "id": "obj-32",
+ "index": 1,
+ "maxclass": "inlet",
+ "numinlets": 0,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "patching_rect": [ 52.5, 40.0, 30.0, 30.0 ]
+ }
+ },
+ {
+ "box": {
+ "comment": "",
+ "id": "obj-33",
+ "index": 1,
+ "maxclass": "outlet",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 52.5, 444.0, 30.0, 30.0 ]
+ }
+ }
+ ],
+ "lines": [
+ {
+ "patchline": {
+ "destination": [ "obj-5", 0 ],
+ "source": [ "obj-1", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-33", 0 ],
+ "source": [ "obj-14", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-4", 1 ],
+ "source": [ "obj-2", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-29", 0 ],
+ "source": [ "obj-25", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-31", 0 ],
+ "source": [ "obj-29", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-14", 3 ],
+ "source": [ "obj-31", 1 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-14", 0 ],
+ "source": [ "obj-31", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-1", 0 ],
+ "source": [ "obj-32", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-25", 0 ],
+ "source": [ "obj-4", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-14", 2 ],
+ "source": [ "obj-5", 1 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-4", 0 ],
+ "source": [ "obj-5", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-8", 0 ],
+ "source": [ "obj-5", 2 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-33", 0 ],
+ "source": [ "obj-8", 0 ]
+ }
+ }
+ ]
+ },
+ "patching_rect": [ 16.0, 206.0, 125.0, 22.0 ],
+ "text": "p trigger_interpolation"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-27",
+ "keymode": 1,
+ "lines": 1,
+ "maxclass": "textedit",
+ "nosymquotes": 1,
+ "numinlets": 1,
+ "numoutlets": 4,
+ "outlettype": [ "", "int", "", "" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 161.0, 143.0, 100.0, 23.0 ]
+ }
+ },
+ {
+ "box": {
+ "id": "obj-8",
+ "items": "",
+ "maxclass": "umenu",
+ "numinlets": 1,
+ "numoutlets": 3,
+ "outlettype": [ "int", "", "" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 43.0, 143.0, 112.0, 22.0 ]
+ }
+ },
+ {
+ "box": {
+ "border": 0,
+ "embedstate": [
+ [ "color_5", 0.283, 0.606, 0.559, 1 ],
+ [ "ignoreslotzero", 1 ],
+ [ "edited_color", 1, 0.49, 0.263, 1 ],
+ [ "empty_slot_color", 0.349, 0.349, 0.349, 1 ],
+ [ "spacing", 4 ],
+ [ "bgcolor", 0.2, 0.2, 0.2, 1 ],
+ [ "color_1", 0.743, 0.41, 0.501, 1 ],
+ [ "text_color", 0.129, 0.129, 0.129, 1 ],
+ [ "color_mode", 0 ],
+ [ "slot_round", 0 ],
+ [ "color_6", 0.316, 0.616, 0.377, 1 ],
+ [ "nbslot_edit", 1 ],
+ [ "active_slot_color", 0.808, 0.898, 0.91, 1 ],
+ [ "min_rows", 10 ],
+ [ "select_mode", 0 ],
+ [ "unique_names", 0 ],
+ [ "color_2", 0.679, 0.405, 0.669, 1 ],
+ [ "scrollable", 0 ],
+ [ "send_name", "none" ],
+ [ "stored_slot_color", 0.502, 0.502, 0.502, 1 ],
+ [ "margin", 4 ],
+ [ "layout", 0 ],
+ [ "use_uid", 0 ],
+ [ "fontsize", 14 ],
+ [ "color_3", 0.527, 0.459, 0.756, 1 ],
+ [ "recall_passthrough", 0 ],
+ [ "ui_rename", 1 ],
+ [ "menu_mode", 0 ],
+ [ "interp_slot_color", 1, 1, 1, 0.8 ],
+ [ "fontname", "Arial" ],
+ [ "pattrstorage", "mypat" ],
+ [ "bubblesize", 14 ],
+ [ "color_4", 0.367, 0.542, 0.712, 1 ],
+ [ "autowriteagain", 0 ],
+ [ "poll_edited", 0 ],
+ [ "display_interp", 1 ],
+ [ "text_bg_color", 1, 1, 1, 0.5 ]
+ ],
+ "filename": "tc.preset.js",
+ "id": "obj-10",
+ "maxclass": "jsui",
+ "numinlets": 1,
+ "numoutlets": 5,
+ "outlettype": [ "", "", "", "", "" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 16.0, 74.0, 130.0, 59.0 ]
+ }
+ },
+ {
+ "box": {
+ "id": "obj-1",
+ "maxclass": "newobj",
+ "numinlets": 1,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "patching_rect": [ 16.0, 41.0, 109.0, 22.0 ],
+ "saved_object_attributes": {
+ "client_rect": [ 100, 172, 596, 755 ],
+ "parameter_enable": 0,
+ "parameter_mappable": 0,
+ "storage_rect": [ 365, 44, 816, 172 ]
+ },
+ "text": "pattrstorage mypat",
+ "varname": "mypat"
+ }
+ }
+ ],
+ "lines": [
+ {
+ "patchline": {
+ "destination": [ "obj-10", 0 ],
+ "source": [ "obj-1", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-27", 0 ],
+ "source": [ "obj-10", 2 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-34", 0 ],
+ "source": [ "obj-10", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-8", 0 ],
+ "source": [ "obj-10", 1 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-10", 0 ],
+ "source": [ "obj-27", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-1", 0 ],
+ "source": [ "obj-34", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-34", 1 ],
+ "source": [ "obj-6", 0 ]
+ }
+ }
+ ]
+ },
+ "patching_rect": [ 75.0, 18.0, 287.0, 239.0 ],
+ "varname": "bpatcher",
+ "viewvisibility": 1
+ }
+ },
+ {
+ "box": {
+ "bubble": 1,
+ "fontsize": 14.0,
+ "id": "obj-5",
+ "linecount": 4,
+ "maxclass": "comment",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 0.0, 270.0, 426.0, 73.0 ],
+ "text": "Get these snippets from any patch through the Snippets menu!\n\nAfter renaming the pattrstorage, remind to also update the 'pattrstorage' attribute of tc.preset."
+ }
+ }
+ ],
+ "lines": []
+ },
+ "patching_rect": [ 687.0, 25.7999267578125, 63.0, 22.0 ],
+ "text": "p snippets",
+ "varname": "snippet"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-45",
+ "maxclass": "newobj",
+ "numinlets": 0,
+ "numoutlets": 0,
+ "patcher": {
+ "fileversion": 1,
+ "appversion": {
+ "major": 9,
+ "minor": 1,
+ "revision": 0,
+ "architecture": "x64",
+ "modernui": 1
+ },
+ "classnamespace": "box",
+ "rect": [ 0.0, 26.0, 899.0, 620.0 ],
+ "showontab": 1,
+ "boxes": [
+ {
+ "box": {
+ "hidden": 1,
+ "id": "obj-5",
+ "maxclass": "newobj",
+ "numinlets": 1,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "patching_rect": [ 146.0, 160.0, 89.0, 22.0 ],
+ "text": "loadmess set 1"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-3",
+ "maxclass": "tab",
+ "numinlets": 1,
+ "numoutlets": 3,
+ "outlettype": [ "int", "", "" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 56.0, 130.0, 150.0, 26.0 ],
+ "tabs": [ "Grid", "List" ]
+ }
+ },
+ {
+ "box": {
+ "id": "obj-38",
+ "maxclass": "newobj",
+ "numinlets": 1,
+ "numoutlets": 3,
+ "outlettype": [ "", "", "" ],
+ "patching_rect": [ 293.0, 378.0, 40.0, 22.0 ],
+ "restore": [ -0.079365079365079, 0.206349206349206, 0.428571428571429, 0.682539682539683, 0.904761904761905, 0.904761904761905, 0.841269841269841, 0.555555555555556, 0.047619047619048, -0.301587301587302, -0.587301587301587, -0.682539682539683, -0.650793650793651, -0.428571428571429, -0.111111111111111, 0.079365079365079 ],
+ "saved_object_attributes": {
+ "parameter_enable": 0,
+ "parameter_mappable": 0
+ },
+ "text": "pattr",
+ "varname": "u099005226"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-34",
+ "maxclass": "multislider",
+ "numinlets": 1,
+ "numoutlets": 2,
+ "outlettype": [ "", "" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 304.0, 405.0, 136.0, 78.0 ],
+ "size": 16,
+ "varname": "multislider"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-30",
+ "maxclass": "comment",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 337.0, 379.0, 118.0, 20.0 ],
+ "text": "Some data to store"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-18",
+ "linecount": 5,
+ "maxclass": "comment",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 409.0, 120.0, 241.0, 74.0 ],
+ "text": "When scrollable is enabled, adds a - and + buttons at the end of the presets list which, when clicked, respectively remove or add a row of empty slot(s). The minimum number of rows is capped by min_rows."
+ }
+ },
+ {
+ "box": {
+ "attr": "nbslot_edit",
+ "id": "obj-16",
+ "maxclass": "attrui",
+ "numinlets": 1,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 304.0, 146.0, 103.0, 22.0 ],
+ "text_width": 78.0
+ }
+ },
+ {
+ "box": {
+ "bubble": 1,
+ "bubbleside": 0,
+ "id": "obj-6",
+ "maxclass": "comment",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 20.5, 484.0, 236.0, 39.0 ],
+ "text": "Scroll the list with your mouse or trackpad!"
+ }
+ },
+ {
+ "box": {
+ "border": 0,
+ "embedstate": [
+ [ "color_5", 0.283, 0.606, 0.559, 1 ],
+ [ "ignoreslotzero", 1 ],
+ [ "edited_color", 1, 0.49, 0.263, 1 ],
+ [ "empty_slot_color", 0.349, 0.349, 0.349, 1 ],
+ [ "spacing", 4 ],
+ [ "bgcolor", 0.2, 0.2, 0.2, 1 ],
+ [ "color_1", 0.743, 0.41, 0.501, 1 ],
+ [ "text_color", 0.129, 0.129, 0.129, 1 ],
+ [ "color_mode", 0 ],
+ [ "slot_round", 0 ],
+ [ "color_6", 0.316, 0.616, 0.377, 1 ],
+ [ "nbslot_edit", 1 ],
+ [ "active_slot_color", 0.808, 0.898, 0.91, 1 ],
+ [ "min_rows", 10 ],
+ [ "select_mode", 0 ],
+ [ "unique_names", 0 ],
+ [ "color_2", 0.679, 0.405, 0.669, 1 ],
+ [ "scrollable", 1 ],
+ [ "send_name", "none" ],
+ [ "stored_slot_color", 0.502, 0.502, 0.502, 1 ],
+ [ "margin", 4 ],
+ [ "layout", 1 ],
+ [ "use_uid", 0 ],
+ [ "fontsize", 14 ],
+ [ "color_3", 0.527, 0.459, 0.756, 1 ],
+ [ "recall_passthrough", 1 ],
+ [ "ui_rename", 0 ],
+ [ "menu_mode", 0 ],
+ [ "interp_slot_color", 1, 1, 1, 0.8 ],
+ [ "fontname", "Arial" ],
+ [ "pattrstorage", "test" ],
+ [ "bubblesize", 14 ],
+ [ "color_4", 0.367, 0.542, 0.712, 1 ],
+ [ "autowriteagain", 0 ],
+ [ "poll_edited", 0 ],
+ [ "display_interp", 1 ],
+ [ "text_bg_color", 1, 1, 1, 0.5 ]
+ ],
+ "filename": "tc.preset.js",
+ "id": "obj-10",
+ "maxclass": "jsui",
+ "numinlets": 1,
+ "numoutlets": 5,
+ "outlettype": [ "", "", "", "", "" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 10.0, 378.0, 257.0, 112.0 ]
+ }
+ },
+ {
+ "box": {
+ "id": "obj-1",
+ "maxclass": "newobj",
+ "numinlets": 1,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "patching_rect": [ 10.0, 309.0, 176.0, 22.0 ],
+ "saved_object_attributes": {
+ "client_rect": [ 100, 172, 596, 755 ],
+ "parameter_enable": 0,
+ "parameter_mappable": 0,
+ "storage_rect": [ 365, 44, 816, 172 ]
+ },
+ "text": "pattrstorage test @savemode 0",
+ "varname": "test"
+ }
+ },
+ {
+ "box": {
+ "border": 0,
+ "filename": "helpname.js",
+ "id": "obj-4",
+ "ignoreclick": 1,
+ "jsarguments": [ "tc.preset" ],
+ "maxclass": "jsui",
+ "numinlets": 1,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 10.0, 10.0, 188.2880096435547, 57.599853515625 ]
+ }
+ },
+ {
+ "box": {
+ "bubble": 1,
+ "bubbleside": 3,
+ "id": "obj-78",
+ "linecount": 6,
+ "maxclass": "comment",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 668.0, 103.0, 231.0, 91.0 ],
+ "text": "...and: bgcolor, empty_slot_color, stored_slot_color, interp_slot_color, active_slot_color, fontname, fontsize, text_bg_color, text_color\n(see the tc.preset attributes in the inspector or in its Reference page)"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-65",
+ "linecount": 2,
+ "maxclass": "comment",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 463.0, 214.0, 196.0, 33.0 ],
+ "text": "Minimum number of rows to display when scrollable is enabled."
+ }
+ },
+ {
+ "box": {
+ "id": "obj-62",
+ "maxclass": "comment",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 278.0, 55.0, 211.0, 20.0 ],
+ "text": "Enable to scroll through your presets! "
+ }
+ },
+ {
+ "box": {
+ "id": "obj-39",
+ "linecount": 2,
+ "maxclass": "comment",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 56.0, 93.0, 150.0, 33.0 ],
+ "text": "Choose to display presets as a grid (0) or a list (1)!"
+ }
+ },
+ {
+ "box": {
+ "attr": "layout",
+ "id": "obj-129",
+ "maxclass": "attrui",
+ "numinlets": 1,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 56.0, 160.0, 78.0, 22.0 ],
+ "text_width": 53.0
+ }
+ },
+ {
+ "box": {
+ "attr": "scrollable",
+ "id": "obj-130",
+ "maxclass": "attrui",
+ "numinlets": 1,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 278.0, 80.0, 95.0, 22.0 ],
+ "text_width": 73.0
+ }
+ },
+ {
+ "box": {
+ "attr": "min_rows",
+ "id": "obj-131",
+ "maxclass": "attrui",
+ "numinlets": 1,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 345.0, 220.0, 116.0, 22.0 ],
+ "text_width": 72.0
+ }
+ },
+ {
+ "box": {
+ "attr": "bubblesize",
+ "id": "obj-7",
+ "maxclass": "attrui",
+ "numinlets": 1,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 404.0, 287.0, 150.0, 22.0 ]
+ }
+ },
+ {
+ "box": {
+ "attr": "spacing",
+ "id": "obj-8",
+ "maxclass": "attrui",
+ "numinlets": 1,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 557.0, 287.0, 150.0, 22.0 ]
+ }
+ },
+ {
+ "box": {
+ "attr": "margin",
+ "id": "obj-11",
+ "maxclass": "attrui",
+ "numinlets": 1,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 557.0, 311.0, 150.0, 22.0 ]
+ }
+ },
+ {
+ "box": {
+ "attr": "slot_round",
+ "id": "obj-14",
+ "maxclass": "attrui",
+ "numinlets": 1,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 404.0, 311.0, 150.0, 22.0 ]
+ }
+ }
+ ],
+ "lines": [
+ {
+ "patchline": {
+ "destination": [ "obj-10", 0 ],
+ "source": [ "obj-1", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-10", 0 ],
+ "source": [ "obj-11", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-10", 0 ],
+ "source": [ "obj-129", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-10", 0 ],
+ "source": [ "obj-130", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-10", 0 ],
+ "source": [ "obj-131", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-10", 0 ],
+ "source": [ "obj-14", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-10", 0 ],
+ "source": [ "obj-16", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-129", 0 ],
+ "source": [ "obj-3", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-34", 0 ],
+ "source": [ "obj-38", 1 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-3", 0 ],
+ "hidden": 1,
+ "source": [ "obj-5", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-10", 0 ],
+ "source": [ "obj-7", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-10", 0 ],
+ "source": [ "obj-8", 0 ]
+ }
+ }
+ ]
+ },
+ "patching_rect": [ 468.0, 26.7999267578125, 82.0, 22.0 ],
+ "text": "p appearance",
+ "varname": "appearance"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-29",
+ "maxclass": "newobj",
+ "numinlets": 0,
+ "numoutlets": 0,
+ "patcher": {
+ "fileversion": 1,
+ "appversion": {
+ "major": 9,
+ "minor": 1,
+ "revision": 0,
+ "architecture": "x64",
+ "modernui": 1
+ },
+ "classnamespace": "box",
+ "rect": [ 0.0, 26.0, 899.0, 620.0 ],
+ "showontab": 1,
+ "boxes": [
+ {
+ "box": {
+ "hidden": 1,
+ "id": "obj-5",
+ "maxclass": "newobj",
+ "numinlets": 1,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "patching_rect": [ 227.5, 131.0, 89.0, 22.0 ],
+ "text": "loadmess set 1"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-3",
+ "items": [ "Classic", ",", "Cycle", ",", "Select", ",", "Custom" ],
+ "maxclass": "umenu",
+ "numinlets": 1,
+ "numoutlets": 3,
+ "outlettype": [ "int", "", "" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 109.5, 131.0, 100.0, 22.0 ]
+ }
+ },
+ {
+ "box": {
+ "id": "obj-2",
+ "maxclass": "newobj",
+ "numinlets": 1,
+ "numoutlets": 3,
+ "outlettype": [ "", "", "" ],
+ "patching_rect": [ 614.0, 312.0, 156.0, 22.0 ],
+ "saved_object_attributes": {
+ "legacy": 0
+ },
+ "text": "dict.unpack by_uid: by_slot:"
+ }
+ },
+ {
+ "box": {
+ "fontface": 0,
+ "fontname": "Arial",
+ "fontsize": 12.0,
+ "id": "obj-27",
+ "keymode": 1,
+ "lines": 1,
+ "maxclass": "textedit",
+ "nosymquotes": 1,
+ "numinlets": 1,
+ "numoutlets": 4,
+ "outlettype": [ "", "int", "", "" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 128.5, 499.0, 102.0, 24.0 ],
+ "text": "Preset 1"
+ }
+ },
+ {
+ "box": {
+ "bubble": 1,
+ "bubbleside": 2,
+ "id": "obj-40",
+ "linecount": 5,
+ "maxclass": "comment",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 591.5, 146.0, 249.0, 93.0 ],
+ "text": "When enabled, each stored preset gets a unique identifier, following the preset when it gets renamed, moved and overwritten. This can be useful when doing some complex preset management."
+ }
+ },
+ {
+ "box": {
+ "id": "obj-38",
+ "maxclass": "newobj",
+ "numinlets": 1,
+ "numoutlets": 3,
+ "outlettype": [ "", "", "" ],
+ "patching_rect": [ 636.0, 16.0, 40.0, 22.0 ],
+ "restore": [ -0.23, -0.57, 0.26, 0.02, 0.72, -0.18, -0.46, 0.4, 0.16, -0.92, 0.77, 0.95, -0.37, 0.25, -0.07, -0.38 ],
+ "saved_object_attributes": {
+ "parameter_enable": 0,
+ "parameter_mappable": 0
+ },
+ "text": "pattr",
+ "varname": "u099005226"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-39",
+ "maxclass": "multislider",
+ "numinlets": 1,
+ "numoutlets": 2,
+ "outlettype": [ "", "" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 647.0, 43.0, 136.0, 78.0 ],
+ "size": 16,
+ "varname": "multislider"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-35",
+ "maxclass": "comment",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 680.0, 17.0, 118.0, 20.0 ],
+ "text": "Some data to store"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-21",
+ "maxclass": "newobj",
+ "numinlets": 0,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "patching_rect": [ 614.0, 280.0, 119.0, 22.0 ],
+ "text": "r colors_presets_dict"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-22",
+ "maxclass": "dict.view",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 614.0, 345.0, 253.0, 267.0 ]
+ }
+ },
+ {
+ "box": {
+ "id": "obj-36",
+ "maxclass": "newobj",
+ "numinlets": 0,
+ "numoutlets": 0,
+ "patcher": {
+ "fileversion": 1,
+ "appversion": {
+ "major": 9,
+ "minor": 1,
+ "revision": 0,
+ "architecture": "x64",
+ "modernui": 1
+ },
+ "classnamespace": "box",
+ "rect": [ 703.0, 163.0, 460.0, 440.0 ],
+ "boxes": [
+ {
+ "box": {
+ "id": "obj-21",
+ "linecount": 3,
+ "maxclass": "comment",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 188.0, 419.0, 206.0, 47.0 ],
+ "text": "If you move presets around, or write presets to disk and read them back later, colors will still be here."
+ }
+ },
+ {
+ "box": {
+ "id": "obj-19",
+ "maxclass": "newobj",
+ "numinlets": 1,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "patching_rect": [ 141.0, 370.0, 98.0, 22.0 ],
+ "text": "prepend setcolor"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-18",
+ "maxclass": "newobj",
+ "numinlets": 1,
+ "numoutlets": 2,
+ "outlettype": [ "int", "bang" ],
+ "patching_rect": [ 141.0, 270.0, 29.5, 22.0 ],
+ "text": "t i b"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-17",
+ "maxclass": "newobj",
+ "numinlets": 1,
+ "numoutlets": 3,
+ "outlettype": [ "", "", "" ],
+ "patcher": {
+ "fileversion": 1,
+ "appversion": {
+ "major": 9,
+ "minor": 1,
+ "revision": 0,
+ "architecture": "x64",
+ "modernui": 1
+ },
+ "classnamespace": "box",
+ "rect": [ 59.0, 119.0, 640.0, 480.0 ],
+ "boxes": [
+ {
+ "box": {
+ "comment": "",
+ "id": "obj-2",
+ "index": 1,
+ "maxclass": "inlet",
+ "numinlets": 0,
+ "numoutlets": 1,
+ "outlettype": [ "bang" ],
+ "patching_rect": [ 50.0, 43.0, 30.0, 30.0 ]
+ }
+ },
+ {
+ "box": {
+ "id": "obj-25",
+ "maxclass": "newobj",
+ "numinlets": 2,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "patching_rect": [ 120.0, 168.0, 131.0, 22.0 ],
+ "text": "random @floatoutput 1"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-24",
+ "maxclass": "newobj",
+ "numinlets": 2,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "patching_rect": [ 85.0, 134.0, 131.0, 22.0 ],
+ "text": "random @floatoutput 1"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-1",
+ "maxclass": "newobj",
+ "numinlets": 2,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "patching_rect": [ 50.0, 100.0, 131.0, 22.0 ],
+ "text": "random @floatoutput 1"
+ }
+ },
+ {
+ "box": {
+ "comment": "",
+ "id": "obj-13",
+ "index": 1,
+ "maxclass": "outlet",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 50.0, 230.0, 30.0, 30.0 ]
+ }
+ },
+ {
+ "box": {
+ "comment": "",
+ "id": "obj-15",
+ "index": 2,
+ "maxclass": "outlet",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 85.0, 230.0, 30.0, 30.0 ]
+ }
+ },
+ {
+ "box": {
+ "comment": "",
+ "id": "obj-16",
+ "index": 3,
+ "maxclass": "outlet",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 120.0, 230.0, 30.0, 30.0 ]
+ }
+ }
+ ],
+ "lines": [
+ {
+ "patchline": {
+ "destination": [ "obj-13", 0 ],
+ "source": [ "obj-1", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-1", 0 ],
+ "order": 2,
+ "source": [ "obj-2", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-24", 0 ],
+ "order": 1,
+ "source": [ "obj-2", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-25", 0 ],
+ "order": 0,
+ "source": [ "obj-2", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-15", 0 ],
+ "source": [ "obj-24", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-16", 0 ],
+ "source": [ "obj-25", 0 ]
+ }
+ }
+ ]
+ },
+ "patching_rect": [ 156.0, 303.0, 92.0, 22.0 ],
+ "text": "p random_color"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-9",
+ "maxclass": "newobj",
+ "numinlets": 2,
+ "numoutlets": 3,
+ "outlettype": [ "bang", "bang", "int" ],
+ "patching_rect": [ 119.0, 244.0, 41.0, 22.0 ],
+ "text": "uzi 20"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-14",
+ "maxclass": "comment",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 161.0, 169.0, 175.0, 20.0 ],
+ "text": "Set selected preset color to red"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-23",
+ "maxclass": "comment",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 121.0, 129.0, 123.0, 20.0 ],
+ "text": "Change preset colors"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-11",
+ "maxclass": "message",
+ "numinlets": 2,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "patching_rect": [ 52.0, 167.0, 104.0, 22.0 ],
+ "text": "setcolor 1. 0. 0. 1."
+ }
+ },
+ {
+ "box": {
+ "id": "obj-4",
+ "maxclass": "newobj",
+ "numinlets": 5,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "patching_rect": [ 141.0, 338.0, 97.0, 22.0 ],
+ "text": "pack 0 0. 0. 0. 1."
+ }
+ },
+ {
+ "box": {
+ "id": "obj-8",
+ "maxclass": "button",
+ "numinlets": 1,
+ "numoutlets": 1,
+ "outlettype": [ "bang" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 119.0, 207.0, 24.0, 24.0 ]
+ }
+ },
+ {
+ "box": {
+ "id": "obj-6",
+ "maxclass": "comment",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 149.0, 209.0, 265.0, 20.0 ],
+ "text": "Set a random color for the first 20 presets"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-2",
+ "maxclass": "comment",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 142.0, 70.0, 163.0, 20.0 ],
+ "text": "Set color mode to 3 (custom)"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-3",
+ "maxclass": "message",
+ "numinlets": 2,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "patching_rect": [ 26.0, 69.0, 81.0, 22.0 ],
+ "text": "color_mode 3"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-10",
+ "maxclass": "newobj",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 26.0, 439.0, 81.0, 22.0 ],
+ "text": "s to_tc.preset"
+ }
+ },
+ {
+ "box": {
+ "background": 1,
+ "bgcolor": [ 1.0, 0.788235, 0.470588, 1.0 ],
+ "fontface": 1,
+ "hint": "",
+ "id": "obj-20",
+ "ignoreclick": 1,
+ "legacytextcolor": 1,
+ "maxclass": "textbutton",
+ "numinlets": 1,
+ "numoutlets": 3,
+ "outlettype": [ "", "", "int" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 115.0, 70.0, 20.0, 20.0 ],
+ "rounded": 60.0,
+ "text": "1",
+ "textcolor": [ 0.34902, 0.34902, 0.34902, 1.0 ]
+ }
+ },
+ {
+ "box": {
+ "background": 1,
+ "bgcolor": [ 1.0, 0.788235, 0.470588, 1.0 ],
+ "fontface": 1,
+ "hint": "",
+ "id": "obj-22",
+ "ignoreclick": 1,
+ "legacytextcolor": 1,
+ "maxclass": "textbutton",
+ "numinlets": 1,
+ "numoutlets": 3,
+ "outlettype": [ "", "", "int" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 161.0, 432.5, 20.0, 20.0 ],
+ "rounded": 60.0,
+ "text": "3",
+ "textcolor": [ 0.34902, 0.34902, 0.34902, 1.0 ]
+ }
+ },
+ {
+ "box": {
+ "background": 1,
+ "bgcolor": [ 1.0, 0.788235, 0.470588, 1.0 ],
+ "fontface": 1,
+ "hint": "",
+ "id": "obj-12",
+ "ignoreclick": 1,
+ "legacytextcolor": 1,
+ "maxclass": "textbutton",
+ "numinlets": 1,
+ "numoutlets": 3,
+ "outlettype": [ "", "", "int" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 94.0, 129.0, 20.0, 20.0 ],
+ "rounded": 60.0,
+ "text": "2",
+ "textcolor": [ 0.34902, 0.34902, 0.34902, 1.0 ]
+ }
+ }
+ ],
+ "lines": [
+ {
+ "patchline": {
+ "destination": [ "obj-10", 0 ],
+ "source": [ "obj-11", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-4", 3 ],
+ "source": [ "obj-17", 2 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-4", 2 ],
+ "source": [ "obj-17", 1 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-4", 1 ],
+ "source": [ "obj-17", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-17", 0 ],
+ "source": [ "obj-18", 1 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-4", 0 ],
+ "source": [ "obj-18", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-10", 0 ],
+ "source": [ "obj-19", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-10", 0 ],
+ "source": [ "obj-3", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-19", 0 ],
+ "source": [ "obj-4", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-9", 0 ],
+ "source": [ "obj-8", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-18", 0 ],
+ "source": [ "obj-9", 2 ]
+ }
+ }
+ ]
+ },
+ "patching_rect": [ 227.5, 191.0, 94.0, 22.0 ],
+ "text": "p custom_mode"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-34",
+ "maxclass": "newobj",
+ "numinlets": 0,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "patching_rect": [ 148.0, 340.0, 79.0, 22.0 ],
+ "text": "r to_tc.preset"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-33",
+ "maxclass": "newobj",
+ "numinlets": 0,
+ "numoutlets": 0,
+ "patcher": {
+ "fileversion": 1,
+ "appversion": {
+ "major": 9,
+ "minor": 1,
+ "revision": 0,
+ "architecture": "x64",
+ "modernui": 1
+ },
+ "classnamespace": "box",
+ "rect": [ 703.0, 163.0, 481.0, 436.0 ],
+ "boxes": [
+ {
+ "box": {
+ "id": "obj-1",
+ "linecount": 3,
+ "maxclass": "comment",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 219.0, 365.0, 216.0, 47.0 ],
+ "text": "If you move presets around, or write them to disk and read them back later, the set colors index will still be here."
+ }
+ },
+ {
+ "box": {
+ "id": "obj-23",
+ "maxclass": "comment",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 180.5, 150.0, 123.0, 20.0 ],
+ "text": "Change preset colors"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-18",
+ "maxclass": "newobj",
+ "numinlets": 2,
+ "numoutlets": 1,
+ "outlettype": [ "int" ],
+ "patching_rect": [ 199.5, 273.0, 29.5, 22.0 ],
+ "text": "+ 1"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-19",
+ "maxclass": "newobj",
+ "numinlets": 2,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "patching_rect": [ 199.5, 244.0, 59.0, 22.0 ],
+ "text": "random 6"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-21",
+ "maxclass": "button",
+ "numinlets": 1,
+ "numoutlets": 1,
+ "outlettype": [ "bang" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 199.5, 213.0, 24.0, 24.0 ]
+ }
+ },
+ {
+ "box": {
+ "id": "obj-22",
+ "maxclass": "comment",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 229.5, 215.0, 174.0, 20.0 ],
+ "text": "Set a random color for preset 4"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-17",
+ "maxclass": "message",
+ "numinlets": 2,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "patching_rect": [ 199.5, 304.0, 77.0, 22.0 ],
+ "text": "setcolor 4 $1"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-14",
+ "maxclass": "newobj",
+ "numinlets": 2,
+ "numoutlets": 1,
+ "outlettype": [ "int" ],
+ "patching_rect": [ 76.5, 242.0, 29.5, 22.0 ],
+ "text": "+ 1"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-13",
+ "maxclass": "newobj",
+ "numinlets": 2,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "patching_rect": [ 76.5, 213.0, 59.0, 22.0 ],
+ "text": "random 6"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-8",
+ "maxclass": "button",
+ "numinlets": 1,
+ "numoutlets": 1,
+ "outlettype": [ "bang" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 76.5, 182.0, 24.0, 24.0 ]
+ }
+ },
+ {
+ "box": {
+ "id": "obj-6",
+ "maxclass": "comment",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 106.5, 184.0, 235.0, 20.0 ],
+ "text": "Set a random color for the selected preset"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-2",
+ "maxclass": "comment",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 164.0, 94.0, 155.0, 20.0 ],
+ "text": "Set color mode to 2 (select)"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-3",
+ "maxclass": "message",
+ "numinlets": 2,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "patching_rect": [ 48.0, 93.0, 81.0, 22.0 ],
+ "text": "color_mode 2"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-10",
+ "maxclass": "newobj",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 48.0, 407.0, 81.0, 22.0 ],
+ "text": "s to_tc.preset"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-9",
+ "maxclass": "message",
+ "numinlets": 2,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "patching_rect": [ 76.5, 271.0, 67.0, 22.0 ],
+ "text": "setcolor $1"
+ }
+ },
+ {
+ "box": {
+ "background": 1,
+ "bgcolor": [ 1.0, 0.788235, 0.470588, 1.0 ],
+ "fontface": 1,
+ "hint": "",
+ "id": "obj-20",
+ "ignoreclick": 1,
+ "legacytextcolor": 1,
+ "maxclass": "textbutton",
+ "numinlets": 1,
+ "numoutlets": 3,
+ "outlettype": [ "", "", "int" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 137.0, 94.0, 20.0, 20.0 ],
+ "rounded": 60.0,
+ "text": "1",
+ "textcolor": [ 0.34902, 0.34902, 0.34902, 1.0 ]
+ }
+ },
+ {
+ "box": {
+ "background": 1,
+ "bgcolor": [ 1.0, 0.788235, 0.470588, 1.0 ],
+ "fontface": 1,
+ "hint": "",
+ "id": "obj-4",
+ "ignoreclick": 1,
+ "legacytextcolor": 1,
+ "maxclass": "textbutton",
+ "numinlets": 1,
+ "numoutlets": 3,
+ "outlettype": [ "", "", "int" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 192.0, 379.0, 20.0, 20.0 ],
+ "rounded": 60.0,
+ "text": "3",
+ "textcolor": [ 0.34902, 0.34902, 0.34902, 1.0 ]
+ }
+ },
+ {
+ "box": {
+ "background": 1,
+ "bgcolor": [ 1.0, 0.788235, 0.470588, 1.0 ],
+ "fontface": 1,
+ "hint": "",
+ "id": "obj-24",
+ "ignoreclick": 1,
+ "legacytextcolor": 1,
+ "maxclass": "textbutton",
+ "numinlets": 1,
+ "numoutlets": 3,
+ "outlettype": [ "", "", "int" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 153.5, 150.0, 20.0, 20.0 ],
+ "rounded": 60.0,
+ "text": "2",
+ "textcolor": [ 0.34902, 0.34902, 0.34902, 1.0 ]
+ }
+ }
+ ],
+ "lines": [
+ {
+ "patchline": {
+ "destination": [ "obj-14", 0 ],
+ "source": [ "obj-13", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-9", 0 ],
+ "source": [ "obj-14", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-10", 0 ],
+ "source": [ "obj-17", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-17", 0 ],
+ "source": [ "obj-18", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-18", 0 ],
+ "source": [ "obj-19", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-19", 0 ],
+ "source": [ "obj-21", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-10", 0 ],
+ "source": [ "obj-3", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-13", 0 ],
+ "source": [ "obj-8", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-10", 0 ],
+ "source": [ "obj-9", 0 ]
+ }
+ }
+ ]
+ },
+ "patching_rect": [ 128.5, 191.0, 87.0, 22.0 ],
+ "text": "p select_mode"
+ }
+ },
+ {
+ "box": {
+ "bubble": 1,
+ "id": "obj-32",
+ "linecount": 2,
+ "maxclass": "comment",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 328.5, 184.0, 160.0, 37.0 ],
+ "text": "Open these subpatchers to get more info"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-30",
+ "maxclass": "newobj",
+ "numinlets": 0,
+ "numoutlets": 0,
+ "patcher": {
+ "fileversion": 1,
+ "appversion": {
+ "major": 9,
+ "minor": 1,
+ "revision": 0,
+ "architecture": "x64",
+ "modernui": 1
+ },
+ "classnamespace": "box",
+ "rect": [ 724.0, 259.0, 378.0, 380.0 ],
+ "boxes": [
+ {
+ "box": {
+ "id": "obj-10",
+ "maxclass": "newobj",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 44.0, 343.0, 81.0, 22.0 ],
+ "text": "s to_tc.preset"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-3",
+ "maxclass": "comment",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 179.0, 167.0, 129.0, 20.0 ],
+ "text": "Set color 5 to cyan"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-2",
+ "linecount": 7,
+ "maxclass": "comment",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 44.0, 14.0, 321.0, 100.0 ],
+ "text": "The color wheel is a set of six colors used in color_mode 1 (cycle) and 2 (select).\n\nYou can change each of the 6 colors from the color wheel either by using color_1 to color_6 messages, either by using a generic color_wheel message, or directly in the inspector when selecting the tc.preset object."
+ }
+ },
+ {
+ "box": {
+ "id": "obj-126",
+ "maxclass": "comment",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 179.0, 215.0, 164.0, 20.0 ],
+ "text": "Reset color 3 to default value"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-122",
+ "maxclass": "comment",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 179.0, 139.0, 129.0, 20.0 ],
+ "text": "Set color 3 to magenta"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-120",
+ "maxclass": "message",
+ "numinlets": 2,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "patching_rect": [ 44.0, 166.0, 123.0, 22.0 ],
+ "text": "color_wheel 5 0 1 1 1"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-119",
+ "maxclass": "comment",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 179.0, 241.0, 150.0, 20.0 ],
+ "text": "Reset all colors to default"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-117",
+ "maxclass": "message",
+ "numinlets": 2,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "patching_rect": [ 119.0, 214.0, 48.0, 22.0 ],
+ "text": "color_3"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-99",
+ "maxclass": "message",
+ "numinlets": 2,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "patching_rect": [ 79.0, 138.0, 88.0, 22.0 ],
+ "text": "color_3 1 0 1 1"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-95",
+ "maxclass": "message",
+ "numinlets": 2,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "patching_rect": [ 94.0, 240.0, 73.0, 22.0 ],
+ "text": "color_wheel"
+ }
+ }
+ ],
+ "lines": [
+ {
+ "patchline": {
+ "destination": [ "obj-10", 0 ],
+ "source": [ "obj-117", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-10", 0 ],
+ "source": [ "obj-120", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-10", 0 ],
+ "source": [ "obj-95", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-10", 0 ],
+ "source": [ "obj-99", 0 ]
+ }
+ }
+ ]
+ },
+ "patching_rect": [ 34.5, 191.0, 83.0, 22.0 ],
+ "text": "p color_wheel"
+ }
+ },
+ {
+ "box": {
+ "bubble": 1,
+ "bubble_bgcolor": [ 0.815686274509804, 0.650980392156863, 0.650980392156863, 1.0 ],
+ "bubbleside": 2,
+ "id": "obj-28",
+ "linecount": 4,
+ "maxclass": "comment",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 182.0, 231.5, 393.0, 79.0 ],
+ "text": "For color modes 2 and 3, and use_uid to work, you need to add a pattr object named 'preset_metadata' to your patch. If using subscribe mode, make sure to add preset_metadata to the pattrstorage's subscribe list.\nPreset color data will be stored just like your other parameters."
+ }
+ },
+ {
+ "box": {
+ "id": "obj-6",
+ "maxclass": "newobj",
+ "numinlets": 1,
+ "numoutlets": 3,
+ "outlettype": [ "", "", "" ],
+ "patching_rect": [ 319.0, 312.5, 126.0, 22.0 ],
+ "restore": [ "{\"color\":[0,0.502,0.502,0.502,1],\"uid\":\"44918fd8-bfef-42ee-87ed-13929dc21d32\"}" ],
+ "saved_object_attributes": {
+ "parameter_enable": 0,
+ "parameter_mappable": 0
+ },
+ "text": "pattr preset_metadata",
+ "varname": "preset_metadata"
+ }
+ },
+ {
+ "box": {
+ "hidden": 1,
+ "id": "obj-14",
+ "maxclass": "newobj",
+ "numinlets": 0,
+ "numoutlets": 2,
+ "outlettype": [ "", "" ],
+ "patcher": {
+ "fileversion": 1,
+ "appversion": {
+ "major": 9,
+ "minor": 1,
+ "revision": 0,
+ "architecture": "x64",
+ "modernui": 1
+ },
+ "classnamespace": "box",
+ "rect": [ 574.0, 280.0, 640.0, 480.0 ],
+ "boxes": [
+ {
+ "box": {
+ "id": "obj-10",
+ "maxclass": "newobj",
+ "numinlets": 1,
+ "numoutlets": 2,
+ "outlettype": [ "", "bang" ],
+ "patching_rect": [ 61.0, 231.0, 29.5, 22.0 ],
+ "text": "t l b"
+ }
+ },
+ {
+ "box": {
+ "comment": "",
+ "id": "obj-9",
+ "index": 2,
+ "maxclass": "outlet",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 322.0, 270.0, 30.0, 30.0 ]
+ }
+ },
+ {
+ "box": {
+ "id": "obj-8",
+ "maxclass": "newobj",
+ "numinlets": 2,
+ "numoutlets": 1,
+ "outlettype": [ "float" ],
+ "patching_rect": [ 322.0, 179.0, 39.0, 22.0 ],
+ "text": "/ 100."
+ }
+ },
+ {
+ "box": {
+ "id": "obj-5",
+ "maxclass": "newobj",
+ "numinlets": 2,
+ "numoutlets": 1,
+ "outlettype": [ "int" ],
+ "patching_rect": [ 322.0, 149.0, 36.0, 22.0 ],
+ "text": "- 100"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-4",
+ "maxclass": "newobj",
+ "numinlets": 2,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "patching_rect": [ 322.0, 120.0, 73.0, 22.0 ],
+ "text": "random 200"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-3",
+ "maxclass": "newobj",
+ "numinlets": 2,
+ "numoutlets": 3,
+ "outlettype": [ "bang", "bang", "int" ],
+ "patching_rect": [ 322.0, 77.0, 41.0, 22.0 ],
+ "text": "uzi 16"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-2",
+ "maxclass": "newobj",
+ "numinlets": 2,
+ "numoutlets": 2,
+ "outlettype": [ "", "" ],
+ "patching_rect": [ 322.0, 210.0, 68.0, 22.0 ],
+ "text": "zl.group 16"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-1",
+ "maxclass": "newobj",
+ "numinlets": 1,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "patching_rect": [ 50.0, 98.0, 54.0, 22.0 ],
+ "text": "deferlow"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-12",
+ "maxclass": "newobj",
+ "numinlets": 1,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "patching_rect": [ 72.0, 159.0, 83.0, 22.0 ],
+ "text": "prepend store"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-11",
+ "maxclass": "newobj",
+ "numinlets": 2,
+ "numoutlets": 3,
+ "outlettype": [ "bang", "bang", "int" ],
+ "patching_rect": [ 50.0, 131.0, 41.0, 22.0 ],
+ "text": "uzi 26"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-7",
+ "maxclass": "newobj",
+ "numinlets": 1,
+ "numoutlets": 1,
+ "outlettype": [ "bang" ],
+ "patching_rect": [ 50.0, 65.0, 58.0, 22.0 ],
+ "text": "loadbang"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-6",
+ "maxclass": "message",
+ "numinlets": 2,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "patching_rect": [ 61.0, 188.0, 202.0, 22.0 ],
+ "text": "store 34, store 44, store 56, store 65"
+ }
+ },
+ {
+ "box": {
+ "comment": "",
+ "id": "obj-13",
+ "index": 1,
+ "maxclass": "outlet",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 61.0, 270.0, 30.0, 30.0 ]
+ }
+ }
+ ],
+ "lines": [
+ {
+ "patchline": {
+ "destination": [ "obj-11", 0 ],
+ "source": [ "obj-1", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-13", 0 ],
+ "source": [ "obj-10", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-3", 0 ],
+ "source": [ "obj-10", 1 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-12", 0 ],
+ "source": [ "obj-11", 2 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-6", 0 ],
+ "source": [ "obj-11", 1 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-10", 0 ],
+ "source": [ "obj-12", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-9", 0 ],
+ "source": [ "obj-2", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-4", 0 ],
+ "source": [ "obj-3", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-5", 0 ],
+ "source": [ "obj-4", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-8", 0 ],
+ "source": [ "obj-5", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-10", 0 ],
+ "source": [ "obj-6", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-1", 0 ],
+ "source": [ "obj-7", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-2", 0 ],
+ "source": [ "obj-8", 0 ]
+ }
+ }
+ ]
+ },
+ "patching_rect": [ 232.0, 340.0, 34.0, 22.0 ],
+ "text": "p init"
+ }
+ },
+ {
+ "box": {
+ "border": 0,
+ "embedstate": [
+ [ "color_5", 0.283, 0.606, 0.559, 1 ],
+ [ "ignoreslotzero", 1 ],
+ [ "edited_color", 1, 0.49, 0.263, 1 ],
+ [ "empty_slot_color", 0.349, 0.349, 0.349, 1 ],
+ [ "spacing", 4 ],
+ [ "bgcolor", 0.2, 0.2, 0.2, 1 ],
+ [ "color_1", 0.743, 0.41, 0.501, 1 ],
+ [ "text_color", 0.129, 0.129, 0.129, 1 ],
+ [ "color_mode", 1 ],
+ [ "slot_round", 0 ],
+ [ "color_6", 0.316, 0.616, 0.377, 1 ],
+ [ "nbslot_edit", 1 ],
+ [ "active_slot_color", 0.808, 0.898, 0.91, 1 ],
+ [ "min_rows", 10 ],
+ [ "select_mode", 0 ],
+ [ "unique_names", 0 ],
+ [ "color_2", 0.679, 0.405, 0.669, 1 ],
+ [ "scrollable", 0 ],
+ [ "send_name", "none" ],
+ [ "stored_slot_color", 0.502, 0.502, 0.502, 1 ],
+ [ "margin", 4 ],
+ [ "layout", 0 ],
+ [ "use_uid", 1 ],
+ [ "fontsize", 14 ],
+ [ "color_3", 0.527, 0.459, 0.756, 1 ],
+ [ "recall_passthrough", 1 ],
+ [ "ui_rename", 0 ],
+ [ "menu_mode", 0 ],
+ [ "interp_slot_color", 1, 1, 1, 0.8 ],
+ [ "fontname", "Arial" ],
+ [ "pattrstorage", "colors" ],
+ [ "bubblesize", 14 ],
+ [ "color_4", 0.367, 0.542, 0.712, 1 ],
+ [ "autowriteagain", 0 ],
+ [ "poll_edited", 0 ],
+ [ "display_interp", 1 ],
+ [ "text_bg_color", 1, 1, 1, 0.5 ]
+ ],
+ "filename": "tc.preset.js",
+ "id": "obj-10",
+ "maxclass": "jsui",
+ "numinlets": 1,
+ "numoutlets": 5,
+ "outlettype": [ "", "", "", "", "" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 10.0, 378.0, 256.0, 112.0 ]
+ }
+ },
+ {
+ "box": {
+ "border": 0,
+ "filename": "helpname.js",
+ "id": "obj-4",
+ "ignoreclick": 1,
+ "jsarguments": [ "tc.preset" ],
+ "maxclass": "jsui",
+ "numinlets": 1,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 10.0, 10.0, 188.2880096435547, 57.599853515625 ]
+ }
+ },
+ {
+ "box": {
+ "fontsize": 13.0,
+ "id": "obj-113",
+ "linecount": 4,
+ "maxclass": "comment",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 10.0, 64.0, 470.0, 65.0 ],
+ "text": "When color_mode is set to 1 (Cycle), stored presets are shown in colors from color_1 to color_6, cyclically depending on their slot number.\nIn mode 2 (Select), you can freely choose one of the 6 colors for each preset.\nIn mode 3 (Custom), you are free to set any color in rgba format for any preset."
+ }
+ },
+ {
+ "box": {
+ "alias": {
+ "preset_metadata": "preset_metadata"
+ },
+ "id": "obj-1",
+ "maxclass": "newobj",
+ "numinlets": 1,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "patching_rect": [ 10.0, 309.0, 189.0, 22.0 ],
+ "saved_object_attributes": {
+ "client_rect": [ 100, 172, 596, 755 ],
+ "parameter_enable": 0,
+ "parameter_mappable": 0,
+ "storage_rect": [ 365, 44, 816, 172 ]
+ },
+ "text": "pattrstorage colors @savemode 0",
+ "varname": "colors"
+ }
+ },
+ {
+ "box": {
+ "attr": "color_mode",
+ "id": "obj-11",
+ "maxclass": "attrui",
+ "numinlets": 1,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 109.5, 161.0, 125.0, 22.0 ]
+ }
+ },
+ {
+ "box": {
+ "attr": "color_1",
+ "id": "obj-13",
+ "maxclass": "attrui",
+ "numinlets": 1,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 288.0, 378.0, 226.0, 22.0 ]
+ }
+ },
+ {
+ "box": {
+ "attr": "color_2",
+ "id": "obj-16",
+ "maxclass": "attrui",
+ "numinlets": 1,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 288.0, 404.0, 226.0, 22.0 ]
+ }
+ },
+ {
+ "box": {
+ "attr": "color_3",
+ "id": "obj-17",
+ "maxclass": "attrui",
+ "numinlets": 1,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 288.0, 428.0, 226.0, 22.0 ]
+ }
+ },
+ {
+ "box": {
+ "attr": "color_4",
+ "id": "obj-18",
+ "maxclass": "attrui",
+ "numinlets": 1,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 288.0, 452.0, 226.0, 22.0 ]
+ }
+ },
+ {
+ "box": {
+ "attr": "color_5",
+ "id": "obj-19",
+ "maxclass": "attrui",
+ "numinlets": 1,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 288.0, 476.0, 226.0, 22.0 ]
+ }
+ },
+ {
+ "box": {
+ "attr": "color_6",
+ "id": "obj-20",
+ "maxclass": "attrui",
+ "numinlets": 1,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 288.0, 500.0, 226.0, 22.0 ]
+ }
+ },
+ {
+ "box": {
+ "attr": "use_uid",
+ "id": "obj-23",
+ "maxclass": "attrui",
+ "numinlets": 1,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 671.5, 244.0, 87.0, 22.0 ],
+ "text_width": 64.0
+ }
+ }
+ ],
+ "lines": [
+ {
+ "patchline": {
+ "destination": [ "obj-10", 0 ],
+ "source": [ "obj-1", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-27", 0 ],
+ "source": [ "obj-10", 2 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-10", 0 ],
+ "source": [ "obj-11", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-10", 0 ],
+ "source": [ "obj-13", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-10", 0 ],
+ "source": [ "obj-16", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-10", 0 ],
+ "source": [ "obj-17", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-10", 0 ],
+ "source": [ "obj-18", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-10", 0 ],
+ "source": [ "obj-19", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-22", 0 ],
+ "source": [ "obj-2", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-10", 0 ],
+ "source": [ "obj-20", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-2", 0 ],
+ "source": [ "obj-21", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-10", 0 ],
+ "hidden": 1,
+ "source": [ "obj-23", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-10", 0 ],
+ "midpoints": [ 138.0, 525.0, 6.0, 525.0, 6.0, 375.0, 19.5, 375.0 ],
+ "source": [ "obj-27", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-11", 0 ],
+ "source": [ "obj-3", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-10", 0 ],
+ "source": [ "obj-34", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-39", 0 ],
+ "source": [ "obj-38", 1 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-3", 0 ],
+ "hidden": 1,
+ "source": [ "obj-5", 0 ]
+ }
+ }
+ ]
+ },
+ "patching_rect": [ 567.0, 26.7999267578125, 112.0, 22.0 ],
+ "text": "p \"slot colors & uid\"",
+ "varname": "slot colors"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-16",
+ "maxclass": "newobj",
+ "numinlets": 0,
+ "numoutlets": 0,
+ "patcher": {
+ "fileversion": 1,
+ "appversion": {
+ "major": 9,
+ "minor": 1,
+ "revision": 0,
+ "architecture": "x64",
+ "modernui": 1
+ },
+ "classnamespace": "box",
+ "rect": [ 0.0, 26.0, 899.0, 620.0 ],
+ "default_fontsize": 13.0,
+ "gridsize": [ 5.0, 5.0 ],
+ "showontab": 1,
+ "boxes": [
+ {
+ "box": {
+ "id": "obj-4",
+ "maxclass": "comment",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 219.0, 27.0, 89.0, 21.0 ],
+ "text": "Max 8 version"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-38",
+ "maxclass": "newobj",
+ "numinlets": 1,
+ "numoutlets": 3,
+ "outlettype": [ "", "", "" ],
+ "patching_rect": [ 596.0, 159.0, 40.0, 23.0 ],
+ "restore": [ -0.079365079365079, 0.206349206349206, 0.428571428571429, 0.682539682539683, 0.904761904761905, 0.904761904761905, 0.841269841269841, 0.555555555555556, 0.047619047619048, -0.301587301587302, -0.587301587301587, -0.682539682539683, -0.650793650793651, -0.428571428571429, -0.111111111111111, 0.079365079365079 ],
+ "saved_object_attributes": {
+ "parameter_enable": 0,
+ "parameter_mappable": 0
+ },
+ "text": "pattr",
+ "varname": "u099005226"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-20",
+ "maxclass": "multislider",
+ "numinlets": 1,
+ "numoutlets": 2,
+ "outlettype": [ "", "" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 607.0, 186.0, 136.0, 78.0 ],
+ "size": 16,
+ "varname": "multislider"
+ }
+ },
+ {
+ "box": {
+ "bubble": 1,
+ "id": "obj-15",
+ "linecount": 2,
+ "maxclass": "comment",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 680.0, 529.0, 212.0, 40.0 ],
+ "text": "Rightmost outlet provides a dictionary with all stored presets"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-14",
+ "maxclass": "dict.view",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 490.0, 492.0, 188.0, 114.0 ]
+ }
+ },
+ {
+ "box": {
+ "bubble": 1,
+ "id": "obj-12",
+ "linecount": 3,
+ "maxclass": "comment",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 394.0, 426.0, 103.0, 54.0 ],
+ "text": "Lock state of the current preset"
+ }
+ },
+ {
+ "box": {
+ "bubble": 1,
+ "bubbleside": 0,
+ "id": "obj-6",
+ "linecount": 2,
+ "maxclass": "comment",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 228.5, 473.0, 150.0, 55.0 ],
+ "text": "Edit the selected preset name and hit enter!"
+ }
+ },
+ {
+ "box": {
+ "bubble": 1,
+ "bubblepoint": 0.8,
+ "bubbleside": 0,
+ "id": "obj-5",
+ "linecount": 4,
+ "maxclass": "comment",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 18.0, 478.0, 183.0, 84.0 ],
+ "text": "The umen is automatically updated with the list of stored presets. It also displays the currently selected preset."
+ }
+ },
+ {
+ "box": {
+ "bubble": 1,
+ "id": "obj-24",
+ "linecount": 10,
+ "maxclass": "comment",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 511.0, 305.0, 368.0, 156.0 ],
+ "text": "tc.preset handles the same user interactions as the regular preset object, plus a few useful ones:\n\n- RECALL (or SELECT if select_mode enabled): click\n- STORE: shift+click\n- DELETE: shift-(option|alt)-click\n- LOCK/UNLOCK: shift+control+click\n- RENAME: control+click (requires a [textedit] connected to third outlet)\n- MOVE: click and drag presets to reorganize them"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-30",
+ "maxclass": "comment",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 640.0, 160.0, 118.0, 21.0 ],
+ "text": "Some data to store"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-56",
+ "maxclass": "toggle",
+ "numinlets": 1,
+ "numoutlets": 1,
+ "outlettype": [ "int" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 372.0, 440.0, 24.0, 24.0 ]
+ }
+ },
+ {
+ "box": {
+ "id": "obj-27",
+ "keymode": 1,
+ "lines": 1,
+ "maxclass": "textedit",
+ "nosymquotes": 1,
+ "numinlets": 1,
+ "numoutlets": 4,
+ "outlettype": [ "", "int", "", "" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 254.0, 441.0, 98.0, 23.0 ],
+ "text": "sine"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-8",
+ "items": [ 1, "up", ",", 2, "down", ",", 3, "sine", ",", 4, "random", ",", 7, "W" ],
+ "maxclass": "umenu",
+ "numinlets": 1,
+ "numoutlets": 3,
+ "outlettype": [ "int", "", "" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 136.0, 441.0, 112.0, 23.0 ]
+ }
+ },
+ {
+ "box": {
+ "border": 0,
+ "embedstate": [
+ [ "color_5", 0.283, 0.606, 0.559, 1 ],
+ [ "ignoreslotzero", 1 ],
+ [ "edited_color", 1, 0.49, 0.263, 1 ],
+ [ "empty_slot_color", 0.349, 0.349, 0.349, 1 ],
+ [ "spacing", 4 ],
+ [ "bgcolor", 0.2, 0.2, 0.2, 1 ],
+ [ "color_1", 0.743, 0.41, 0.501, 1 ],
+ [ "text_color", 0.129, 0.129, 0.129, 1 ],
+ [ "color_mode", 0 ],
+ [ "slot_round", 0 ],
+ [ "color_6", 0.316, 0.616, 0.377, 1 ],
+ [ "nbslot_edit", 1 ],
+ [ "active_slot_color", 0.808, 0.898, 0.91, 1 ],
+ [ "min_rows", 10 ],
+ [ "select_mode", 0 ],
+ [ "unique_names", 0 ],
+ [ "color_2", 0.679, 0.405, 0.669, 1 ],
+ [ "scrollable", 0 ],
+ [ "send_name", "none" ],
+ [ "stored_slot_color", 0.502, 0.502, 0.502, 1 ],
+ [ "margin", 4 ],
+ [ "layout", 0 ],
+ [ "use_uid", 0 ],
+ [ "fontsize", 14 ],
+ [ "color_3", 0.527, 0.459, 0.756, 1 ],
+ [ "recall_passthrough", 1 ],
+ [ "ui_rename", 0 ],
+ [ "menu_mode", 0 ],
+ [ "interp_slot_color", 1, 1, 1, 0.8 ],
+ [ "fontname", "Arial" ],
+ [ "pattrstorage", "test" ],
+ [ "bubblesize", 14 ],
+ [ "color_4", 0.367, 0.542, 0.712, 1 ],
+ [ "autowriteagain", 0 ],
+ [ "poll_edited", 0 ],
+ [ "display_interp", 1 ],
+ [ "text_bg_color", 1, 1, 1, 0.5 ]
+ ],
+ "filename": "tc.preset.js",
+ "id": "obj-10",
+ "maxclass": "jsui",
+ "numinlets": 1,
+ "numoutlets": 5,
+ "outlettype": [ "", "", "", "", "" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 18.0, 328.0, 491.0, 95.0 ]
+ }
+ },
+ {
+ "box": {
+ "id": "obj-1",
+ "maxclass": "newobj",
+ "numinlets": 1,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "patching_rect": [ 18.0, 286.0, 190.0, 23.0 ],
+ "saved_object_attributes": {
+ "client_rect": [ 100, 172, 596, 755 ],
+ "parameter_enable": 0,
+ "parameter_mappable": 0,
+ "storage_rect": [ 365, 44, 816, 172 ]
+ },
+ "text": "pattrstorage test @savemode 0",
+ "varname": "test"
+ }
+ },
+ {
+ "box": {
+ "fontsize": 14.0,
+ "id": "obj-13",
+ "linecount": 5,
+ "maxclass": "comment",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 10.0, 136.0, 427.0, 85.0 ],
+ "text": "Get tc.preset working in 3 steps:\n1. Create a [tc.preset] (shortcut for [jsui @filename tc.preset.js])\n2. Connect its inlet to your [pattrstorage] outlet like shown below\n3. Send to tc.preset the name of your pattrstorage prepended by \"pattrstorage\", or set its name in the @pattrstorage attribute "
+ }
+ },
+ {
+ "box": {
+ "border": 0,
+ "filename": "helpdetails.js",
+ "id": "obj-2",
+ "ignoreclick": 1,
+ "jsarguments": [ "tc.preset" ],
+ "maxclass": "jsui",
+ "numinlets": 1,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 10.0, 10.0, 621.0, 124.0 ]
+ }
+ }
+ ],
+ "lines": [
+ {
+ "patchline": {
+ "destination": [ "obj-10", 0 ],
+ "source": [ "obj-1", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-14", 0 ],
+ "source": [ "obj-10", 4 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-27", 0 ],
+ "source": [ "obj-10", 2 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-56", 0 ],
+ "source": [ "obj-10", 3 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-8", 0 ],
+ "source": [ "obj-10", 1 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-10", 0 ],
+ "midpoints": [ 263.5, 473.2890625, 9.0, 473.2890625, 9.0, 324.0, 27.5, 324.0 ],
+ "source": [ "obj-27", 0 ]
+ }
+ },
+ {
+ "patchline": {
+ "destination": [ "obj-20", 0 ],
+ "source": [ "obj-38", 1 ]
+ }
+ }
+ ]
+ },
+ "patching_rect": [ 240.0, 27.7999267578125, 50.0, 22.0 ],
+ "saved_object_attributes": {
+ "fontsize": 13.0
+ },
+ "text": "p basic",
+ "varname": "basic_tab"
+ }
+ },
+ {
+ "box": {
+ "border": 0,
+ "filename": "helpname.js",
+ "id": "obj-18",
+ "ignoreclick": 1,
+ "jsarguments": [ "tc.preset" ],
+ "maxclass": "jsui",
+ "numinlets": 1,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "parameter_enable": 0,
+ "patching_rect": [ 10.0, 10.0, 188.2880096435547, 57.599853515625 ]
+ }
+ }
+ ],
+ "lines": [],
+ "autosave": 0
+ }
+}
\ No newline at end of file
diff --git a/help/max9.tc.preset.maxhelp b/help/max9.tc.preset.maxhelp
index 3851fbc..d367ac6 100644
--- a/help/max9.tc.preset.maxhelp
+++ b/help/max9.tc.preset.maxhelp
@@ -70,9 +70,31 @@
"modernui": 1
},
"classnamespace": "box",
- "rect": [ 0.0, 26.0, 899.0, 620.0 ],
+ "rect": [ 364.0, 135.0, 899.0, 620.0 ],
"showontab": 1,
"boxes": [
+ {
+ "box": {
+ "id": "obj-12",
+ "linecount": 2,
+ "maxclass": "comment",
+ "numinlets": 1,
+ "numoutlets": 0,
+ "patching_rect": [ 473.0, 388.0, 278.0, 33.0 ],
+ "text": "Move an existing preset to another slot\n(same action as dragging a preset with the mouse)"
+ }
+ },
+ {
+ "box": {
+ "id": "obj-5",
+ "maxclass": "message",
+ "numinlets": 2,
+ "numoutlets": 1,
+ "outlettype": [ "" ],
+ "patching_rect": [ 403.0, 394.0, 65.0, 22.0 ],
+ "text": "move 4 10"
+ }
+ },
{
"box": {
"id": "obj-38",
@@ -119,8 +141,8 @@
"maxclass": "comment",
"numinlets": 1,
"numoutlets": 0,
- "patching_rect": [ 472.0, 377.0, 365.0, 20.0 ],
- "text": "Recalls the nth (0-based) filled preset, regardless of its slot number"
+ "patching_rect": [ 473.0, 367.0, 365.0, 20.0 ],
+ "text": "Recall the nth (0-based) filled preset, regardless of its slot number"
}
},
{
@@ -130,7 +152,7 @@
"numinlets": 2,
"numoutlets": 1,
"outlettype": [ "" ],
- "patching_rect": [ 389.0, 376.0, 79.0, 22.0 ],
+ "patching_rect": [ 389.0, 366.0, 79.0, 22.0 ],
"text": "recall_filled 4"
}
},
@@ -174,7 +196,7 @@
"maxclass": "comment",
"numinlets": 1,
"numoutlets": 0,
- "patching_rect": [ 389.0, 350.0, 168.0, 20.0 ],
+ "patching_rect": [ 390.0, 335.0, 168.0, 20.0 ],
"text": "tc.preset specific messages"
}
},
@@ -305,7 +327,7 @@
"maxclass": "comment",
"numinlets": 1,
"numoutlets": 0,
- "patching_rect": [ 472.0, 481.0, 225.0, 20.0 ],
+ "patching_rect": [ 447.0, 473.0, 225.0, 20.0 ],
"text": "Sets the lock state of the selected preset"
}
},
@@ -317,7 +339,7 @@
"numoutlets": 1,
"outlettype": [ "int" ],
"parameter_enable": 0,
- "patching_rect": [ 405.0, 450.0, 24.0, 24.0 ]
+ "patching_rect": [ 380.0, 442.0, 24.0, 24.0 ]
}
},
{
@@ -327,7 +349,7 @@
"numinlets": 2,
"numoutlets": 1,
"outlettype": [ "" ],
- "patching_rect": [ 405.0, 480.0, 63.0, 22.0 ],
+ "patching_rect": [ 380.0, 472.0, 63.0, 22.0 ],
"text": "setlock $1"
}
},
@@ -338,7 +360,7 @@
"maxclass": "comment",
"numinlets": 1,
"numoutlets": 0,
- "patching_rect": [ 472.0, 411.0, 285.0, 33.0 ],
+ "patching_rect": [ 473.0, 423.0, 285.0, 33.0 ],
"text": "Select a preset. Doesn't recall it, but updates the umenu, textedit and lock toggle underneath the jsui."
}
},
@@ -349,7 +371,7 @@
"numinlets": 2,
"numoutlets": 1,
"outlettype": [ "" ],
- "patching_rect": [ 418.0, 417.0, 50.0, 22.0 ],
+ "patching_rect": [ 418.0, 429.0, 50.0, 22.0 ],
"text": "select 3"
}
},
@@ -419,7 +441,7 @@
"maxclass": "comment",
"numinlets": 1,
"numoutlets": 0,
- "patching_rect": [ 472.0, 507.0, 198.0, 20.0 ],
+ "patching_rect": [ 447.0, 499.0, 198.0, 20.0 ],
"text": "Set the name of the selected preset"
}
},
@@ -430,7 +452,7 @@
"numinlets": 2,
"numoutlets": 1,
"outlettype": [ "" ],
- "patching_rect": [ 345.0, 506.0, 123.0, 22.0 ],
+ "patching_rect": [ 320.0, 498.0, 123.0, 22.0 ],
"text": "setslotname myname"
}
},
@@ -441,7 +463,7 @@
"maxclass": "comment",
"numinlets": 1,
"numoutlets": 0,
- "patching_rect": [ 472.0, 530.0, 171.0, 33.0 ],
+ "patching_rect": [ 447.0, 522.0, 171.0, 33.0 ],
"text": "A fail-safe message to resync the jsui to the pattrstorage"
}
},
@@ -464,7 +486,7 @@
"numinlets": 2,
"numoutlets": 1,
"outlettype": [ "" ],
- "patching_rect": [ 424.0, 535.0, 44.0, 22.0 ],
+ "patching_rect": [ 399.0, 527.0, 44.0, 22.0 ],
"text": "resync"
}
},
@@ -716,6 +738,12 @@
"source": [ "obj-48", 0 ]
}
},
+ {
+ "patchline": {
+ "destination": [ "obj-10", 0 ],
+ "source": [ "obj-5", 0 ]
+ }
+ },
{
"patchline": {
"destination": [ "obj-1", 0 ],
@@ -1603,43 +1631,43 @@
{
"box": {
"embedstate": [
- [ "text_bg_color", 1, 1, 1, 0.5 ],
- [ "ui_rename", 0 ],
- [ "bubblesize", 14 ],
- [ "ignoreslotzero", 1 ],
[ "color_5", 0.283, 0.606, 0.559, 1 ],
+ [ "ignoreslotzero", 1 ],
+ [ "edited_color", 1, 0.49, 0.263, 1 ],
[ "empty_slot_color", 0.349, 0.349, 0.349, 1 ],
+ [ "spacing", 4 ],
+ [ "bgcolor", 0.2, 0.2, 0.2, 1 ],
[ "color_1", 0.743, 0.41, 0.501, 1 ],
[ "text_color", 0.129, 0.129, 0.129, 1 ],
- [ "poll_edited", 0 ],
+ [ "color_mode", 0 ],
[ "slot_round", 0 ],
[ "color_6", 0.316, 0.616, 0.377, 1 ],
+ [ "nbslot_edit", 1 ],
[ "active_slot_color", 0.808, 0.898, 0.91, 1 ],
- [ "scrollable", 0 ],
[ "min_rows", 10 ],
- [ "margin", 4 ],
- [ "color_mode", 0 ],
- [ "color_2", 0.679, 0.405, 0.669, 1 ],
- [ "bgcolor", 0.2, 0.2, 0.2, 1 ],
- [ "fontsize", 14 ],
- [ "edited_color", 1, 0.49, 0.263, 1 ],
[ "select_mode", 0 ],
+ [ "unique_names", 0 ],
+ [ "color_2", 0.679, 0.405, 0.669, 1 ],
+ [ "scrollable", 0 ],
[ "send_name", "none" ],
[ "stored_slot_color", 0.502, 0.502, 0.502, 1 ],
+ [ "margin", 4 ],
+ [ "layout", 0 ],
+ [ "use_uid", 0 ],
+ [ "fontsize", 14 ],
+ [ "color_3", 0.527, 0.459, 0.756, 1 ],
+ [ "recall_passthrough", 1 ],
+ [ "ui_rename", 0 ],
+ [ "menu_mode", 0 ],
+ [ "interp_slot_color", 1, 1, 1, 0.8 ],
[ "fontname", "Arial" ],
[ "pattrstorage", "mypat" ],
- [ "color_3", 0.527, 0.459, 0.756, 1 ],
- [ "menu_mode", 0 ],
- [ "nbslot_edit", 1 ],
- [ "unique_names", 0 ],
- [ "recall_passthrough", 1 ],
- [ "interp_slot_color", 1, 1, 1, 0.8 ],
- [ "layout", 0 ],
+ [ "bubblesize", 14 ],
[ "color_4", 0.367, 0.542, 0.712, 1 ],
[ "autowriteagain", 0 ],
+ [ "poll_edited", 0 ],
[ "display_interp", 1 ],
- [ "spacing", 4 ],
- [ "use_uid", 0 ]
+ [ "text_bg_color", 1, 1, 1, 0.5 ]
],
"filename": "tc.preset",
"id": "obj-1",
@@ -4798,7 +4826,7 @@
"modernui": 1
},
"classnamespace": "box",
- "rect": [ 364.0, 135.0, 899.0, 620.0 ],
+ "rect": [ 0.0, 26.0, 899.0, 620.0 ],
"default_fontsize": 13.0,
"gridsize": [ 5.0, 5.0 ],
"showontab": 1,
diff --git a/javascript/tc.preset.js b/javascript/tc.preset.js
index d3d5597..241d19f 100644
--- a/javascript/tc.preset.js
+++ b/javascript/tc.preset.js
@@ -54,6 +54,7 @@ var empty_slot_color = [0.349, 0.349, 0.349, 1];
var active_slot_color = [0.808, 0.898, 0.910, 1];
var stored_slot_color = [0.502, 0.502, 0.502, 1];
var interp_slot_color = [1.0, 1.0, 1.0, 0.8];
+var border_color = [1.0, 1.0, 1.0, 0.85];
var text_bg_color = [1,1,1, 0.5];
var text_color = [0.129, 0.129, 0.129, 1];
var edited_color = [1, 0.49, 0.263, 1];
@@ -124,6 +125,7 @@ var shift_hold = 0;
var option_hold = 0;
var control_hold = 0;
var is_interpolating = 0;
+var is_moving = 0;
var is_dragging = 0; // Drag flag
var drag_slot = -1; // Stores the slot that's being dragged
var is_writing = 0;
@@ -375,7 +377,6 @@ format_slot_name.local = 1;
function paint_base() {
// We draw all slots (empty and stored ones) so we don't have to for every redraw
- // post("paint_base\n");
is_painting_base = 1;
// Background
@@ -439,9 +440,12 @@ function paint()
if (is_dragging == 0 && active_slot > 0 && active_slot <= slots_count_display) {
mgraphics.set_source_rgba(active_slot_color);
if (color_mode) {
- draw_slot_bubble(slots[active_slot].left+1.5, slots[active_slot].top+1.5, slot_size-3, slot_size-3);
- mgraphics.set_line_width(3);
- mgraphics.stroke();
+ if (!control_hold) {
+ // If color_mode enabled, draw a bold border around the active slot only if control isn't hold (for rename/lock actions)
+ draw_slot_bubble(slots[active_slot].left+1, slots[active_slot].top+1, slot_size-2, slot_size-2);
+ mgraphics.set_line_width(2);
+ mgraphics.stroke();
+ }
} else {
draw_slot_bubble(slots[active_slot].left, slots[active_slot].top, slot_size, slot_size);
mgraphics.fill();
@@ -452,24 +456,20 @@ function paint()
if (is_dragging == 0 && previous_active_slot > 0 && previous_active_slot <= slots_count_display) {
mgraphics.set_source_rgba(active_slot_color[0], active_slot_color[1], active_slot_color[2], active_slot_color[3] * 0.5);
if (color_mode) {
- draw_slot_bubble(slots[previous_active_slot].left+1.5, slots[previous_active_slot].top+1.5, slot_size-3, slot_size-3);
- mgraphics.set_line_width(3);
- mgraphics.stroke();
+ if (!control_hold) {
+ draw_slot_bubble(slots[previous_active_slot].left+1, slots[previous_active_slot].top+1, slot_size-2, slot_size-2);
+ mgraphics.set_line_width(2);
+ mgraphics.stroke();
+ }
} else {
draw_slot_bubble(slots[previous_active_slot].left, slots[previous_active_slot].top, slot_size, slot_size);
mgraphics.fill();
}
}
- //Hide dragged slot
- if (is_dragging) {
- mgraphics.set_source_rgba(empty_slot_color);
- draw_slot_bubble(slots[drag_slot].left, slots[drag_slot].top, slot_size, slot_size);
- mgraphics.fill();
- }
// Selected slot
- if (selected_slot > 0 && selected_slot <= slots_count_display) {
+ if (selected_slot > 0 && selected_slot <= slots_count_display && !(control_hold && last_hovered == selected_slot) && selected_slot != drag_slot) {
mgraphics.set_source_rgba(active_slot_color);
mgraphics.set_line_width(1);
draw_slot_bubble(slots[selected_slot].left - 0.5, slots[selected_slot].top - 0.5, slot_size + 1, slot_size + 1);
@@ -498,23 +498,39 @@ function paint()
mgraphics.fill();
}
+ //Hide dragged slot
+ // if (is_dragging) {
+ // mgraphics.set_source_rgba(background_color);
+ // draw_slot_bubble(slots[drag_slot].left, slots[drag_slot].top, slot_size, slot_size);
+ // mgraphics.fill();
+ // }
+
// Hovered slot
if (last_hovered > -1) {
+
+ // Slot border
+ if (slots[last_hovered].name == null || (slots[last_hovered].name != null && !control_hold)) {
+ mgraphics.set_source_rgba(border_color[0], border_color[1], border_color[2], 0.8 * border_color[3]);
+ mgraphics.set_line_width(1);
+ draw_slot_bubble(slots[last_hovered].left, slots[last_hovered].top, slot_size, slot_size);
+ mgraphics.stroke();
+ }
+
if (last_hovered_is_preset_slot) {
if (shift_hold) {
if (control_hold && slots[last_hovered].name !== null) {
// About to lock/unlock
var bracket_size = slot_size * 0.2;
- mgraphics.set_source_rgba(1, 1, 1, 0.8);
+ mgraphics.set_source_rgba(border_color);
mgraphics.set_line_width(2);
- mgraphics.move_to(slots[last_hovered].left + bracket_size, slots[last_hovered].top - 2);
- mgraphics.rel_line_to(-bracket_size - 2, 0);
- mgraphics.rel_line_to(0, slot_size + 4);
- mgraphics.rel_line_to(bracket_size + 2, 0);
- mgraphics.move_to(slots[last_hovered].right - bracket_size, slots[last_hovered].top - 2);
- mgraphics.rel_line_to(2 + bracket_size, 0);
- mgraphics.rel_line_to(0, slot_size + 4);
- mgraphics.rel_line_to(- 2 - bracket_size, 0);
+ mgraphics.move_to(slots[last_hovered].left + bracket_size, slots[last_hovered].top);
+ mgraphics.rel_line_to(-bracket_size, 0);
+ mgraphics.rel_line_to(0, slot_size);
+ mgraphics.rel_line_to(bracket_size, 0);
+ mgraphics.move_to(slots[last_hovered].right - bracket_size, slots[last_hovered].top);
+ mgraphics.rel_line_to(bracket_size, 0);
+ mgraphics.rel_line_to(0, slot_size);
+ mgraphics.rel_line_to(-bracket_size, 0);
mgraphics.stroke();
} else if (option_hold && !control_hold && slots[last_hovered].name !== null) {
// About to delete
@@ -529,22 +545,16 @@ function paint()
}
} else if (control_hold && slots[last_hovered].name !== null) {
// About to rename
- mgraphics.set_source_rgba(1, 1, 1, 0.8);
+ mgraphics.set_source_rgba(border_color);
mgraphics.set_line_width(2);
- mgraphics.move_to(slots[last_hovered].left - 2, slots[last_hovered].top - 2);
- mgraphics.rel_line_to(slot_size + 4, 0);
- mgraphics.move_to(slots[last_hovered].left - 2, slots[last_hovered].bottom + 2);
- mgraphics.rel_line_to(slot_size + 4, 0);
+ mgraphics.move_to(slots[last_hovered].left, slots[last_hovered].top);
+ mgraphics.rel_line_to(slot_size, 0);
+ mgraphics.move_to(slots[last_hovered].left, slots[last_hovered].bottom);
+ mgraphics.rel_line_to(slot_size, 0);
mgraphics.stroke();
}
}
- // Slot border
- mgraphics.set_source_rgba(1, 1, 1, 0.8);
- mgraphics.set_line_width(1);
- draw_slot_bubble(slots[last_hovered].left, slots[last_hovered].top, slot_size, slot_size);
- mgraphics.stroke();
-
if (layout == 0) {
//Text (slot number and name)
var text = null;
@@ -813,7 +823,7 @@ function anything() {
// Here just to avoid error messages in case pattrstorage sends unhandled message, like when using getstoredvalue, getsubscriptionlist, getalias, etc.
// Handle the "delete" messages here because we can't declare a "function delete" (it is a reserved word in js and cannot be used as a function name.
- if (messagename == "delete") {
+ if (messagename == "delete" && !is_dragging && !is_moving) {
var v = arrayfromargs(arguments)[0];
v = Math.floor(v);
if (v >= 0) {
@@ -828,7 +838,7 @@ function anything() {
previous_active_slot = 0;
}
- if (is_dragging == 0) {
+ if (is_dragging == 0 && is_moving == 0) {
to_pattrstorage("delete", v);
to_pattrstorage("getslotlist");
paint_base();
@@ -1130,13 +1140,15 @@ function lock() {
if (args.length == 2) {
to_pattrstorage("lock", args[0], args[1]);
to_pattrstorage("getlockedslots");
- outlet(0, "lock", args[0], args[1]);
- update_filled_slots_dict();
- trigger_writeagain();
- if (layout == 1) {
- paint_base();
- } else if (layout == 0) {
- mgraphics.redraw();
+ if (!is_dragging && !is_moving) {
+ outlet(0, "lock", args[0], args[1]);
+ update_filled_slots_dict();
+ trigger_writeagain();
+ if (layout == 1) {
+ paint_base();
+ } else if (layout == 0) {
+ mgraphics.redraw();
+ }
}
}
}
@@ -1156,6 +1168,91 @@ function lockedslots() {
}
}
+function move() {
+ var args = arrayfromargs(arguments);
+ if (args.length < 2) return;
+ var src_slot = args[0]; // Preset to move
+ var dst_slot = args[1]; // Destination slot
+ if (src_slot == dst_slot || !(src_slot <= slots_highest && dst_slot <= slots_count_display) || slots[src_slot].name == null) {
+ if (is_dragging) {
+
+ }
+ return;
+ }
+ is_moving = 1;
+
+ var cur_active_slot = active_slot;
+ var cur_prev_active_slot = previous_active_slot;
+ var cur_selected_slot = selected_slot;
+ var offset = ((dst_slot <= src_slot) && slots[dst_slot].name != null) ? 1 : 0;
+ var offset_others = slots[dst_slot].name != null ? 1 : 0;
+ var src_slot_lock = slots[src_slot].lock;
+ var recalc_rows_flag = 0;
+
+ // If the slot we wan to drag is locked, we need to temporarily unlock it.
+ if (src_slot_lock) {
+ lock(src_slot, 0);
+ }
+ // If new slot is empty we just move the drag preset here. If it's not, we move al next slots to the right
+ if (slots[dst_slot].name !== null) {
+ if (slots_highest == slots_count_display) {
+ // If there's a stored preset in the last displayed slot, it will be pushed to a new row at insert, so we need to add a new row at redraw
+ recalc_rows_flag = 1;
+ }
+ to_pattrstorage("insert", dst_slot);
+ }
+
+ to_pattrstorage("copy", src_slot + offset, dst_slot);
+ to_pattrstorage("delete", src_slot + offset);
+
+ // All this just to keep trace of the active and previous active slots
+ if (cur_active_slot == src_slot) {
+ active_slot = dst_slot;
+ } else if (dst_slot == cur_active_slot) {
+ active_slot = cur_active_slot + 1;
+ } else if (cur_active_slot > dst_slot) {
+ active_slot += offset_others;
+ }
+ if (cur_prev_active_slot == src_slot) {
+ previous_active_slot = dst_slot;
+ } else if (cur_prev_active_slot == dst_slot){
+ previous_active_slot = cur_prev_active_slot + 1;
+ } else if (cur_prev_active_slot > dst_slot) {
+ previous_active_slot += offset_others;
+ }
+ if (cur_selected_slot == src_slot) {
+ selected_slot = dst_slot;
+ } else if (dst_slot == cur_selected_slot) {
+ selected_slot = cur_selected_slot + 1;
+ } else if (cur_selected_slot > dst_slot) {
+ selected_slot += offset_others;
+ }
+
+ slots_clear();
+ to_pattrstorage("getslotlist");
+
+ // If the dragged slot was locked, relock it.
+ if (src_slot_lock) {
+ lock(dst_slot, 1);
+ }
+
+ to_pattrstorage("getlockedslots");
+
+ outlet(0, "move", src_slot, dst_slot);
+ is_moving = 0;
+ if (is_dragging) {
+ is_dragging = 0;
+ drag_slot = -1;
+ }
+
+ if (recalc_rows_flag) {
+ calc_rows_columns();
+ } else {
+ paint_base();
+ }
+ trigger_writeagain();
+}
+
function write() {
var args = arrayfromargs(arguments);
if (is_writing) {
@@ -1328,10 +1425,7 @@ function update_umenu() {
break;
}
}
-
- if (layout == 1) {
- set_umenu(selected_slot);
- }
+ set_umenu(selected_slot);
}
}
update_umenu.local = 1;
@@ -1609,6 +1703,7 @@ function ondrag(x,y,but,cmd,shift,capslock,option,ctrl)
if (dist_from_start > 10) {
is_dragging = 1;
drag_slot = last_hovered;
+ paint_base(); // We repaint the base with the dragged slot removed from the grid
}
} else if (is_dragging == 1) {
@@ -1620,66 +1715,7 @@ function ondrag(x,y,but,cmd,shift,capslock,option,ctrl)
if (!but) {
// When the button is released, the dragging ceases
if (last_hovered > 0 && last_hovered != drag_slot && last_hovered_is_preset_slot) {
- var cur_active_slot = active_slot;
- var cur_prev_active_slot = previous_active_slot;
- var offset = ((last_hovered <= drag_slot) && slots[last_hovered].name != null) ? 1 : 0;
- var offset_others = slots[last_hovered].name != null ? 1 : 0;
- var drag_slot_lock = slots[drag_slot].lock;
- var recalc_rows_flag = 0
- // If the slot we wan to drag is locked, we need to temporarily unlock it.
- if (drag_slot_lock) {
- lock(drag_slot, 0);
- }
- // If new slot is empty we just move the drag preset here. If it's not, we move al next slots to the right
- if (slots[last_hovered].name !== null) {
- if (slots_highest == slots_count_display) {
- // If there's a stored preset in the last displayed slot, it will be pushed to a new row at insert, so we need to add a new row at redraw
- recalc_rows_flag = 1;
- }
- to_pattrstorage("insert", last_hovered);
- }
-
- to_pattrstorage("copy", drag_slot + offset, last_hovered);
- to_pattrstorage("delete", drag_slot + offset);
-
- slots_clear();
- to_pattrstorage("getslotlist");
- to_pattrstorage("getlockedslots");
-
- // All this just to keep trace of the active and previous active slots
- if (cur_active_slot == drag_slot) {
- active_slot = last_hovered;
- } else if (last_hovered == cur_active_slot) {
- active_slot = cur_active_slot + 1;
- } else if (cur_active_slot > last_hovered) {
- active_slot += offset_others;
- }
- if (cur_prev_active_slot == drag_slot) {
- previous_active_slot = last_hovered;
- } else if (cur_prev_active_slot == last_hovered){
- previous_active_slot = cur_prev_active_slot + 1;
- } else if (cur_prev_active_slot > last_hovered) {
- previous_active_slot += offset_others;
- }
-
- // If the dragged slot was locked, relock it.
- if (drag_slot_lock) {
- lock(last_hovered, 1);
- }
- outlet(0, "drag", drag_slot, last_hovered, offset);
- is_dragging = 0;
- drag_slot = -1;
-
- select(last_hovered);
-
- if (recalc_rows_flag) {
- calc_rows_columns();
- } else {
- paint_base();
- }
-
- trigger_writeagain();
-
+ move(drag_slot, last_hovered);
} else {
// Drag released but not somewhere we can throw a slot in
is_dragging = 0;
diff --git a/max8.package-info.json b/max8.package-info.json
index 0f90fd6..6d2d875 100644
--- a/max8.package-info.json
+++ b/max8.package-info.json
@@ -1,7 +1,7 @@
{
"name" : "tc.preset",
"displayname" : "",
- "version" : "1.0.0",
+ "version" : "1.1.0",
"author" : "Théophile Clet",
"authors" : [ ],
"description" : "A jsui replacement for the preset object",
diff --git a/max9.package-info.json b/max9.package-info.json
index c6cbfdf..cb8a39d 100644
--- a/max9.package-info.json
+++ b/max9.package-info.json
@@ -1,7 +1,7 @@
{
"name" : "tc.preset",
"displayname" : "",
- "version" : "1.0.0",
+ "version" : "1.1.0",
"author" : "Théophile Clet",
"authors" : [ ],
"description" : "A v8ui replacement for the preset object",