6 Commits

7 changed files with 424 additions and 236 deletions

View File

@@ -22,6 +22,8 @@ A [jsui]/[v8ui] replacement for the [preset] object in Cycling'74 Max.
- Select mode: simple click selects the slot, double click recalls it (allows for organizing presets without recalling them)
- Color mode: various ways to colorize preset slots
- UID: generate unique identifiers for each preset so you can "follow" them when they're moved, renamed or re-saved. Practical in case of advanced preset management
- Timestamps: automatically save a 'created' and 'modified' date for each preset
- Click mode: set the behavior of single clicks: recall, select without recall, store, delete
...and more!
## How to install
@@ -49,7 +51,7 @@ Consider donating if you like this package.
[![Paypal donation button](https://pics.paypal.com/00/s/YjdhYzU5ZDItYjM0Yi00MGE1LWEzMWEtZGQ2NzVjMDI3MDg2/file.PNG)](https://www.paypal.com/donate/?hosted_button_id=AVGJ5JLTP76K8)
## License
Copyright (C) 2025 Théophile Clet <contact@tflcl.xyz> - https://tflcl.xyz.
Copyright (C) 2026 Théophile Clet <contact@tflcl.xyz> - https://tflcl.xyz.
GPL-3.0-or-later

View File

@@ -140,6 +140,12 @@
<digest>Slot size</digest>
<description>Size of the preset slots</description>
</attribute>
<attribute name='click_mode' get='1' set='1' type='int' size='1' >
<digest>Click Mode</digest>
<description>Sets the behavior of single clicks. When set to 1 (select mode), a single click on a stored preset selects it without recalling it. A double-click is required to recall it. It allows to drag it, set its name and lock state while keeping the last recalled preset active.
Other modes (2, 3) allow to respectively store or delete presets with single clicks.
</description>
</attribute>
<attribute name='color_mode' get='1' set='1' type='int' size='1' >
<digest>Color mode</digest>
<description>When set to 0, all preset slots have the same color (same as the preset object) defined by the stored_slot_color attribute.
@@ -230,7 +236,7 @@
</attribute>
<attribute name='select_mode' get='1' set='1' type='int' size='1' >
<digest>Preset selection mode</digest>
<description>When set to 1, a single click on a stored preset selects it without recalling it. It allows to drag it, set its name and lock state while keeping the last recalled preset active.
<description>(Depreciated, will be removed in next major version. Use click_mode instead) When set to 1, a single click on a stored preset selects it without recalling it. It allows to drag it, set its name and lock state while keeping the last recalled preset active.
You need to double-click on a stored preset to recall it. If set to 0, stored presets are recalled by a single click (default preset object behavior).
</description>
</attribute>

View File

@@ -40,6 +40,7 @@
"showrootpatcherontab" : 0,
"showontab" : 0,
"assistshowspatchername" : 0,
"integercoordinates" : 1,
"boxes" : [ {
"box" : {
"id" : "obj-19",
@@ -86,6 +87,7 @@
"subpatcher_template" : "",
"showontab" : 1,
"assistshowspatchername" : 0,
"integercoordinates" : 1,
"boxes" : [ ],
"lines" : [ ]
}
@@ -166,6 +168,7 @@
"subpatcher_template" : "",
"showontab" : 1,
"assistshowspatchername" : 0,
"integercoordinates" : 1,
"boxes" : [ {
"box" : {
"id" : "obj-7",
@@ -663,7 +666,7 @@
, {
"box" : {
"border" : 0,
"embedstate" : [ [ "poll_edited", 0 ], [ "ignoreslotzero", 1 ], [ "bubblesize", 14 ], [ "stored_slot_color", 0.458595350062755, 0.458595237564901, 0.458595266962388, 1.0 ], [ "spacing", 4 ], [ "min_rows", 10 ], [ "color_mode", 0 ], [ "color_5", 0.283, 0.606, 0.559, 1 ], [ "menu_mode", 0 ], [ "select_mode", 0 ], [ "layout", 0 ], [ "use_uid", 0 ], [ "interp_slot_color", 1, 1, 1, 0.8 ], [ "color_3", 0.527, 0.459, 0.756, 1 ], [ "edited_color", 1, 0.49, 0.263, 1 ], [ "recall_passthrough", 1 ], [ "bgcolor", 0.125, 0.125, 0.125, 1.0 ], [ "ui_rename", 0 ], [ "margin", 4 ], [ "color_1", 0.743, 0.41, 0.501, 1 ], [ "text_color", 0.85, 0.85, 0.85, 1.0 ], [ "fontsize", 13 ], [ "color_6", 0.316, 0.616, 0.377, 1 ], [ "send_name", "none" ], [ "timestamp", 0 ], [ "nbslot_edit", 1 ], [ "slot_round", 0 ], [ "autoname", 0 ], [ "autowriteagain", 0 ], [ "active_slot_color", 0.618934978328545, 0.744701397656435, 0.953750108255376, 1.0 ], [ "fontname", "Arial" ], [ "pattrstorage", "tcpreset_help" ], [ "color_4", 0.367, 0.542, 0.712, 1 ], [ "empty_slot_color", 0.221327066888467, 0.221327006361825, 0.221327022178404, 1.0 ], [ "scrollable", 0 ], [ "unique_names", 0 ], [ "color_2", 0.679, 0.405, 0.669, 1 ], [ "display_interp", 1 ] ],
"embedstate" : [ [ "spacing", 4 ], [ "edited_color", 1, 0.49, 0.263, 1 ], [ "recall_passthrough", 1 ], [ "stored_slot_color", 0.458595350062755, 0.458595237564901, 0.458595266962388, 1.0 ], [ "min_rows", 10 ], [ "color_1", 0.743, 0.41, 0.501, 1 ], [ "interp_slot_color", 1, 1, 1, 0.8 ], [ "color_6", 0.316, 0.616, 0.377, 1 ], [ "nbslot_edit", 1 ], [ "send_name", "none" ], [ "layout", 0 ], [ "use_uid", 0 ], [ "timestamp", 0 ], [ "autoname", 0 ], [ "color_4", 0.367, 0.542, 0.712, 1 ], [ "empty_slot_color", 0.221327066888467, 0.221327006361825, 0.221327022178404, 1.0 ], [ "text_color", 0.85, 0.85, 0.85, 1.0 ], [ "scrollable", 0 ], [ "margin", 4 ], [ "ui_rename", 0 ], [ "fontsize", 13 ], [ "active_slot_color", 0.618934978328545, 0.744701397656435, 0.953750108255376, 1.0 ], [ "bubblesize", 14 ], [ "color_2", 0.679, 0.405, 0.669, 1 ], [ "display_interp", 1 ], [ "poll_edited", 0 ], [ "slot_round", 0 ], [ "fontname", "Arial" ], [ "pattrstorage", "tcpreset_help" ], [ "color_mode", 0 ], [ "click_mode", 0 ], [ "color_5", 0.283, 0.606, 0.559, 1 ], [ "menu_mode", 0 ], [ "select_mode", 0 ], [ "ignoreslotzero", 1 ], [ "unique_names", 0 ], [ "bgcolor", 0.125, 0.125, 0.125, 1.0 ], [ "autowriteagain", 0 ], [ "color_3", 0.527, 0.459, 0.756, 1 ] ],
"filename" : "tc.preset.js",
"id" : "obj-10",
"maxclass" : "jsui",
@@ -949,7 +952,7 @@
}
,
"classnamespace" : "box",
"rect" : [ 0.0, 26.0, 899.0, 620.0 ],
"rect" : [ 344.0, 272.0, 899.0, 620.0 ],
"bglocked" : 0,
"openinpresentation" : 0,
"default_fontsize" : 12.0,
@@ -978,7 +981,82 @@
"subpatcher_template" : "",
"showontab" : 1,
"assistshowspatchername" : 0,
"integercoordinates" : 1,
"boxes" : [ {
"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" : [ 59.0, 119.0, 113.0, 113.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,
"integercoordinates" : 1,
"boxes" : [ {
"box" : {
"id" : "obj-13",
"linecount" : 4,
"maxclass" : "comment",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 27.0, 25.0, 57.0, 60.0 ],
"text" : "0: Recall\n1: Select\n2: Store\n3: Delete"
}
}
],
"lines" : [ ]
}
,
"patching_rect" : [ 150.0, 77.0, 81.0, 22.0 ],
"saved_object_attributes" : {
"description" : "",
"digest" : "",
"globalpatchername" : "",
"tags" : ""
}
,
"text" : "p see_modes"
}
}
, {
"box" : {
"bubble" : 1,
"id" : "obj-7",
@@ -1062,6 +1140,7 @@
"style" : "",
"subpatcher_template" : "",
"assistshowspatchername" : 0,
"integercoordinates" : 1,
"boxes" : [ {
"box" : {
"id" : "obj-2",
@@ -1441,7 +1520,7 @@
, {
"box" : {
"border" : 0,
"embedstate" : [ [ "poll_edited", 1 ], [ "ignoreslotzero", 1 ], [ "bubblesize", 14 ], [ "stored_slot_color", 0.458595350062755, 0.458595237564901, 0.458595266962388, 1.0 ], [ "spacing", 4 ], [ "min_rows", 10 ], [ "color_mode", 0 ], [ "color_5", 0.283, 0.606, 0.559, 1 ], [ "menu_mode", 0 ], [ "select_mode", 1 ], [ "layout", 0 ], [ "use_uid", 0 ], [ "interp_slot_color", 1, 1, 1, 0.8 ], [ "color_3", 0.527, 0.459, 0.756, 1 ], [ "edited_color", 1, 0.49, 0.263, 1 ], [ "recall_passthrough", 0 ], [ "bgcolor", 0.125, 0.125, 0.125, 1.0 ], [ "ui_rename", 1 ], [ "margin", 4 ], [ "color_1", 0.743, 0.41, 0.501, 1 ], [ "text_color", 0.85, 0.85, 0.85, 1.0 ], [ "fontsize", 13 ], [ "color_6", 0.316, 0.616, 0.377, 1 ], [ "send_name", "none" ], [ "timestamp", 0 ], [ "nbslot_edit", 1 ], [ "slot_round", 0 ], [ "autoname", 0 ], [ "autowriteagain", 0 ], [ "active_slot_color", 0.618934978328545, 0.744701397656435, 0.953750108255376, 1.0 ], [ "fontname", "Arial" ], [ "pattrstorage", "tcpreset_help" ], [ "color_4", 0.367, 0.542, 0.712, 1 ], [ "empty_slot_color", 0.221327066888467, 0.221327006361825, 0.221327022178404, 1.0 ], [ "scrollable", 0 ], [ "unique_names", 0 ], [ "color_2", 0.679, 0.405, 0.669, 1 ], [ "display_interp", 1 ] ],
"embedstate" : [ [ "spacing", 4 ], [ "edited_color", 1, 0.49, 0.263, 1 ], [ "recall_passthrough", 0 ], [ "stored_slot_color", 0.458595350062755, 0.458595237564901, 0.458595266962388, 1.0 ], [ "min_rows", 10 ], [ "color_1", 0.743, 0.41, 0.501, 1 ], [ "interp_slot_color", 1, 1, 1, 0.8 ], [ "color_6", 0.316, 0.616, 0.377, 1 ], [ "nbslot_edit", 1 ], [ "send_name", "none" ], [ "layout", 0 ], [ "use_uid", 0 ], [ "timestamp", 0 ], [ "autoname", 0 ], [ "color_4", 0.367, 0.542, 0.712, 1 ], [ "empty_slot_color", 0.221327066888467, 0.221327006361825, 0.221327022178404, 1.0 ], [ "text_color", 0.85, 0.85, 0.85, 1.0 ], [ "scrollable", 0 ], [ "margin", 4 ], [ "ui_rename", 1 ], [ "fontsize", 13 ], [ "active_slot_color", 0.618934978328545, 0.744701397656435, 0.953750108255376, 1.0 ], [ "bubblesize", 14 ], [ "color_2", 0.679, 0.405, 0.669, 1 ], [ "display_interp", 1 ], [ "poll_edited", 1 ], [ "slot_round", 0 ], [ "fontname", "Arial" ], [ "pattrstorage", "tcpreset_help" ], [ "color_mode", 0 ], [ "click_mode", 1 ], [ "color_5", 0.283, 0.606, 0.559, 1 ], [ "menu_mode", 0 ], [ "select_mode", 0 ], [ "ignoreslotzero", 1 ], [ "unique_names", 0 ], [ "bgcolor", 0.125, 0.125, 0.125, 1.0 ], [ "autowriteagain", 0 ], [ "color_3", 0.527, 0.459, 0.756, 1 ] ],
"filename" : "tc.preset.js",
"id" : "obj-10",
"maxclass" : "jsui",
@@ -1492,12 +1571,12 @@
, {
"box" : {
"id" : "obj-115",
"linecount" : 5,
"linecount" : 6,
"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."
"patching_rect" : [ 10.0, 101.0, 250.0, 87.0 ],
"text" : "Click mode sets the behavior of single clicks. In Select mode, 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."
}
}
@@ -1553,7 +1632,7 @@
}
, {
"box" : {
"attr" : "select_mode",
"attr" : "click_mode",
"id" : "obj-127",
"maxclass" : "attrui",
"numinlets" : 1,
@@ -1863,6 +1942,7 @@
"subpatcher_template" : "",
"showontab" : 1,
"assistshowspatchername" : 0,
"integercoordinates" : 1,
"boxes" : [ {
"box" : {
"bgcolor" : [ 0.56078431372549, 0.796078431372549, 0.474509803921569, 1.0 ],
@@ -1918,6 +1998,7 @@
"style" : "",
"subpatcher_template" : "",
"assistshowspatchername" : 0,
"integercoordinates" : 1,
"boxes" : [ {
"box" : {
"fontface" : 1,
@@ -1962,7 +2043,7 @@
, {
"box" : {
"border" : 0,
"embedstate" : [ [ "poll_edited", 0 ], [ "ignoreslotzero", 1 ], [ "bubblesize", 14 ], [ "stored_slot_color", 0.458595350062755, 0.458595237564901, 0.458595266962388, 1.0 ], [ "spacing", 4 ], [ "min_rows", 10 ], [ "color_mode", 0 ], [ "color_5", 0.283, 0.606, 0.559, 1 ], [ "menu_mode", 0 ], [ "select_mode", 0 ], [ "layout", 1 ], [ "use_uid", 0 ], [ "interp_slot_color", 1, 1, 1, 0.8 ], [ "color_3", 0.527, 0.459, 0.756, 1 ], [ "edited_color", 1, 0.49, 0.263, 1 ], [ "recall_passthrough", 1 ], [ "bgcolor", 0.125, 0.125, 0.125, 1.0 ], [ "ui_rename", 1 ], [ "margin", 4 ], [ "color_1", 0.743, 0.41, 0.501, 1 ], [ "text_color", 0.85, 0.85, 0.85, 1.0 ], [ "fontsize", 13 ], [ "color_6", 0.316, 0.616, 0.377, 1 ], [ "send_name", "none" ], [ "timestamp", 0 ], [ "nbslot_edit", 1 ], [ "slot_round", 0 ], [ "autoname", 0 ], [ "autowriteagain", 0 ], [ "active_slot_color", 0.618934978328545, 0.744701397656435, 0.953750108255376, 1.0 ], [ "fontname", "Arial" ], [ "pattrstorage", "mypat" ], [ "color_4", 0.367, 0.542, 0.712, 1 ], [ "empty_slot_color", 0.221327066888467, 0.221327006361825, 0.221327022178404, 1.0 ], [ "scrollable", 1 ], [ "unique_names", 0 ], [ "color_2", 0.679, 0.405, 0.669, 1 ], [ "display_interp", 1 ] ],
"embedstate" : [ [ "spacing", 4 ], [ "edited_color", 1, 0.49, 0.263, 1 ], [ "recall_passthrough", 1 ], [ "stored_slot_color", 0.458595350062755, 0.458595237564901, 0.458595266962388, 1.0 ], [ "min_rows", 10 ], [ "color_1", 0.743, 0.41, 0.501, 1 ], [ "interp_slot_color", 1, 1, 1, 0.8 ], [ "color_6", 0.316, 0.616, 0.377, 1 ], [ "nbslot_edit", 1 ], [ "send_name", "none" ], [ "layout", 1 ], [ "use_uid", 0 ], [ "timestamp", 0 ], [ "autoname", 0 ], [ "color_4", 0.367, 0.542, 0.712, 1 ], [ "empty_slot_color", 0.221327066888467, 0.221327006361825, 0.221327022178404, 1.0 ], [ "text_color", 0.85, 0.85, 0.85, 1.0 ], [ "scrollable", 1 ], [ "margin", 4 ], [ "ui_rename", 1 ], [ "fontsize", 13 ], [ "active_slot_color", 0.618934978328545, 0.744701397656435, 0.953750108255376, 1.0 ], [ "bubblesize", 14 ], [ "color_2", 0.679, 0.405, 0.669, 1 ], [ "display_interp", 1 ], [ "poll_edited", 0 ], [ "slot_round", 0 ], [ "fontname", "Arial" ], [ "pattrstorage", "mypat" ], [ "color_mode", 0 ], [ "click_mode", 0 ], [ "color_5", 0.283, 0.606, 0.559, 1 ], [ "menu_mode", 0 ], [ "select_mode", 0 ], [ "ignoreslotzero", 1 ], [ "unique_names", 0 ], [ "bgcolor", 0.125, 0.125, 0.125, 1.0 ], [ "autowriteagain", 0 ], [ "color_3", 0.527, 0.459, 0.756, 1 ] ],
"filename" : "tc.preset.js",
"id" : "obj-10",
"maxclass" : "jsui",
@@ -2087,6 +2168,7 @@
"style" : "",
"subpatcher_template" : "",
"assistshowspatchername" : 0,
"integercoordinates" : 1,
"boxes" : [ {
"box" : {
"id" : "obj-1",
@@ -2103,7 +2185,7 @@
, {
"box" : {
"border" : 0,
"embedstate" : [ [ "poll_edited", 0 ], [ "ignoreslotzero", 1 ], [ "bubblesize", 14 ], [ "stored_slot_color", 0.458595350062755, 0.458595237564901, 0.458595266962388, 1.0 ], [ "spacing", 4 ], [ "min_rows", 10 ], [ "color_mode", 0 ], [ "color_5", 0.283, 0.606, 0.559, 1 ], [ "menu_mode", 0 ], [ "select_mode", 0 ], [ "layout", 0 ], [ "use_uid", 0 ], [ "interp_slot_color", 1, 1, 1, 0.8 ], [ "color_3", 0.527, 0.459, 0.756, 1 ], [ "edited_color", 1, 0.49, 0.263, 1 ], [ "recall_passthrough", 1 ], [ "bgcolor", 0.125, 0.125, 0.125, 1.0 ], [ "ui_rename", 0 ], [ "margin", 4 ], [ "color_1", 0.743, 0.41, 0.501, 1 ], [ "text_color", 0.85, 0.85, 0.85, 1.0 ], [ "fontsize", 13 ], [ "color_6", 0.316, 0.616, 0.377, 1 ], [ "send_name", "none" ], [ "timestamp", 0 ], [ "nbslot_edit", 1 ], [ "slot_round", 0 ], [ "autoname", 0 ], [ "autowriteagain", 0 ], [ "active_slot_color", 0.618934978328545, 0.744701397656435, 0.953750108255376, 1.0 ], [ "fontname", "Arial" ], [ "pattrstorage", "mypat" ], [ "color_4", 0.367, 0.542, 0.712, 1 ], [ "empty_slot_color", 0.221327066888467, 0.221327006361825, 0.221327022178404, 1.0 ], [ "scrollable", 0 ], [ "unique_names", 0 ], [ "color_2", 0.679, 0.405, 0.669, 1 ], [ "display_interp", 1 ] ],
"embedstate" : [ [ "spacing", 4 ], [ "edited_color", 1, 0.49, 0.263, 1 ], [ "recall_passthrough", 1 ], [ "stored_slot_color", 0.458595350062755, 0.458595237564901, 0.458595266962388, 1.0 ], [ "min_rows", 10 ], [ "color_1", 0.743, 0.41, 0.501, 1 ], [ "interp_slot_color", 1, 1, 1, 0.8 ], [ "color_6", 0.316, 0.616, 0.377, 1 ], [ "nbslot_edit", 1 ], [ "send_name", "none" ], [ "layout", 0 ], [ "use_uid", 0 ], [ "timestamp", 0 ], [ "autoname", 0 ], [ "color_4", 0.367, 0.542, 0.712, 1 ], [ "empty_slot_color", 0.221327066888467, 0.221327006361825, 0.221327022178404, 1.0 ], [ "text_color", 0.85, 0.85, 0.85, 1.0 ], [ "scrollable", 0 ], [ "margin", 4 ], [ "ui_rename", 0 ], [ "fontsize", 13 ], [ "active_slot_color", 0.618934978328545, 0.744701397656435, 0.953750108255376, 1.0 ], [ "bubblesize", 14 ], [ "color_2", 0.679, 0.405, 0.669, 1 ], [ "display_interp", 1 ], [ "poll_edited", 0 ], [ "slot_round", 0 ], [ "fontname", "Arial" ], [ "pattrstorage", "mypat" ], [ "color_mode", 0 ], [ "click_mode", 0 ], [ "color_5", 0.283, 0.606, 0.559, 1 ], [ "menu_mode", 0 ], [ "select_mode", 0 ], [ "ignoreslotzero", 1 ], [ "unique_names", 0 ], [ "bgcolor", 0.125, 0.125, 0.125, 1.0 ], [ "autowriteagain", 0 ], [ "color_3", 0.527, 0.459, 0.756, 1 ] ],
"filename" : "tc.preset.js",
"id" : "obj-2",
"maxclass" : "jsui",
@@ -2370,6 +2452,7 @@
"style" : "",
"subpatcher_template" : "",
"assistshowspatchername" : 0,
"integercoordinates" : 1,
"boxes" : [ {
"box" : {
"fontface" : 1,
@@ -2442,6 +2525,7 @@
"style" : "",
"subpatcher_template" : "",
"assistshowspatchername" : 0,
"integercoordinates" : 1,
"boxes" : [ {
"box" : {
"id" : "obj-9",
@@ -2736,7 +2820,7 @@
, {
"box" : {
"border" : 0,
"embedstate" : [ [ "poll_edited", 0 ], [ "ignoreslotzero", 1 ], [ "bubblesize", 14 ], [ "stored_slot_color", 0.458595350062755, 0.458595237564901, 0.458595266962388, 1.0 ], [ "spacing", 4 ], [ "min_rows", 10 ], [ "color_mode", 0 ], [ "color_5", 0.283, 0.606, 0.559, 1 ], [ "menu_mode", 0 ], [ "select_mode", 0 ], [ "layout", 0 ], [ "use_uid", 0 ], [ "interp_slot_color", 1, 1, 1, 0.8 ], [ "color_3", 0.527, 0.459, 0.756, 1 ], [ "edited_color", 1, 0.49, 0.263, 1 ], [ "recall_passthrough", 0 ], [ "bgcolor", 0.125, 0.125, 0.125, 1.0 ], [ "ui_rename", 1 ], [ "margin", 4 ], [ "color_1", 0.743, 0.41, 0.501, 1 ], [ "text_color", 0.85, 0.85, 0.85, 1.0 ], [ "fontsize", 13 ], [ "color_6", 0.316, 0.616, 0.377, 1 ], [ "send_name", "none" ], [ "timestamp", 0 ], [ "nbslot_edit", 1 ], [ "slot_round", 0 ], [ "autoname", 0 ], [ "autowriteagain", 0 ], [ "active_slot_color", 0.618934978328545, 0.744701397656435, 0.953750108255376, 1.0 ], [ "fontname", "Arial" ], [ "pattrstorage", "mypat" ], [ "color_4", 0.367, 0.542, 0.712, 1 ], [ "empty_slot_color", 0.221327066888467, 0.221327006361825, 0.221327022178404, 1.0 ], [ "scrollable", 0 ], [ "unique_names", 0 ], [ "color_2", 0.679, 0.405, 0.669, 1 ], [ "display_interp", 1 ] ],
"embedstate" : [ [ "spacing", 4 ], [ "edited_color", 1, 0.49, 0.263, 1 ], [ "recall_passthrough", 0 ], [ "stored_slot_color", 0.458595350062755, 0.458595237564901, 0.458595266962388, 1.0 ], [ "min_rows", 10 ], [ "color_1", 0.743, 0.41, 0.501, 1 ], [ "interp_slot_color", 1, 1, 1, 0.8 ], [ "color_6", 0.316, 0.616, 0.377, 1 ], [ "nbslot_edit", 1 ], [ "send_name", "none" ], [ "layout", 0 ], [ "use_uid", 0 ], [ "timestamp", 0 ], [ "autoname", 0 ], [ "color_4", 0.367, 0.542, 0.712, 1 ], [ "empty_slot_color", 0.221327066888467, 0.221327006361825, 0.221327022178404, 1.0 ], [ "text_color", 0.85, 0.85, 0.85, 1.0 ], [ "scrollable", 0 ], [ "margin", 4 ], [ "ui_rename", 1 ], [ "fontsize", 13 ], [ "active_slot_color", 0.618934978328545, 0.744701397656435, 0.953750108255376, 1.0 ], [ "bubblesize", 14 ], [ "color_2", 0.679, 0.405, 0.669, 1 ], [ "display_interp", 1 ], [ "poll_edited", 0 ], [ "slot_round", 0 ], [ "fontname", "Arial" ], [ "pattrstorage", "mypat" ], [ "color_mode", 0 ], [ "click_mode", 0 ], [ "color_5", 0.283, 0.606, 0.559, 1 ], [ "menu_mode", 0 ], [ "select_mode", 0 ], [ "ignoreslotzero", 1 ], [ "unique_names", 0 ], [ "bgcolor", 0.125, 0.125, 0.125, 1.0 ], [ "autowriteagain", 0 ], [ "color_3", 0.527, 0.459, 0.756, 1 ] ],
"filename" : "tc.preset.js",
"id" : "obj-10",
"maxclass" : "jsui",
@@ -2904,6 +2988,7 @@
"subpatcher_template" : "",
"showontab" : 1,
"assistshowspatchername" : 0,
"integercoordinates" : 1,
"boxes" : [ {
"box" : {
"fontface" : 0,
@@ -3034,7 +3119,7 @@
, {
"box" : {
"border" : 0,
"embedstate" : [ [ "poll_edited", 0 ], [ "ignoreslotzero", 1 ], [ "bubblesize", 14 ], [ "stored_slot_color", 0.458595350062755, 0.458595237564901, 0.458595266962388, 1.0 ], [ "spacing", 4 ], [ "min_rows", 10 ], [ "color_mode", 0 ], [ "color_5", 0.283, 0.606, 0.559, 1 ], [ "menu_mode", 0 ], [ "select_mode", 0 ], [ "layout", 1 ], [ "use_uid", 0 ], [ "interp_slot_color", 1, 1, 1, 0.8 ], [ "color_3", 0.527, 0.459, 0.756, 1 ], [ "edited_color", 1, 0.49, 0.263, 1 ], [ "recall_passthrough", 1 ], [ "bgcolor", 0.125, 0.125, 0.125, 1.0 ], [ "ui_rename", 0 ], [ "margin", 4 ], [ "color_1", 0.743, 0.41, 0.501, 1 ], [ "text_color", 0.85, 0.85, 0.85, 1.0 ], [ "fontsize", 13 ], [ "color_6", 0.316, 0.616, 0.377, 1 ], [ "send_name", "none" ], [ "timestamp", 0 ], [ "nbslot_edit", 1 ], [ "slot_round", 0 ], [ "autoname", 0 ], [ "autowriteagain", 0 ], [ "active_slot_color", 0.618934978328545, 0.744701397656435, 0.953750108255376, 1.0 ], [ "fontname", "Arial" ], [ "pattrstorage", "tcpreset_help" ], [ "color_4", 0.367, 0.542, 0.712, 1 ], [ "empty_slot_color", 0.221327066888467, 0.221327006361825, 0.221327022178404, 1.0 ], [ "scrollable", 1 ], [ "unique_names", 0 ], [ "color_2", 0.679, 0.405, 0.669, 1 ], [ "display_interp", 1 ] ],
"embedstate" : [ [ "spacing", 4 ], [ "edited_color", 1, 0.49, 0.263, 1 ], [ "recall_passthrough", 1 ], [ "stored_slot_color", 0.458595350062755, 0.458595237564901, 0.458595266962388, 1.0 ], [ "min_rows", 10 ], [ "color_1", 0.743, 0.41, 0.501, 1 ], [ "interp_slot_color", 1, 1, 1, 0.8 ], [ "color_6", 0.316, 0.616, 0.377, 1 ], [ "nbslot_edit", 1 ], [ "send_name", "none" ], [ "layout", 1 ], [ "use_uid", 0 ], [ "timestamp", 0 ], [ "autoname", 0 ], [ "color_4", 0.367, 0.542, 0.712, 1 ], [ "empty_slot_color", 0.221327066888467, 0.221327006361825, 0.221327022178404, 1.0 ], [ "text_color", 0.85, 0.85, 0.85, 1.0 ], [ "scrollable", 1 ], [ "margin", 4 ], [ "ui_rename", 0 ], [ "fontsize", 13 ], [ "active_slot_color", 0.618934978328545, 0.744701397656435, 0.953750108255376, 1.0 ], [ "bubblesize", 14 ], [ "color_2", 0.679, 0.405, 0.669, 1 ], [ "display_interp", 1 ], [ "poll_edited", 0 ], [ "slot_round", 0 ], [ "fontname", "Arial" ], [ "pattrstorage", "tcpreset_help" ], [ "color_mode", 0 ], [ "click_mode", 0 ], [ "color_5", 0.283, 0.606, 0.559, 1 ], [ "menu_mode", 0 ], [ "select_mode", 0 ], [ "ignoreslotzero", 1 ], [ "unique_names", 0 ], [ "bgcolor", 0.125, 0.125, 0.125, 1.0 ], [ "autowriteagain", 0 ], [ "color_3", 0.527, 0.459, 0.756, 1 ] ],
"filename" : "tc.preset.js",
"id" : "obj-10",
"maxclass" : "jsui",
@@ -3388,6 +3473,7 @@
"subpatcher_template" : "",
"showontab" : 1,
"assistshowspatchername" : 0,
"integercoordinates" : 1,
"boxes" : [ {
"box" : {
"bubble" : 1,
@@ -3591,6 +3677,7 @@
"style" : "",
"subpatcher_template" : "",
"assistshowspatchername" : 0,
"integercoordinates" : 1,
"boxes" : [ {
"box" : {
"id" : "obj-21",
@@ -3673,6 +3760,7 @@
"style" : "",
"subpatcher_template" : "",
"assistshowspatchername" : 0,
"integercoordinates" : 1,
"boxes" : [ {
"box" : {
"comment" : "",
@@ -4147,6 +4235,7 @@
"style" : "",
"subpatcher_template" : "",
"assistshowspatchername" : 0,
"integercoordinates" : 1,
"boxes" : [ {
"box" : {
"id" : "obj-1",
@@ -4522,6 +4611,7 @@
"style" : "",
"subpatcher_template" : "",
"assistshowspatchername" : 0,
"integercoordinates" : 1,
"boxes" : [ {
"box" : {
"id" : "obj-10",
@@ -4747,6 +4837,7 @@
"style" : "",
"subpatcher_template" : "",
"assistshowspatchername" : 0,
"integercoordinates" : 1,
"boxes" : [ {
"box" : {
"id" : "obj-7",
@@ -4994,7 +5085,7 @@
, {
"box" : {
"border" : 0,
"embedstate" : [ [ "poll_edited", 0 ], [ "ignoreslotzero", 1 ], [ "bubblesize", 14 ], [ "stored_slot_color", 0.458595350062755, 0.458595237564901, 0.458595266962388, 1.0 ], [ "spacing", 4 ], [ "min_rows", 10 ], [ "color_mode", 1 ], [ "color_5", 0.283, 0.606, 0.559, 1 ], [ "menu_mode", 0 ], [ "select_mode", 0 ], [ "layout", 0 ], [ "use_uid", 1 ], [ "interp_slot_color", 1, 1, 1, 0.8 ], [ "color_3", 0.527, 0.459, 0.756, 1 ], [ "edited_color", 1, 0.49, 0.263, 1 ], [ "recall_passthrough", 1 ], [ "bgcolor", 0.125, 0.125, 0.125, 1.0 ], [ "ui_rename", 0 ], [ "margin", 4 ], [ "color_1", 0.743, 0.41, 0.501, 1 ], [ "text_color", 0.85, 0.85, 0.85, 1.0 ], [ "fontsize", 13 ], [ "color_6", 0.316, 0.616, 0.377, 1 ], [ "send_name", "none" ], [ "timestamp", 1 ], [ "nbslot_edit", 1 ], [ "slot_round", 0 ], [ "autoname", 0 ], [ "autowriteagain", 0 ], [ "active_slot_color", 0.618934978328545, 0.744701397656435, 0.953750108255376, 1.0 ], [ "fontname", "Arial" ], [ "pattrstorage", "colors" ], [ "color_4", 0.367, 0.542, 0.712, 1 ], [ "empty_slot_color", 0.221327066888467, 0.221327006361825, 0.221327022178404, 1.0 ], [ "scrollable", 0 ], [ "unique_names", 0 ], [ "color_2", 0.679, 0.405, 0.669, 1 ], [ "display_interp", 1 ] ],
"embedstate" : [ [ "spacing", 4 ], [ "edited_color", 1, 0.49, 0.263, 1 ], [ "recall_passthrough", 1 ], [ "stored_slot_color", 0.458595350062755, 0.458595237564901, 0.458595266962388, 1.0 ], [ "min_rows", 10 ], [ "color_1", 0.743, 0.41, 0.501, 1 ], [ "interp_slot_color", 1, 1, 1, 0.8 ], [ "color_6", 0.316, 0.616, 0.377, 1 ], [ "nbslot_edit", 1 ], [ "send_name", "none" ], [ "layout", 0 ], [ "use_uid", 1 ], [ "timestamp", 1 ], [ "autoname", 0 ], [ "color_4", 0.367, 0.542, 0.712, 1 ], [ "empty_slot_color", 0.221327066888467, 0.221327006361825, 0.221327022178404, 1.0 ], [ "text_color", 0.85, 0.85, 0.85, 1.0 ], [ "scrollable", 0 ], [ "margin", 4 ], [ "ui_rename", 0 ], [ "fontsize", 13 ], [ "active_slot_color", 0.618934978328545, 0.744701397656435, 0.953750108255376, 1.0 ], [ "bubblesize", 14 ], [ "color_2", 0.679, 0.405, 0.669, 1 ], [ "display_interp", 1 ], [ "poll_edited", 0 ], [ "slot_round", 0 ], [ "fontname", "Arial" ], [ "pattrstorage", "colors" ], [ "color_mode", 1 ], [ "click_mode", 0 ], [ "color_5", 0.283, 0.606, 0.559, 1 ], [ "menu_mode", 0 ], [ "select_mode", 0 ], [ "ignoreslotzero", 1 ], [ "unique_names", 0 ], [ "bgcolor", 0.125, 0.125, 0.125, 1.0 ], [ "autowriteagain", 0 ], [ "color_3", 0.527, 0.459, 0.756, 1 ] ],
"filename" : "tc.preset.js",
"id" : "obj-10",
"maxclass" : "jsui",
@@ -5227,7 +5318,7 @@
}
,
"classnamespace" : "box",
"rect" : [ 344.0, 272.0, 899.0, 620.0 ],
"rect" : [ 0.0, 26.0, 899.0, 620.0 ],
"bglocked" : 0,
"openinpresentation" : 0,
"default_fontsize" : 13.0,
@@ -5256,6 +5347,7 @@
"subpatcher_template" : "",
"showontab" : 1,
"assistshowspatchername" : 0,
"integercoordinates" : 1,
"boxes" : [ {
"box" : {
"bgcolor" : [ 0.701960784313725, 0.701960784313725, 0.701960784313725, 0.0 ],
@@ -5447,7 +5539,7 @@
, {
"box" : {
"border" : 0,
"embedstate" : [ [ "poll_edited", 0 ], [ "ignoreslotzero", 1 ], [ "bubblesize", 14 ], [ "stored_slot_color", 0.458595350062755, 0.458595237564901, 0.458595266962388, 1.0 ], [ "spacing", 4 ], [ "min_rows", 10 ], [ "color_mode", 0 ], [ "color_5", 0.283, 0.606, 0.559, 1 ], [ "menu_mode", 0 ], [ "select_mode", 0 ], [ "layout", 0 ], [ "use_uid", 0 ], [ "interp_slot_color", 1, 1, 1, 0.8 ], [ "color_3", 0.527, 0.459, 0.756, 1 ], [ "edited_color", 1, 0.49, 0.263, 1 ], [ "recall_passthrough", 1 ], [ "bgcolor", 0.125, 0.125, 0.125, 1.0 ], [ "ui_rename", 0 ], [ "margin", 4 ], [ "color_1", 0.743, 0.41, 0.501, 1 ], [ "text_color", 0.85, 0.85, 0.85, 1.0 ], [ "fontsize", 13 ], [ "color_6", 0.316, 0.616, 0.377, 1 ], [ "send_name", "none" ], [ "timestamp", 0 ], [ "nbslot_edit", 1 ], [ "slot_round", 0 ], [ "autoname", 0 ], [ "autowriteagain", 0 ], [ "active_slot_color", 0.618934978328545, 0.744701397656435, 0.953750108255376, 1.0 ], [ "fontname", "Arial" ], [ "pattrstorage", "tcpreset_help" ], [ "color_4", 0.367, 0.542, 0.712, 1 ], [ "empty_slot_color", 0.221327066888467, 0.221327006361825, 0.221327022178404, 1.0 ], [ "scrollable", 0 ], [ "unique_names", 0 ], [ "color_2", 0.679, 0.405, 0.669, 1 ], [ "display_interp", 1 ] ],
"embedstate" : [ [ "spacing", 4 ], [ "edited_color", 1, 0.49, 0.263, 1 ], [ "recall_passthrough", 1 ], [ "stored_slot_color", 0.458595350062755, 0.458595237564901, 0.458595266962388, 1.0 ], [ "min_rows", 10 ], [ "color_1", 0.743, 0.41, 0.501, 1 ], [ "interp_slot_color", 1, 1, 1, 0.8 ], [ "color_6", 0.316, 0.616, 0.377, 1 ], [ "nbslot_edit", 1 ], [ "send_name", "none" ], [ "layout", 0 ], [ "use_uid", 0 ], [ "timestamp", 0 ], [ "autoname", 0 ], [ "color_4", 0.367, 0.542, 0.712, 1 ], [ "empty_slot_color", 0.221327066888467, 0.221327006361825, 0.221327022178404, 1.0 ], [ "text_color", 0.85, 0.85, 0.85, 1.0 ], [ "scrollable", 0 ], [ "margin", 4 ], [ "ui_rename", 0 ], [ "fontsize", 13 ], [ "active_slot_color", 0.618934978328545, 0.744701397656435, 0.953750108255376, 1.0 ], [ "bubblesize", 14 ], [ "color_2", 0.679, 0.405, 0.669, 1 ], [ "display_interp", 1 ], [ "poll_edited", 0 ], [ "slot_round", 0 ], [ "fontname", "Arial" ], [ "pattrstorage", "tcpreset_help" ], [ "color_mode", 0 ], [ "click_mode", 0 ], [ "color_5", 0.283, 0.606, 0.559, 1 ], [ "menu_mode", 0 ], [ "select_mode", 0 ], [ "ignoreslotzero", 1 ], [ "unique_names", 0 ], [ "bgcolor", 0.125, 0.125, 0.125, 1.0 ], [ "autowriteagain", 0 ], [ "color_3", 0.527, 0.459, 0.756, 1 ] ],
"filename" : "tc.preset.js",
"id" : "obj-10",
"maxclass" : "jsui",

View File

@@ -3,8 +3,8 @@
"fileversion": 1,
"appversion": {
"major": 9,
"minor": 2,
"revision": 0,
"minor": 1,
"revision": 4,
"architecture": "x64",
"modernui": 1
},
@@ -24,8 +24,8 @@
"fileversion": 1,
"appversion": {
"major": 9,
"minor": 2,
"revision": 0,
"minor": 1,
"revision": 4,
"architecture": "x64",
"modernui": 1
},
@@ -70,7 +70,6 @@
{
"box": {
"border": 0,
"embed": 0,
"filename": "helpname.js",
"id": "obj-8",
"ignoreclick": 1,
@@ -121,8 +120,8 @@
"fileversion": 1,
"appversion": {
"major": 9,
"minor": 2,
"revision": 0,
"minor": 1,
"revision": 4,
"architecture": "x64",
"modernui": 1
},
@@ -144,13 +143,13 @@
{
"box": {
"border": 0,
"embed": 0,
"embedstate": [
[ "active_slot_color", 0.618934978328545, 0.744701397656435, 0.953750108255376, 1 ],
[ "autoname", 0 ],
[ "autowriteagain", 0 ],
[ "bgcolor", 0.125, 0.125, 0.125, 1 ],
[ "bubblesize", 14 ],
[ "click_mode", 0 ],
[ "color_1", 0.743, 0.41, 0.501, 1 ],
[ "color_2", 0.679, 0.405, 0.669, 1 ],
[ "color_3", 0.527, 0.459, 0.756, 1 ],
@@ -266,8 +265,8 @@
"fileversion": 1,
"appversion": {
"major": 9,
"minor": 2,
"revision": 0,
"minor": 1,
"revision": 4,
"architecture": "x64",
"modernui": 1
},
@@ -278,13 +277,13 @@
{
"box": {
"border": 0,
"embed": 0,
"embedstate": [
[ "active_slot_color", 0.618934978328545, 0.744701397656435, 0.953750108255376, 1 ],
[ "autoname", 0 ],
[ "autowriteagain", 0 ],
[ "bgcolor", 0.125, 0.125, 0.125, 1 ],
[ "bubblesize", 14 ],
[ "click_mode", 0 ],
[ "color_1", 0.743, 0.41, 0.501, 1 ],
[ "color_2", 0.679, 0.405, 0.669, 1 ],
[ "color_3", 0.527, 0.459, 0.756, 1 ],
@@ -388,8 +387,8 @@
"fileversion": 1,
"appversion": {
"major": 9,
"minor": 2,
"revision": 0,
"minor": 1,
"revision": 4,
"architecture": "x64",
"modernui": 1
},
@@ -401,44 +400,45 @@
"box": {
"border": 0,
"embedstate": [
[ "active_slot_color", 0.618934978328545, 0.744701397656435, 0.953750108255376, 1.0 ],
[ "color_3", 0.527, 0.459, 0.756, 1 ],
[ "bubblesize", 14 ],
[ "edited_color", 1, 0.49, 0.263, 1 ],
[ "spacing", 4 ],
[ "layout", 0 ],
[ "unique_names", 0 ],
[ "ignoreslotzero", 1 ],
[ "select_mode", 0 ],
[ "display_interp", 1 ],
[ "scrollable", 0 ],
[ "color_5", 0.283, 0.606, 0.559, 1 ],
[ "autowriteagain", 0 ],
[ "color_mode", 0 ],
[ "slot_round", 0 ],
[ "empty_slot_color", 0.221327066888467, 0.221327006361825, 0.221327022178404, 1.0 ],
[ "color_2", 0.679, 0.405, 0.669, 1 ],
[ "click_mode", 0 ],
[ "bgcolor", 0.125, 0.125, 0.125, 1.0 ],
[ "poll_edited", 0 ],
[ "ignoreslotzero", 1 ],
[ "edited_color", 1, 0.49, 0.263, 1 ],
[ "select_mode", 0 ],
[ "empty_slot_color", 0.221327066888467, 0.221327006361825, 0.221327022178404, 1.0 ],
[ "color_1", 0.743, 0.41, 0.501, 1 ],
[ "ui_rename", 0 ],
[ "color_6", 0.316, 0.616, 0.377, 1 ],
[ "timestamp", 0 ],
[ "send_name", "none" ],
[ "margin", 4 ],
[ "autoname", 0 ],
[ "text_color", 0.85, 0.85, 0.85, 1.0 ],
[ "fontsize", 13 ],
[ "layout", 0 ],
[ "spacing", 4 ],
[ "display_interp", 1 ],
[ "stored_slot_color", 0.458595350062755, 0.458595237564901, 0.458595266962388, 1.0 ],
[ "color_3", 0.527, 0.459, 0.756, 1 ],
[ "min_rows", 10 ],
[ "use_uid", 0 ],
[ "poll_edited", 0 ],
[ "unique_names", 0 ],
[ "recall_passthrough", 1 ],
[ "color_4", 0.367, 0.542, 0.712, 1 ],
[ "text_color", 0.85, 0.85, 0.85, 1.0 ],
[ "autowriteagain", 0 ],
[ "color_5", 0.283, 0.606, 0.559, 1 ],
[ "bubblesize", 14 ],
[ "nbslot_edit", 1 ],
[ "active_slot_color", 0.618934978328545, 0.744701397656435, 0.953750108255376, 1.0 ],
[ "color_2", 0.679, 0.405, 0.669, 1 ],
[ "scrollable", 0 ],
[ "margin", 4 ],
[ "menu_mode", 0 ],
[ "color_mode", 0 ],
[ "fontsize", 13 ],
[ "send_name", "none" ],
[ "interp_slot_color", 1, 1, 1, 0.8 ],
[ "color_4", 0.367, 0.542, 0.712, 1 ],
[ "fontname", "Arial" ],
[ "pattrstorage", "mypat" ],
[ "color_1", 0.743, 0.41, 0.501, 1 ],
[ "use_uid", 0 ],
[ "ui_rename", 0 ],
[ "interp_slot_color", 1, 1, 1, 0.8 ],
[ "min_rows", 10 ],
[ "color_6", 0.316, 0.616, 0.377, 1 ],
[ "menu_mode", 0 ],
[ "stored_slot_color", 0.458595350062755, 0.458595237564901, 0.458595266962388, 1.0 ]
[ "autoname", 0 ]
],
"filename": "tc.preset",
"id": "obj-1",
@@ -563,8 +563,8 @@
"fileversion": 1,
"appversion": {
"major": 9,
"minor": 2,
"revision": 0,
"minor": 1,
"revision": 4,
"architecture": "x64",
"modernui": 1
},
@@ -605,8 +605,8 @@
"fileversion": 1,
"appversion": {
"major": 9,
"minor": 2,
"revision": 0,
"minor": 1,
"revision": 4,
"architecture": "x64",
"modernui": 1
},
@@ -1056,7 +1056,6 @@
{
"box": {
"border": 0,
"embed": 0,
"filename": "helpname.js",
"id": "obj-4",
"ignoreclick": 1,
@@ -1078,13 +1077,13 @@
{
"box": {
"border": 0,
"embed": 0,
"embedstate": [
[ "active_slot_color", 0.618934978328545, 0.744701397656435, 0.953750108255376, 1 ],
[ "autoname", 0 ],
[ "autowriteagain", 0 ],
[ "bgcolor", 0.125, 0.125, 0.125, 1 ],
[ "bubblesize", 14 ],
[ "click_mode", 0 ],
[ "color_1", 0.743, 0.41, 0.501, 1 ],
[ "color_2", 0.679, 0.405, 0.669, 1 ],
[ "color_3", 0.527, 0.459, 0.756, 1 ],
@@ -1361,8 +1360,8 @@
"fileversion": 1,
"appversion": {
"major": 9,
"minor": 2,
"revision": 0,
"minor": 1,
"revision": 4,
"architecture": "x64",
"modernui": 1
},
@@ -1406,8 +1405,8 @@
"fileversion": 1,
"appversion": {
"major": 9,
"minor": 2,
"revision": 0,
"minor": 1,
"revision": 4,
"architecture": "x64",
"modernui": 1
},
@@ -1751,13 +1750,13 @@
{
"box": {
"border": 0,
"embed": 0,
"embedstate": [
[ "active_slot_color", 0.618934978328545, 0.744701397656435, 0.953750108255376, 1 ],
[ "autoname", 0 ],
[ "autowriteagain", 0 ],
[ "bgcolor", 0.125, 0.125, 0.125, 1 ],
[ "bubblesize", 14 ],
[ "click_mode", 1 ],
[ "color_1", 0.743, 0.41, 0.501, 1 ],
[ "color_2", 0.679, 0.405, 0.669, 1 ],
[ "color_3", 0.527, 0.459, 0.756, 1 ],
@@ -1781,7 +1780,7 @@
[ "poll_edited", 1 ],
[ "recall_passthrough", 0 ],
[ "scrollable", 0 ],
[ "select_mode", 1 ],
[ "select_mode", 0 ],
[ "send_name", "none" ],
[ "slot_round", 0 ],
[ "spacing", 4 ],
@@ -1829,7 +1828,6 @@
{
"box": {
"border": 0,
"embed": 0,
"filename": "helpname.js",
"id": "obj-4",
"ignoreclick": 1,
@@ -1851,12 +1849,12 @@
{
"box": {
"id": "obj-115",
"linecount": 5,
"linecount": 6,
"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."
"patching_rect": [ 10.0, 101.0, 253.0, 87.0 ],
"text": "Click mode sets the behavior of single clicks. In Select mode, 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."
}
},
{
@@ -1907,14 +1905,15 @@
},
{
"box": {
"attr": "select_mode",
"attr": "click_mode",
"id": "obj-127",
"maxclass": "attrui",
"numinlets": 1,
"numoutlets": 1,
"outlettype": [ "" ],
"parameter_enable": 0,
"patching_rect": [ 10.0, 77.0, 123.0, 22.0 ]
"patching_rect": [ 10.0, 77.0, 167.0, 22.0 ],
"text_width": 80.0
}
},
{
@@ -2140,8 +2139,8 @@
"fileversion": 1,
"appversion": {
"major": 9,
"minor": 2,
"revision": 0,
"minor": 1,
"revision": 4,
"architecture": "x64",
"modernui": 1
},
@@ -2170,8 +2169,8 @@
"fileversion": 1,
"appversion": {
"major": 9,
"minor": 2,
"revision": 0,
"minor": 1,
"revision": 4,
"architecture": "x64",
"modernui": 1
},
@@ -2194,44 +2193,45 @@
"box": {
"border": 0,
"embedstate": [
[ "active_slot_color", 0.618934978328545, 0.744701397656435, 0.953750108255376, 1.0 ],
[ "color_3", 0.527, 0.459, 0.756, 1 ],
[ "bubblesize", 14 ],
[ "edited_color", 1, 0.49, 0.263, 1 ],
[ "spacing", 4 ],
[ "layout", 0 ],
[ "unique_names", 0 ],
[ "ignoreslotzero", 1 ],
[ "select_mode", 0 ],
[ "display_interp", 1 ],
[ "scrollable", 0 ],
[ "color_5", 0.283, 0.606, 0.559, 1 ],
[ "autowriteagain", 0 ],
[ "color_mode", 0 ],
[ "slot_round", 0 ],
[ "empty_slot_color", 0.221327066888467, 0.221327006361825, 0.221327022178404, 1.0 ],
[ "color_2", 0.679, 0.405, 0.669, 1 ],
[ "click_mode", 0 ],
[ "bgcolor", 0.125, 0.125, 0.125, 1.0 ],
[ "poll_edited", 0 ],
[ "ignoreslotzero", 1 ],
[ "edited_color", 1, 0.49, 0.263, 1 ],
[ "select_mode", 0 ],
[ "empty_slot_color", 0.221327066888467, 0.221327006361825, 0.221327022178404, 1.0 ],
[ "color_1", 0.743, 0.41, 0.501, 1 ],
[ "ui_rename", 0 ],
[ "color_6", 0.316, 0.616, 0.377, 1 ],
[ "timestamp", 0 ],
[ "send_name", "none" ],
[ "margin", 4 ],
[ "autoname", 0 ],
[ "text_color", 0.85, 0.85, 0.85, 1.0 ],
[ "fontsize", 13 ],
[ "layout", 0 ],
[ "spacing", 4 ],
[ "display_interp", 1 ],
[ "stored_slot_color", 0.458595350062755, 0.458595237564901, 0.458595266962388, 1.0 ],
[ "color_3", 0.527, 0.459, 0.756, 1 ],
[ "min_rows", 10 ],
[ "use_uid", 0 ],
[ "poll_edited", 0 ],
[ "unique_names", 0 ],
[ "recall_passthrough", 1 ],
[ "color_4", 0.367, 0.542, 0.712, 1 ],
[ "text_color", 0.85, 0.85, 0.85, 1.0 ],
[ "autowriteagain", 0 ],
[ "color_5", 0.283, 0.606, 0.559, 1 ],
[ "bubblesize", 14 ],
[ "nbslot_edit", 1 ],
[ "active_slot_color", 0.618934978328545, 0.744701397656435, 0.953750108255376, 1.0 ],
[ "color_2", 0.679, 0.405, 0.669, 1 ],
[ "scrollable", 0 ],
[ "margin", 4 ],
[ "menu_mode", 0 ],
[ "color_mode", 0 ],
[ "fontsize", 13 ],
[ "send_name", "none" ],
[ "interp_slot_color", 1, 1, 1, 0.8 ],
[ "color_4", 0.367, 0.542, 0.712, 1 ],
[ "fontname", "Arial" ],
[ "pattrstorage", "mypat" ],
[ "color_1", 0.743, 0.41, 0.501, 1 ],
[ "use_uid", 0 ],
[ "ui_rename", 0 ],
[ "interp_slot_color", 1, 1, 1, 0.8 ],
[ "min_rows", 10 ],
[ "color_6", 0.316, 0.616, 0.377, 1 ],
[ "menu_mode", 0 ],
[ "stored_slot_color", 0.458595350062755, 0.458595237564901, 0.458595266962388, 1.0 ]
[ "autoname", 0 ]
],
"filename": "tc.preset",
"id": "obj-1",
@@ -2352,8 +2352,8 @@
"fileversion": 1,
"appversion": {
"major": 9,
"minor": 2,
"revision": 0,
"minor": 1,
"revision": 4,
"architecture": "x64",
"modernui": 1
},
@@ -2402,13 +2402,13 @@
{
"box": {
"border": 0,
"embed": 0,
"embedstate": [
[ "active_slot_color", 0.618934978328545, 0.744701397656435, 0.953750108255376, 1 ],
[ "autoname", 0 ],
[ "autowriteagain", 0 ],
[ "bgcolor", 0.125, 0.125, 0.125, 1 ],
[ "bubblesize", 14 ],
[ "click_mode", 0 ],
[ "color_1", 0.743, 0.41, 0.501, 1 ],
[ "color_2", 0.679, 0.405, 0.669, 1 ],
[ "color_3", 0.527, 0.459, 0.756, 1 ],
@@ -2530,8 +2530,8 @@
"fileversion": 1,
"appversion": {
"major": 9,
"minor": 2,
"revision": 0,
"minor": 1,
"revision": 4,
"architecture": "x64",
"modernui": 1
},
@@ -2542,13 +2542,13 @@
{
"box": {
"border": 0,
"embed": 0,
"embedstate": [
[ "active_slot_color", 0.618934978328545, 0.744701397656435, 0.953750108255376, 1 ],
[ "autoname", 0 ],
[ "autowriteagain", 0 ],
[ "bgcolor", 0.125, 0.125, 0.125, 1 ],
[ "bubblesize", 14 ],
[ "click_mode", 0 ],
[ "color_1", 0.743, 0.41, 0.501, 1 ],
[ "color_2", 0.679, 0.405, 0.669, 1 ],
[ "color_3", 0.527, 0.459, 0.756, 1 ],
@@ -2793,8 +2793,8 @@
"fileversion": 1,
"appversion": {
"major": 9,
"minor": 2,
"revision": 0,
"minor": 1,
"revision": 4,
"architecture": "x64",
"modernui": 1
},
@@ -2837,8 +2837,8 @@
"fileversion": 1,
"appversion": {
"major": 9,
"minor": 2,
"revision": 0,
"minor": 1,
"revision": 4,
"architecture": "x64",
"modernui": 1
},
@@ -3104,13 +3104,13 @@
{
"box": {
"border": 0,
"embed": 0,
"embedstate": [
[ "active_slot_color", 0.618934978328545, 0.744701397656435, 0.953750108255376, 1 ],
[ "autoname", 0 ],
[ "autowriteagain", 0 ],
[ "bgcolor", 0.125, 0.125, 0.125, 1 ],
[ "bubblesize", 14 ],
[ "click_mode", 0 ],
[ "color_1", 0.743, 0.41, 0.501, 1 ],
[ "color_2", 0.679, 0.405, 0.669, 1 ],
[ "color_3", 0.527, 0.459, 0.756, 1 ],
@@ -3261,8 +3261,8 @@
"fileversion": 1,
"appversion": {
"major": 9,
"minor": 2,
"revision": 0,
"minor": 1,
"revision": 4,
"architecture": "x64",
"modernui": 1
},
@@ -3367,13 +3367,13 @@
{
"box": {
"border": 0,
"embed": 0,
"embedstate": [
[ "active_slot_color", 0.618934978328545, 0.744701397656435, 0.953750108255376, 1 ],
[ "autoname", 0 ],
[ "autowriteagain", 0 ],
[ "bgcolor", 0.125, 0.125, 0.125, 1 ],
[ "bubblesize", 14 ],
[ "click_mode", 0 ],
[ "color_1", 0.743, 0.41, 0.501, 1 ],
[ "color_2", 0.679, 0.405, 0.669, 1 ],
[ "color_3", 0.527, 0.459, 0.756, 1 ],
@@ -3445,7 +3445,6 @@
{
"box": {
"border": 0,
"embed": 0,
"filename": "helpname.js",
"id": "obj-4",
"ignoreclick": 1,
@@ -3688,8 +3687,8 @@
"fileversion": 1,
"appversion": {
"major": 9,
"minor": 2,
"revision": 0,
"minor": 1,
"revision": 4,
"architecture": "x64",
"modernui": 1
},
@@ -3829,8 +3828,8 @@
"fileversion": 1,
"appversion": {
"major": 9,
"minor": 2,
"revision": 0,
"minor": 1,
"revision": 4,
"architecture": "x64",
"modernui": 1
},
@@ -3882,8 +3881,8 @@
"fileversion": 1,
"appversion": {
"major": 9,
"minor": 2,
"revision": 0,
"minor": 1,
"revision": 4,
"architecture": "x64",
"modernui": 1
},
@@ -4276,8 +4275,8 @@
"fileversion": 1,
"appversion": {
"major": 9,
"minor": 2,
"revision": 0,
"minor": 1,
"revision": 4,
"architecture": "x64",
"modernui": 1
},
@@ -4589,8 +4588,8 @@
"fileversion": 1,
"appversion": {
"major": 9,
"minor": 2,
"revision": 0,
"minor": 1,
"revision": 4,
"architecture": "x64",
"modernui": 1
},
@@ -4764,8 +4763,8 @@
"fileversion": 1,
"appversion": {
"major": 9,
"minor": 2,
"revision": 0,
"minor": 1,
"revision": 4,
"architecture": "x64",
"modernui": 1
},
@@ -4988,13 +4987,13 @@
{
"box": {
"border": 0,
"embed": 0,
"embedstate": [
[ "active_slot_color", 0.618934978328545, 0.744701397656435, 0.953750108255376, 1 ],
[ "autoname", 0 ],
[ "autowriteagain", 0 ],
[ "bgcolor", 0.125, 0.125, 0.125, 1 ],
[ "bubblesize", 14 ],
[ "click_mode", 0 ],
[ "color_1", 0.743, 0.41, 0.501, 1 ],
[ "color_2", 0.679, 0.405, 0.669, 1 ],
[ "color_3", 0.527, 0.459, 0.756, 1 ],
@@ -5218,8 +5217,8 @@
"fileversion": 1,
"appversion": {
"major": 9,
"minor": 2,
"revision": 0,
"minor": 1,
"revision": 4,
"architecture": "x64",
"modernui": 1
},
@@ -5385,13 +5384,13 @@
{
"box": {
"border": 0,
"embed": 0,
"embedstate": [
[ "active_slot_color", 0.618934978328545, 0.744701397656435, 0.953750108255376, 1 ],
[ "autoname", 0 ],
[ "autowriteagain", 0 ],
[ "bgcolor", 0.125, 0.125, 0.125, 1 ],
[ "bubblesize", 14 ],
[ "click_mode", 0 ],
[ "color_1", 0.743, 0.41, 0.501, 1 ],
[ "color_2", 0.679, 0.405, 0.669, 1 ],
[ "color_3", 0.527, 0.459, 0.756, 1 ],

View File

@@ -79,6 +79,8 @@ var scrollable = 0; // Defines weither the object can be scrolled or not
var min_rows = 10; // Minimum number of rows to display if scrollable is enabled
var color_mode = 0; // Change the way the filled slots (stored presets) color is handeld. 0: stored_slot_color. 1: looping through color_1 to color_6. 2: Freely assign colors 1 to 6. 3: Set any color to any preset
var select_mode = 0; // 0: single click to select and recall the slot. 1: single click to select the slot, double click to recall it.
var click_mode = 0; // Sets the behavior of single clicks. 0: normal (recall), 1: select, 2: store, 3: delete
var drag_mode = 1; // Sets the behavior of drag operations. 0: disabled, 1: move preset (default), 2: in-line interpolation
var send_name = "none"; // The global name to send presets dict name to (received by the [receive] object)
var unique_names = false; // When enabled, force names to be unique when renaming slots by appending "bis" to them. Gets applied only to subsequently renamed presets.
var autoname = false; // Automatically name new presets when created as "Preset" followed by the slot id
@@ -197,6 +199,10 @@ function slot(left, top, right, bottom) {
this.top = top;
this.right = right;
this.bottom = bottom;
this.center = {
x: (left + right) / 2,
y: (top + bottom) / 2,
}
}
this.export_metadata = function () {
@@ -458,7 +464,7 @@ function paint_base() {
for (var i = 1; i <= true_slots_count_display; i++) {
if (i != drag_slot) { //We mask the slot that is currently dragged as it is drawn at the mouse position already
var slot = slots[i];
if (slot.filled == true) {
if (slot.filled === true) {
if (color_mode == 1) {
mg.set_source_rgba(color_wheel_custom[i % color_wheel_size]);
} else if (color_mode == 2) {
@@ -502,7 +508,7 @@ function paint()
mgraphics.set_line_width(1);
// Active slot
if (is_dragging == 0 && active_slot > 0 && active_slot <= slots_count_display) {
if (is_dragging !== 1 && active_slot > 0 && active_slot <= slots_count_display) {
var opacity = active_slot_color[3];
var opacity = control_hold && last_hovered == active_slot ? active_slot_color[3] * 0.7 : active_slot_color[3];
mgraphics.set_source_rgba(active_slot_color[0], active_slot_color[1], active_slot_color[2], opacity);
@@ -520,7 +526,7 @@ function paint()
}
// Previous active slot
if (is_dragging == 0 && previous_active_slot > 0 && previous_active_slot <= slots_count_display) {
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) {
if (!control_hold) {
@@ -544,7 +550,7 @@ function paint()
}
// Interpolated slots
if (is_dragging == 0 && display_interp && is_interpolating) {
if (is_dragging !== 1 && display_interp && is_interpolating) {
for (var i = 1; i <= slots_count_display; i++) {
var slot = slots[i];
@@ -574,10 +580,10 @@ function paint()
// }
// Hovered slot
if (last_hovered > -1) {
if ((last_hovered > -1) && ((drag_mode < 2) || (drag_mode === 2 && !is_dragging))) {
// Slot border
if (slots[last_hovered].filled == false || (slots[last_hovered].filled == true && !control_hold)) {
if (slots[last_hovered].filled === false || (slots[last_hovered].filled === true && !control_hold)) {
mgraphics.set_source_rgba(text_color[0], text_color[1], text_color[2], 0.8 * text_color[3]);
mgraphics.set_line_width(1);
draw_slot_bubble(slots[last_hovered].left, slots[last_hovered].top, slot_size, slot_size);
@@ -588,7 +594,7 @@ function paint()
var stroke_width = Math.round(1 + slot_size / 10);
stroke_width = Math.max(2, stroke_width);
if (shift_hold) {
if (control_hold && slots[last_hovered].filled == true) {
if (control_hold && slots[last_hovered].filled === true) {
// About to lock/unlock
var bracket_size = slot_size * 0.2;
mgraphics.set_source_rgba(text_color);
@@ -602,7 +608,7 @@ function paint()
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].filled == true) {
} else if (option_hold && !control_hold && slots[last_hovered].filled === true) {
// About to delete
mgraphics.set_source_rgba(0, 0, 0, 0.5);
draw_slot_bubble(slots[last_hovered].left + 1, slots[last_hovered].top + 1, slot_size-2, slot_size-2);
@@ -613,7 +619,7 @@ function paint()
draw_slot_bubble(slots[last_hovered].left + 1, slots[last_hovered].top + 1, slot_size-2, slot_size-2);
mgraphics.fill();
}
} else if (control_hold && slots[last_hovered].filled == true) {
} else if (control_hold && slots[last_hovered].filled === true) {
// About to rename
mgraphics.set_source_rgba(text_color);
mgraphics.set_line_width(stroke_width);
@@ -681,7 +687,7 @@ function paint()
}
// Drag slot
if (is_dragging) {
if (is_dragging === 1) {
if (layout == 0) {
mgraphics.translate(last_x, last_y );
mgraphics.rotate(0.15);
@@ -924,7 +930,7 @@ function anything() {
} else {
slots[v].name = null;
slots[v].interp = -1;
slots[v].filled = 0;
slots[v].filled = false;
if (active_slot == v) {
active_slot = 0;
selected_slot = 0;
@@ -933,7 +939,7 @@ function anything() {
previous_active_slot = 0;
}
if (is_dragging == 0 && is_moving == 0) {
if (is_dragging === 0 && is_moving === 0) {
to_pattrstorage("delete", v);
to_pattrstorage("getslotlist");
set_active_slot(active_slot);
@@ -979,9 +985,7 @@ function msg_int(v) {
}
function msg_float(v) {
var s = Math.floor(v);
var i = v % 1;
to_pattrstorage("recall", s, s+1, i);
to_pattrstorage(v);
}
function pattrstorage(v) {
@@ -1020,7 +1024,7 @@ function slotname() {
return;
}
if (slot > 0 && name != "(undefined)") {
if (is_updating_names == 1 && slots[slot].filled == false && name !== "<(unnamed)>") {
if (is_updating_names == 1 && slots[slot].filled === false && name !== "<(unnamed)>") {
// Removing parenthesis automatically added by pattrstorage if the preset has a name but isn't filled
name = name.slice(1, -1);
}
@@ -1090,7 +1094,10 @@ function recall() {
interp = Math.min(1, Math.max(0, args[2]));
}
if ((src_slot == 0 || filled_slots.indexOf(src_slot) > -1) && (trg_slot == 0 || filled_slots.indexOf(trg_slot) > -1 )) {
var src_slot_exists = filled_slots.indexOf(src_slot) > -1;
var trg_slot_exists = filled_slots.indexOf(trg_slot) > -1;
if ((src_slot == 0 || src_slot_exists) || (trg_slot == 0 || trg_slot_exists )) {
for (var i = 0; i < filled_slots.length; i++) {
slots[filled_slots[i]].interp = -1;
}
@@ -1104,7 +1111,7 @@ function recall() {
src_slot = active_slot;
}
}
if (interp == 0.0) {
if (interp == 0.0 && src_slot_exists) {
slots[src_slot].interp = -1;
slots[trg_slot].interp = -1;
is_interpolating = 0;
@@ -1118,7 +1125,7 @@ function recall() {
set_active_slot(src_slot);
active_slot_edited = 0;
run_edited_poll_task();
} else if (interp == 1.0) {
} else if (interp == 1.0 && trg_slot_exists) {
slots[src_slot].interp = -1;
slots[trg_slot].interp = -1;
is_interpolating = 0;
@@ -1127,8 +1134,8 @@ function recall() {
active_slot_edited = 0;
run_edited_poll_task();
} else {
slots[src_slot].interp = 1 - interp;
slots[trg_slot].interp = interp;
if (src_slot_exists) slots[src_slot].interp = 1 - interp;
if (trg_slot_exists) slots[trg_slot].interp = interp;
is_interpolating = 1;
active_slot = 0;
// if (src_slot != trg_slot) {
@@ -1158,21 +1165,26 @@ function recallmulti() {
var interp_slots = [];
var summed_weight = 0;
for (var i = 0; i < filled_slots.length; i++) {
slots[filled_slots[i]].interp = -1;
}
for (var i = 0; i < args.length; i++) {
var slot = Math.floor(args[i]);
var weight = args[i] % 1.;
if (weight == 0) weight = 1;
summed_weight += weight;
interp_slots.push([Math.floor(args[i]), weight]);
interp_slots.push([slot, weight]);
}
for (var i = 0; i < interp_slots.length; i++) {
var nb = interp_slots[i][0];
if (slots[nb].filled == true) {
if (slots[nb].filled === true) {
interp_slots[i][1] /= summed_weight;
} else {
interp_slots[i][1] = -1;
}
slots[nb].interp = interp_slots[i][1]
slots[nb].interp = interp_slots[i][1];
}
is_interpolating = 1;
@@ -1293,7 +1305,7 @@ function move() {
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].filled == false) {
if (src_slot == dst_slot || !(src_slot <= slots_highest && dst_slot <= slots_count_display) || slots[src_slot].filled === false) {
if (is_dragging) {
}
@@ -1305,7 +1317,7 @@ function move() {
var cur_prev_active_slot = previous_active_slot;
var cur_selected_slot = selected_slot;
var offset = ((dst_slot <= src_slot) && slots[dst_slot].filled) ? 1 : 0;
var offset_others = slots[dst_slot].filled == true ? 1 : 0;
var offset_others = slots[dst_slot].filled === true ? 1 : 0;
var src_slot_lock = slots[src_slot].lock;
var recalc_rows_flag = 0;
@@ -1314,7 +1326,7 @@ function move() {
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].filled == true) {
if (slots[dst_slot].filled === true) {
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;
@@ -1786,22 +1798,18 @@ function onclick(x,y,but,cmd,shift,capslock,option,ctrl)
}
if (last_hovered > -1 && pattrstorage_name != null && last_hovered_is_preset_slot) {
var output = "recall";
if (select_mode) {
if (click_mode === 1) {
output = "select";
}
if (shift) {
if (!option && !ctrl) {
if (click_mode === 2 ||(shift && !option && !ctrl)) {
output = "store";
}
if (option && slots[last_hovered].filled) {
} else if (click_mode === 3 ||(shift && option && slots[last_hovered].filled)) {
output = "delete";
}
if (ctrl && slots[last_hovered].filled) {
} else if (shift && ctrl && slots[last_hovered].filled) {
output = "lock";
}
} else if (ctrl && slots[last_hovered].filled) {
} else if (!shift && ctrl && slots[last_hovered].filled) {
output = "rename";
} else if (slots[last_hovered].filled == false) {
} else if (slots[last_hovered].filled === false) {
return;
}
if (output == "recall" && recall_passthrough == false) {
@@ -1839,7 +1847,7 @@ onclick.local = 1;
function ondblclick(x,y,but,cmd,shift,capslock,option,ctrl)
{
if (select_mode && last_hovered > -1 && pattrstorage_name != null && slots[last_hovered].filled) {
if (click_mode === 1 && last_hovered > -1 && pattrstorage_name != null && slots[last_hovered].filled) {
if (recall_passthrough) {
to_pattrstorage("recall", last_hovered);
} else {
@@ -1856,7 +1864,8 @@ function ondrag(x,y,but,cmd,shift,capslock,option,ctrl)
{
if (pattrstorage_name != null) {
y -= y_offset;
if (is_dragging == 0 && last_hovered > 0 && slots[last_hovered].filled == true) {
if (drag_mode === 1) {
if (is_dragging === 0 && last_hovered > 0 && slots[last_hovered].filled === true) {
// To prevent mistakes, is_dragging is set to 1 only when dragging for more than 10 pixels
var dist_from_start = Math.sqrt((x-last_x)*(x-last_x)+(y-last_y)*(y-last_y));
if (dist_from_start > 10) {
@@ -1902,6 +1911,86 @@ function ondrag(x,y,but,cmd,shift,capslock,option,ctrl)
last_x = x;
last_y = y;
}
} else if (drag_mode === 2) {
// Drag to interpolate across adjacent (previous and next) presets
if (is_dragging == 0) {
var dist_from_start = Math.sqrt((x-last_x)*(x-last_x)+(y-last_y)*(y-last_y));
if (dist_from_start > 3) {
is_dragging = 2;
}
}
// last_hovered retains the slot where the drag began
if (is_dragging === 2 && last_hovered > -1) {
var relative_dist_from_start = (x - slots[last_hovered].center.x) / (slot_size + spacing);
var current_slot = Math.max(Math.round(last_hovered - 0.5 + relative_dist_from_start), 1);
var prev_filled_slot = -1;
var next_filled_slot = -1;
for (var i = 0; i < filled_slots.length; i++) {
var p = filled_slots[i];
if (p <= current_slot) {
if (prev_filled_slot === -1 || p > prev_filled_slot) {
prev_filled_slot = p;
}
} else if (p > current_slot) {
if (next_filled_slot === -1 || p < next_filled_slot) {
next_filled_slot = p;
}
}
}
var interp_amount = 0;
if (prev_filled_slot === -1) {
prev_filled_slot = next_filled_slot;
interp_amount = 1;
} else if (next_filled_slot === -1) {
next_filled_slot = prev_filled_slot;
interp_amount = 1;
} else if (prev_filled_slot > 0 && next_filled_slot > 0) {
interp_amount = (last_hovered + relative_dist_from_start - prev_filled_slot) / (next_filled_slot - prev_filled_slot);
interp_amount = Math.min(interp_amount, Math.max(interp_amount, 0), 1);
}
if (prev_filled_slot !== -1 || next_filled_slot !== -1) {
to_pattrstorage("recall", prev_filled_slot, next_filled_slot, interp_amount);
}
last_x = x;
last_y = y;
if (!but) {
is_dragging = 0;
}
}
} else if (drag_mode === 3) {
// Drag to interpolate across adjacent (previous and next) presets
if (is_dragging == 0) {
var dist_from_start = Math.sqrt((x-last_x)*(x-last_x)+(y-last_y)*(y-last_y));
if (dist_from_start > 3) {
is_dragging = 3;
}
}
// last_hovered retains the slot where the drag began
if (is_dragging === 3 && last_hovered > -1) {
var radius = 2;
var nearby_slots = [];
var max_dist = 0;
for (var i = 0; i < filled_slots.length; i++) {
var s_pos = slots[filled_slots[i]].center;
var dist_from_mouse = Math.sqrt((x - s_pos.x) * (x - s_pos.x) + (y - s_pos.y) * (y - s_pos.y)) / (slot_size + spacing);
if (dist_from_mouse < radius) {
var interp_factor = 1 - (dist_from_mouse / radius);
nearby_slots.push(filled_slots[i] + interp_factor);
if (max_dist < dist_from_mouse) max_dist = dist_from_mouse;
}
}
if (nearby_slots.length) {
var args = ["recallmulti"].concat(nearby_slots);
to_pattrstorage.apply(null, args);
recallmulti.apply(null, nearby_slots);
}
last_x = x;
last_y = y;
if (!but) {
is_dragging = 0;
}
}
}
}
}
ondrag.local = 1;
@@ -2312,22 +2401,22 @@ function setmin_rows(v){
}
setmin_rows.local = 1;
declareattribute("select_mode", "getselect_mode", "setselect_mode", 1, {style: "onoff", label: "Select Mode"});
declareattribute("click_mode", null, null, 1, { style: "enumindex", enumvals: ["Recall", "Select", "Store", "Delete"], default: 0, label: "Click Mode", paint: 1});
declareattribute("select_mode", "getselect_mode", "setselect_mode", 1, {style: "onoff", label: "Select Mode", invisible: 1});
function getselect_mode() {
return select_mode;
}
getselect_mode.local = 1;
function setselect_mode(v) {
if (v == 1) {
select_mode = 1;
} else {
select_mode = 0;
}
mgraphics.redraw();
select_mode = v ? 1 : 0;
if (select_mode) this.box.message("click_mode", v);
}
setselect_mode.local = 1;
declareattribute("drag_mode", null, null, 1, { style: "enumindex", enumvals: ["Disabled", "Move", "In-Line Interp", "Interp"], default: 1, label: "Drag Mode", paint: 1});
declareattribute("color_mode", "getcolor_mode", "setcolor_mode", 1, {type: "long", min: 0, max: 3, style: "enumindex", enumvals: ["Classic", "Cycle", "Select", "Custom"], label: "Color Mode", category: "Appearance"});
function getcolor_mode() {
return color_mode;

View File

@@ -1,7 +1,7 @@
{
"name" : "tc.preset",
"displayname" : "",
"version" : "1.3.0",
"version" : "1.4.0",
"author" : "Théophile Clet",
"authors" : [ ],
"description" : "A jsui replacement for the preset object",

View File

@@ -1,7 +1,7 @@
{
"name" : "tc.preset",
"displayname" : "",
"version" : "1.3.0",
"version" : "1.4.0",
"author" : "Théophile Clet",
"authors" : [ ],
"description" : "A v8ui replacement for the preset object",