24 Commits

Author SHA1 Message Date
0fa39f185b main colors now fetches current Max theme during object instantiation 2026-01-15 20:45:55 +01:00
627848d872 small ui tweaks for more clarity 2026-01-15 13:58:11 +01:00
7c37e5a0d4 Always display bubble beside currently hovered slot. Add little arrow 2026-01-13 19:13:22 +01:00
18f183f91a slots can now be properly named without being filled ; add 'filled' slot value 2026-01-13 17:53:41 +01:00
5a5f26ce07 update launcher 2026-01-13 10:44:51 +01:00
12b585a6d2 hide preset name when <unnamed> (matchin [preset] behavior) 2026-01-13 10:33:55 +01:00
ca80a6cfe6 doc update 2026-01-13 10:33:15 +01:00
a9322cd2eb build: avoid zipping previous .zip 2025-10-28 19:54:15 +01:00
717fe34acc update presets 2025-10-22 18:46:30 +02:00
76969558ed disable border ; check for textedit at every rename action if not present. 2025-10-22 18:39:24 +02:00
e1d57b0683 textedit: enable nosymquotes 2025-10-22 17:49:49 +02:00
ac2c71a75e version bump 2025-10-22 16:34:46 +02:00
84d986e33d new feature: auto-link to pattrstorage at connection ; hopefully more robust init sequence 2025-10-22 16:27:17 +02:00
a554a531bc update support link 2025-10-22 13:45:23 +02:00
1921d38184 rename test.json to tcpreset_help to avoid possible conflicts ; Max 9 help file: add compatibility tab 2025-10-22 13:44:57 +02:00
032320a646 clear textedit when found 2025-10-22 13:40:30 +02:00
b245cc56e1 slightly improve readability of rename/lock indicators in some cases 2025-10-18 21:59:05 +02:00
fe348b7732 slightly improve textedit font size management 2025-10-14 23:18:39 +02:00
d57b71990b new move message, closes #3 ; further ui feedback improvement ; version bump 2025-10-10 20:52:48 +02:00
4624e64505 refined feedback for rename and lock interactions 2025-10-10 11:15:00 +02:00
2118487a7c create .zip at build 2025-10-10 11:13:25 +02:00
9ad871da82 fix bug allowing misuse of color_mode 2 and 3 even if preset_metadata not present 2025-10-10 03:02:37 +02:00
4168782fec cleanup 2025-10-10 03:01:55 +02:00
2c6d649d17 version and license file update 2025-10-10 01:28:04 +02:00
15 changed files with 6535 additions and 7547 deletions

3
.gitignore vendored
View File

@@ -2,4 +2,5 @@
.AppleDouble
.LSOverride
media/
dist/
dist/
*.zip

View File

@@ -47,3 +47,10 @@ Alternatively, instead of relying on this script you can manually remove the fil
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.
GPL-3.0-or-later
See the [license file](./license).

View File

@@ -30,6 +30,8 @@ copy_files() {
find . -type f \
-not -path "*/.*" \
-not -path "./dist/*" \
-not -path "./media/*" \
-not -name "*.zip" \
-not -name "build.sh" | while read -r file; do
# Get filename without path
@@ -78,6 +80,18 @@ echo "Max 8 package: $MAX8_DIR"
echo "Max 9 package: $MAX9_DIR"
echo ""
# Create zip files
echo "Creating zip archives..."
cd "$DIST_DIR/Max 8"
zip -r "../../${PACKAGE_NAME}_Max8.zip" "$PACKAGE_NAME" -q
cd "../Max 9"
zip -r "../../${PACKAGE_NAME}_Max9.zip" "$PACKAGE_NAME" -q
cd ../..
echo "✓ Created ${PACKAGE_NAME}_Max8.zip"
echo "✓ Created ${PACKAGE_NAME}_Max9.zip"
echo ""
# Ask to install
read -p "Install to Max Packages folders (~/Documents/Max <8|9>/Packages)? (y/n) " -n 1 -r
echo

View File

@@ -72,6 +72,13 @@
With no argument, it resets colors for the select preset to default values.
</description>
</method>
<method name="move">
<digest>Move a preset to another slot</digest>
<description> 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.
</description>
</method>
<method name="pattrstorage">
<digest>Link to named pattrstorage object</digest>
<description>The word 'pattrstorage' followed by the name of an existing pattrstorage links the jsui to that pattrstorage.

View File

@@ -1,202 +1,255 @@
{
"patcher" : {
"fileversion" : 1,
"appversion" : {
"major" : 9,
"minor" : 1,
"revision" : 0,
"architecture" : "x64",
"modernui" : 1
}
,
"classnamespace" : "box",
"rect" : [ 371.0, 273.0, 483.0, 443.0 ],
"gridsize" : [ 15.0, 15.0 ],
"toolbarvisible" : 0,
"lefttoolbarpinned" : 2,
"toptoolbarpinned" : 2,
"righttoolbarpinned" : 2,
"bottomtoolbarpinned" : 2,
"toolbars_unpinned_last_save" : 15,
"enablehscroll" : 0,
"enablevscroll" : 0,
"assistshowspatchername" : 0,
"commentary" : "",
"showcommentary" : 0,
"boxes" : [ {
"box" : {
"hidden" : 1,
"id" : "obj-17",
"linecount" : 5,
"maxclass" : "message",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 9.0, 354.0, 116.0, 76.0 ],
"text" : ";\rmax launchbrowser https://glucose47.gumroad.com/l/tc_preset"
}
}
, {
"box" : {
"id" : "obj-13",
"linecount" : 3,
"maxclass" : "comment",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 166.5, 373.0, 150.0, 47.0 ],
"text" : "GPL 3.0\n© Théophile Clet, 2025\nClick here to support",
"textcolor" : [ 0.0, 0.0, 0.0, 0.5 ],
"textjustification" : 1
}
}
, {
"box" : {
"fontsize" : 16.0,
"id" : "obj-11",
"maxclass" : "comment",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 99.0, 81.0, 285.0, 24.0 ],
"text" : "A jsui replacement for the preset object"
}
}
, {
"box" : {
"embedstate" : [ [ "margin", 4 ], [ "bgcolor", 0.2, 0.2, 0.2, 1 ], [ "scrollable", 0 ], [ "interp_slot_color", 1, 1, 1, 0.8 ], [ "layout", 1 ], [ "color_4", 0.367, 0.542, 0.712, 1 ], [ "autowriteagain", 0 ], [ "display_interp", 1 ], [ "text_bg_color", 1, 1, 1, 0.5 ], [ "select_mode", 0 ], [ "color_mode", 0 ], [ "color_5", 0.283, 0.606, 0.559, 1 ], [ "empty_slot_color", 0.349, 0.349, 0.349, 1 ], [ "ignoreslotzero", 1 ], [ "color_1", 0.743, 0.41, 0.501, 1 ], [ "text_color", 0.129, 0.129, 0.129, 1 ], [ "spacing", 4 ], [ "slot_round", 0 ], [ "color_6", 0.316, 0.616, 0.377, 1 ], [ "active_slot_color", 0.808, 0.898, 0.91, 1 ], [ "menu_mode", 0 ], [ "bubblesize", 14 ], [ "min_rows", 10 ], [ "color_2", 0.679, 0.405, 0.669, 1 ], [ "fontsize", 14 ], [ "send_name", "none" ], [ "stored_slot_color", 0.502, 0.502, 0.502, 1 ], [ "fontname", "Arial" ], [ "color_3", 0.527, 0.459, 0.756, 1 ] ],
"filename" : "tc.preset",
"id" : "obj-8",
"maxclass" : "jsui",
"numinlets" : 1,
"numoutlets" : 4,
"outlettype" : [ "", "", "", "" ],
"parameter_enable" : 0,
"patching_rect" : [ 254.0, 153.0, 130.0, 58.0 ]
}
}
, {
"box" : {
"hidden" : 1,
"id" : "obj-7",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 9.0, 301.0, 51.0, 22.0 ],
"text" : "pcontrol"
}
}
, {
"box" : {
"hidden" : 1,
"id" : "obj-6",
"maxclass" : "message",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 9.0, 274.0, 165.0, 22.0 ],
"text" : "loadunique tc.preset.maxhelp"
}
}
, {
"box" : {
"fontsize" : 20.0,
"id" : "obj-4",
"maxclass" : "textbutton",
"numinlets" : 1,
"numoutlets" : 3,
"outlettype" : [ "", "", "int" ],
"parameter_enable" : 0,
"patching_rect" : [ 162.0, 282.0, 159.0, 41.0 ],
"text" : "Open helper file"
}
}
, {
"box" : {
"embedstate" : [ [ "margin", 4 ], [ "bgcolor", 0.2, 0.2, 0.2, 1 ], [ "scrollable", 0 ], [ "interp_slot_color", 1, 1, 1, 0.8 ], [ "layout", 0 ], [ "color_4", 0.367, 0.542, 0.712, 1 ], [ "autowriteagain", 0 ], [ "display_interp", 1 ], [ "text_bg_color", 1, 1, 1, 0.5 ], [ "select_mode", 0 ], [ "color_mode", 0 ], [ "color_5", 0.283, 0.606, 0.559, 1 ], [ "empty_slot_color", 0.349, 0.349, 0.349, 1 ], [ "ignoreslotzero", 1 ], [ "color_1", 0.743, 0.41, 0.501, 1 ], [ "text_color", 0.129, 0.129, 0.129, 1 ], [ "spacing", 4 ], [ "slot_round", 0 ], [ "color_6", 0.316, 0.616, 0.377, 1 ], [ "active_slot_color", 0.808, 0.898, 0.91, 1 ], [ "menu_mode", 0 ], [ "bubblesize", 14 ], [ "min_rows", 10 ], [ "color_2", 0.679, 0.405, 0.669, 1 ], [ "fontsize", 14 ], [ "send_name", "none" ], [ "stored_slot_color", 0.502, 0.502, 0.502, 1 ], [ "fontname", "Arial" ], [ "color_3", 0.527, 0.459, 0.756, 1 ] ],
"filename" : "tc.preset",
"id" : "obj-3",
"maxclass" : "jsui",
"numinlets" : 1,
"numoutlets" : 4,
"outlettype" : [ "", "", "", "" ],
"parameter_enable" : 0,
"patching_rect" : [ 99.0, 153.0, 130.0, 58.0 ]
}
}
, {
"box" : {
"fontface" : 1,
"fontsize" : 48.0,
"id" : "obj-2",
"maxclass" : "comment",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 137.0, 16.0, 209.0, 60.0 ],
"text" : "tc.preset",
"textjustification" : 1
}
}
, {
"box" : {
"bgcolor" : [ 0.2, 0.2, 0.2, 0.0 ],
"fontsize" : 20.0,
"id" : "obj-15",
"maxclass" : "textbutton",
"numinlets" : 1,
"numoutlets" : 3,
"outlettype" : [ "", "", "int" ],
"parameter_enable" : 0,
"patching_rect" : [ 166.5, 373.0, 150.0, 47.0 ],
"text" : "Open helper file",
"textoncolor" : [ 0.807843137254902, 0.898039215686275, 0.909803921568627, 0.0 ],
"textovercolor" : [ 0.929411764705882, 0.929411764705882, 0.352941176470588, 0.0 ]
}
}
],
"lines" : [ {
"patchline" : {
"destination" : [ "obj-17", 0 ],
"hidden" : 1,
"source" : [ "obj-15", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-6", 0 ],
"hidden" : 1,
"source" : [ "obj-4", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-7", 0 ],
"hidden" : 1,
"source" : [ "obj-6", 0 ]
}
}
],
"dependency_cache" : [ {
"name" : "tc.preset.js",
"bootpath" : "~/Documents/Max 9/Packages/tc.preset/javascript",
"patcherrelativepath" : "../javascript",
"type" : "TEXT",
"implicit" : 1
}
],
"autosave" : 0
}
}
"patcher": {
"fileversion": 1,
"appversion": {
"major": 9,
"minor": 1,
"revision": 2,
"architecture": "x64",
"modernui": 1
},
"classnamespace": "box",
"rect": [ 371.0, 273.0, 483.0, 443.0 ],
"toolbarvisible": 0,
"lefttoolbarpinned": 2,
"toptoolbarpinned": 2,
"righttoolbarpinned": 2,
"bottomtoolbarpinned": 2,
"toolbars_unpinned_last_save": 15,
"enablehscroll": 0,
"enablevscroll": 0,
"boxes": [
{
"box": {
"hidden": 1,
"id": "obj-17",
"linecount": 5,
"maxclass": "message",
"numinlets": 2,
"numoutlets": 1,
"outlettype": [ "" ],
"patching_rect": [ 9.0, 354.0, 144.0, 76.0 ],
"text": ";\rmax launchbrowser https://www.paypal.com/donate/?hosted_button_id=AVGJ5JLTP76K8"
}
},
{
"box": {
"id": "obj-13",
"linecount": 3,
"maxclass": "comment",
"numinlets": 1,
"numoutlets": 0,
"patching_rect": [ 155.0, 374.0, 173.0, 47.0 ],
"text": "GPL 3.0\n© Théophile Clet, 2024-2026\nClick here to support",
"textcolor": [ 0.0, 0.0, 0.0, 0.5 ],
"textjustification": 1
}
},
{
"box": {
"fontsize": 16.0,
"id": "obj-11",
"maxclass": "comment",
"numinlets": 1,
"numoutlets": 0,
"patching_rect": [ 82.0, 81.0, 319.0, 24.0 ],
"text": "A jsui/v8ui replacement for the preset object"
}
},
{
"box": {
"border": 0,
"embedstate": [
[ "bgcolor", 0.125, 0.125, 0.125, 1.0 ],
[ "fontsize", 14 ],
[ "menu_mode", 0 ],
[ "text_bg_color", 1, 1, 1, 0.5 ],
[ "autowriteagain", 0 ],
[ "color_4", 0.367, 0.542, 0.712, 1 ],
[ "empty_slot_color", 0.221327066888467, 0.221327006361825, 0.221327022178404, 1.0 ],
[ "interp_slot_color", 1, 1, 1, 0.8 ],
[ "fontname", "Arial" ],
[ "select_mode", 0 ],
[ "spacing", 4 ],
[ "ui_rename", 0 ],
[ "layout", 1 ],
[ "color_2", 0.679, 0.405, 0.669, 1 ],
[ "display_interp", 1 ],
[ "poll_edited", 0 ],
[ "scrollable", 0 ],
[ "use_uid", 0 ],
[ "stored_slot_color", 0.458595350062755, 0.458595237564901, 0.458595266962388, 1.0 ],
[ "color_mode", 0 ],
[ "color_5", 0.283, 0.606, 0.559, 1 ],
[ "min_rows", 10 ],
[ "bubblesize", 14 ],
[ "margin", 4 ],
[ "text_color", 0.85, 0.85, 0.85, 1.0 ],
[ "active_slot_color", 0.618934978328545, 0.744701397656435, 0.953750108255376, 1.0 ],
[ "color_3", 0.527, 0.459, 0.756, 1 ],
[ "send_name", "none" ],
[ "edited_color", 1, 0.49, 0.263, 1 ],
[ "recall_passthrough", 1 ],
[ "ignoreslotzero", 1 ],
[ "unique_names", 0 ],
[ "pattrstorage", "" ],
[ "slot_round", 0 ],
[ "color_1", 0.743, 0.41, 0.501, 1 ],
[ "color_6", 0.316, 0.616, 0.377, 1 ],
[ "nbslot_edit", 1 ]
],
"filename": "tc.preset",
"id": "obj-8",
"maxclass": "jsui",
"numinlets": 1,
"numoutlets": 5,
"outlettype": [ "", "", "", "", "" ],
"parameter_enable": 0,
"patching_rect": [ 254.0, 153.0, 130.0, 58.0 ]
}
},
{
"box": {
"hidden": 1,
"id": "obj-7",
"maxclass": "newobj",
"numinlets": 1,
"numoutlets": 1,
"outlettype": [ "" ],
"patching_rect": [ 9.0, 301.0, 51.0, 22.0 ],
"text": "pcontrol"
}
},
{
"box": {
"hidden": 1,
"id": "obj-6",
"maxclass": "message",
"numinlets": 2,
"numoutlets": 1,
"outlettype": [ "" ],
"patching_rect": [ 9.0, 274.0, 165.0, 22.0 ],
"text": "loadunique tc.preset.maxhelp"
}
},
{
"box": {
"fontsize": 20.0,
"id": "obj-4",
"maxclass": "textbutton",
"numinlets": 1,
"numoutlets": 3,
"outlettype": [ "", "", "int" ],
"parameter_enable": 0,
"patching_rect": [ 162.0, 282.0, 159.0, 41.0 ],
"text": "Open helper file"
}
},
{
"box": {
"border": 0,
"embedstate": [
[ "bgcolor", 0.125, 0.125, 0.125, 1.0 ],
[ "fontsize", 14 ],
[ "menu_mode", 0 ],
[ "text_bg_color", 1, 1, 1, 0.5 ],
[ "autowriteagain", 0 ],
[ "color_4", 0.367, 0.542, 0.712, 1 ],
[ "empty_slot_color", 0.221327066888467, 0.221327006361825, 0.221327022178404, 1.0 ],
[ "interp_slot_color", 1, 1, 1, 0.8 ],
[ "fontname", "Arial" ],
[ "select_mode", 0 ],
[ "spacing", 4 ],
[ "ui_rename", 0 ],
[ "layout", 0 ],
[ "color_2", 0.679, 0.405, 0.669, 1 ],
[ "display_interp", 1 ],
[ "poll_edited", 0 ],
[ "scrollable", 0 ],
[ "use_uid", 0 ],
[ "stored_slot_color", 0.458595350062755, 0.458595237564901, 0.458595266962388, 1.0 ],
[ "color_mode", 0 ],
[ "color_5", 0.283, 0.606, 0.559, 1 ],
[ "min_rows", 10 ],
[ "bubblesize", 14 ],
[ "margin", 4 ],
[ "text_color", 0.85, 0.85, 0.85, 1.0 ],
[ "active_slot_color", 0.618934978328545, 0.744701397656435, 0.953750108255376, 1.0 ],
[ "color_3", 0.527, 0.459, 0.756, 1 ],
[ "send_name", "none" ],
[ "edited_color", 1, 0.49, 0.263, 1 ],
[ "recall_passthrough", 1 ],
[ "ignoreslotzero", 1 ],
[ "unique_names", 0 ],
[ "pattrstorage", "" ],
[ "slot_round", 0 ],
[ "color_1", 0.743, 0.41, 0.501, 1 ],
[ "color_6", 0.316, 0.616, 0.377, 1 ],
[ "nbslot_edit", 1 ]
],
"filename": "tc.preset",
"id": "obj-3",
"maxclass": "jsui",
"numinlets": 1,
"numoutlets": 5,
"outlettype": [ "", "", "", "", "" ],
"parameter_enable": 0,
"patching_rect": [ 99.0, 153.0, 130.0, 58.0 ]
}
},
{
"box": {
"fontface": 1,
"fontsize": 48.0,
"id": "obj-2",
"maxclass": "comment",
"numinlets": 1,
"numoutlets": 0,
"patching_rect": [ 137.0, 16.0, 209.0, 60.0 ],
"text": "tc.preset",
"textjustification": 1
}
},
{
"box": {
"bgcolor": [ 0.2, 0.2, 0.2, 0.0 ],
"fontsize": 20.0,
"id": "obj-15",
"maxclass": "textbutton",
"numinlets": 1,
"numoutlets": 3,
"outlettype": [ "", "", "int" ],
"parameter_enable": 0,
"patching_rect": [ 155.0, 374.0, 173.0, 47.0 ],
"text": "Open helper file",
"textoncolor": [ 0.807843137254902, 0.898039215686275, 0.909803921568627, 0.0 ],
"textovercolor": [ 0.929411764705882, 0.929411764705882, 0.352941176470588, 0.0 ]
}
}
],
"lines": [
{
"patchline": {
"destination": [ "obj-17", 0 ],
"hidden": 1,
"source": [ "obj-15", 0 ]
}
},
{
"patchline": {
"destination": [ "obj-6", 0 ],
"hidden": 1,
"source": [ "obj-4", 0 ]
}
},
{
"patchline": {
"destination": [ "obj-7", 0 ],
"hidden": 1,
"source": [ "obj-6", 0 ]
}
}
],
"autosave": 0
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
{
"pattrstorage": {
"name": "test",
"name": "tcpreset_help",
"slots": {
"1": {
"id": 1,
@@ -36,6 +36,13 @@
"data": {
"u099005226": [ 1.0, 0.6875, 0.21875, -0.15625, -0.46875, -1.0, -0.65625, -0.1875, 0.09375, -0.1875, -0.59375, -1.0, -0.5625, -0.1875, 0.40625, 1.0 ]
}
},
"17": {
"id": 17,
"name": "Bell",
"data": {
"u099005226": [ -0.8974358974358975, -0.8461538461538461, -0.6923076923076923, -0.3846153846153846, 0.15384615384615374, 0.5897435897435896, 0.8974358974358974, 0.9743589743589745, 0.8461538461538463, 0.5641025641025641, 0.20512820512820507, -0.1282051282051282, -0.5384615384615384, -0.6923076923076923, -0.8205128205128205, -0.8717948717948718 ]
}
}
}
}

View File

@@ -1,3 +1,3 @@
max setdefinepackage tc.preset pattrstorage;
max define tc.preset v8ui @filename tc.preset @jsarguments;
max define tc.preset v8ui @filename tc.preset;
max setdefinepackage "" "";

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,4 @@
tc.preset package for Cycling 74 Max
Copyright 2024-2025 - Théophile Clet
GNU GENERAL PUBLIC LICENSE
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>

View File

@@ -1,7 +1,7 @@
{
"name" : "tc.preset",
"displayname" : "",
"version" : "0.0.2",
"version" : "1.2.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" : "0.0.2",
"version" : "1.2.0",
"author" : "Théophile Clet",
"authors" : [ ],
"description" : "A v8ui replacement for the preset object",
@@ -9,7 +9,7 @@
"website" : "https://github.com/Teufeuleu/tc.preset/",
"extends" : "",
"extensible" : 0,
"max_version_min" : "9.0.7",
"max_version_min" : "9.1.0",
"max_version_max" : "none",
"os" : {
"macintosh" : {

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long