ampfaaaametaptchLxmx@cv4{ "patcher" : { "fileversion" : 1, "appversion" : { "major" : 6, "minor" : 0, "revision" : 4 } , "rect" : [ 0.0, 44.0, 1280.0, 706.0 ], "openrect" : [ 0.0, 0.0, 0.0, 169.0 ], "bglocked" : 0, "openinpresentation" : 1, "default_fontsize" : 10.0, "default_fontface" : 0, "default_fontname" : "Arial Bold", "gridonopen" : 0, "gridsize" : [ 8.0, 8.0 ], "gridsnaponopen" : 0, "statusbarvisible" : 2, "toolbarvisible" : 1, "boxanimatetime" : 500, "imprint" : 0, "enablehscroll" : 1, "enablevscroll" : 1, "devicewidth" : 0.0, "description" : "", "digest" : "", "tags" : "", "boxes" : [ { "box" : { "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-36", "maxclass" : "newobj", "numinlets" : 1, "numoutlets" : 0, "patching_rect" : [ 732.0, 657.0, 47.0, 18.0 ], "text" : "midiout" } } , { "box" : { "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-31", "maxclass" : "newobj", "numinlets" : 1, "numoutlets" : 1, "outlettype" : [ "int" ], "patching_rect" : [ 726.0, 616.0, 40.0, 18.0 ], "text" : "midiin" } } , { "box" : { "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-25", "maxclass" : "newobj", "numinlets" : 2, "numoutlets" : 2, "outlettype" : [ "signal", "signal" ], "patching_rect" : [ 645.0, 657.0, 53.0, 18.0 ], "text" : "plugout~" } } , { "box" : { "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-19", "maxclass" : "newobj", "numinlets" : 2, "numoutlets" : 2, "outlettype" : [ "signal", "signal" ], "patching_rect" : [ 632.0, 616.0, 46.0, 18.0 ], "text" : "plugin~" } } , { "box" : { "fontname" : "Arial Bold", "fontsize" : 10.0, "frgb" : [ 0.301961, 0.337255, 0.403922, 1.0 ], "id" : "obj-13", "maxclass" : "comment", "numinlets" : 1, "numoutlets" : 0, "patching_rect" : [ 940.0, 451.5, 40.0, 18.0 ], "presentation" : 1, "presentation_rect" : [ 18.5, 38.5, 40.0, 18.0 ], "text" : "On/Off", "textcolor" : [ 0.301961, 0.337255, 0.403922, 1.0 ] } } , { "box" : { "id" : "obj-4", "maxclass" : "live.toggle", "numinlets" : 1, "numoutlets" : 1, "outlettype" : [ "" ], "parameter_enable" : 1, "patching_rect" : [ 77.5, 47.5, 15.0, 15.0 ], "presentation" : 1, "presentation_rect" : [ 58.5, 41.5, 13.0, 12.0 ], "saved_attribute_attributes" : { "valueof" : { "parameter_mmax" : 1.0, "parameter_type" : 2, "parameter_shortname" : "live.toggle", "parameter_longname" : "live.toggle", "parameter_enum" : [ "off", "on" ] } } , "varname" : "live.toggle" } } , { "box" : { "fontname" : "Arial", "fontsize" : 8.0, "id" : "obj-26", "maxclass" : "comment", "numinlets" : 1, "numoutlets" : 0, "patching_rect" : [ 248.5, 21.0, 115.0, 16.0 ], "presentation" : 1, "presentation_rect" : [ 24.0, 178.0, 115.0, 16.0 ], "text" : "ricky graham dot com - 2012" } } , { "box" : { "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-44", "linecount" : 3, "maxclass" : "comment", "numinlets" : 1, "numoutlets" : 0, "patching_rect" : [ 390.0, 270.5, 150.0, 41.0 ], "text" : "Use operator to report pixels ON - value of 50 atoms applied to all planes" } } , { "box" : { "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-67", "maxclass" : "newobj", "numinlets" : 1, "numoutlets" : 1, "outlettype" : [ "signal" ], "patching_rect" : [ 813.0, 451.5, 83.0, 18.0 ], "text" : "receive~ #0-sig" } } , { "box" : { "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-66", "maxclass" : "newobj", "numinlets" : 1, "numoutlets" : 0, "patching_rect" : [ 318.0, 597.0, 71.0, 18.0 ], "text" : "send~ #0-sig" } } , { "box" : { "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-65", "maxclass" : "comment", "numinlets" : 1, "numoutlets" : 0, "patching_rect" : [ 343.0, 553.5, 150.0, 18.0 ], "text" : "accounting for 0 to 1 values" } } , { "box" : { "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-53", "maxclass" : "newobj", "numinlets" : 2, "numoutlets" : 1, "outlettype" : [ "signal" ], "patching_rect" : [ 287.0, 553.5, 37.0, 18.0 ], "text" : "*~ 0.1" } } , { "box" : { "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-50", "maxclass" : "newobj", "numinlets" : 1, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 287.0, 482.5, 69.0, 18.0 ], "text" : "expr $f1 * 10" } } , { "box" : { "fontname" : "Arial", "fontsize" : 10.0, "id" : "obj-79", "linecount" : 2, "maxclass" : "comment", "numinlets" : 1, "numoutlets" : 0, "patching_rect" : [ 1037.0, 164.5, 56.0, 29.0 ], "text" : "Get types (display)" } } , { "box" : { "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-92", "maxclass" : "newobj", "numinlets" : 1, "numoutlets" : 0, "patching_rect" : [ 981.0, 172.5, 54.0, 18.0 ], "text" : "universal" } } , { "box" : { "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-15", "maxclass" : "message", "numinlets" : 2, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 981.0, 148.5, 57.0, 16.0 ], "text" : "js gettype" } } , { "box" : { "fontname" : "Arial", "fontsize" : 10.0, "id" : "obj-16", "maxclass" : "comment", "numinlets" : 1, "numoutlets" : 0, "patching_rect" : [ 989.0, 92.5, 47.0, 18.0 ], "text" : "Store ID" } } , { "box" : { "color" : [ 0.239216, 0.643137, 0.709804, 1.0 ], "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-17", "maxclass" : "newobj", "numinlets" : 1, "numoutlets" : 2, "outlettype" : [ "", "bang" ], "patcher" : { "fileversion" : 1, "appversion" : { "major" : 6, "minor" : 0, "revision" : 4 } , "rect" : [ 25.0, 69.0, 366.0, 237.0 ], "bglocked" : 0, "openinpresentation" : 0, "default_fontsize" : 10.0, "default_fontface" : 0, "default_fontname" : "Arial Bold", "gridonopen" : 0, "gridsize" : [ 8.0, 8.0 ], "gridsnaponopen" : 0, "statusbarvisible" : 2, "toolbarvisible" : 1, "boxanimatetime" : 200, "imprint" : 0, "enablehscroll" : 1, "enablevscroll" : 1, "devicewidth" : 0.0, "description" : "", "digest" : "", "tags" : "", "boxes" : [ { "box" : { "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-4", "maxclass" : "comment", "numinlets" : 1, "numoutlets" : 0, "patching_rect" : [ 96.0, 184.0, 54.0, 18.0 ], "text" : "Get types" } } , { "box" : { "comment" : "", "id" : "obj-1", "maxclass" : "outlet", "numinlets" : 1, "numoutlets" : 0, "patching_rect" : [ 112.0, 160.0, 18.0, 18.0 ] } } , { "box" : { "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-3", "maxclass" : "comment", "numinlets" : 1, "numoutlets" : 0, "patching_rect" : [ 16.0, 184.0, 61.0, 18.0 ], "text" : "Restore ID" } } , { "box" : { "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-2", "maxclass" : "comment", "numinlets" : 1, "numoutlets" : 0, "patching_rect" : [ 160.0, 64.0, 49.0, 18.0 ], "text" : "Store ID" } } , { "box" : { "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-28", "maxclass" : "newobj", "numinlets" : 2, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 80.0, 96.0, 74.5, 18.0 ], "text" : "gate" } } , { "box" : { "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-27", "maxclass" : "newobj", "numinlets" : 1, "numoutlets" : 3, "outlettype" : [ "int", "bang", "bang" ], "patching_rect" : [ 80.0, 40.0, 51.0, 18.0 ], "text" : "t 1 b b" } } , { "box" : { "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-26", "maxclass" : "newobj", "numinlets" : 1, "numoutlets" : 3, "outlettype" : [ "bang", "int", "int" ], "patching_rect" : [ 80.0, 16.0, 79.0, 18.0 ], "text" : "live.thisdevice" } } , { "box" : { "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-45", "linecount" : 6, "maxclass" : "comment", "numinlets" : 1, "numoutlets" : 0, "patching_rect" : [ 160.0, 120.0, 165.0, 75.0 ], "text" : "< The blue live.object object has its \"Use Persistent Mapping\" attribute enabled, which means that it will retain the ID of the parameter which is selected when you save the Live set." } } , { "box" : { "fontname" : "Arial", "fontsize" : 10.0, "id" : "obj-81", "linecount" : 2, "maxclass" : "comment", "numinlets" : 1, "numoutlets" : 0, "patching_rect" : [ 160.0, 16.0, 88.0, 29.0 ], "text" : "< Bang when the device is loaded" } } , { "box" : { "fontname" : "Arial", "fontsize" : 10.0, "id" : "obj-82", "maxclass" : "comment", "numinlets" : 1, "numoutlets" : 0, "patching_rect" : [ 160.0, 96.0, 163.0, 18.0 ], "text" : "< Store ID (but not when restoring)" } } , { "box" : { "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-91", "maxclass" : "message", "numinlets" : 2, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 40.0, 96.0, 34.0, 16.0 ], "text" : "getid" } } , { "box" : { "color" : [ 0.239216, 0.643137, 0.709804, 1.0 ], "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-93", "maxclass" : "newobj", "numinlets" : 2, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 40.0, 120.0, 59.0, 18.0 ], "saved_object_attributes" : { "_persistence" : 1 } , "text" : "live.object" } } , { "box" : { "comment" : "", "id" : "obj-18", "maxclass" : "inlet", "numinlets" : 0, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 136.0, 64.0, 18.0, 18.0 ] } } , { "box" : { "comment" : "", "id" : "obj-34", "maxclass" : "outlet", "numinlets" : 1, "numoutlets" : 0, "patching_rect" : [ 40.0, 160.0, 18.0, 18.0 ] } } ], "lines" : [ { "patchline" : { "destination" : [ "obj-28", 1 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-18", 0 ] } } , { "patchline" : { "destination" : [ "obj-27", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-26", 0 ] } } , { "patchline" : { "destination" : [ "obj-1", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-27", 2 ] } } , { "patchline" : { "destination" : [ "obj-28", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-27", 0 ] } } , { "patchline" : { "destination" : [ "obj-34", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-27", 2 ] } } , { "patchline" : { "destination" : [ "obj-91", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-27", 1 ] } } , { "patchline" : { "destination" : [ "obj-93", 1 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-28", 0 ] } } , { "patchline" : { "destination" : [ "obj-93", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-91", 0 ] } } , { "patchline" : { "destination" : [ "obj-34", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-93", 0 ] } } ], "dependency_cache" : [ ] } , "patching_rect" : [ 909.0, 116.5, 91.0, 18.0 ], "saved_object_attributes" : { "default_fontname" : "Arial Bold", "globalpatchername" : "", "default_fontsize" : 10.0, "fontface" : 0, "fontsize" : 10.0, "description" : "", "default_fontface" : 0, "fontname" : "Arial Bold", "tags" : "", "digest" : "" } , "text" : "patcher StoreID" } } , { "box" : { "annotation" : "If the \"Once\" option is set to on, the Map function will be auto-disabled as soon as a parameter is selected to avoid unwanted further selections.", "automation" : "off", "automationon" : "on", "id" : "obj-21", "maxclass" : "live.text", "numinlets" : 1, "numoutlets" : 2, "outlettype" : [ "", "" ], "parameter_enable" : 1, "patching_rect" : [ 877.0, 68.5, 40.0, 16.0 ], "presentation" : 1, "presentation_rect" : [ 213.0, 146.0, 40.0, 15.0 ], "prototypename" : "onoff", "saved_attribute_attributes" : { "valueof" : { "parameter_mmax" : 1.0, "parameter_initial" : [ 1 ], "parameter_type" : 2, "parameter_initial_enable" : 1, "parameter_invisible" : 1, "parameter_shortname" : "MapOnce", "parameter_longname" : "MapOnce", "parameter_linknames" : 1, "parameter_speedlim" : 0.0, "parameter_enum" : [ "off", "on" ] } } , "text" : "Once", "texton" : "Once", "varname" : "MapOnce" } } , { "box" : { "activebgoncolor" : [ 1.0, 0.603922, 0.0, 1.0 ], "annotation" : "When Map is turned on, the next Live parameter clicked on will be selected as a target and the menus wil be modified accordingly. ", "automation" : "off", "automationon" : "on", "id" : "obj-22", "maxclass" : "live.text", "numinlets" : 1, "numoutlets" : 2, "outlettype" : [ "", "" ], "parameter_enable" : 1, "patching_rect" : [ 821.0, 68.5, 40.0, 16.0 ], "presentation" : 1, "presentation_rect" : [ 164.0, 146.0, 40.0, 15.0 ], "prototypename" : "onoff", "saved_attribute_attributes" : { "valueof" : { "parameter_mmax" : 1.0, "parameter_initial" : [ 0.0 ], "parameter_type" : 2, "parameter_invisible" : 2, "parameter_shortname" : "Map", "parameter_longname" : "Map", "parameter_linknames" : 1, "parameter_speedlim" : 0.0, "parameter_enum" : [ "off", "on" ] } } , "text" : "Map", "texton" : "Map", "varname" : "Map" } } , { "box" : { "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-23", "maxclass" : "newobj", "numinlets" : 2, "numoutlets" : 2, "outlettype" : [ "", "int" ], "patcher" : { "fileversion" : 1, "appversion" : { "major" : 6, "minor" : 0, "revision" : 4 } , "rect" : [ 25.0, 69.0, 387.0, 386.0 ], "bglocked" : 0, "openinpresentation" : 0, "default_fontsize" : 10.0, "default_fontface" : 0, "default_fontname" : "Arial Bold", "gridonopen" : 0, "gridsize" : [ 8.0, 8.0 ], "gridsnaponopen" : 0, "statusbarvisible" : 2, "toolbarvisible" : 1, "boxanimatetime" : 200, "imprint" : 0, "enablehscroll" : 1, "enablevscroll" : 1, "devicewidth" : 0.0, "description" : "", "digest" : "", "tags" : "", "boxes" : [ { "box" : { "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-25", "linecount" : 8, "maxclass" : "comment", "numinlets" : 1, "numoutlets" : 0, "patching_rect" : [ 176.0, 104.0, 188.0, 98.0 ], "text" : "When Map is turned on, the next Live parameter clicked on will be selected as a target and the menus wil be modified accordingly. If the \"Once\" option is set to on, the Map function will be auto-disabled as soon as a parameter is selected to avoid unwanted further selections." } } , { "box" : { "comment" : "", "id" : "obj-4", "maxclass" : "outlet", "numinlets" : 1, "numoutlets" : 0, "patching_rect" : [ 96.0, 312.0, 18.0, 18.0 ], "prototypename" : "M4L.Arial10" } } , { "box" : { "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-5", "maxclass" : "comment", "numinlets" : 1, "numoutlets" : 0, "patching_rect" : [ 88.0, 336.0, 39.0, 18.0 ], "text" : "Set ID" } } , { "box" : { "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-2", "maxclass" : "newobj", "numinlets" : 1, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 48.0, 192.0, 52.0, 18.0 ], "text" : "deferlow" } } , { "box" : { "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-3", "maxclass" : "newobj", "numinlets" : 2, "numoutlets" : 2, "outlettype" : [ "", "" ], "patching_rect" : [ 48.0, 215.0, 67.0, 18.0 ], "text" : "substitute 0" } } , { "box" : { "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-58", "maxclass" : "newobj", "numinlets" : 1, "numoutlets" : 1, "outlettype" : [ "int" ], "patching_rect" : [ 144.0, 280.0, 22.0, 18.0 ], "text" : "t 0" } } , { "box" : { "comment" : "", "id" : "obj-56", "maxclass" : "outlet", "numinlets" : 1, "numoutlets" : 0, "patching_rect" : [ 144.0, 312.0, 18.0, 18.0 ], "prototypename" : "M4L.Arial10" } } , { "box" : { "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-57", "maxclass" : "comment", "numinlets" : 1, "numoutlets" : 0, "patching_rect" : [ 136.0, 336.0, 38.0, 18.0 ], "text" : "Map" } } , { "box" : { "id" : "obj-53", "maxclass" : "toggle", "numinlets" : 1, "numoutlets" : 1, "outlettype" : [ "int" ], "parameter_enable" : 0, "patching_rect" : [ 144.0, 64.0, 18.0, 18.0 ] } } , { "box" : { "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-54", "maxclass" : "comment", "numinlets" : 1, "numoutlets" : 0, "patching_rect" : [ 128.0, 8.0, 49.0, 18.0 ], "text" : "Auto-off" } } , { "box" : { "comment" : "", "id" : "obj-55", "maxclass" : "inlet", "numinlets" : 0, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 144.0, 32.0, 18.0, 18.0 ], "prototypename" : "M4L.Arial10" } } , { "box" : { "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-50", "maxclass" : "newobj", "numinlets" : 2, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 144.0, 256.0, 32.5, 18.0 ], "text" : "gate" } } , { "box" : { "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-38", "maxclass" : "newobj", "numinlets" : 3, "numoutlets" : 3, "outlettype" : [ "bang", "bang", "" ], "patching_rect" : [ 32.0, 88.0, 67.0, 18.0 ], "text" : "select 1 0" } } , { "box" : { "id" : "obj-34", "maxclass" : "toggle", "numinlets" : 1, "numoutlets" : 1, "outlettype" : [ "int" ], "parameter_enable" : 0, "patching_rect" : [ 32.0, 64.0, 18.0, 18.0 ] } } , { "box" : { "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-32", "maxclass" : "comment", "numinlets" : 1, "numoutlets" : 0, "patching_rect" : [ 24.0, 8.0, 38.0, 18.0 ], "text" : "Map" } } , { "box" : { "comment" : "", "id" : "obj-27", "maxclass" : "inlet", "numinlets" : 0, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 32.0, 32.0, 18.0, 18.0 ], "prototypename" : "M4L.Arial10" } } , { "box" : { "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-21", "maxclass" : "message", "numinlets" : 2, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 56.0, 112.0, 32.5, 16.0 ], "text" : "path" } } , { "box" : { "color" : [ 0.984314, 0.819608, 0.05098, 1.0 ], "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-14", "maxclass" : "newobj", "numinlets" : 1, "numoutlets" : 3, "outlettype" : [ "", "", "" ], "patching_rect" : [ 32.0, 167.0, 51.0, 18.0 ], "text" : "live.path" } } , { "box" : { "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-17", "linecount" : 2, "maxclass" : "message", "numinlets" : 2, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 32.0, 136.0, 104.0, 27.0 ], "text" : "path live_set view selected_parameter" } } ], "lines" : [ { "patchline" : { "destination" : [ "obj-2", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-14", 1 ] } } , { "patchline" : { "destination" : [ "obj-14", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-17", 0 ] } } , { "patchline" : { "destination" : [ "obj-3", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-2", 0 ] } } , { "patchline" : { "destination" : [ "obj-14", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-21", 0 ] } } , { "patchline" : { "destination" : [ "obj-34", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-27", 0 ] } } , { "patchline" : { "destination" : [ "obj-4", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-3", 1 ] } } , { "patchline" : { "destination" : [ "obj-50", 1 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-3", 1 ] } } , { "patchline" : { "destination" : [ "obj-38", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-34", 0 ] } } , { "patchline" : { "destination" : [ "obj-17", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-38", 0 ] } } , { "patchline" : { "destination" : [ "obj-21", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-38", 1 ] } } , { "patchline" : { "destination" : [ "obj-58", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-50", 0 ] } } , { "patchline" : { "destination" : [ "obj-50", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-53", 0 ] } } , { "patchline" : { "destination" : [ "obj-53", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-55", 0 ] } } , { "patchline" : { "destination" : [ "obj-56", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-58", 0 ] } } ], "dependency_cache" : [ ] } , "patching_rect" : [ 821.0, 92.5, 75.0, 18.0 ], "saved_object_attributes" : { "default_fontname" : "Arial Bold", "globalpatchername" : "", "default_fontsize" : 10.0, "fontface" : 0, "fontsize" : 10.0, "description" : "", "default_fontface" : 0, "fontname" : "Arial Bold", "tags" : "", "digest" : "" } , "text" : "patcher Map" } } , { "box" : { "fontname" : "Arial", "fontsize" : 10.0, "id" : "obj-68", "maxclass" : "comment", "numinlets" : 1, "numoutlets" : 0, "patching_rect" : [ 917.0, 313.5, 59.0, 18.0 ], "text" : "Menu sync" } } , { "box" : { "fontname" : "Arial", "fontsize" : 10.0, "id" : "obj-71", "maxclass" : "comment", "numinlets" : 1, "numoutlets" : 0, "patching_rect" : [ 869.0, 217.5, 59.0, 18.0 ], "text" : "Menu sync" } } , { "box" : { "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-78", "maxclass" : "newobj", "numinlets" : 1, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 909.0, 396.5, 62.0, 18.0 ], "text" : "prepend id" } } , { "box" : { "fontname" : "Arial", "fontsize" : 10.0, "id" : "obj-83", "maxclass" : "comment", "numinlets" : 1, "numoutlets" : 0, "patching_rect" : [ 981.0, 252.5, 67.0, 18.0 ], "text" : "< Arg. = type" } } , { "box" : { "fontname" : "Arial", "fontsize" : 10.0, "id" : "obj-84", "maxclass" : "comment", "numinlets" : 1, "numoutlets" : 0, "patching_rect" : [ 879.0, 179.5, 32.0, 18.0 ], "text" : "Type" } } , { "box" : { "fontname" : "Arial", "fontsize" : 10.0, "id" : "obj-86", "maxclass" : "comment", "numinlets" : 1, "numoutlets" : 0, "patching_rect" : [ 749.0, 104.5, 61.0, 18.0 ], "text" : "Refresh list" } } , { "box" : { "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-94", "linecount" : 2, "maxclass" : "newobj", "numinlets" : 1, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 861.0, 300.5, 51.0, 29.0 ], "text" : "prepend iterate" } } , { "box" : { "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-95", "linecount" : 2, "maxclass" : "newobj", "numinlets" : 1, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 813.0, 204.5, 51.0, 29.0 ], "text" : "prepend iterate" } } , { "box" : { "annotation" : "Select an item.", "bgcolor" : [ 0.094118, 0.113725, 0.137255, 0.0 ], "border" : 1, "grad2" : [ 0.415686, 0.454902, 0.52549, 1.0 ], "id" : "obj-100", "ignoreclick" : 1, "maxclass" : "panel", "numinlets" : 1, "numoutlets" : 0, "patching_rect" : [ 861.0, 372.5, 80.0, 17.0 ], "presentation" : 1, "presentation_rect" : [ 164.0, 121.5, 89.0, 17.0 ], "rounded" : 0 } } , { "box" : { "annotation" : "Select an item.", "bgcolor" : [ 0.094118, 0.113725, 0.137255, 0.0 ], "border" : 1, "grad2" : [ 0.415686, 0.454902, 0.52549, 1.0 ], "id" : "obj-101", "ignoreclick" : 1, "maxclass" : "panel", "numinlets" : 1, "numoutlets" : 0, "patching_rect" : [ 813.0, 276.5, 80.0, 17.0 ], "presentation" : 1, "presentation_rect" : [ 164.0, 88.5, 89.0, 18.0 ], "rounded" : 0 } } , { "box" : { "annotation" : "When no item has been selected, the menu font is italic. When an item is selected, the menu displays in non-italics. Clicking the buttons clears the menus, sets the font to italic, and deselects any previously selected mapping. ", "arrowcolor" : [ 0.494118, 0.556863, 0.607843, 1.0 ], "fontname" : "Arial Bold", "fontsize" : 10.0, "framecolor" : [ 0.572549, 0.615686, 0.658824, 0.0 ], "id" : "obj-102", "items" : [ "Device On", ",", "AEnv", ",", "AEnvSign", ",", "AFilterOn", ",", "AFilterType", ",", "AFreq buttons clears the menus, sets the font to italic, and deselects any previously selected mapping. ", "arrowcolor" : [ 0.494118, 0.556863, 0.607843, 1.0 ], "fontname" : "Arial Bold", "fontsize" : 10.0, "framecolor" : [ 0.572549, 0.615686, 0.658824, 0.0 ], "id" : "obj-104", "items" : [ "ml.Granulator", ",", "CamMap", ",", "WiiMap", ",", "-", ",", "Mixer" ], "maxclass" : "umenu", "numinlets" : 1, "numoutlets" : 3, "outlettype" : [ "int", "", "" ], "parameter_enable" : 0, "patching_rect" : [ 813.0, 276.5, 80.0, 18.0 ], "presentation" : 1, "presentation_rect" : [ 164.0, 88.5, 89.0, 18.0 ], "rounded" : 0, "textcolor" : [ 0.09, 0.11, 0.14, 1.0 ], "textcolor2" : [ 0.094118, 0.113725, 0.137255, 1.0 ], "togcolor" : [ 0.568627, 0.619608, 0.662745, 1.0 ], "varname" : "DeviceChooser" } } , { "box" : { "annotation" : "List all available items.", "automation" : "arm", "automationon" : "trigger", "fontface" : 0, "fontsize" : 9.0, "id" : "obj-105", "maxclass" : "live.text", "mode" : 0, "numinlets" : 1, "numoutlets" : 2, "outlettype" : [ "", "" ], "parameter_enable" : 1, "patching_rect" : [ 829.0, 312.5, 24.0, 16.0 ], "presentation" : 1, "presentation_rect" : [ 233.0, 107.5, 20.0, 12.0 ], "prototypename" : "numbers.default", "saved_attribute_attributes" : { "valueof" : { "parameter_mmax" : 1.0, "parameter_initial" : [ 0.0 ], "parameter_type" : 2, "parameter_invisible" : 2, "parameter_shortname" : "ListParams", "parameter_longname" : "ListParams", "parameter_linknames" : 1, "parameter_speedlim" : 0.0, "parameter_enum" : [ "arm", "trigger" ] } } , "text" : "list", "texton" : "list", "varname" : "ListParams" } } , { "box" : { "annotation" : "List all available items.", "automation" : "arm", "automationon" : "trigger", "fontface" : 0, "fontsize" : 9.0, "id" : "obj-106", "maxclass" : "live.text", "mode" : 0, "numinlets" : 1, "numoutlets" : 2, "outlettype" : [ "", "" ], "parameter_enable" : 1, "patching_rect" : [ 781.0, 216.5, 24.0, 16.0 ], "presentation" : 1, "presentation_rect" : [ 233.0, 75.5, 20.0, 12.0 ], "prototypename" : "numbers.default", "saved_attribute_attributes" : { "valueof" : { "parameter_mmax" : 1.0, "parameter_initial" : [ 0.0 ], "parameter_type" : 2, "parameter_invisible" : 2, "parameter_shortname" : "ListDevices", "parameter_longname" : "ListDevices", "parameter_linknames" : 1, "parameter_speedlim" : 0.0, "parameter_enum" : [ "arm", "trigger" ] } } , "text" : "list", "texton" : "list", "varname" : "ListDevices" } } , { "box" : { "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-107", "maxclass" : "message", "numinlets" : 2, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 1005.0, 372.5, 39.0, 16.0 ], "text" : "set $1" } } , { "box" : { "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-108", "maxclass" : "comment", "numinlets" : 1, "numoutlets" : 0, "patching_rect" : [ 1005.0, 392.5, 88.0, 18.0 ], "presentation" : 1, "presentation_rect" : [ 164.0, 107.5, 73.0, 18.0 ], "text" : "Parameter" } } , { "box" : { "color" : [ 0.984314, 0.819608, 0.05098, 1.0 ], "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-109", "maxclass" : "newobj", "numinlets" : 2, "numoutlets" : 4, "outlettype" : [ "", "", "", "" ], "patching_rect" : [ 861.0, 348.5, 163.0, 18.0 ], "saved_object_attributes" : { "parameter_enable" : 0 } , "text" : "js M4L.chooser.js parameter", "varname" : "List&Select[2]" } } , { "box" : { "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-110", "maxclass" : "message", "numinlets" : 2, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 957.0, 276.5, 39.0, 16.0 ], "text" : "set $1" } } , { "box" : { "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-111", "maxclass" : "comment", "numinlets" : 1, "numoutlets" : 0, "patching_rect" : [ 957.0, 296.5, 88.0, 18.0 ], "presentation" : 1, "presentation_rect" : [ 164.0, 75.5, 73.0, 18.0 ], "text" : "Device" } } , { "box" : { "color" : [ 0.984314, 0.819608, 0.05098, 1.0 ], "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-112", "maxclass" : "newobj", "numinlets" : 2, "numoutlets" : 4, "outlettype" : [ "", "", "", "" ], "patching_rect" : [ 813.0, 252.5, 163.0, 18.0 ], "saved_object_attributes" : { "parameter_enable" : 0 } , "text" : "js M4L.chooser.js device", "varname" : "List&Select[1]" } } , { "box" : { "annotation" : "Select an item.", "bgcolor" : [ 0.094118, 0.113725, 0.137255, 0.0 ], "border" : 1, "grad2" : [ 0.415686, 0.454902, 0.52549, 1.0 ], "id" : "obj-113", "ignoreclick" : 1, "maxclass" : "panel", "numinlets" : 1, "numoutlets" : 0, "patching_rect" : [ 765.0, 180.5, 80.0, 17.0 ], "presentation" : 1, "presentation_rect" : [ 164.0, 54.5, 89.0, 18.0 ], "rounded" : 0 } } , { "box" : { "annotation" : "List all available items.", "automation" : "arm", "automationon" : "trigger", "fontface" : 0, "fontsize" : 9.0, "id" : "obj-114", "maxclass" : "live.text", "mode" : 0, "numinlets" : 1, "numoutlets" : 2, "outlettype" : [ "", "" ], "parameter_enable" : 1, "patching_rect" : [ 765.0, 120.5, 24.0, 16.0 ], "presentation" : 1, "presentation_rect" : [ 233.0, 41.5, 20.0, 12.0 ], "prototypename" : "numbers.default", "saved_attribute_attributes" : { "valueof" : { "parameter_mmax" : 1.0, "parameter_initial" : [ 0.0 ], "parameter_type" : 2, "parameter_invisible" : 2, "parameter_shortname" : "ListTracks", "parameter_longname" : "ListTracks", "parameter_linknames" : 1, "parameter_speedlim" : 0.0, "parameter_enum" : [ "arm", "trigger" ] } } , "text" : "list", "texton" : "list", "varname" : "ListTracks" } } , { "box" : { "annotation" : "When no item has been selected, the menu font is italic. When an item is selected, the menu displays in non-italics. Clicking the buttons clears the menus, sets the font to italic, and deselects any previously selected mapping. ", "arrowcolor" : [ 0.494118, 0.556863, 0.607843, 1.0 ], "fontname" : "Arial Bold", "fontsize" : 10.0, "framecolor" : [ 0.572549, 0.615686, 0.658824, 0.0 ], "hint" : "", "id" : "obj-115", "items" : [ "This Track", ",", "-", ",", "Control - CamMap", ",", "Grab", ",", "Monolake", ",", "-", ",", "A-Return", ",", "B-Return", ",", "-", ",", "Master" ], "maxclass" : "umenu", "numinlets" : 1, "numoutlets" : 3, "outlettype" : [ "int", "", "" ], "parameter_enable" : 0, "patching_rect" : [ 765.0, 180.5, 80.0, 18.0 ], "presentation" : 1, "presentation_rect" : [ 164.0, 54.5, 89.0, 18.0 ], "rounded" : 0, "textcolor" : [ 0.09, 0.11, 0.14, 1.0 ], "textcolor2" : [ 0.094118, 0.113725, 0.137255, 1.0 ], "togcolor" : [ 0.568627, 0.619608, 0.662745, 1.0 ], "varname" : "TrackChooser" } } , { "box" : { "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-116", "maxclass" : "message", "numinlets" : 2, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 909.0, 180.5, 39.0, 16.0 ], "text" : "set $1" } } , { "box" : { "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-117", "maxclass" : "comment", "numinlets" : 1, "numoutlets" : 0, "patching_rect" : [ 909.0, 200.5, 88.0, 18.0 ], "presentation" : 1, "presentation_rect" : [ 164.0, 38.5, 73.0, 18.0 ], "text" : "Track" } } , { "box" : { "color" : [ 0.984314, 0.819608, 0.05098, 1.0 ], "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-118", "maxclass" : "newobj", "numinlets" : 2, "numoutlets" : 4, "outlettype" : [ "", "", "", "" ], "patching_rect" : [ 765.0, 156.5, 163.0, 18.0 ], "saved_object_attributes" : { "parameter_enable" : 0 } , "text" : "js M4L.chooser.js track", "varname" : "List&Select[3]" } } , { "box" : { "fontname" : "Arial", "fontsize" : 10.0, "id" : "obj-24", "linecount" : 3, "maxclass" : "comment", "numinlets" : 1, "numoutlets" : 0, "patching_rect" : [ 1013.0, 436.5, 121.0, 41.0 ], "text" : "< Toggles and (no selection) messages." } } , { "box" : { "annotation" : "Enables/disables mapping of the selected parameter.", "automation" : "off", "automationon" : "on", "id" : "obj-28", "maxclass" : "live.text", "numinlets" : 1, "numoutlets" : 2, "outlettype" : [ "", "" ], "parameter_enable" : 1, "patching_rect" : [ 973.0, 436.5, 31.0, 15.0 ], "presentation" : 1, "presentation_rect" : [ 270.5, 54.5, 32.0, 15.0 ], "prototypename" : "onoff", "saved_attribute_attributes" : { "valueof" : { "parameter_mmax" : 1.0, "parameter_initial" : [ 1 ], "parameter_type" : 2, "parameter_initial_enable" : 1, "parameter_shortname" : "Enable", "parameter_longname" : "TargetEnable", "parameter_linknames" : 1, "parameter_speedlim" : 0.0, "parameter_enum" : [ "off", "on" ] } } , "text" : "Off", "texton" : "On", "varname" : "TargetEnable" } } , { "box" : { "fontname" : "Arial Bold", "fontsize" : 10.0, "frgb" : [ 0.301961, 0.337255, 0.403922, 1.0 ], "id" : "obj-33", "maxclass" : "comment", "numinlets" : 1, "numoutlets" : 0, "patching_rect" : [ 925.0, 436.5, 40.0, 18.0 ], "presentation" : 1, "presentation_rect" : [ 266.5, 38.5, 40.0, 18.0 ], "text" : "Target", "textcolor" : [ 0.301961, 0.337255, 0.403922, 1.0 ] } } , { "box" : { "id" : "obj-5", "maxclass" : "jit.pwindow", "numinlets" : 1, "numoutlets" : 2, "outlettype" : [ "", "" ], "patching_rect" : [ 76.0, 472.0, 160.0, 120.0 ], "presentation" : 1, "presentation_rect" : [ 24.0, 57.5, 125.0, 82.0 ] } } , { "box" : { "fontname" : "Arial", "fontsize" : 9.0, "id" : "obj-9", "maxclass" : "message", "numinlets" : 2, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 254.5, 83.0, 45.0, 15.0 ], "presentation" : 1, "presentation_rect" : [ 104.0, 146.0, 45.0, 15.0 ], "text" : "settings" } } , { "box" : { "fontname" : "Arial", "fontsize" : 9.0, "id" : "obj-39", "maxclass" : "message", "numinlets" : 2, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 213.5, 83.0, 32.0, 15.0 ], "presentation" : 1, "presentation_rect" : [ 64.0, 146.0, 32.0, 15.0 ], "text" : "close" } } , { "box" : { "fontname" : "Arial", "fontsize" : 9.0, "id" : "obj-40", "maxclass" : "message", "numinlets" : 2, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 171.5, 83.0, 29.0, 15.0 ], "presentation" : 1, "presentation_rect" : [ 24.0, 146.0, 29.0, 15.0 ], "text" : "open" } } , { "box" : { "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-80", "maxclass" : "message", "numinlets" : 2, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 532.0, 457.5, 44.0, 16.0 ], "text" : "getinfo" } } , { "box" : { "fontname" : "Arial Bold", "fontsize" : 20.0, "id" : "obj-52", "maxclass" : "comment", "numinlets" : 1, "numoutlets" : 0, "patching_rect" : [ 77.5, -8.0, 284.0, 29.0 ], "presentation" : 1, "presentation_rect" : [ 18.5, 8.5, 160.0, 29.0 ], "text" : "CamMap v0.1" } } , { "box" : { "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-6", "linecount" : 2, "maxclass" : "comment", "numinlets" : 1, "numoutlets" : 0, "patching_rect" : [ 589.0, 563.5, 150.0, 29.0 ], "text" : "Get min/max from parameter id" } } , { "box" : { "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-96", "maxclass" : "newobj", "numinlets" : 2, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 287.0, 509.5, 50.0, 18.0 ], "text" : "pack 0 0" } } , { "box" : { "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-46", "linecount" : 2, "maxclass" : "comment", "numinlets" : 1, "numoutlets" : 0, "patching_rect" : [ 355.0, 319.5, 150.0, 29.0 ], "text" : "required external - [cv.jit.mass]" } } , { "box" : { "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-8", "maxclass" : "comment", "numinlets" : 1, "numoutlets" : 0, "patching_rect" : [ 693.0, 536.0, 51.0, 18.0 ], "text" : "< Range" } } , { "box" : { "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-12", "maxclass" : "comment", "numinlets" : 1, "numoutlets" : 0, "patching_rect" : [ 653.0, 488.0, 82.0, 18.0 ], "text" : "< Target object" } } , { "box" : { "fontname" : "Arial", "fontsize" : 10.0, "id" : "obj-47", "maxclass" : "comment", "numinlets" : 1, "numoutlets" : 0, "patching_rect" : [ 669.0, 536.0, 29.0, 18.0 ], "text" : "Max" } } , { "box" : { "fontname" : "Arial", "fontsize" : 10.0, "id" : "obj-14", "maxclass" : "comment", "numinlets" : 1, "numoutlets" : 0, "patching_rect" : [ 565.0, 536.0, 27.0, 18.0 ], "text" : "Min" } } , { "box" : { "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-59", "maxclass" : "flonum", "numinlets" : 1, "numoutlets" : 2, "outlettype" : [ "float", "bang" ], "parameter_enable" : 0, "patching_rect" : [ 629.0, 536.0, 39.0, 18.0 ], "prototypename" : "Live", "triscale" : 0.75 } } , { "box" : { "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-60", "maxclass" : "flonum", "numinlets" : 1, "numoutlets" : 2, "outlettype" : [ "float", "bang" ], "parameter_enable" : 0, "patching_rect" : [ 589.0, 536.0, 39.0, 18.0 ], "prototypename" : "Live", "triscale" : 0.75 } } , { "box" : { "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-27", "maxclass" : "newobj", "numinlets" : 2, "numoutlets" : 2, "outlettype" : [ "", "" ], "patching_rect" : [ 541.0, 416.0, 67.0, 18.0 ], "text" : "substitute 0" } } , { "box" : { "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-133", "maxclass" : "newobj", "numinlets" : 3, "numoutlets" : 3, "outlettype" : [ "", "", "" ], "patching_rect" : [ 589.0, 512.0, 99.0, 18.0 ], "text" : "route min max" } } , { "box" : { "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-132", "maxclass" : "message", "numinlets" : 2, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 589.0, 464.0, 89.0, 16.0 ], "text" : "get min, get max" } } , { "box" : { "color" : [ 0.984314, 0.819608, 0.05098, 1.0 ], "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-130", "maxclass" : "newobj", "numinlets" : 2, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 589.0, 488.0, 59.0, 18.0 ], "saved_object_attributes" : { "_persistence" : 0 } , "text" : "live.object" } } , { "box" : { "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-129", "maxclass" : "newobj", "numinlets" : 1, "numoutlets" : 2, "outlettype" : [ "bang", "" ], "patching_rect" : [ 589.0, 440.0, 59.0, 18.0 ], "text" : "trigger b l" } } , { "box" : { "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-34", "maxclass" : "comment", "numinlets" : 1, "numoutlets" : 0, "patching_rect" : [ 933.0, 496.5, 150.0, 18.0 ], "text" : "id sent to right inlet" } } , { "box" : { "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-3", "maxclass" : "newobj", "numinlets" : 2, "numoutlets" : 2, "outlettype" : [ "signal", "bang" ], "patching_rect" : [ 287.0, 533.5, 42.0, 18.0 ], "text" : "line~ 1" } } , { "box" : { "id" : "obj-2", "maxclass" : "jit.pwindow", "numinlets" : 1, "numoutlets" : 2, "outlettype" : [ "", "" ], "patching_rect" : [ 76.0, 333.5, 160.0, 120.0 ] } } , { "box" : { "fontname" : "Arial", "fontsize" : 9.0, "id" : "obj-30", "maxclass" : "newobj", "numinlets" : 1, "numoutlets" : 2, "outlettype" : [ "jit_matrix", "" ], "patching_rect" : [ 287.0, 245.0, 64.0, 17.0 ], "text" : "jit.rgb2luma" } } , { "box" : { "fontname" : "Arial", "fontsize" : 9.0, "id" : "obj-32", "maxclass" : "newobj", "numinlets" : 2, "numoutlets" : 2, "outlettype" : [ "jit_matrix", "" ], "patching_rect" : [ 287.0, 282.5, 95.0, 17.0 ], "text" : "jit.op @op > @val 50" } } , { "box" : { "fontname" : "Arial", "fontsize" : 9.0, "id" : "obj-7", "maxclass" : "newobj", "numinlets" : 1, "numoutlets" : 2, "outlettype" : [ "", "" ], "patching_rect" : [ 287.0, 125.0, 27.0, 17.0 ], "text" : "t l l" } } , { "box" : { "fontname" : "Arial", "fontsize" : 9.0, "id" : "obj-35", "maxclass" : "newobj", "numinlets" : 2, "numoutlets" : 2, "outlettype" : [ "jit_matrix", "" ], "patching_rect" : [ 287.0, 218.0, 90.0, 17.0 ], "text" : "jit.op @op absdiff" } } , { "box" : { "id" : "obj-10", "maxclass" : "jit.pwindow", "numinlets" : 1, "numoutlets" : 2, "outlettype" : [ "", "" ], "patching_rect" : [ 76.0, 192.5, 160.0, 120.0 ] } } , { "box" : { "fontname" : "Arial", "fontsize" : 9.0, "id" : "obj-20", "maxclass" : "message", "numinlets" : 2, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 287.0, 378.5, 38.0, 15.0 ], "text" : "$1 500" } } , { "box" : { "fontname" : "Arial", "fontsize" : 9.0, "id" : "obj-11", "maxclass" : "newobj", "numinlets" : 3, "numoutlets" : 2, "outlettype" : [ "", "" ], "patching_rect" : [ 287.0, 403.5, 38.0, 17.0 ], "text" : "line" } } , { "box" : { "bgcolor" : [ 0.866667, 0.866667, 0.866667, 1.0 ], "fontname" : "Arial", "fontsize" : 9.0, "htextcolor" : [ 0.870588, 0.870588, 0.870588, 1.0 ], "id" : "obj-18", "maxclass" : "number", "numinlets" : 1, "numoutlets" : 2, "outlettype" : [ "int", "bang" ], "parameter_enable" : 0, "patching_rect" : [ 287.0, 348.5, 59.0, 17.0 ], "triscale" : 0.9 } } , { "box" : { "fontname" : "Arial", "fontsize" : 9.0, "id" : "obj-29", "maxclass" : "newobj", "numinlets" : 1, "numoutlets" : 2, "outlettype" : [ "", "" ], "patching_rect" : [ 287.0, 319.5, 59.0, 17.0 ], "text" : "cv.jit.mass" } } , { "box" : { "fontname" : "Arial", "fontsize" : 9.0, "id" : "obj-41", "maxclass" : "newobj", "numinlets" : 1, "numoutlets" : 2, "outlettype" : [ "jit_matrix", "" ], "patching_rect" : [ 76.0, 109.0, 55.0, 17.0 ], "text" : "jit.qt.grab" } } , { "box" : { "fontname" : "Arial", "fontsize" : 9.0, "id" : "obj-43", "maxclass" : "newobj", "numinlets" : 2, "numoutlets" : 1, "outlettype" : [ "bang" ], "patching_rect" : [ 77.0, 69.0, 55.0, 17.0 ], "text" : "qmetro 40" } } , { "box" : { "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-1", "maxclass" : "newobj", "numinlets" : 5, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 287.0, 452.5, 92.0, 18.0 ], "text" : "zmap 0 10000 0 1" } } , { "box" : { "color" : [ 0.984314, 0.819608, 0.05098, 1.0 ], "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-176", "maxclass" : "newobj", "numinlets" : 2, "numoutlets" : 0, "patching_rect" : [ 861.0, 496.5, 67.0, 18.0 ], "saved_object_attributes" : { "_persistence" : 1 } , "text" : "live.remote~" } } , { "box" : { "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-156", "maxclass" : "newobj", "numinlets" : 2, "numoutlets" : 1, "outlettype" : [ "" ], "patcher" : { "fileversion" : 1, "appversion" : { "major" : 6, "minor" : 0, "revision" : 4 } , "rect" : [ 415.0, 44.0, 289.0, 312.0 ], "bglocked" : 0, "openinpresentation" : 0, "default_fontsize" : 10.0, "default_fontface" : 0, "default_fontname" : "Arial Bold", "gridonopen" : 0, "gridsize" : [ 8.0, 8.0 ], "gridsnaponopen" : 0, "statusbarvisible" : 2, "toolbarvisible" : 1, "boxanimatetime" : 200, "imprint" : 0, "enablehscroll" : 1, "enablevscroll" : 1, "devicewidth" : 0.0, "description" : "", "digest" : "", "tags" : "", "boxes" : [ { "box" : { "fontname" : "Arial", "fontsize" : 10.0, "id" : "obj-11", "linecount" : 3, "maxclass" : "comment", "numinlets" : 1, "numoutlets" : 0, "patching_rect" : [ 144.0, 48.0, 125.0, 41.0 ], "text" : "< Don't trigger a Live API event directly in response to parameter value recall" } } , { "box" : { "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-7", "maxclass" : "newobj", "numinlets" : 1, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 72.0, 48.0, 52.0, 18.0 ], "text" : "deferlow" } } , { "box" : { "fontname" : "Arial", "fontsize" : 10.0, "id" : "obj-24", "linecount" : 6, "maxclass" : "comment", "numinlets" : 1, "numoutlets" : 0, "patching_rect" : [ 152.0, 120.0, 117.0, 75.0 ], "text" : "< Turn mapping on or off: if it's on, set the ID of the Live parameter which is selected in the menus, if its off, set the (no mapping)." } } , { "box" : { "blinkcolor" : [ 0.921569, 0.94902, 0.05098, 1.0 ], "id" : "obj-9", "maxclass" : "button", "numinlets" : 1, "numoutlets" : 1, "outlettype" : [ "bang" ], "patching_rect" : [ 96.0, 144.0, 18.0, 18.0 ] } } , { "box" : { "blinkcolor" : [ 0.921569, 0.94902, 0.05098, 1.0 ], "id" : "obj-8", "maxclass" : "button", "numinlets" : 1, "numoutlets" : 1, "outlettype" : [ "bang" ], "patching_rect" : [ 72.0, 144.0, 18.0, 18.0 ] } } , { "box" : { "id" : "obj-3", "maxclass" : "toggle", "numinlets" : 1, "numoutlets" : 1, "outlettype" : [ "int" ], "parameter_enable" : 0, "patching_rect" : [ 120.0, 200.0, 18.0, 18.0 ] } } , { "box" : { "fontname" : "Arial", "fontsize" : 10.0, "id" : "obj-31", "maxclass" : "comment", "numinlets" : 1, "numoutlets" : 0, "patching_rect" : [ 88.0, 72.0, 24.0, 18.0 ], "text" : "1/0" } } , { "box" : { "id" : "obj-26", "maxclass" : "toggle", "numinlets" : 1, "numoutlets" : 1, "outlettype" : [ "int" ], "parameter_enable" : 0, "patching_rect" : [ 72.0, 72.0, 18.0, 18.0 ] } } , { "box" : { "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-6", "maxclass" : "comment", "numinlets" : 1, "numoutlets" : 0, "patching_rect" : [ 120.0, 264.0, 20.0, 18.0 ], "text" : "ID" } } , { "box" : { "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-5", "maxclass" : "comment", "numinlets" : 1, "numoutlets" : 0, "patching_rect" : [ 16.0, 16.0, 20.0, 18.0 ], "text" : "ID" } } , { "box" : { "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-4", "maxclass" : "comment", "numinlets" : 1, "numoutlets" : 0, "patching_rect" : [ 96.0, 16.0, 40.0, 18.0 ], "text" : "On/off" } } , { "box" : { "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-2", "maxclass" : "newobj", "numinlets" : 1, "numoutlets" : 2, "outlettype" : [ "int", "int" ], "patching_rect" : [ 72.0, 96.0, 67.0, 18.0 ], "text" : "trigger i i" } } , { "box" : { "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-1", "maxclass" : "newobj", "numinlets" : 2, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 120.0, 232.0, 34.5, 18.0 ], "text" : "gate" } } , { "box" : { "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-52", "maxclass" : "newobj", "numinlets" : 2, "numoutlets" : 2, "outlettype" : [ "", "" ], "patching_rect" : [ 40.0, 176.0, 37.0, 18.0 ], "text" : "zl reg" } } , { "box" : { "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-43", "maxclass" : "message", "numinlets" : 2, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 96.0, 176.0, 30.5, 16.0 ], "text" : "id 0" } } , { "box" : { "fontname" : "Arial Bold", "fontsize" : 10.0, "id" : "obj-34", "maxclass" : "newobj", "numinlets" : 3, "numoutlets" : 3, "outlettype" : [ "bang", "bang", "" ], "patching_rect" : [ 72.0, 120.0, 66.0, 18.0 ], "text" : "select 1 0" } } , { "box" : { "comment" : "", "id" : "obj-53", "maxclass" : "inlet", "numinlets" : 0, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 40.0, 16.0, 18.0, 18.0 ] } } , { "box" : { "comment" : "", "id" : "obj-57", "maxclass" : "inlet", "numinlets" : 0, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 72.0, 16.0, 18.0, 18.0 ] } } , { "box" : { "comment" : "", "id" : "obj-60", "maxclass" : "outlet", "numinlets" : 1, "numoutlets" : 0, "patching_rect" : [ 96.0, 264.0, 18.0, 18.0 ] } } ], "lines" : [ { "patchline" : { "destination" : [ "obj-60", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-1", 0 ] } } , { "patchline" : { "destination" : [ "obj-3", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-2", 1 ] } } , { "patchline" : { "destination" : [ "obj-34", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-2", 0 ] } } , { "patchline" : { "destination" : [ "obj-2", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-26", 0 ] } } , { "patchline" : { "destination" : [ "obj-1", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-3", 0 ] } } , { "patchline" : { "destination" : [ "obj-8", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-34", 0 ] } } , { "patchline" : { "destination" : [ "obj-9", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-34", 1 ] } } , { "patchline" : { "destination" : [ "obj-60", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-43", 0 ] } } , { "patchline" : { "destination" : [ "obj-1", 1 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-52", 0 ] } } , { "patchline" : { "destination" : [ "obj-52", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-53", 0 ] } } , { "patchline" : { "destination" : [ "obj-7", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-57", 0 ] } } , { "patchline" : { "destination" : [ "obj-26", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-7", 0 ] } } , { "patchline" : { "destination" : [ "obj-52", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-8", 0 ] } } , { "patchline" : { "destination" : [ "obj-43", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-9", 0 ] } } ], "dependency_cache" : [ ] } , "patching_rect" : [ 909.0, 462.5, 83.0, 18.0 ], "saved_object_attributes" : { "default_fontname" : "Arial Bold", "globalpatchername" : "", "default_fontsize" : 10.0, "fontface" : 0, "fontsize" : 10.0, "description" : "", "default_fontface" : 0, "fontname" : "Arial Bold", "tags" : "", "digest" : "" } , "text" : "patcher Enable" } } , { "box" : { "activedialcolor" : [ 0.666737, 0.204965, 0.94902, 1.0 ], "appearance" : 1, "background" : 1, "bordercolor" : [ 0.169023, 0.3398, 0.554348, 1.0 ], "fontface" : 0, "id" : "obj-54", "maxclass" : "live.dial", "numinlets" : 1, "numoutlets" : 2, "outlettype" : [ "", "float" ], "panelcolor" : [ 0.250817, 0.216286, 0.342391, 1.0 ], "parameter_enable" : 1, "patching_rect" : [ 408.0, 464.5, 47.0, 36.0 ], "presentation" : 1, "presentation_rect" : [ 270.5, 83.0, 47.0, 36.0 ], "saved_attribute_attributes" : { "valueof" : { "parameter_mmax" : 100.0, "parameter_initial" : [ 50 ], "parameter_type" : 1, "parameter_initial_enable" : 1, "parameter_shortname" : "Smooth", "parameter_annotation_name" : "smooth", "parameter_longname" : "Smooth", "parameter_linknames" : 1, "parameter_unitstyle" : 0 } } , "varname" : "Smooth" } } ], "lines" : [ { "patchline" : { "destination" : [ "obj-50", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-1", 0 ] } } , { "patchline" : { "destination" : [ "obj-109", 0 ], "disabled" : 0, "hidden" : 0, "midpoints" : [ 870.5, 399.5, 853.5, 399.5, 853.5, 338.5, 870.5, 338.5 ], "source" : [ "obj-102", 0 ] } } , { "patchline" : { "destination" : [ "obj-112", 0 ], "disabled" : 0, "hidden" : 0, "midpoints" : [ 822.5, 303.5, 805.5, 303.5, 805.5, 242.5, 822.5, 242.5 ], "source" : [ "obj-104", 0 ] } } , { "patchline" : { "destination" : [ "obj-109", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-105", 0 ] } } , { "patchline" : { "destination" : [ "obj-112", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-106", 0 ] } } , { "patchline" : { "destination" : [ "obj-108", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-107", 0 ] } } , { "patchline" : { "destination" : [ "obj-102", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-109", 0 ] } } , { "patchline" : { "destination" : [ "obj-107", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-109", 3 ] } } , { "patchline" : { "destination" : [ "obj-78", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-109", 1 ] } } , { "patchline" : { "destination" : [ "obj-1", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-11", 0 ] } } , { "patchline" : { "destination" : [ "obj-111", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-110", 0 ] } } , { "patchline" : { "destination" : [ "obj-104", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-112", 0 ] } } , { "patchline" : { "destination" : [ "obj-109", 1 ], "disabled" : 0, "hidden" : 0, "midpoints" : [ 918.5, 329.0, 1014.5, 329.0 ], "source" : [ "obj-112", 2 ] } } , { "patchline" : { "destination" : [ "obj-110", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-112", 3 ] } } , { "patchline" : { "destination" : [ "obj-94", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-112", 1 ] } } , { "patchline" : { "destination" : [ "obj-118", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-114", 0 ] } } , { "patchline" : { "destination" : [ "obj-118", 0 ], "disabled" : 0, "hidden" : 0, "midpoints" : [ 774.5, 207.5, 757.5, 207.5, 757.5, 146.5, 774.5, 146.5 ], "source" : [ "obj-115", 0 ] } } , { "patchline" : { "destination" : [ "obj-117", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-116", 0 ] } } , { "patchline" : { "destination" : [ "obj-112", 1 ], "disabled" : 0, "hidden" : 0, "midpoints" : [ 870.5, 233.0, 966.5, 233.0 ], "source" : [ "obj-118", 2 ] } } , { "patchline" : { "destination" : [ "obj-115", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-118", 0 ] } } , { "patchline" : { "destination" : [ "obj-116", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-118", 3 ] } } , { "patchline" : { "destination" : [ "obj-95", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-118", 1 ] } } , { "patchline" : { "destination" : [ "obj-130", 1 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-129", 1 ] } } , { "patchline" : { "destination" : [ "obj-132", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-129", 0 ] } } , { "patchline" : { "destination" : [ "obj-133", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-130", 0 ] } } , { "patchline" : { "destination" : [ "obj-130", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-132", 0 ] } } , { "patchline" : { "destination" : [ "obj-59", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-133", 1 ] } } , { "patchline" : { "destination" : [ "obj-60", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-133", 0 ] } } , { "patchline" : { "destination" : [ "obj-92", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-15", 0 ] } } , { "patchline" : { "destination" : [ "obj-176", 1 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-156", 0 ] } } , { "patchline" : { "destination" : [ "obj-118", 1 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-17", 0 ] } } , { "patchline" : { "destination" : [ "obj-15", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-17", 1 ] } } , { "patchline" : { "destination" : [ "obj-20", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-18", 0 ] } } , { "patchline" : { "destination" : [ "obj-25", 1 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-19", 1 ] } } , { "patchline" : { "destination" : [ "obj-25", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-19", 0 ] } } , { "patchline" : { "destination" : [ "obj-11", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-20", 0 ] } } , { "patchline" : { "destination" : [ "obj-23", 1 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-21", 0 ] } } , { "patchline" : { "destination" : [ "obj-23", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-22", 0 ] } } , { "patchline" : { "destination" : [ "obj-118", 1 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-23", 0 ] } } , { "patchline" : { "color" : [ 0.568627, 0.619608, 0.662745, 1.0 ], "destination" : [ "obj-22", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-23", 1 ] } } , { "patchline" : { "destination" : [ "obj-129", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-27", 1 ] } } , { "patchline" : { "destination" : [ "obj-156", 1 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-28", 0 ] } } , { "patchline" : { "destination" : [ "obj-18", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-29", 0 ] } } , { "patchline" : { "destination" : [ "obj-53", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-3", 0 ] } } , { "patchline" : { "destination" : [ "obj-32", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-30", 0 ] } } , { "patchline" : { "destination" : [ "obj-36", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-31", 0 ] } } , { "patchline" : { "destination" : [ "obj-29", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-32", 0 ] } } , { "patchline" : { "destination" : [ "obj-5", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-32", 0 ] } } , { "patchline" : { "destination" : [ "obj-2", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-35", 0 ] } } , { "patchline" : { "destination" : [ "obj-30", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-35", 0 ] } } , { "patchline" : { "destination" : [ "obj-41", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-39", 0 ] } } , { "patchline" : { "destination" : [ "obj-43", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-4", 0 ] } } , { "patchline" : { "destination" : [ "obj-41", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-40", 0 ] } } , { "patchline" : { "destination" : [ "obj-10", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-41", 0 ] } } , { "patchline" : { "destination" : [ "obj-7", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-41", 0 ] } } , { "patchline" : { "destination" : [ "obj-41", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-43", 0 ] } } , { "patchline" : { "destination" : [ "obj-96", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-50", 0 ] } } , { "patchline" : { "destination" : [ "obj-66", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-53", 0 ] } } , { "patchline" : { "destination" : [ "obj-96", 1 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-54", 0 ] } } , { "patchline" : { "destination" : [ "obj-1", 4 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-59", 0 ] } } , { "patchline" : { "destination" : [ "obj-1", 3 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-60", 0 ] } } , { "patchline" : { "destination" : [ "obj-176", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-67", 0 ] } } , { "patchline" : { "destination" : [ "obj-35", 0 ], "disabled" : 0, "hidden" : 0, "midpoints" : [ 304.5, 195.0, 296.5, 195.0 ], "source" : [ "obj-7", 1 ] } } , { "patchline" : { "destination" : [ "obj-35", 1 ], "disabled" : 0, "hidden" : 0, "midpoints" : [ 296.5, 200.0, 367.5, 200.0 ], "source" : [ "obj-7", 0 ] } } , { "patchline" : { "destination" : [ "obj-156", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-78", 0 ] } } , { "patchline" : { "destination" : [ "obj-17", 0 ], "disabled" : 0, "hidden" : 0, "midpoints" : [ 918.5, 423.5, 1105.5, 423.5, 1105.5, 106.5, 918.5, 106.5 ], "source" : [ "obj-78", 0 ] } } , { "patchline" : { "destination" : [ "obj-27", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-78", 0 ] } } , { "patchline" : { "destination" : [ "obj-130", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-80", 0 ] } } , { "patchline" : { "destination" : [ "obj-41", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-9", 0 ] } } , { "patchline" : { "destination" : [ "obj-109", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-94", 0 ] } } , { "patchline" : { "destination" : [ "obj-112", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-95", 0 ] } } , { "patchline" : { "destination" : [ "obj-3", 0 ], "disabled" : 0, "hidden" : 0, "source" : [ "obj-96", 0 ] } } ], "parameters" : { "obj-21" : [ "MapOnce", "MapOnce", 0 ], "obj-105" : [ "ListParams", "ListParams", 0 ], "obj-28" : [ "TargetEnable", "Enable", 0 ], "obj-22" : [ "Map", "Map", 0 ], "obj-106" : [ "ListDevices", "ListDevices", 0 ], "obj-54" : [ "Smooth", "Smooth", 0 ], "obj-114" : [ "ListTracks", "ListTracks", 0 ], "obj-4" : [ "live.toggle", "live.toggle", 0 ] } , "dependency_cache" : [ { "name" : "M4L.chooser.js", "bootpath" : "/Applications/Max6/patches/m4l-patches/LiveAPI resources/tools", "type" : "TEXT", "implicit" : 1 } , { "name" : "cv.jit.mass.mxo", "type" : "iLaX" } ], "latency" : 0 } } j \\  H__TEXT@@__text__TEXTD*D__cstring__TEXTL?[L?__const__TEXT??__unwind_info__TEXT?H?__DATA@@__dyld__DATA@@__data__DATA@@__common__DATA @__IMPORTPP__pointers__IMPORTPHP__jump_table__IMPORTPP8__LINKEDIT`` <ҷ'?`Pd P5c;` 0;/usr/lib/libmx.A.dylib `@executable_path/../Frameworks/JitterAPI.framework/Versions/A/JitterAPI \@executable_path/../Frameworks/MaxAPI.framework/Versions/A/MaxAPI 4q/usr/lib/libgcc_s.1.dylib 4}/usr/lib/libSystem.B.dylibPQX*L$ *L$YXfX*UVS[0D$D$ D$D$)$ ;::D$D$$ ;D$$:)D$XD$D$ D$$::D$ D$D$D$D$D$ D$)D$:$y:D$$/:$>:01[^UVM S[Q9;u&1ɋE)9P9;u#1ɋEn9PCTr9;u#1ɋE9P'b9;u1ɋEu9P[^Ã9}AǀǀtЃtotRt5tAǀǀAǀǀAǀǀAǀǀAǀǀAǀǀǂǂǀǀ ǀǀǀǀǀ ǀ$ǀ(ǀ,ǀ0ǀ4@ǀǀs9sǀǀtptSt6tǀǀAǀǀAǀǀAǀǀAǀǀAǀǀjǂǂǀǀ ǀǀǀǀǀ ǀ$ǀ(ǀ,ǀ0ǀ4@ǀǀ9ǀǀetptSt6tǀǀAǀǀAǀǀAǀǀAǀǀAǀǀǂǂǀǀ ǀǀǀǀǀ ǀ$ǀ(ǀ,ǀ0ǀ4@ǀǀ9]@@totXtAt*t@@A@@A@@A@@A@@A@@%BB@@ @@@@@ @$@(@,@0@4@@@UWVS,E[MQP3;uE} ΃E!G4$^"D$43E؋EU;P|2;uAu} E4$D$2E܋ME;A|2;u>u} E4$D$2EUM;J|F2;uI=>@@@'6EWi{.DMV]iq"2AOarA'9Tn$' !(%)&#"*+,-./012345@6789:;<=>?@A@BCDEFGHIJKLM@NO __mh_bundle_headerdyld_stub_binding_helper__dyld_func_lookupdyld__mach_header__cv_jit_mass_class_cv_jit_mass_Mass_cv_jit_mass_calculate_ndim_cv_jit_mass_free_cv_jit_mass_init_cv_jit_mass_matrix_calc_cv_jit_mass_new_cv_jit_mass_postcalc_cv_jit_mass_precalc_cv_jit_mass_vector_char_cv_jit_mass_vector_float32_cv_jit_mass_vector_float64_cv_jit_mass_vector_long_main_max_cv_jit_mass_assist_max_cv_jit_mass_bang_max_cv_jit_mass_class_max_cv_jit_mass_free_max_cv_jit_mass_mproc_max_cv_jit_mass_new_ps_getMass_ps_getmax_ps_getmin__jit_sym_atom__jit_sym_char__jit_sym_float32__jit_sym_float64__jit_sym_getdata__jit_sym_getindex__jit_sym_getinfo__jit_sym_getinputlist__jit_sym_getoutputlist__jit_sym_jit_attr_offset_array__jit_sym_jit_mop__jit_sym_list__jit_sym_lock__jit_sym_long__jit_sym_matrix_calc_addbang_addmess_error_freeobject_gensym_jit_atom_getfloat_jit_atom_getlong_jit_atom_setfloat_jit_class_addadornment_jit_class_addattr_jit_class_addmethod_jit_class_findbyname_jit_class_new_jit_class_register_jit_error_code_jit_freebytes_jit_getbytes_jit_object_alloc_jit_object_free_jit_object_method_jit_object_new_max_jit_attr_args_max_jit_classex_mop_mproc_max_jit_classex_mop_wrap_max_jit_classex_setup_max_jit_classex_standard_wrap_max_jit_mop_assist_max_jit_mop_free_max_jit_mop_getoutputmode_max_jit_mop_setup_simple_max_jit_obex_free_max_jit_obex_jitob_get_max_jit_obex_new_outlet_anything_outlet_float_outlet_int_outlet_new_setup H__TEXT@@__text__TEXT,__picsymbolstub1__TEXT:: __cstring__TEXT?ts?t__const__TEXT??__DATA@@__dyld__DATA@@__nl_symbol_ptr__DATA@H@&__la_symbol_ptr__DATA@P@P8__data__DATA@@__common__DATA@8__LINKEDITPP \Uxú%H<_Q8PVp P5T^P' 0;/usr/lib/libmx.A.dylib `@executable_path/../Frameworks/JitterAPI.framework/Versions/A/JitterAPI \@executable_path/../Frameworks/MaxAPI.framework/Versions/A/MaxAPI 4q/usr/lib/libgcc_s.1.dylib 4}/usr/lib/libSystem.B.dylib|B}|}cx=1L}| x=24N |B}h|=kk1 }iN |B88!<<<8p88c0pH-?<_188B1,}bH-|dx}H,Q}<<8 8 80|8H,q<_=?B1<8)1 8 899@80b9 8H-q|dx}H,}H,}8!`8`|N |B$}H|?@ABCDEFGHIJKLMNO$' !(%)&#"IK/L0M8DE<9HJGN:?,-6>24371;=.OB5A@C+*F __mh_bundle_headerdyld_stub_binding_helper__dyld_func_lookupdyld__mach_header__cv_jit_mass_class_cv_jit_mass_Mass_cv_jit_mass_calculate_ndim_cv_jit_mass_free_cv_jit_mass_init_cv_jit_mass_matrix_calc_cv_jit_mass_new_cv_jit_mass_postcalc_cv_jit_mass_precalc_cv_jit_mass_vector_char_cv_jit_mass_vector_float32_cv_jit_mass_vector_float64_cv_jit_mass_vector_long_main_max_cv_jit_mass_assist_max_cv_jit_mass_bang_max_cv_jit_mass_class_max_cv_jit_mass_free_max_cv_jit_mass_mproc_max_cv_jit_mass_new_ps_getMass_ps_getmax_ps_getmin__jit_sym_atom__jit_sym_char__jit_sym_float32__jit_sym_float64__jit_sym_getdata__jit_sym_getindex__jit_sym_getinfo__jit_sym_getinputlist__jit_sym_getoutputlist__jit_sym_jit_attr_offset_array__jit_sym_jit_mop__jit_sym_list__jit_sym_lock__jit_sym_long__jit_sym_matrix_calc_addbang_addmess_error_freeobject_gensym_jit_atom_getfloat_jit_atom_getlong_jit_atom_setfloat_jit_class_addadornment_jit_class_addattr_jit_class_addmethod_jit_class_findbyname_jit_class_new_jit_class_register_jit_error_code_jit_freebytes_jit_getbytes_jit_object_alloc_jit_object_free_jit_object_method_jit_object_new_max_jit_attr_args_max_jit_classex_mop_mproc_max_jit_classex_mop_wrap_max_jit_classex_setup_max_jit_classex_standard_wrap_max_jit_mop_assist_max_jit_mop_free_max_jit_mop_getoutputmode_max_jit_mop_setup_simple_max_jit_obex_free_max_jit_obex_jitob_get_max_jit_obex_new_outlet_anything_outlet_float_outlet_int_outlet_new_setup CFBundleDevelopmentRegion English CFBundleExecutable cv.jit.mass CFBundleIdentifier com.jmp.cv.jit.mass CFBundleInfoDictionaryVersion 6.0 CFBundlePackageType iLaX CFBundleSignature max2 CFBundleVersion 1.7.2 CSResourcesFileMapped // M4L.chooser.js, menu control backend for the Poletti Chooser // Jeremy Bernstein (jeremy@cycling74.com) // © 2011 Cycling '74 autowatch = 1; inlets = 2; outlets = 4; var MenuTypes = { none : { fun: null, name: "None", container: null }, chain: { fun: null, name: "Chain", container: ["chains"], filterfun: filter_chain }, // only internal clip : { fun: iterate_clips_for_id, name: "Clip", container: ["clip_slots"] }, clipaudio : { fun: iterate_audioclips_for_id, name: "Audio clip", container: ["clip_slots"] }, clipmidi : { fun: iterate_midiclips_for_id, name: "MIDI clip", container: ["clip_slots"] }, clipslot : { fun: iterate_clipslots_for_id, name: "Clip slot", container: ["clip_slots"], filterfun: filter_clipslot }, cuepoint : { fun: iterate_cuepoints, name: "Cue point", container: ["cue_points", "live_set"], toplevel: true }, device : { fun: iterate_devices_for_id, name: "Device", container: ["devices", "mixer_device", "return_tracks", "master_track"], filterfun: filter_device }, parameter : { fun: iterate_parameters_for_id, name: "Parameter", container: ["parameters", "mixer_device\\s+\\S+"] }, fparam : { fun: iterate_fparameters_for_id, name: "Param (float)", container: ["parameters", "mixer_device\\s+\\S+"], filterfun: filter_fparam }, mixerparam : { fun: iterate_parameters_for_id, name: "Parameter", container: ["parameters", "mixer_device\\s+\\S+"] }, scene : { fun: iterate_scenes, name: "Scene", container: ["scenes", "live_set"], toplevel: true }, send : { fun: null, name: "Send", container: ["sends"] }, // only internal track : { fun: iterate_tracks, name: "Track", container: ["tracks", "master_track", "live_set"], filterfun: filter_track, toplevel: true }, trackaudio : { fun: iterate_audiotracks, name: "Audio track", container: ["tracks", "master_track", "live_set"], filterfun: filter_track, toplevel: true }, trackmidi : { fun: iterate_miditracks, name: "MIDI track", container: ["tracks", "master_track", "live_set"], filterfun: filter_track, toplevel: true }, trackreturn : { fun: iterate_returntracks, name: "Return tracks", container: ["return_tracks", "live_set"], filterfun: filter_track, toplevel: true }, }; // NOTE "live_set master_track crossfader" & "live_set master_track cue_volume" result in "get path: error calculating the path" errors // NOTE Observed device additions don't work (the new device appears with id 0, which is fairly useless). This appears to be a bug in Live, but I'm waiting for info. var Root = "live_set"; var Listener = null; var MenuAPI = null; // set a default type. useful in some cases. var LastType = jsarguments.length ? ((MenuTypes[jsarguments[1]]) ? MenuTypes[jsarguments[1]] : MenuTypes.none) : MenuTypes.none; var LastArgs = undefined; var LastData = undefined; var observe = 1; declareattribute("observe"); var master = 1; declareattribute("master"); var mixer = 1; declareattribute("mixer"); var returns = 1; declareattribute("returns"); var autoloadtoplevel = 1; declareattribute("autoloadtoplevel"); var TempAPI = new LiveAPI(); // uninitialized ///////////////////////////////////////// // USER FUNCTIONS // for these to work, the menu has to know what kind of menu it is, and what data it contains function path(inpath) { if (arguments.length > 1) { // join args if necessary var arr = arrayfromargs(arguments); inpath = arr.join(" "); } if (!MenuAPI || !MenuAPI.menudata.length) { do_iterate(); if ((!MenuAPI || !MenuAPI.menudata.length) && LastType != MenuTypes.none) { // we couldn't iterate, apparently // fallback code // analyze the path: does it contain a previous term that we _can_ iterate? var regexp = "^(.* \\d+).*?(" + LastType.container.join("|") + ").*?$"; var re = new RegExp(regexp); var m = re.exec(inpath); if (m) { // we have a valid path TempAPI.path = m[1]; do_iterate(TempAPI.id); // iterate on the previous term } } } //post("path: " + inpath + "\n"); if (MenuAPI) { // we already have contents, and therefore a type var regexp = "^(.*(" + MenuAPI.mtype.container.join("|") + ")( \\d+)?)(.*?)$" var re = new RegExp(regexp); var m = re.exec(inpath); var match = false; if (m) { // it matches our type var localpath = m[1]; //post("m[1]: " + m[1] + "\n"); for (var i = 0; i < MenuAPI.menudata.length; i++) { if (MenuAPI.menudata[i].path == localpath) { //post("matches index " + i + " of our menu\n"); outlet(0, i); // this will trigger a reset of the menu below us, in fact if (!m[m.length-1].match(/^\s*?$/)) { // pass the path on, there's more to parse outlet(2, "path", inpath); } else { //don't reset again -- we sent a reset with the outlet(0) call above //clear any objects below us //outlet(2, "reset"); //send downstream to next M4L.chooser } match = true; break; } } } if (!match) { if (inpath.match(/tracks/)) { inpath = tracks_to_scenes(inpath); } else if (inpath.match(/scenes/)) { inpath = scenes_to_tracks(inpath); } else { post("no match: " + inpath + "\n"); return; } if (inpath != null) { path(inpath); } } } } function reset() { id(0); } function id(inid) { if (inid == 0 && (!LastType.toplevel || (LastType.toplevel == true && autoloadtoplevel == 0))) { menu_clear(MenuAPI); outlets_clear(); LastData = undefined; return; } if (inid != 0) { TempAPI.id = inid; // no need to force iteration here. // the fallback code in path() will now find the parent of this "menu" and iterate it, if necessary. path(dequote(TempAPI.path)); } } function msg_int(i) { if (MenuAPI) { if (i >= 0 && i < MenuAPI.menudata.length && MenuAPI.menudata[i].id != null) { //post("msg_int: " + MenuAPI.menudata[i].path + ", id: " + MenuAPI.menudata[i].id + " (" + parseInt(MenuAPI.menudata[i].id) + ")\n"); outlet(2, "reset"); //send downstream outlet(1, parseInt(MenuAPI.menudata[i].id)); menu_checks(MenuAPI, i); } } } function gettype() { outlet(3, LastType.name); } // generic iterate based on last (or default) type function iterate(args) { do_iterate(args); // below is disabled -- not relevant for normal usage /* var cld = LastData; do_iterate(args); if (cld !== undefined) { for (var i = 0; i < MenuAPI.menudata.length; i++) { if (MenuAPI.menudata[i].id == cld.id) { if (MenuAPI.menudata[i].name == "This Track" && MenuAPI.menudata[i].name != cld.name) continue; menu_set(MenuAPI, i); break; } } } */ } function do_iterate(args) { var fun; if (LastType != MenuTypes.none) { fun = LastType.fun; } else return; outlets_clear(); LastArgs = args; fun(args); } do_iterate.local = 1; function bang() { if (LastType != MenuTypes.none) { LastData = undefined; do_iterate(LastArgs); } } function iterate_tracks() { LastArgs = undefined; MenuAPI = new LiveAPIMenu(MenuTypes.track, Root); if (MenuAPI) { iterate_internal(MenuAPI, observe); } } function iterate_audiotracks() { LastArgs = undefined; MenuAPI = new LiveAPIMenu(MenuTypes.trackaudio, Root); if (MenuAPI) { iterate_internal(MenuAPI, observe); } } function iterate_miditracks() { LastArgs = undefined; MenuAPI = new LiveAPIMenu(MenuTypes.trackmidi, Root); if (MenuAPI) { iterate_internal(MenuAPI, observe); } } function iterate_returntracks() { LastArgs = undefined; MenuAPI = new LiveAPIMenu(MenuTypes.trackreturn, Root); if (MenuAPI) { iterate_internal(MenuAPI, observe); } } function iterate_devices_for_id(id) { if (id == 0 || id === undefined) return; LastArgs = arrayfromargs(arguments); MenuAPI = new LiveAPIMenu(MenuTypes.device, "id " + id); if (MenuAPI) { iterate_internal(MenuAPI, observe); } } function iterate_parameters_for_id(id) { if (id == 0 || id === undefined) return; LastArgs = arrayfromargs(arguments); MenuAPI = new LiveAPIMenu(MenuTypes.parameter, "id " + id); if (MenuAPI) { if (MenuAPI.path.match(/mixer_device/)) { MenuAPI.mtype = MenuTypes.mixerparam; // this is a special case } iterate_internal(MenuAPI, observe); } } function iterate_fparameters_for_id(id) { if (id == 0 || id === undefined) return; LastArgs = arrayfromargs(arguments); MenuAPI = new LiveAPIMenu(MenuTypes.fparam, "id " + id); if (MenuAPI) { if (MenuAPI.path.match(/mixer_device/)) { MenuAPI.mtype = MenuTypes.mixerparam; // these are all floats, no additional filter necessary } iterate_internal(MenuAPI, observe); } } function iterate_scenes() { LastArgs = undefined; MenuAPI = new LiveAPIMenu(MenuTypes.scene, Root); if (MenuAPI) { iterate_internal(MenuAPI, observe); } } function iterate_clips_for_id(id) { if (id == 0 || id === undefined) return; LastArgs = arrayfromargs(arguments); MenuAPI = new LiveAPIMenu(MenuTypes.clip, "id " + id); if (MenuAPI) { iterate_internal(MenuAPI, observe); } } function iterate_audioclips_for_id(id) { if (id == 0 || id === undefined) return; LastArgs = arrayfromargs(arguments); MenuAPI = new LiveAPIMenu(MenuTypes.clipaudio, "id " + id); if (MenuAPI) { iterate_internal(MenuAPI, observe); } } function iterate_midiclips_for_id(id) { if (id == 0 || id === undefined) return; LastArgs = arrayfromargs(arguments); MenuAPI = new LiveAPIMenu(MenuTypes.clipmidi, "id " + id); if (MenuAPI) { iterate_internal(MenuAPI, observe); } } function iterate_clipslots_for_id(id) { if (id == 0 || id === undefined) return; LastArgs = arrayfromargs(arguments); MenuAPI = new LiveAPIMenu(MenuTypes.clipslot, "id " + id); if (MenuAPI) { iterate_internal(MenuAPI, observe); } } function iterate_cuepoints() { LastArgs = undefined; MenuAPI = new LiveAPIMenu(MenuTypes.cuepoint, Root); if (MenuAPI) { iterate_internal(MenuAPI, observe); } } ///////////////////////////////// // INTERNAL FUNCTIONS function get_name(api) { var name = api.get("name"); if (name == "" || name == undefined || !name) { name = "unnamed"; } return name; } get_name.local = 1; var thistrack = true; function add_header(api) { if (thistrack == true && (api.mtype === MenuTypes.track || api.mtype === MenuTypes.trackaudio || api.mtype === MenuTypes.trackmidi || api.mtype === MenuTypes.trackreturn)) { // This Track api.path = "this_device canonical_parent"; api.menudata.push({id: api.id, name: "This Track", path: dequote(api.path)}); menu_separator(api); return true; } else if (api.mtype === MenuTypes.device) { var target = dequote(api.path); if (target.match(/.*?chains \d+$/)) { // always show the chain mixer (don't test for 'mixer') api.path = target + " mixer_device"; api.menudata.push({id: api.id, name: "Chain Mixer", path: dequote(api.path)}); return true; } } return false; } add_header.local = 1; function add_footer(api) { var name; var rv = false; if (api.mtype === MenuTypes.track) { if (returns) { // hack var blt = LastType; var ret = new LiveAPIMenu(MenuTypes.trackreturn, Root, false); if (ret) { thistrack = false; iterate_internal_guts(ret, 0); thistrack = true; } if (ret.menudata.length) { menu_separator(api); api.menudata = api.menudata.concat(ret.menudata); } LastType = blt; ret.id = 0; // shut it down rv = true; } if (master) { if (api.menudata.length) { menu_separator(api); } api.path = Root + " master_track"; api.menudata.push({id: api.id, name: api.get("name"), path: Root + " master_track"}); rv = true; } return true; } else if (api.mtype === MenuTypes.device) { if (mixer && api.get("has_audio_output") == 1) { var path = dequote(api.path); if (api.menudata.length) { menu_separator(api); } api.path = path + " mixer_device"; api.menudata.push({id: api.id, name: "Mixer", path: dequote(api.path)}); rv = true; } } return rv; } add_footer.local = 1; function iterate_internal_mixerparam(api, obs) { var target = dequote(api.path); var name; menu_clear(api); var children = api.children; ////// hack to fix ableton broken output for k_epii_PathChildren var re = new RegExp(/.*?canonical_parent (.*?)$/); var m = re.exec(children.join(" ")); if (m) children = m[1].split(" "); // this won't work for quoted terms, though, but it's a hack anyway ////// end hack for (var i = 0; i < children.length; i++) { if (children[i] == "canonical_parent") continue; if (children[i] == "sends") { // have to iterate // hack var blt = LastType; var ret = new LiveAPIMenu(MenuTypes.send, target, false); if (ret) { iterate_internal_guts(ret, 0); for (var j = 0; j < ret.menudata.length; j++) { ret.menudata[j].name = "Send " + ret.menudata[j].name; } api.menudata = api.menudata.concat(ret.menudata); } LastType = blt; ret.id = 0; // shut it down continue; } api.path = target + " " + children[i]; name = (children[i].charAt(0).toUpperCase() + children[i].slice(1)).replace(/_/g, " "); api.menudata.push({id: api.id, name: name, path: target + " " + children[i]}); } menu_output(api); } iterate_internal_mixerparam.local = 1; function iterate_internal_clip(api, obs) { var target = dequote(api.path); var path; menu_clear(api); if (Listener == null) { Listener = new LiveAPI(cb); } if (obs == 1) { Listener.mtype = api.mtype; Listener.property = ""; Listener.path = target; Listener.property = api.mtype.container[0]; } else { if (add_header(api) === true) { api.path = target; } var count = api.getcount(api.mtype.container[0]); for (var i = 0; i < count; i++) { path = target + " " + api.mtype.container[0] + " " + i; api.path = path; if (api.get("has_clip") == 1) { api.path = path + " clip"; if ((api.mtype === MenuTypes.clipaudio && api.get("is_audio_clip") == 1) || (api.mtype === MenuTypes.clipmidi && api.get("is_midi_clip") == 1) || api.mtype === MenuTypes.clip) { var name = get_name(api); api.menudata.push({id: api.id, name: name, path: target + " " + api.mtype.container[0] + " " + i}); } } } api.path = target; add_footer(api); menu_output(api); } } iterate_internal_clip.local = 1; function iterate_internal_guts(api, obs) { var target = dequote(api.path); if (Listener == null) { Listener = new LiveAPI(cb); } if (obs == 1) { Listener.mtype = api.mtype; Listener.property = ""; Listener.path = target; Listener.property = api.mtype.container[0]; return false; } else { if (add_header(api) === true) { api.path = target; } var count = api.getcount(api.mtype.container[0]); //post(count + " " + api.mtype.name + "\n"); for (var i = 0; i < count; i++) { api.path = target + " " + api.mtype.container[0] + " " + i; if (api.mtype.filterfun && api.mtype.filterfun(api) == false) continue; var name = get_name(api); api.menudata.push({id: api.id, name: name, path: target + " " + api.mtype.container[0] + " " + i}); } api.path = target; add_footer(api); } return true; } iterate_internal_guts.local = 1; function iterate_internal(api, obs) { if (api.mtype === MenuTypes.clip || api.mtype === MenuTypes.clipaudio || api.mtype === MenuTypes.clipmidi) { return iterate_internal_clip(api, obs); } else if (api.mtype === MenuTypes.mixerparam) { return iterate_internal_mixerparam(api, obs); } menu_clear(api); if (iterate_internal_guts(api, obs) == true) { menu_output(api); } } iterate_internal.local = 1; function filter_track(api) { if ((api.mtype === MenuTypes.trackaudio && api.get("has_audio_input") == 1) || (api.mtype === MenuTypes.trackmidi && api.get("has_midi_input") == 1) || api.mtype === MenuTypes.track || api.mtype === MenuTypes.trackreturn) { return true; } return false; } filter_track.local = 1; function filter_clipslot(api) { var target = dequote(api.path); var name = parseInt(target.match(/.*?(\d+)$/)[1]) + 1; api.menudata.push({id: api.id, name: name, path: target}) return false; } filter_clipslot.local = 1; // this is an abuse of the filter functionality, but what the hell // we're going to use this to add device chains to the menu, if they exist var DeviceIter = 0; // ugly global variable usage here. function filter_device(api) { var children = api.children; if (!children.join(" ").match(/\s+?chains\s+/)) { return true; // no chains, no problem } var blt = LastType; var target = dequote(api.path); var chains = new RecursiveAPIMenu(MenuTypes.chain, target); if (chains) { api.menudata.push({id: api.id, name: api.get("name"), path: target}); DeviceIter++; iterate_internal_guts(chains, 0); DeviceIter--; if (DeviceIter == 0) { for (var i = 0; i < chains.menudata.length; i++) { var iter = chains.menudata[i].path.match(/\s+?chains\s+/g); var spacing = ""; for (var j = 0; j < iter.length; j++) { spacing += "-"; } if (spacing != "") spacing += " "; chains.menudata[i].name = /*'"' +*/ spacing + chains.menudata[i].name /*+ '"'*/; } } api.menudata = api.menudata.concat(chains.menudata); RecursiveAPIMenuDispose(chains); } LastType = blt; return false; } filter_device.local = 1; function filter_chain(api) { var children = api.children; if (!children.join(" ").match(/\s*?devices\s*?/)) { return true; // no devices, no problem } var blt = LastType; var devs = new RecursiveAPIMenu(MenuTypes.device, dequote(api.path)); if (devs) { var bmx = mixer; mixer = 0; iterate_internal_guts(devs, 0); mixer = bmx; api.menudata = api.menudata.concat(devs.menudata); RecursiveAPIMenuDispose(devs); } LastType = blt; return false; // don't add the chains themselves, just the devices } filter_chain.local = 1; function filter_fparam(api) { if (api.get("is_quantized") == 0) { return true; } return false; } filter_fparam.local = 1; function dequote(string) { return string.replace(/\"/g, ""); } dequote.local = 1; function menu_separator(api) { api.menudata.push({id: null, name: "-", path: ""}); } menu_separator.local = 1; function menu_clear(api) { outlet(0, "clear"); outlet(0, "fontface","italic"); outlet(0, "textcolor", 0.42, 0.45, 0.53, 1.); if (api) { api.menudata.splice(0, api.menudata.length); } //LastData = undefined; } menu_clear.local = 1; function menu_output(api) { for (var i = 0; i < api.menudata.length; i++) { outlet(0, "append", api.menudata[i].name); } } menu_output.local = 1; function menu_checks(api, i) { if (api) { outlet(0, "fontface", "regular"); outlet(0, "textcolor", 0.09, 0.11, 0.14, 1.); outlet(0, "clearchecks"); outlet(0, "checkitem", i); LastData = api.menudata[i]; } } menu_checks.local = 1; function menu_set(api, i) { outlet(0, "set", i); menu_checks(api, i); } menu_set.local = 1; function outlets_clear() { outlet(2, "reset"); //send downstream outlet(1, 0); // we just got cleared, send id 0 } outlets_clear.local = 1; function cb(args) { var a = arrayfromargs(args); if (a[0] === "id") { //post("got id " + a[1] + "\n"); } else { //post("'" + this.mtype.container[0] + "'" + "\n"); //post("'" + a + "'" + "\n"); if (a[0] === this.mtype.container[0]) { // just to be sure var cld = LastData; MenuAPI = new LiveAPIMenu(this.mtype, "id " + this.id); // replace contents if (MenuAPI) { iterate_internal(MenuAPI, 0); } if (cld !== undefined) { for (i = 0; i < MenuAPI.menudata.length; i++) { if (MenuAPI.menudata[i].id == cld.id) { if (MenuAPI.menudata[i].name == "This Track" && MenuAPI.menudata[i].name != cld.name) continue; menu_set(MenuAPI, i); break; } } } } } } cb.local = 1; // these two functions take a path to a clip and convert it into the "other direction" function tracks_to_scenes(inpath, inid) { inpath = dequote(inpath); var re = new RegExp(/(.*?)tracks (\d+) clip_slots (\d+) clip/); var m = re.exec(inpath); if (m == null) { return null; } else { var outpath = m[1] + "scenes " + m[3] + " clip_slots " + m[2] + " clip"; if (inid) { // if we want to be sure that it's there TempAPI.path = outpath; if (TempAPI.id == inid) { return outpath; } } else return outpath; } return null; } tracks_to_scenes.local = 1; function scenes_to_tracks(inpath, inid) { inpath = dequote(inpath); var re = new RegExp(/(.*?)scenes (\d+) clip_slots (\d+) clip/); var m = re.exec(inpath); if (m == null) { return null; } else { var outpath = m[1] + "tracks " + m[3] + " clip_slots " + m[2] + " clip"; if (inid) { // if we want to be sure that it's there TempAPI.path = outpath; if (TempAPI.id == inid) { return outpath; } } else return outpath; } return null; } scenes_to_tracks.local = 1; var GlobalAPIMenu = new LiveAPI(); // uninitialized GlobalAPIMenu.menudata = new Array(); var TempAPIMenu = new LiveAPI(); // uninitialized TempAPIMenu.menudata = new Array(); var TempRecursiveAPIMenu = new Array(); // don't populate unless needed var TempRecursiveAPIMenuLevel = 0; function RecursiveAPIMenu(type, path) { var api; // get the next item in the recursive array if (TempRecursiveAPIMenuLevel < TempRecursiveAPIMenu.length) { api = TempRecursiveAPIMenu[TempRecursiveAPIMenuLevel]; } else { api = new LiveAPI(); api.menudata = new Array(); TempRecursiveAPIMenu[TempRecursiveAPIMenuLevel] = api; } TempRecursiveAPIMenuLevel++; if (api) { // check for an "id" path -- we can't use it directly var id = /^id (\d+)$/.exec(path); if (id) { api.id = parseInt(id[1]); } else { api.path = path; } api.mtype = type; LastType = type; api.menudata.splice(0, api.menudata.length); } return api; } function RecursiveAPIMenuDispose(api) { if (TempRecursiveAPIMenuLevel <= 0) return; if (TempRecursiveAPIMenu[TempRecursiveAPIMenuLevel-1] == api) { api.id = 0; api.mtype = MenuTypes.none; api.menudata.splice(0, api.menudata.length); TempRecursiveAPIMenuLevel--; } } function LiveAPIMenu(type, path, global) { var api; if (global == true || global === undefined) { api = GlobalAPIMenu; } else { api = TempAPIMenu; } if (api) { // check for an "id" path -- we can't use it directly var id = /^id (\d+)$/.exec(path); if (id) { api.id = parseInt(id[1]); } else { api.path = path; } api.mtype = type; LastType = type; api.menudata.splice(0, api.menudata.length); } return api; } dlstdiredtype JSONfnamCamMap.amxdsz32 3?of32 vers flag mdat direhtype iLaXfnamcv.jit.mass.mxosz32 of32 3Overs flag mdat idireptype fnam cv.jit.mass/executablesz32 \of32 3Svers flag mdat idireltype fnamcv.jit.mass/plistsz32 of32 vers flag mdat idirehtype TEXTfnamM4L.chooser.jssz32 cof32 8vers flag mdat 9