Compare commits

...

16 Commits

Author SHA1 Message Date
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 6363 additions and 7424 deletions

3
.gitignore vendored
View File

@@ -2,4 +2,5 @@
.AppleDouble .AppleDouble
.LSOverride .LSOverride
media/ 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. 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) [![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,7 @@ copy_files() {
find . -type f \ find . -type f \
-not -path "*/.*" \ -not -path "*/.*" \
-not -path "./dist/*" \ -not -path "./dist/*" \
-not -path "./media/*" \
-not -name "build.sh" | while read -r file; do -not -name "build.sh" | while read -r file; do
# Get filename without path # Get filename without path
@@ -78,6 +79,18 @@ echo "Max 8 package: $MAX8_DIR"
echo "Max 9 package: $MAX9_DIR" echo "Max 9 package: $MAX9_DIR"
echo "" 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 # Ask to install
read -p "Install to Max Packages folders (~/Documents/Max <8|9>/Packages)? (y/n) " -n 1 -r read -p "Install to Max Packages folders (~/Documents/Max <8|9>/Packages)? (y/n) " -n 1 -r
echo echo

View File

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

View File

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

View File

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

View File

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

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long