From e75d9240ea9c39be5c1e131d9c123f4ebcb77806 Mon Sep 17 00:00:00 2001 From: tfl Date: Thu, 21 Sep 2023 18:38:59 +0200 Subject: [PATCH] cubehelix.genjit now is a file ; auto window resize --- cubehelix.genjit | 175 +++++++++++++++ jit.cubehelix.maxhelp | 68 +++--- jit.cubehelix.maxpat | 196 +---------------- jit.cubehelix.ui.maxpat | 461 ++++++++++++++++++++++++++++++++-------- 4 files changed, 587 insertions(+), 313 deletions(-) create mode 100644 cubehelix.genjit diff --git a/cubehelix.genjit b/cubehelix.genjit new file mode 100644 index 0000000..d080661 --- /dev/null +++ b/cubehelix.genjit @@ -0,0 +1,175 @@ +{ + "patcher" : { + "fileversion" : 1, + "appversion" : { + "major" : 8, + "minor" : 5, + "revision" : 6, + "architecture" : "x64", + "modernui" : 1 + } +, + "classnamespace" : "jit.gen", + "rect" : [ 188.0, 268.0, 672.0, 730.0 ], + "bglocked" : 0, + "openinpresentation" : 0, + "default_fontsize" : 12.0, + "default_fontface" : 0, + "default_fontname" : "Arial", + "gridonopen" : 1, + "gridsize" : [ 15.0, 15.0 ], + "gridsnaponopen" : 1, + "objectsnaponopen" : 1, + "statusbarvisible" : 2, + "toolbarvisible" : 1, + "lefttoolbarpinned" : 0, + "toptoolbarpinned" : 0, + "righttoolbarpinned" : 0, + "bottomtoolbarpinned" : 0, + "toolbars_unpinned_last_save" : 0, + "tallnewobj" : 0, + "boxanimatetime" : 200, + "enablehscroll" : 1, + "enablevscroll" : 1, + "devicewidth" : 0.0, + "description" : "", + "digest" : "", + "tags" : "", + "style" : "", + "subpatcher_template" : "", + "assistshowspatchername" : 0, + "boxes" : [ { + "box" : { + "id" : "obj-11", + "linecount" : 3, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 50.0, 135.0, 570.0, 48.0 ], + "text" : "Original cubehelix implementation from: Green, D. A., 2011, ‘A colour scheme for the display of astronomical intensity images’, Bulletin of the Astronomical Society of India, 39, 289.\n(2011BASI...39..289G at ADS.): https://www.mrao.cam.ac.uk/~dag/CUBEHELIX/" + } + + } +, { + "box" : { + "id" : "obj-8", + "linecount" : 2, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 50.0, 188.0, 570.0, 34.0 ], + "text" : "Below implementation based on D3 implementation by @mbostock https://github.com/d3/d3-plugins/tree/master/cubehelix" + } + + } +, { + "box" : { + "id" : "obj-7", + "linecount" : 4, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 220.0, 47.0, 406.0, 62.0 ], + "text" : "Default values are meant to reproduce the default cubehelix color scheme.\nhue_offset is here to shift common Max hue values (with 0 as red) by 120° and make them work with the cubehelix algorithm (made to work with 0 as blue)." + } + + } +, { + "box" : { + "id" : "obj-5", + "maxclass" : "newobj", + "numinlets" : 0, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 50.0, 47.0, 155.0, 22.0 ], + "text" : "param hue_offset 0.333333" + } + + } +, { + "box" : { + "id" : "obj-3", + "maxclass" : "newobj", + "numinlets" : 0, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 304.0, 5.0, 203.0, 22.0 ], + "text" : "param color_end -0.666666 0.5 1. 1." + } + + } +, { + "box" : { + "id" : "obj-2", + "maxclass" : "newobj", + "numinlets" : 0, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 92.0, 5.0, 202.0, 22.0 ], + "text" : "param color_start 0.888888 0.5 0. 1." + } + + } +, { + "box" : { + "code" : "h_s = (color_start.x + hue_offset) * TWOPI;\r\nh_e = (color_end.x + hue_offset) * TWOPI - h_s;\r\ns_s = color_start.y;\r\ns_e = color_end.y - s_s;\r\nl_s = color_start.z;\r\nl_e = color_end.z - l_s;\r\n\r\n\r\nh = h_s + h_e * norm;\r\nl = pow(l_s + l_e * norm, gamma);\r\na = (s_s + s_e * norm) * l * (1 - l);\r\n\r\ncosh = cos(h);\r\nsinh = sin(h);\r\n\r\nr = l + a * (-0.14861 * cosh + 1.78277 * sinh);\r\n\r\ng = l + a * (-0.29227 * cosh - 0.90649 * sinh);\r\n\r\nb = l + a * (1.97294 * cosh);\r\n\r\nout1 = vec(1, r, g, b);", + "fontface" : 0, + "fontname" : "", + "fontsize" : 12.0, + "id" : "obj-12", + "maxclass" : "codebox", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 50.0, 224.0, 531.0, 382.0 ] + } + + } +, { + "box" : { + "id" : "obj-10", + "maxclass" : "newobj", + "numinlets" : 0, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 527.0, 5.0, 99.0, 22.0 ], + "text" : "param gamma 1." + } + + } +, { + "box" : { + "id" : "obj-1", + "maxclass" : "newobj", + "numinlets" : 0, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 50.0, 5.0, 28.0, 22.0 ], + "text" : "in 1" + } + + } +, { + "box" : { + "id" : "obj-4", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 50.0, 623.0, 35.0, 22.0 ], + "text" : "out 1" + } + + } + ], + "lines" : [ { + "patchline" : { + "destination" : [ "obj-4", 0 ], + "source" : [ "obj-12", 0 ] + } + + } + ], + "autosave" : 0 + } + +} diff --git a/jit.cubehelix.maxhelp b/jit.cubehelix.maxhelp index e899db5..56db383 100644 --- a/jit.cubehelix.maxhelp +++ b/jit.cubehelix.maxhelp @@ -10,7 +10,7 @@ } , "classnamespace" : "box", - "rect" : [ 1127.0, 227.0, 751.0, 558.0 ], + "rect" : [ 85.0, 100.0, 747.0, 587.0 ], "bglocked" : 0, "openinpresentation" : 0, "default_fontsize" : 12.0, @@ -354,7 +354,7 @@ } , "classnamespace" : "box", - "rect" : [ 0.0, 26.0, 751.0, 532.0 ], + "rect" : [ 0.0, 26.0, 747.0, 535.0 ], "bglocked" : 0, "openinpresentation" : 0, "default_fontsize" : 12.0, @@ -385,13 +385,25 @@ "assistshowspatchername" : 0, "title" : "History", "boxes" : [ { + "box" : { + "id" : "obj-4", + "maxclass" : "jit.pwindow", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "jit_matrix", "" ], + "patching_rect" : [ 15.0, 480.0, 720.0, 50.0 ], + "sync" : 1 + } + + } +, { "box" : { "id" : "obj-10", "maxclass" : "newobj", "numinlets" : 1, "numoutlets" : 1, "outlettype" : [ "" ], - "patching_rect" : [ 12.0, 330.0, 54.0, 22.0 ], + "patching_rect" : [ 15.0, 334.0, 54.0, 22.0 ], "text" : "deferlow" } @@ -403,7 +415,7 @@ "numinlets" : 1, "numoutlets" : 1, "outlettype" : [ "bang" ], - "patching_rect" : [ 12.0, 300.0, 58.0, 22.0 ], + "patching_rect" : [ 15.0, 304.0, 58.0, 22.0 ], "text" : "loadbang" } @@ -417,7 +429,7 @@ "numoutlets" : 2, "outlettype" : [ "", "bang" ], "parameter_enable" : 0, - "patching_rect" : [ 169.300000000000011, 136.0, 67.0, 22.0 ] + "patching_rect" : [ 172.300000000000011, 140.0, 67.0, 22.0 ] } } @@ -428,7 +440,7 @@ "numinlets" : 1, "numoutlets" : 1, "outlettype" : [ "" ], - "patching_rect" : [ 169.300000000000011, 109.0, 113.0, 22.0 ], + "patching_rect" : [ 172.300000000000011, 113.0, 113.0, 22.0 ], "text" : "loadmess 0.888889" } @@ -442,7 +454,7 @@ "numoutlets" : 2, "outlettype" : [ "", "bang" ], "parameter_enable" : 0, - "patching_rect" : [ 166.0, 244.0, 67.0, 22.0 ] + "patching_rect" : [ 169.0, 248.0, 67.0, 22.0 ] } } @@ -453,7 +465,7 @@ "numinlets" : 1, "numoutlets" : 1, "outlettype" : [ "" ], - "patching_rect" : [ 166.0, 217.0, 117.0, 22.0 ], + "patching_rect" : [ 169.0, 221.0, 117.0, 22.0 ], "text" : "loadmess -0.666666" } @@ -478,7 +490,7 @@ "numinlets" : 2, "numoutlets" : 1, "outlettype" : [ "" ], - "patching_rect" : [ 217.400000000000034, 324.0, 69.0, 22.0 ], + "patching_rect" : [ 220.400000000000034, 328.0, 69.0, 22.0 ], "text" : "reset, bang" } @@ -495,18 +507,6 @@ "textcolor" : [ 0.32548999786377, 0.345097988843918, 0.372548997402191, 1.0 ] } - } -, { - "box" : { - "id" : "obj-93", - "maxclass" : "jit.pwindow", - "numinlets" : 1, - "numoutlets" : 2, - "outlettype" : [ "jit_matrix", "" ], - "patching_rect" : [ 12.0, 474.0, 720.0, 50.0 ], - "sync" : 1 - } - } , { "box" : { @@ -515,7 +515,7 @@ "numinlets" : 1, "numoutlets" : 3, "outlettype" : [ "jit_matrix", "jit_matrix", "" ], - "patching_rect" : [ 12.0, 359.0, 244.0, 22.0 ], + "patching_rect" : [ 15.0, 363.0, 244.0, 22.0 ], "text" : "jit.cubehelix @dim 100 @coloroutputmode 1" } @@ -528,7 +528,7 @@ "maxclass" : "comment", "numinlets" : 1, "numoutlets" : 0, - "patching_rect" : [ 17.0, 243.0, 147.0, 24.0 ], + "patching_rect" : [ 20.0, 247.0, 147.0, 24.0 ], "text" : "Change end color hue" } @@ -541,7 +541,7 @@ "maxclass" : "comment", "numinlets" : 1, "numoutlets" : 0, - "patching_rect" : [ 17.0, 135.0, 147.0, 24.0 ], + "patching_rect" : [ 20.0, 139.0, 147.0, 24.0 ], "text" : "Change start color hue" } @@ -553,7 +553,7 @@ "numinlets" : 6, "numoutlets" : 1, "outlettype" : [ "" ], - "patching_rect" : [ 108.399999999999977, 280.0, 163.0, 22.0 ], + "patching_rect" : [ 111.399999999999977, 284.0, 163.0, 22.0 ], "text" : "pak color_end hsl 0. 0.5 1. 1." } @@ -565,7 +565,7 @@ "numinlets" : 6, "numoutlets" : 1, "outlettype" : [ "" ], - "patching_rect" : [ 110.5, 172.0, 166.0, 22.0 ], + "patching_rect" : [ 113.5, 176.0, 166.0, 22.0 ], "text" : "pak color_start hsl 0. 0.5 0. 1." } @@ -592,7 +592,7 @@ "numinlets" : 1, "numoutlets" : 5, "outlettype" : [ "jit_matrix", "jit_matrix", "jit_matrix", "jit_matrix", "" ], - "patching_rect" : [ 12.0, 400.0, 69.0, 22.0 ], + "patching_rect" : [ 15.0, 404.0, 69.0, 22.0 ], "text" : "jit.unpack 4" } @@ -605,7 +605,7 @@ "maxclass" : "comment", "numinlets" : 1, "numoutlets" : 0, - "patching_rect" : [ 300.0, 390.0, 168.0, 39.0 ], + "patching_rect" : [ 303.0, 394.0, 168.0, 39.0 ], "text" : "Shows only lightness channel" } @@ -617,7 +617,7 @@ "numinlets" : 1, "numoutlets" : 2, "outlettype" : [ "jit_matrix", "" ], - "patching_rect" : [ 12.0, 433.0, 720.0, 30.0 ], + "patching_rect" : [ 15.0, 437.0, 720.0, 30.0 ], "sync" : 1 } @@ -645,7 +645,7 @@ } , { "patchline" : { - "destination" : [ "obj-93", 0 ], + "destination" : [ "obj-4", 0 ], "source" : [ "obj-1", 1 ] } @@ -765,7 +765,7 @@ } , "classnamespace" : "box", - "rect" : [ 0.0, 26.0, 751.0, 532.0 ], + "rect" : [ 0.0, 26.0, 747.0, 535.0 ], "bglocked" : 0, "openinpresentation" : 0, "default_fontsize" : 12.0, @@ -1280,7 +1280,7 @@ } , "classnamespace" : "box", - "rect" : [ 0.0, 26.0, 751.0, 532.0 ], + "rect" : [ 85.0, 152.0, 747.0, 535.0 ], "bglocked" : 0, "openinpresentation" : 0, "default_fontsize" : 12.0, @@ -2003,10 +2003,10 @@ } , "dependency_cache" : [ { - "name" : "cubehelixui-default.json", + "name" : "cubehelix.genjit", "bootpath" : "D:/_MAX/_RESSOURCE/Cubehelix_color_MaxMSP", "patcherrelativepath" : ".", - "type" : "JSON", + "type" : "gJIT", "implicit" : 1 } , { diff --git a/jit.cubehelix.maxpat b/jit.cubehelix.maxpat index fd9a5ba..0b9cb59 100644 --- a/jit.cubehelix.maxpat +++ b/jit.cubehelix.maxpat @@ -198,7 +198,7 @@ "box" : { "comment" : "ARGB matrix output (unprocessed)", "id" : "obj-40", - "index" : 0, + "index" : 2, "maxclass" : "outlet", "numinlets" : 1, "numoutlets" : 0, @@ -2262,180 +2262,8 @@ "numinlets" : 1, "numoutlets" : 2, "outlettype" : [ "jit_matrix", "" ], - "patcher" : { - "fileversion" : 1, - "appversion" : { - "major" : 8, - "minor" : 5, - "revision" : 6, - "architecture" : "x64", - "modernui" : 1 - } -, - "classnamespace" : "jit.gen", - "rect" : [ 110.0, 335.0, 672.0, 730.0 ], - "bglocked" : 0, - "openinpresentation" : 0, - "default_fontsize" : 12.0, - "default_fontface" : 0, - "default_fontname" : "Arial", - "gridonopen" : 1, - "gridsize" : [ 15.0, 15.0 ], - "gridsnaponopen" : 1, - "objectsnaponopen" : 1, - "statusbarvisible" : 2, - "toolbarvisible" : 1, - "lefttoolbarpinned" : 0, - "toptoolbarpinned" : 0, - "righttoolbarpinned" : 0, - "bottomtoolbarpinned" : 0, - "toolbars_unpinned_last_save" : 0, - "tallnewobj" : 0, - "boxanimatetime" : 200, - "enablehscroll" : 1, - "enablevscroll" : 1, - "devicewidth" : 0.0, - "description" : "", - "digest" : "", - "tags" : "", - "style" : "", - "subpatcher_template" : "", - "assistshowspatchername" : 0, - "boxes" : [ { - "box" : { - "id" : "obj-11", - "linecount" : 3, - "maxclass" : "comment", - "numinlets" : 1, - "numoutlets" : 0, - "patching_rect" : [ 50.0, 123.0, 570.0, 48.0 ], - "text" : "Original cubehelix implementation from: Green, D. A., 2011, ‘A colour scheme for the display of astronomical intensity images’, Bulletin of the Astronomical Society of India, 39, 289.\n(2011BASI...39..289G at ADS.): https://www.mrao.cam.ac.uk/~dag/CUBEHELIX/" - } - - } -, { - "box" : { - "id" : "obj-8", - "linecount" : 2, - "maxclass" : "comment", - "numinlets" : 1, - "numoutlets" : 0, - "patching_rect" : [ 50.0, 176.0, 570.0, 34.0 ], - "text" : "Below implementation based on D3 implementation by @mbostock https://github.com/d3/d3-plugins/tree/master/cubehelix" - } - - } -, { - "box" : { - "id" : "obj-7", - "linecount" : 3, - "maxclass" : "comment", - "numinlets" : 1, - "numoutlets" : 0, - "patching_rect" : [ 282.0, 54.0, 338.0, 48.0 ], - "text" : "hue_offset is here to shift common Max hue values (with 0 as red) by 120° and make them work with the cubehelix algorithm (made to work with 0 as blue)" - } - - } -, { - "box" : { - "id" : "obj-5", - "maxclass" : "newobj", - "numinlets" : 0, - "numoutlets" : 1, - "outlettype" : [ "" ], - "patching_rect" : [ 105.0, 52.0, 155.0, 22.0 ], - "text" : "param hue_offset 0.333333" - } - - } -, { - "box" : { - "id" : "obj-3", - "maxclass" : "newobj", - "numinlets" : 0, - "numoutlets" : 1, - "outlettype" : [ "" ], - "patching_rect" : [ 317.0, 14.0, 203.0, 22.0 ], - "text" : "param color_end -0.666666 0.5 1. 1." - } - - } -, { - "box" : { - "id" : "obj-2", - "maxclass" : "newobj", - "numinlets" : 0, - "numoutlets" : 1, - "outlettype" : [ "" ], - "patching_rect" : [ 105.0, 14.0, 202.0, 22.0 ], - "text" : "param color_start 0.888888 0.5 0. 1." - } - - } -, { - "box" : { - "code" : "h_s = (color_start.x + hue_offset) * TWOPI;\r\nh_e = (color_end.x + hue_offset) * TWOPI - h_s;\r\ns_s = color_start.y;\r\ns_e = color_end.y - s_s;\r\nl_s = color_start.z;\r\nl_e = color_end.z - l_s;\r\n\r\n\r\nh = h_s + h_e * norm;\r\nl = pow(l_s + l_e * norm, gamma);\r\na = (s_s + s_e * norm) * l * (1 - l);\r\n\r\ncosh = cos(h);\r\nsinh = sin(h);\r\n\r\nr = l + a * (-0.14861 * cosh + 1.78277 * sinh);\r\n\r\ng = l + a * (-0.29227 * cosh - 0.90649 * sinh);\r\n\r\nb = l + a * (1.97294 * cosh);\r\n\r\nout1 = vec(1, r, g, b);", - "fontface" : 0, - "fontname" : "", - "fontsize" : 12.0, - "id" : "obj-12", - "maxclass" : "codebox", - "numinlets" : 1, - "numoutlets" : 1, - "outlettype" : [ "" ], - "patching_rect" : [ 50.0, 224.0, 531.0, 382.0 ] - } - - } -, { - "box" : { - "id" : "obj-10", - "maxclass" : "newobj", - "numinlets" : 0, - "numoutlets" : 1, - "outlettype" : [ "" ], - "patching_rect" : [ 540.0, 14.0, 99.0, 22.0 ], - "text" : "param gamma 1." - } - - } -, { - "box" : { - "id" : "obj-1", - "maxclass" : "newobj", - "numinlets" : 0, - "numoutlets" : 1, - "outlettype" : [ "" ], - "patching_rect" : [ 50.0, 14.0, 28.0, 22.0 ], - "text" : "in 1" - } - - } -, { - "box" : { - "id" : "obj-4", - "maxclass" : "newobj", - "numinlets" : 1, - "numoutlets" : 0, - "patching_rect" : [ 50.0, 623.0, 35.0, 22.0 ], - "text" : "out 1" - } - - } - ], - "lines" : [ { - "patchline" : { - "destination" : [ "obj-4", 0 ], - "source" : [ "obj-12", 0 ] - } - - } - ] - } -, - "patching_rect" : [ 126.513736263736178, 482.0, 129.0, 22.0 ], - "text" : "jit.gen @title cubehelix" + "patching_rect" : [ 126.513736263736178, 482.0, 162.0, 22.0 ], + "text" : "jit.gen @gen cubehelix.genjit" } } @@ -2540,7 +2368,7 @@ "box" : { "comment" : " Outputs lists of colors, formatted accordingly to coloroutputmode and alpha_last", "id" : "obj-88", - "index" : 0, + "index" : 3, "maxclass" : "outlet", "numinlets" : 1, "numoutlets" : 0, @@ -2612,7 +2440,7 @@ "box" : { "comment" : "ARGB/RGBA/AHSL/HSLA matrix output", "id" : "obj-44", - "index" : 0, + "index" : 1, "maxclass" : "outlet", "numinlets" : 1, "numoutlets" : 0, @@ -2634,13 +2462,13 @@ } , { "box" : { - "comment" : "", + "comment" : "bang, colormodeoutput, alpha_last, listoutput, auto, color_start, color_end, start, rotation, saturation, flip, gamma, type, dim, getcolor, reset", "id" : "obj-22", - "index" : 0, + "index" : 1, "maxclass" : "inlet", "numinlets" : 0, "numoutlets" : 1, - "outlettype" : [ "" ], + "outlettype" : [ "bang" ], "patching_rect" : [ 31.0, 11.0, 30.0, 30.0 ] } @@ -3064,13 +2892,7 @@ } } - ], - "dependency_cache" : [ { - "name" : "jit.pass.mxe64", - "type" : "mx64" - } - ], - "autosave" : 0 + ] } } diff --git a/jit.cubehelix.ui.maxpat b/jit.cubehelix.ui.maxpat index 20006d0..6c2617c 100644 --- a/jit.cubehelix.ui.maxpat +++ b/jit.cubehelix.ui.maxpat @@ -10,7 +10,7 @@ } , "classnamespace" : "box", - "rect" : [ 546.0, 85.0, 304.0, 418.0 ], + "rect" : [ 245.0, 320.0, 979.0, 679.0 ], "bglocked" : 0, "openinpresentation" : 1, "default_fontsize" : 12.0, @@ -39,13 +39,212 @@ "subpatcher_template" : "", "assistshowspatchername" : 0, "boxes" : [ { + "box" : { + "id" : "obj-92", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "bang", "bang" ], + "patching_rect" : [ 615.0, 126.75, 32.0, 22.0 ], + "text" : "t b b" + } + + } +, { + "box" : { + "id" : "obj-84", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 400.892822000000024, 176.106797993183136, 120.0, 22.0 ], + "text" : "prepend pattrstorage" + } + + } +, { + "box" : { + "id" : "obj-77", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 2, + "outlettype" : [ "", "" ], + "patching_rect" : [ 400.892822000000024, 148.029120743274689, 69.0, 22.0 ], + "text" : "route name" + } + + } +, { + "box" : { + "id" : "obj-58", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 628.0, 186.0, 55.0, 22.0 ], + "text" : "getname" + } + + } +, { + "box" : { + "id" : "obj-73", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "" ], + "patching_rect" : [ 804.0, 244.0, 29.5, 22.0 ], + "text" : "t l l" + } + + } +, { + "box" : { + "id" : "obj-72", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 2, + "outlettype" : [ "", "" ], + "patching_rect" : [ 804.0, 313.0, 39.0, 22.0 ], + "text" : "zl.join" + } + + } +, { + "box" : { + "id" : "obj-66", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "bang", "bang" ], + "patching_rect" : [ 804.0, 45.305826558368722, 32.0, 22.0 ], + "text" : "t b b" + } + + } +, { + "box" : { + "id" : "obj-61", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 892.0, 237.0, 52.0, 22.0 ], + "text" : "300 410" + } + + } +, { + "box" : { + "id" : "obj-55", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 824.0, 282.28640450407795, 87.0, 22.0 ], + "text" : "vexpr $i1 + $i2" + } + + } +, { + "box" : { + "id" : "obj-46", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 2, + "outlettype" : [ "", "" ], + "patching_rect" : [ 804.0, 207.0, 55.0, 22.0 ], + "text" : "zl.slice 2" + } + + } +, { + "box" : { + "id" : "obj-100", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "bang" ], + "patching_rect" : [ 804.0, 13.0, 58.0, 22.0 ], + "text" : "loadbang" + } + + } +, { + "box" : { + "id" : "obj-99", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 804.0, 77.5, 90.0, 22.0 ], + "text" : "window getsize" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 11.595186999999999, + "id" : "obj-96", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 2, + "outlettype" : [ "", "" ], + "patching_rect" : [ 804.0, 176.106797993183136, 59.0, 22.0 ], + "text" : "route size" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 11.595186999999999, + "id" : "obj-97", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 2, + "outlettype" : [ "", "" ], + "patching_rect" : [ 804.0, 148.029120743274689, 79.0, 22.0 ], + "text" : "route window" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 11.595186999999999, + "id" : "obj-94", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 804.0, 356.28640450407795, 208.0, 22.0 ], + "text" : "window size $1 $2 $3 $4, window exec" + } + + } +, { + "box" : { + "id" : "obj-93", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "" ], + "patching_rect" : [ 804.0, 114.106797993183136, 67.0, 22.0 ], + "save" : [ "#N", "thispatcher", ";", "#Q", "end", ";" ], + "text" : "thispatcher" + } + + } +, { "box" : { "id" : "obj-54", "linecount" : 7, "maxclass" : "comment", "numinlets" : 1, "numoutlets" : 0, - "patching_rect" : [ 269.091850278514926, 304.893202006816864, 448.300971925258636, 103.0 ], + "patching_rect" : [ 587.0, 550.687592625617981, 448.300971925258636, 103.0 ], "text" : "TODO:\n- Make pattrstorage store scaled values for the range (more meaningfull to user)\n- Implement a special mode for the end color hue to act as an offset from the start hue (basically make it a \"rotation\" setting), with a selection of some default values (complementary, \n- Allow to set knob settings from inlet with messages such as 'start_hue 0. -0.5 0.5 0' (value of 0., random range of -0.5, 0.5 and locked to 0)" } @@ -59,7 +258,7 @@ "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 432.0, 600.0, 50.0, 36.0 ], - "text" : "-0.666666" + "text" : "-0.323996" } } @@ -70,7 +269,7 @@ "numinlets" : 2, "numoutlets" : 1, "outlettype" : [ "" ], - "patching_rect" : [ 615.0, 125.856797502738914, 161.0, 22.0 ], + "patching_rect" : [ 615.0, 156.5, 161.0, 22.0 ], "text" : "read cubehelixui-default.json" } @@ -94,7 +293,7 @@ "numinlets" : 2, "numoutlets" : 1, "outlettype" : [ "" ], - "patching_rect" : [ 464.591850278514926, 126.75, 34.0, 22.0 ], + "patching_rect" : [ 464.591850278514926, 118.338785111904144, 34.0, 22.0 ], "text" : "write" } @@ -106,7 +305,7 @@ "numinlets" : 2, "numoutlets" : 1, "outlettype" : [ "" ], - "patching_rect" : [ 534.591850278514926, 126.75, 33.0, 22.0 ], + "patching_rect" : [ 534.591850278514926, 118.338785111904144, 33.0, 22.0 ], "text" : "read" } @@ -118,7 +317,7 @@ "maxclass" : "comment", "numinlets" : 1, "numoutlets" : 0, - "patching_rect" : [ 556.892822000000024, 99.106797502738914, 38.0, 20.0 ], + "patching_rect" : [ 556.892822000000024, 90.695582614643058, 38.0, 20.0 ], "presentation" : 1, "presentation_rect" : [ 174.92397830374523, 20.457170218229294, 38.0, 20.0 ], "text" : "Read", @@ -137,7 +336,7 @@ "outlettype" : [ "bang" ], "outlinecolor" : [ 0.701960784313725, 0.415686274509804, 0.886274509803922, 1.0 ], "parameter_enable" : 0, - "patching_rect" : [ 534.591850278514926, 99.106797502738914, 20.300971721485098, 20.300971721485098 ], + "patching_rect" : [ 534.591850278514926, 90.695582614643058, 20.300971721485098, 20.300971721485098 ], "presentation" : 1, "presentation_rect" : [ 205.623006582260132, 20.457170218229294, 20.300971721485098, 20.300971721485098 ] } @@ -150,7 +349,7 @@ "maxclass" : "comment", "numinlets" : 1, "numoutlets" : 0, - "patching_rect" : [ 486.892822000000024, 99.106797502738914, 38.0, 20.0 ], + "patching_rect" : [ 486.892822000000024, 90.695582614643058, 38.0, 20.0 ], "presentation" : 1, "presentation_rect" : [ 174.92397830374523, 3.106797502738914, 38.0, 20.0 ], "text" : "Write", @@ -169,7 +368,7 @@ "outlettype" : [ "bang" ], "outlinecolor" : [ 0.701960784313725, 0.415686274509804, 0.886274509803922, 1.0 ], "parameter_enable" : 0, - "patching_rect" : [ 464.591850278514926, 99.106797502738914, 20.300971721485098, 20.300971721485098 ], + "patching_rect" : [ 464.591850278514926, 90.695582614643058, 20.300971721485098, 20.300971721485098 ], "presentation" : 1, "presentation_rect" : [ 205.623006582260132, 3.106797502738914, 20.300971721485098, 20.300971721485098 ] } @@ -182,20 +381,20 @@ "numinlets" : 1, "numoutlets" : 4, "outlettype" : [ "", "", "", "" ], - "patching_rect" : [ 648.0, 31.621908843517303, 56.0, 22.0 ], + "patching_rect" : [ 678.892822000000024, 31.621908843517303, 56.0, 22.0 ], "restore" : { "alpha_last" : [ 0.0 ], "colormodeoutput" : [ 0.0 ], "dim" : [ 128 ], - "e_h" : [ -0.666666, 0, 1, 0 ], - "e_l" : [ 1, 0, 1, 0 ], - "e_s" : [ 0.5, 0, 1, 0 ], + "e_h" : [ -0.323995549892999, 0.25, 0.75, 0 ], + "e_l" : [ 0.750656257113465, 0, 1, 0 ], + "e_s" : [ 1.895719982930721, 0, 1, 0 ], "flip" : [ 0.0 ], - "gamma" : [ 1, 0.166666666666667, 0.5, 0 ], + "gamma" : [ 0.526810515230414, 0.166666666666667, 0.5, 0 ], "listoutput" : [ 0.0 ], - "s_h" : [ 0.888888, 0, 1, 0 ], - "s_l" : [ 0, 0, 1, 0 ], - "s_s" : [ 0.619999999999999, 0, 1, 0 ] + "s_h" : [ 0.247902265609083, 0.25, 0.75, 0 ], + "s_l" : [ 0.499595442526692, 0, 1, 0 ], + "s_s" : [ 1.855728608182778, 0, 1, 0 ] } , "text" : "autopattr", @@ -224,7 +423,7 @@ "maxclass" : "comment", "numinlets" : 1, "numoutlets" : 0, - "patching_rect" : [ 269.091850278514926, 174.28640450407795, 448.300971925258636, 126.0 ], + "patching_rect" : [ 587.0, 420.080795122879067, 448.300971925258636, 126.0 ], "text" : "jit.cubehelix.ui by Théophile Clet - 2023 - contact@tflcl.xyz - https://tflcl.xyz\n\nOriginal cubehelix by D.-A. Green (2011) in A colour scheme for the display of astronomical intensity images, Bulletin of the Astronomical Society of India\n\nCubehelix intervals implementation by @mbostocks in D3: https://github.com/d3/d3-plugins/tree/master/cubehelix", "textcolor" : [ 1.0, 1.0, 1.0, 1.0 ] } @@ -249,7 +448,7 @@ "numoutlets" : 3, "outlettype" : [ "int", "", "" ], "parameter_enable" : 0, - "patching_rect" : [ 86.892822203773505, 63.927735401886025, 100.0, 22.0 ], + "patching_rect" : [ 20.892822203773505, 107.927735401886025, 91.0, 22.0 ], "presentation" : 1, "presentation_rect" : [ 41.085271954536438, 82.093024373054504, 52.0, 22.0 ], "textcolor" : [ 0.239, 0.255, 0.278, 1.0 ] @@ -267,7 +466,7 @@ "numoutlets" : 2, "outlettype" : [ "", "bang" ], "parameter_enable" : 0, - "patching_rect" : [ 127.392822203773505, 95.181818008422852, 50.0, 22.0 ], + "patching_rect" : [ 56.892822203773505, 139.181818008422852, 50.0, 22.0 ], "presentation" : 1, "presentation_rect" : [ 92.813573718070984, 82.093024373054504, 50.0, 22.0 ], "textcolor" : [ 1.0, 1.0, 1.0, 1.0 ], @@ -285,7 +484,7 @@ "outlettype" : [ "jit_matrix", "" ], "patching_rect" : [ 210.392822203773534, 761.995149970054626, 94.388350605964661, 12.553398311138153 ], "presentation" : 1, - "presentation_rect" : [ -0.015029668807983, 338.159525632858276, 300.5, 17.674002230167389 ], + "presentation_rect" : [ -0.015029668807983, 338.159525632858276, 300.75, 17.674002230167389 ], "sync" : 1 } @@ -332,7 +531,7 @@ "numinlets" : 1, "numoutlets" : 1, "outlettype" : [ "" ], - "patching_rect" : [ 13.892821999999995, 97.5, 54.0, 22.0 ], + "patching_rect" : [ 20.892822203773505, 81.695582614643058, 54.0, 22.0 ], "text" : "deferlow" } @@ -477,7 +676,7 @@ "outlettype" : [ "jit_matrix", "" ], "patching_rect" : [ 5.392822203773505, 788.54854828119278, 146.388350605964689, 46.407767176628113 ], "presentation" : 1, - "presentation_rect" : [ 0.146259307861328, 376.333527863025665, 300.338711023330688, 19.0 ], + "presentation_rect" : [ 0.146259307861328, 376.333527863025665, 300.838711023330688, 19.0 ], "sync" : 1 } @@ -496,7 +695,7 @@ } , { "box" : { - "comment" : "", + "comment" : "Unprocessed matrix (ARGB)", "id" : "obj-5", "index" : 2, "maxclass" : "outlet", @@ -566,7 +765,7 @@ "numinlets" : 1, "numoutlets" : 1, "outlettype" : [ "" ], - "patching_rect" : [ 13.892821999999995, 69.5, 70.0, 22.0 ], + "patching_rect" : [ 20.892822203773505, 53.695582614643058, 70.0, 22.0 ], "text" : "loadmess 3" } @@ -750,7 +949,7 @@ } , { "box" : { - "comment" : "", + "comment" : "Outputs colors as lists", "id" : "obj-80", "index" : 3, "maxclass" : "outlet", @@ -762,7 +961,7 @@ } , { "box" : { - "comment" : "", + "comment" : "Processed matrix (ARGB/RGBA/AHSL/HSLA)", "id" : "obj-79", "index" : 1, "maxclass" : "outlet", @@ -774,13 +973,13 @@ } , { "box" : { - "comment" : "", + "comment" : "bang, dim, to_pattrstorage", "id" : "obj-78", "index" : 1, "maxclass" : "inlet", "numinlets" : 0, "numoutlets" : 1, - "outlettype" : [ "" ], + "outlettype" : [ "bang" ], "patching_rect" : [ 197.392822203773534, 9.0, 30.0, 30.0 ] } @@ -2542,46 +2741,6 @@ "text" : "dim $1, bang" } - } -, { - "box" : { - "bgcolor" : [ 0.290196, 0.309804, 0.301961, 0.0 ], - "elementcolor" : [ 0.349019607843137, 0.349019607843137, 0.349019607843137, 0.0 ], - "id" : "obj-25", - "knobcolor" : [ 0.701961, 0.415686, 0.886275, 0.701961 ], - "maxclass" : "slider", - "numinlets" : 1, - "numoutlets" : 1, - "orientation" : 1, - "outlettype" : [ "" ], - "parameter_enable" : 0, - "patching_rect" : [ 13.892821999999995, 156.5, 156.0, 11.0 ], - "size" : 360.0 - } - - } -, { - "box" : { - "button" : 1, - "contrastactivetab" : 0, - "htabcolor" : [ 0.701961, 0.415686, 0.886275, 1.0 ], - "id" : "obj-142", - "margin" : 0, - "maxclass" : "tab", - "mode" : 1, - "numinlets" : 1, - "numoutlets" : 3, - "outlettype" : [ "int", "", "" ], - "parameter_enable" : 0, - "patching_rect" : [ 13.892821999999995, 123.0, 156.0, 27.5 ], - "rounded" : 0.0, - "segmented" : 1, - "spacing_x" : 2.0, - "tabcolor" : [ 0.819016, 0.754851, 0.856722, 1.0 ], - "tabs" : [ "5", "12", "64", "128", "360" ], - "textcolor" : [ 0.239216, 0.254902, 0.278431, 1.0 ] - } - } , { "box" : { @@ -2590,7 +2749,7 @@ "maxclass" : "comment", "numinlets" : 1, "numoutlets" : 0, - "patching_rect" : [ 171.892821999999995, 126.75, 44.0, 20.0 ], + "patching_rect" : [ 11.892822203773505, 139.181818008422852, 44.0, 20.0 ], "presentation" : 1, "presentation_rect" : [ 0.174418568611145, 82.093024373054504, 41.0, 20.0 ], "text" : "Steps", @@ -2641,7 +2800,7 @@ "maxclass" : "comment", "numinlets" : 1, "numoutlets" : 0, - "patching_rect" : [ 400.892822000000024, 99.106797502738914, 54.0, 20.0 ], + "patching_rect" : [ 400.892822000000024, 90.695582614643058, 54.0, 20.0 ], "text" : "Presets", "textcolor" : [ 1.0, 1.0, 1.0, 1.0 ] } @@ -2658,7 +2817,7 @@ "numinlets" : 1, "numoutlets" : 5, "outlettype" : [ "preset", "int", "preset", "int", "" ], - "patching_rect" : [ 357.892822000000024, 126.75, 97.0, 47.0 ], + "patching_rect" : [ 400.892822000000024, 212.0, 97.0, 47.0 ], "presentation" : 1, "presentation_rect" : [ 0.0, 43.0, 240.829459190368652, 32.153864413499832 ], "stored1" : [ 0.792308, 0.64636, 0.886275, 1.0 ] @@ -2695,7 +2854,7 @@ "parameter_enable" : 1, "patching_rect" : [ 514.591850278514926, 660.640774250030518, 67.0, 24.0 ], "presentation" : 1, - "presentation_rect" : [ 235.479597568511963, 353.333527863025665, 67.0, 25.0 ], + "presentation_rect" : [ 235.979597568511963, 353.833527863025665, 67.0, 25.0 ], "saved_attribute_attributes" : { "activebgcolor" : { "expression" : "" @@ -2989,15 +3148,15 @@ ], "lines" : [ { "patchline" : { - "destination" : [ "obj-33", 0 ], - "source" : [ "obj-11", 0 ] + "destination" : [ "obj-66", 0 ], + "source" : [ "obj-100", 0 ] } } , { "patchline" : { - "destination" : [ "obj-25", 0 ], - "source" : [ "obj-142", 1 ] + "destination" : [ "obj-33", 0 ], + "source" : [ "obj-11", 0 ] } } @@ -3090,6 +3249,13 @@ "source" : [ "obj-19", 0 ] } + } +, { + "patchline" : { + "destination" : [ "obj-77", 0 ], + "source" : [ "obj-20", 0 ] + } + } , { "patchline" : { @@ -3223,19 +3389,10 @@ "source" : [ "obj-42", 0 ] } - } -, { - "patchline" : { - "destination" : [ "obj-142", 0 ], - "order" : 1, - "source" : [ "obj-44", 0 ] - } - } , { "patchline" : { "destination" : [ "obj-56", 0 ], - "order" : 0, "source" : [ "obj-44", 0 ] } @@ -3255,6 +3412,13 @@ "source" : [ "obj-45", 0 ] } + } +, { + "patchline" : { + "destination" : [ "obj-73", 0 ], + "source" : [ "obj-46", 0 ] + } + } , { "patchline" : { @@ -3283,6 +3447,13 @@ "source" : [ "obj-53", 0 ] } + } +, { + "patchline" : { + "destination" : [ "obj-72", 1 ], + "source" : [ "obj-55", 0 ] + } + } , { "patchline" : { @@ -3297,6 +3468,13 @@ "source" : [ "obj-57", 0 ] } + } +, { + "patchline" : { + "destination" : [ "obj-20", 0 ], + "source" : [ "obj-58", 0 ] + } + } , { "patchline" : { @@ -3367,6 +3545,13 @@ "source" : [ "obj-60", 0 ] } + } +, { + "patchline" : { + "destination" : [ "obj-55", 1 ], + "source" : [ "obj-61", 0 ] + } + } , { "patchline" : { @@ -3374,6 +3559,20 @@ "source" : [ "obj-65", 0 ] } + } +, { + "patchline" : { + "destination" : [ "obj-61", 0 ], + "source" : [ "obj-66", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-99", 0 ], + "source" : [ "obj-66", 0 ] + } + } , { "patchline" : { @@ -3391,7 +3590,7 @@ } , { "patchline" : { - "destination" : [ "obj-71", 0 ], + "destination" : [ "obj-92", 0 ], "source" : [ "obj-69", 0 ] } @@ -3412,15 +3611,29 @@ } , { "patchline" : { - "destination" : [ "obj-25", 0 ], - "source" : [ "obj-7", 0 ] + "destination" : [ "obj-20", 0 ], + "source" : [ "obj-71", 0 ] } } , { "patchline" : { - "destination" : [ "obj-20", 0 ], - "source" : [ "obj-71", 0 ] + "destination" : [ "obj-94", 0 ], + "source" : [ "obj-72", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-55", 0 ], + "source" : [ "obj-73", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-72", 0 ], + "source" : [ "obj-73", 0 ] } } @@ -3451,6 +3664,13 @@ "source" : [ "obj-75", 1 ] } + } +, { + "patchline" : { + "destination" : [ "obj-84", 0 ], + "source" : [ "obj-77", 0 ] + } + } , { "patchline" : { @@ -3479,6 +3699,13 @@ "source" : [ "obj-83", 1 ] } + } +, { + "patchline" : { + "destination" : [ "obj-197", 0 ], + "source" : [ "obj-84", 0 ] + } + } , { "patchline" : { @@ -3523,6 +3750,56 @@ "source" : [ "obj-91", 1 ] } + } +, { + "patchline" : { + "destination" : [ "obj-58", 0 ], + "source" : [ "obj-92", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-71", 0 ], + "source" : [ "obj-92", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-97", 0 ], + "source" : [ "obj-93", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-93", 0 ], + "midpoints" : [ 813.5, 381.0, 789.0, 381.0, 789.0, 108.0, 813.5, 108.0 ], + "source" : [ "obj-94", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-46", 0 ], + "source" : [ "obj-96", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-96", 0 ], + "source" : [ "obj-97", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-93", 0 ], + "source" : [ "obj-99", 0 ] + } + } ], "bgcolor" : [ 0.611764705882353, 0.776470588235294, 0.905882352941176, 1.0 ],