{
	"patcher" : 	{
		"fileversion" : 1,
		"appversion" : 		{
			"major" : 9,
			"minor" : 0,
			"revision" : 9,
			"architecture" : "x64",
			"modernui" : 1
		}
,
		"classnamespace" : "box",
		"rect" : [ 34.0, 87.0, 1356.0, 721.0 ],
		"gridsize" : [ 15.0, 15.0 ],
		"boxes" : [ 			{
				"box" : 				{
					"attr" : "rate",
					"id" : "obj-76",
					"maxclass" : "attrui",
					"numinlets" : 1,
					"numoutlets" : 1,
					"outlettype" : [ "" ],
					"parameter_enable" : 0,
					"patching_rect" : [ 704.225361347198486, 880.281701683998108, 150.0, 22.0 ],
					"text_width" : 94.0
				}

			}
, 			{
				"box" : 				{
					"attr" : "shape",
					"id" : "obj-77",
					"maxclass" : "attrui",
					"numinlets" : 1,
					"numoutlets" : 1,
					"outlettype" : [ "" ],
					"parameter_enable" : 0,
					"patching_rect" : [ 704.225361347198486, 856.338039398193359, 150.0, 22.0 ]
				}

			}
, 			{
				"box" : 				{
					"attr" : "jitter",
					"id" : "obj-78",
					"maxclass" : "attrui",
					"numinlets" : 1,
					"numoutlets" : 1,
					"outlettype" : [ "" ],
					"parameter_enable" : 0,
					"patching_rect" : [ 704.225361347198486, 832.394377112388611, 150.0, 22.0 ]
				}

			}
, 			{
				"box" : 				{
					"attr" : "bitdepth",
					"id" : "obj-79",
					"maxclass" : "attrui",
					"numinlets" : 1,
					"numoutlets" : 1,
					"outlettype" : [ "" ],
					"parameter_enable" : 0,
					"patching_rect" : [ 704.225361347198486, 808.450714826583862, 150.0, 22.0 ]
				}

			}
, 			{
				"box" : 				{
					"id" : "obj-80",
					"maxclass" : "newobj",
					"numinlets" : 5,
					"numoutlets" : 2,
					"outlettype" : [ "signal", "signal" ],
					"patching_rect" : [ 438.028174757957458, 915.492969751358032, 136.0, 22.0 ],
					"text" : "abl.device.redux~"
				}

			}
, 			{
				"box" : 				{
					"id" : "obj-74",
					"maxclass" : "button",
					"numinlets" : 1,
					"numoutlets" : 1,
					"outlettype" : [ "bang" ],
					"parameter_enable" : 0,
					"patching_rect" : [ 151.041660904884338, 312.499988079071045, 24.0, 24.0 ]
				}

			}
, 			{
				"box" : 				{
					"id" : "obj-63",
					"maxclass" : "comment",
					"numinlets" : 1,
					"numoutlets" : 0,
					"patching_rect" : [ 840.115946769714355, 708.695658087730408, 23.0, 20.0 ],
					"text" : "dB"
				}

			}
, 			{
				"box" : 				{
					"id" : "obj-64",
					"maxclass" : "comment",
					"numinlets" : 1,
					"numoutlets" : 0,
					"patching_rect" : [ 840.115946769714355, 685.507252097129822, 23.0, 20.0 ],
					"text" : "dB"
				}

			}
, 			{
				"box" : 				{
					"attr" : "input",
					"id" : "obj-65",
					"maxclass" : "attrui",
					"numinlets" : 1,
					"numoutlets" : 1,
					"outlettype" : [ "" ],
					"parameter_enable" : 0,
					"patching_rect" : [ 685.043481707572937, 685.507252097129822, 150.0, 22.0 ]
				}

			}
, 			{
				"box" : 				{
					"attr" : "delay",
					"id" : "obj-11",
					"maxclass" : "attrui",
					"numinlets" : 1,
					"numoutlets" : 1,
					"outlettype" : [ "" ],
					"parameter_enable" : 0,
					"patching_rect" : [ 512.579712152481079, 644.927541613578796, 218.0, 22.0 ]
				}

			}
, 			{
				"box" : 				{
					"id" : "obj-9",
					"lastchannelcount" : 0,
					"maxclass" : "live.gain~",
					"numinlets" : 2,
					"numoutlets" : 5,
					"orientation" : 1,
					"outlettype" : [ "signal", "signal", "", "float", "list" ],
					"parameter_enable" : 1,
					"patching_rect" : [ 272.0, 977.142880439758301, 136.0, 47.0 ],
					"saved_attribute_attributes" : 					{
						"valueof" : 						{
							"parameter_initial" : [ -12 ],
							"parameter_initial_enable" : 1,
							"parameter_longname" : "live.gain~",
							"parameter_mmax" : 6.0,
							"parameter_mmin" : -70.0,
							"parameter_modmode" : 0,
							"parameter_shortname" : "live.gain~",
							"parameter_type" : 0,
							"parameter_unitstyle" : 4
						}

					}
,
					"varname" : "live.gain~"
				}

			}
, 			{
				"box" : 				{
					"id" : "obj-68",
					"local" : 1,
					"maxclass" : "ezdac~",
					"numinlets" : 2,
					"numoutlets" : 0,
					"patching_rect" : [ 272.0, 1050.000025033950806, 45.0, 45.0 ]
				}

			}
, 			{
				"box" : 				{
					"id" : "obj-69",
					"maxclass" : "newobj",
					"numinlets" : 2,
					"numoutlets" : 2,
					"outlettype" : [ "signal", "signal" ],
					"patching_rect" : [ 272.0, 776.811600685119629, 99.0, 22.0 ],
					"text" : "abl.device.echo~"
				}

			}
, 			{
				"box" : 				{
					"attr" : "mix",
					"id" : "obj-70",
					"maxclass" : "attrui",
					"numinlets" : 1,
					"numoutlets" : 1,
					"outlettype" : [ "" ],
					"parameter_enable" : 0,
					"patching_rect" : [ 512.579712152481079, 708.695658087730408, 150.0, 22.0 ]
				}

			}
, 			{
				"box" : 				{
					"attr" : "feedback",
					"id" : "obj-71",
					"maxclass" : "attrui",
					"numinlets" : 1,
					"numoutlets" : 1,
					"outlettype" : [ "" ],
					"parameter_enable" : 0,
					"patching_rect" : [ 512.579712152481079, 685.507252097129822, 150.0, 22.0 ]
				}

			}
, 			{
				"box" : 				{
					"attr" : "output",
					"id" : "obj-72",
					"maxclass" : "attrui",
					"numinlets" : 1,
					"numoutlets" : 1,
					"outlettype" : [ "" ],
					"parameter_enable" : 0,
					"patching_rect" : [ 685.043481707572937, 708.695658087730408, 150.0, 22.0 ]
				}

			}
, 			{
				"box" : 				{
					"format" : 6,
					"id" : "obj-10",
					"maxclass" : "flonum",
					"numinlets" : 1,
					"numoutlets" : 2,
					"outlettype" : [ "", "bang" ],
					"parameter_enable" : 0,
					"patching_rect" : [ 1503.077066421508789, 178.461555480957031, 50.0, 22.0 ]
				}

			}
, 			{
				"box" : 				{
					"format" : 6,
					"id" : "obj-12",
					"maxclass" : "flonum",
					"numinlets" : 1,
					"numoutlets" : 2,
					"outlettype" : [ "", "bang" ],
					"parameter_enable" : 0,
					"patching_rect" : [ 1427.69244384765625, 178.461555480957031, 50.0, 22.0 ]
				}

			}
, 			{
				"box" : 				{
					"id" : "obj-14",
					"maxclass" : "message",
					"numinlets" : 2,
					"numoutlets" : 1,
					"outlettype" : [ "" ],
					"patching_rect" : [ 1503.077066421508789, 243.076946258544922, 72.0, 22.0 ],
					"text" : "velocity2 $1"
				}

			}
, 			{
				"box" : 				{
					"id" : "obj-35",
					"maxclass" : "message",
					"numinlets" : 2,
					"numoutlets" : 1,
					"outlettype" : [ "" ],
					"patching_rect" : [ 1427.69244384765625, 243.076946258544922, 72.0, 22.0 ],
					"text" : "velocity1 $1"
				}

			}
, 			{
				"box" : 				{
					"format" : 6,
					"id" : "obj-30",
					"maxclass" : "flonum",
					"numinlets" : 1,
					"numoutlets" : 2,
					"outlettype" : [ "", "bang" ],
					"parameter_enable" : 0,
					"patching_rect" : [ 1336.92320442199707, 178.461555480957031, 50.0, 22.0 ]
				}

			}
, 			{
				"box" : 				{
					"format" : 6,
					"id" : "obj-16",
					"maxclass" : "flonum",
					"numinlets" : 1,
					"numoutlets" : 2,
					"outlettype" : [ "", "bang" ],
					"parameter_enable" : 0,
					"patching_rect" : [ 1261.538581848144531, 178.461555480957031, 50.0, 22.0 ]
				}

			}
, 			{
				"box" : 				{
					"id" : "obj-25",
					"maxclass" : "message",
					"numinlets" : 2,
					"numoutlets" : 1,
					"outlettype" : [ "" ],
					"patching_rect" : [ 1336.92320442199707, 243.076946258544922, 61.0, 22.0 ],
					"text" : "angle2 $1"
				}

			}
, 			{
				"box" : 				{
					"id" : "obj-24",
					"maxclass" : "message",
					"numinlets" : 2,
					"numoutlets" : 1,
					"outlettype" : [ "" ],
					"patching_rect" : [ 1261.538581848144531, 243.076946258544922, 61.0, 22.0 ],
					"text" : "angle1 $1"
				}

			}
, 			{
				"box" : 				{
					"bubblesize" : 20,
					"id" : "obj-17",
					"maxclass" : "preset",
					"numinlets" : 1,
					"numoutlets" : 5,
					"outlettype" : [ "preset", "int", "preset", "int", "" ],
					"patching_rect" : [ 1463.077062606811523, 841.538541793823242, 227.131786465644836, 35.658915281295776 ],
					"preset_data" : [ 						{
							"number" : 1,
							"data" : [ 5, "obj-76", "attrui", "attr", "rate", 5, "obj-76", "attrui", "float", 40000.0, 5, "obj-77", "attrui", "attr", "shape", 5, "obj-77", "attrui", "float", 0.8, 5, "obj-78", "attrui", "attr", "jitter", 5, "obj-78", "attrui", "float", 1.0, 5, "obj-79", "attrui", "attr", "bitdepth", 5, "obj-79", "attrui", "int", 7, 5, "obj-56", "number", "float", 0.0, 5, "obj-52", "number", "int", 0, 5, "obj-71", "attrui", "attr", "feedback", 5, "obj-71", "attrui", "float", 0.61, 5, "obj-11", "attrui", "attr", "delay", 6, "obj-11", "attrui", "list", 0.001, 0.0062 ]
						}
, 						{
							"number" : 2,
							"data" : [ 5, "obj-76", "attrui", "attr", "rate", 5, "obj-76", "attrui", "float", 20000.0, 5, "obj-77", "attrui", "attr", "shape", 5, "obj-77", "attrui", "float", 0.45, 5, "obj-78", "attrui", "attr", "jitter", 5, "obj-78", "attrui", "float", 1.0, 5, "obj-79", "attrui", "attr", "bitdepth", 5, "obj-79", "attrui", "int", 7, 5, "obj-56", "number", "float", 0.0, 5, "obj-52", "number", "int", 0, 5, "obj-71", "attrui", "attr", "feedback", 5, "obj-71", "attrui", "float", 0.61, 5, "obj-11", "attrui", "attr", "delay", 6, "obj-11", "attrui", "list", 0.041, 0.0062 ]
						}
, 						{
							"number" : 3,
							"data" : [ 5, "obj-76", "attrui", "attr", "rate", 5, "obj-76", "attrui", "float", 40000.0, 5, "obj-77", "attrui", "attr", "shape", 5, "obj-77", "attrui", "float", 0.0, 5, "obj-78", "attrui", "attr", "jitter", 5, "obj-78", "attrui", "float", 0.0, 5, "obj-79", "attrui", "attr", "bitdepth", 5, "obj-79", "attrui", "int", 1, 5, "obj-56", "number", "float", 0.830999970436096, 5, "obj-52", "number", "int", 5484, 5, "obj-71", "attrui", "attr", "feedback", 5, "obj-71", "attrui", "float", 0.76, 5, "obj-11", "attrui", "attr", "delay", 6, "obj-11", "attrui", "list", 0.001, 0.001 ]
						}
, 						{
							"number" : 4,
							"data" : [ 5, "obj-76", "attrui", "attr", "rate", 5, "obj-76", "attrui", "float", 40000.0, 5, "obj-77", "attrui", "attr", "shape", 5, "obj-77", "attrui", "float", 0.0, 5, "obj-78", "attrui", "attr", "jitter", 5, "obj-78", "attrui", "float", 0.0, 5, "obj-79", "attrui", "attr", "bitdepth", 5, "obj-79", "attrui", "int", 1, 5, "obj-56", "number", "float", 0.0, 5, "obj-52", "number", "int", 0, 5, "obj-71", "attrui", "attr", "feedback", 5, "obj-71", "attrui", "float", 0.76, 5, "obj-11", "attrui", "attr", "delay", 6, "obj-11", "attrui", "list", 0.001, 0.001 ]
						}
, 						{
							"number" : 5,
							"data" : [ 5, "obj-76", "attrui", "attr", "rate", 5, "obj-76", "attrui", "float", 40000.0, 5, "obj-77", "attrui", "attr", "shape", 5, "obj-77", "attrui", "float", 0.0, 5, "obj-78", "attrui", "attr", "jitter", 5, "obj-78", "attrui", "float", 0.0, 5, "obj-79", "attrui", "attr", "bitdepth", 5, "obj-79", "attrui", "int", 10, 5, "obj-56", "number", "float", 0.830999970436096, 5, "obj-52", "number", "int", 5484, 5, "obj-71", "attrui", "attr", "feedback", 5, "obj-71", "attrui", "float", 0.76, 5, "obj-11", "attrui", "attr", "delay", 6, "obj-11", "attrui", "list", 0.011, 0.0035 ]
						}
, 						{
							"number" : 6,
							"data" : [ 5, "obj-76", "attrui", "attr", "rate", 5, "obj-76", "attrui", "float", 40000.0, 5, "obj-77", "attrui", "attr", "shape", 5, "obj-77", "attrui", "float", 0.0, 5, "obj-78", "attrui", "attr", "jitter", 5, "obj-78", "attrui", "float", 0.91, 5, "obj-79", "attrui", "attr", "bitdepth", 5, "obj-79", "attrui", "int", 7, 5, "obj-56", "number", "float", 0.830999970436096, 5, "obj-52", "number", "int", 4321, 5, "obj-71", "attrui", "attr", "feedback", 5, "obj-71", "attrui", "float", 0.76, 5, "obj-11", "attrui", "attr", "delay", 6, "obj-11", "attrui", "list", 0.012, 0.001 ]
						}
, 						{
							"number" : 7,
							"data" : [ 5, "obj-76", "attrui", "attr", "rate", 5, "obj-76", "attrui", "float", 40000.0, 5, "obj-77", "attrui", "attr", "shape", 5, "obj-77", "attrui", "float", 0.0, 5, "obj-78", "attrui", "attr", "jitter", 5, "obj-78", "attrui", "float", 0.0, 5, "obj-79", "attrui", "attr", "bitdepth", 5, "obj-79", "attrui", "int", 11, 5, "obj-56", "number", "float", 0.830999970436096, 5, "obj-52", "number", "int", 3668, 5, "obj-71", "attrui", "attr", "feedback", 5, "obj-71", "attrui", "float", 0.76, 5, "obj-11", "attrui", "attr", "delay", 6, "obj-11", "attrui", "list", 0.001, 0.001 ]
						}
, 						{
							"number" : 8,
							"data" : [ 5, "obj-76", "attrui", "attr", "rate", 5, "obj-76", "attrui", "float", 40000.0, 5, "obj-77", "attrui", "attr", "shape", 5, "obj-77", "attrui", "float", 0.0, 5, "obj-78", "attrui", "attr", "jitter", 5, "obj-78", "attrui", "float", 0.0, 5, "obj-79", "attrui", "attr", "bitdepth", 5, "obj-79", "attrui", "int", 12, 5, "obj-56", "number", "float", 0.830999970436096, 5, "obj-52", "number", "int", 1884, 5, "obj-71", "attrui", "attr", "feedback", 5, "obj-71", "attrui", "float", 0.76, 5, "obj-11", "attrui", "attr", "delay", 6, "obj-11", "attrui", "list", 0.018, 0.00129 ]
						}
, 						{
							"number" : 9,
							"data" : [ 5, "obj-76", "attrui", "attr", "rate", 5, "obj-76", "attrui", "float", 40000.0, 5, "obj-77", "attrui", "attr", "shape", 5, "obj-77", "attrui", "float", 0.0, 5, "obj-78", "attrui", "attr", "jitter", 5, "obj-78", "attrui", "float", 0.0, 5, "obj-79", "attrui", "attr", "bitdepth", 5, "obj-79", "attrui", "int", 16, 5, "obj-56", "number", "float", 0.050000000745058, 5, "obj-52", "number", "int", 1992, 5, "obj-71", "attrui", "attr", "feedback", 5, "obj-71", "attrui", "float", 0.76, 5, "obj-11", "attrui", "attr", "delay", 6, "obj-11", "attrui", "list", 0.018, 0.00129 ]
						}
 ]
				}

			}
, 			{
				"box" : 				{
					"format" : 6,
					"id" : "obj-20",
					"maxclass" : "flonum",
					"numinlets" : 1,
					"numoutlets" : 2,
					"outlettype" : [ "", "bang" ],
					"parameter_enable" : 0,
					"patching_rect" : [ 1049.230869293212891, 221.538482666015625, 50.0, 22.0 ]
				}

			}
, 			{
				"box" : 				{
					"id" : "obj-22",
					"maxclass" : "message",
					"numinlets" : 2,
					"numoutlets" : 1,
					"outlettype" : [ "" ],
					"patching_rect" : [ 1049.230869293212891, 255.384639739990234, 61.0, 22.0 ],
					"text" : "gravity $1"
				}

			}
, 			{
				"box" : 				{
					"fontsize" : 18.0,
					"id" : "obj-23",
					"maxclass" : "comment",
					"numinlets" : 1,
					"numoutlets" : 0,
					"patching_rect" : [ 466.153890609741211, 513.846202850341797, 525.0, 27.0 ],
					"text" : "Max 9 - double pendulum physics in v8ui + nodes + mc objects"
				}

			}
, 			{
				"box" : 				{
					"bgcolor" : [ 0.113725490196078, 0.113725490196078, 0.113725490196078, 0.0 ],
					"candycane" : 8,
					"candycane2" : [ 0.145098039215686, 0.356862745098039, 0.215686274509804, 0.16 ],
					"disabledalpha" : 0.34,
					"displayknob" : 1,
					"id" : "obj-28",
					"knobsize" : 20.0,
					"maxclass" : "nodes",
					"nodecolor" : [ 0.247058823529412, 0.250980392156863, 0.407843137254902, 0.19 ],
					"nodenumber" : 9,
					"nodesnames" : [ "1", "2", "3", "4", "5", "6", "7", "8", "9" ],
					"nsize" : [ 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.240266 ],
					"numinlets" : 1,
					"numoutlets" : 3,
					"outlettype" : [ "", "", "" ],
					"parameter_enable" : 0,
					"patching_rect" : [ 1603.077075958251953, 412.307731628417969, 375.454532027244568, 379.999986410140991 ],
					"pointcolor" : [ 0.592156862745098, 0.282352941176471, 0.282352941176471, 1.0 ],
					"xplace" : [ 0.5, 0.765165042944955, 0.875, 0.765165042944955, 0.5, 0.234834957055045, 0.125, 0.234834957055045, 0.498062971807277 ],
					"yplace" : [ 0.125, 0.234834957055045, 0.5, 0.765165042944955, 0.875, 0.765165042944955, 0.5, 0.234834957055045, 0.48947370171547 ]
				}

			}
, 			{
				"box" : 				{
					"format" : 6,
					"id" : "obj-33",
					"maxclass" : "flonum",
					"numinlets" : 1,
					"numoutlets" : 2,
					"outlettype" : [ "", "bang" ],
					"parameter_enable" : 0,
					"patching_rect" : [ 932.307781219482422, 369.230804443359375, 50.0, 22.0 ]
				}

			}
, 			{
				"box" : 				{
					"id" : "obj-36",
					"maxclass" : "message",
					"numinlets" : 2,
					"numoutlets" : 1,
					"outlettype" : [ "" ],
					"patching_rect" : [ 932.307781219482422, 403.076961517333984, 52.0, 22.0 ],
					"text" : "trace $1"
				}

			}
, 			{
				"box" : 				{
					"format" : 6,
					"id" : "obj-37",
					"maxclass" : "flonum",
					"numinlets" : 1,
					"numoutlets" : 2,
					"outlettype" : [ "", "bang" ],
					"parameter_enable" : 0,
					"patching_rect" : [ 761.538534164428711, 369.230804443359375, 50.0, 22.0 ]
				}

			}
, 			{
				"box" : 				{
					"id" : "obj-40",
					"maxclass" : "message",
					"numinlets" : 2,
					"numoutlets" : 1,
					"outlettype" : [ "" ],
					"patching_rect" : [ 761.538534164428711, 403.076961517333984, 61.0, 22.0 ],
					"text" : "mass1 $1"
				}

			}
, 			{
				"box" : 				{
					"format" : 6,
					"id" : "obj-41",
					"maxclass" : "flonum",
					"numinlets" : 1,
					"numoutlets" : 2,
					"outlettype" : [ "", "bang" ],
					"parameter_enable" : 0,
					"patching_rect" : [ 841.538541793823242, 369.230804443359375, 50.0, 22.0 ]
				}

			}
, 			{
				"box" : 				{
					"id" : "obj-42",
					"maxclass" : "message",
					"numinlets" : 2,
					"numoutlets" : 1,
					"outlettype" : [ "" ],
					"patching_rect" : [ 841.538541793823242, 403.076961517333984, 61.0, 22.0 ],
					"text" : "mass2 $1"
				}

			}
, 			{
				"box" : 				{
					"format" : 6,
					"id" : "obj-43",
					"maxclass" : "flonum",
					"numinlets" : 1,
					"numoutlets" : 2,
					"outlettype" : [ "", "bang" ],
					"parameter_enable" : 0,
					"patching_rect" : [ 932.307781219482422, 221.538482666015625, 50.0, 22.0 ]
				}

			}
, 			{
				"box" : 				{
					"id" : "obj-44",
					"maxclass" : "message",
					"numinlets" : 2,
					"numoutlets" : 1,
					"outlettype" : [ "" ],
					"patching_rect" : [ 932.307781219482422, 253.84617805480957, 58.0, 22.0 ],
					"text" : "speed $1"
				}

			}
, 			{
				"box" : 				{
					"format" : 6,
					"id" : "obj-45",
					"maxclass" : "flonum",
					"numinlets" : 1,
					"numoutlets" : 2,
					"outlettype" : [ "", "bang" ],
					"parameter_enable" : 0,
					"patching_rect" : [ 761.538534164428711, 221.538482666015625, 50.0, 22.0 ]
				}

			}
, 			{
				"box" : 				{
					"id" : "obj-51",
					"maxclass" : "message",
					"numinlets" : 2,
					"numoutlets" : 1,
					"outlettype" : [ "" ],
					"patching_rect" : [ 761.538534164428711, 253.84617805480957, 65.0, 22.0 ],
					"text" : "length1 $1"
				}

			}
, 			{
				"box" : 				{
					"format" : 6,
					"id" : "obj-53",
					"maxclass" : "flonum",
					"numinlets" : 1,
					"numoutlets" : 2,
					"outlettype" : [ "", "bang" ],
					"parameter_enable" : 0,
					"patching_rect" : [ 841.538541793823242, 221.538482666015625, 50.0, 22.0 ]
				}

			}
, 			{
				"box" : 				{
					"id" : "obj-55",
					"maxclass" : "message",
					"numinlets" : 2,
					"numoutlets" : 1,
					"outlettype" : [ "" ],
					"patching_rect" : [ 841.538541793823242, 253.84617805480957, 65.0, 22.0 ],
					"text" : "length2 $1"
				}

			}
, 			{
				"box" : 				{
					"id" : "obj-57",
					"maxclass" : "message",
					"numinlets" : 2,
					"numoutlets" : 1,
					"outlettype" : [ "" ],
					"patching_rect" : [ 1018.461635589599609, 113.846164703369141, 35.0, 22.0 ],
					"text" : "open"
				}

			}
, 			{
				"box" : 				{
					"id" : "obj-59",
					"maxclass" : "button",
					"numinlets" : 1,
					"numoutlets" : 1,
					"outlettype" : [ "bang" ],
					"parameter_enable" : 0,
					"patching_rect" : [ 850.769311904907227, 16.923078536987305, 123.0, 123.0 ]
				}

			}
, 			{
				"box" : 				{
					"filename" : "none",
					"id" : "obj-60",
					"maxclass" : "v8ui",
					"nofsaa" : 1,
					"numinlets" : 1,
					"numoutlets" : 2,
					"outlettype" : [ "", "" ],
					"parameter_enable" : 0,
					"patching_rect" : [ 1180.000112533569336, 423.076963424682617, 375.0, 380.0 ],
					"textfile" : 					{
						"text" : "// JAVASCRIPT FOR DOUBLE PENDULUM - V8UI \n// =====================================\n// \n// Requires Max 9. Paste into a V8UI object. Accepts messages as shown under\n// the anything() function's switch/case.\n//\n// =====================================\n\nautowatch = 1; \noutlets = 2; \n\n// Physics parameters\nlet g = 9.81;  // gravity (now adjustable)\nlet length1 = 175;\nlet length2 = 45;\nlet mass1 = 10;\nlet mass2 = 13;\nlet angle1 = Math.PI / 2;\nlet angle2 = Math.PI / 2;\nlet velocity1 = 0;\nlet velocity2 = 0;\nlet simulationSpeed = 0.75; \n\n// Canvas / hang point (will be updated every frame)\nlet width = 0;\nlet height = 0;\nlet centerX = 0;\nlet centerY = 0;\n\n// Trace points for trajectory\nlet maxTracePoints = 800;\nlet traceOpacity = 0.35;  // currently unused, but kept for future tweaks\nlet tracePoints = [];\n\n// Animation control\nlet isAnimating = true;\nconst task = new Task(animate, this);\n\n// Setup mgraphics\nmgraphics.init();\nmgraphics.relative_coords = 0;\nmgraphics.autofill = 0;\n\n// Update canvas size & pivot position (center of the UI)\nfunction updateCenter() {\n    const viewsize = mgraphics.size;\n    width = viewsize[0];\n    height = viewsize[1];\n\n    centerX = width * 0.5;\n    centerY = height * 0.5;\n}\n\nfunction paint() {\n    updateCenter();\n\n    // Calculate positions\n    const x1 = centerX + length1 * Math.sin(angle1);\n    const y1 = centerY + length1 * Math.cos(angle1);\n    const x2 = x1 + length2 * Math.sin(angle2);\n    const y2 = y1 + length2 * Math.cos(angle2);\n\n    // Draw trajectory with opacity gradient\n    if (tracePoints.length) {\n        mgraphics.set_line_width(2.5);  \n        for (let i = 0; i < tracePoints.length - 1; i++) {\n            const progress = i / (tracePoints.length - 1);\n            const segmentOpacity = progress * 0.5;  \n            \n            mgraphics.set_source_rgba(0.3, 0.6, 1, segmentOpacity);\n            mgraphics.move_to(tracePoints[i].x, tracePoints[i].y);\n            mgraphics.line_to(tracePoints[i + 1].x, tracePoints[i + 1].y);\n            mgraphics.stroke();\n        }\n    }\n\n    // Draw pendulum arms \n    mgraphics.set_source_rgb(0.7, 0.7, 0.75);  \n    mgraphics.set_line_width(2);  \n    mgraphics.move_to(centerX, centerY);\n    mgraphics.line_to(x1, y1);\n    mgraphics.line_to(x2, y2);\n    mgraphics.stroke();\n\n    // Draw bobs \n    mgraphics.set_source_rgb(1, 0.4, 0.4);  \n    mgraphics.ellipse(x1 - mass1 / 2, y1 - mass1 / 2, mass1, mass1);\n    mgraphics.fill();\n\n    mgraphics.set_source_rgb(0.4, 0.8, 1);  \n    mgraphics.ellipse(x2 - mass2 / 2, y2 - mass2 / 2, mass2, mass2);\n    mgraphics.fill();\n\n    // Normalize and output coordinates (0..1 based on current UI size)\n    const normalizedX2 = x2 / width;\n    const normalizedY2 = y2 / height;\n    outlet(0, normalizedX2, normalizedY2);\n}\n\n// RK4 integration for physics calculations\nfunction rk4Step(state, dt) {\n    const k1 = calculateDerivatives(state);\n    const k2 = calculateDerivatives({\n        a1: state.a1 + k1.da1 * dt/2,\n        a2: state.a2 + k1.da2 * dt/2,\n        v1: state.v1 + k1.dv1 * dt/2,\n        v2: state.v2 + k1.dv2 * dt/2\n    });\n    const k3 = calculateDerivatives({\n        a1: state.a1 + k2.da1 * dt/2,\n        a2: state.a2 + k2.da2 * dt/2,\n        v1: state.v1 + k2.dv1 * dt/2,\n        v2: state.v2 + k2.dv2 * dt/2\n    });\n    const k4 = calculateDerivatives({\n        a1: state.a1 + k3.da1 * dt,\n        a2: state.a2 + k3.da2 * dt,\n        v1: state.v1 + k3.dv1 * dt,\n        v2: state.v2 + k3.dv2 * dt\n    });\n\n    return {\n        da1: (k1.da1 + 2*k2.da1 + 2*k3.da1 + k4.da1) / 6,\n        da2: (k1.da2 + 2*k2.da2 + 2*k3.da2 + k4.da2) / 6,\n        dv1: (k1.dv1 + 2*k2.dv1 + 2*k3.dv1 + k4.dv1) / 6,\n        dv2: (k1.dv2 + 2*k2.dv2 + 2*k3.dv2 + k4.dv2) / 6\n    };\n}\n\nfunction calculateDerivatives(state) {\n    const { a1, a2, v1, v2 } = state;\n    const den = 2 * mass1 + mass2 - mass2 * Math.cos(2 * a1 - 2 * a2);\n\n    const dv1 = (-g * (2 * mass1 + mass2) * Math.sin(a1)\n        - mass2 * g * Math.sin(a1 - 2 * a2)\n        - 2 * Math.sin(a1 - a2) * mass2 *\n        (v2 * v2 * length2 + v1 * v1 * length1 * Math.cos(a1 - a2)))\n        / (length1 * den);\n\n    const dv2 = (2 * Math.sin(a1 - a2) *\n        (v1 * v1 * length1 * (mass1 + mass2)\n        + g * (mass1 + mass2) * Math.cos(a1)\n        + v2 * v2 * length2 * mass2 * Math.cos(a1 - a2)))\n        / (length2 * den);\n\n    return {\n        da1: v1,\n        da2: v2,\n        dv1: dv1,\n        dv2: dv2\n    };\n}\n\n// Animation function for Task\nfunction animate() {\n    if (!isAnimating) return;\n\n    updateCenter();\n\n    // Physics integration with speed control\n    const dt = 0.016 * simulationSpeed; // Base dt (60fps) multiplied by speed\n    const state = { a1: angle1, a2: angle2, v1: velocity1, v2: velocity2 };\n    const derivatives = rk4Step(state, dt);\n\n    velocity1 += derivatives.dv1 * dt;\n    velocity2 += derivatives.dv2 * dt;\n    angle1 += derivatives.da1 * dt;\n    angle2 += derivatives.da2 * dt;\n\n    // Track trajectory\n    const x2 = centerX + length1 * Math.sin(angle1) + length2 * Math.sin(angle2);\n    const y2 = centerY + length1 * Math.cos(angle1) + length2 * Math.cos(angle2);\n    tracePoints.push({ x: x2, y: y2 });\n    if (tracePoints.length > maxTracePoints) tracePoints.shift();\n\n    // Redraw the pendulum\n    mgraphics.redraw();\n}\n\n// Message handlers\nfunction anything() {\n    var a = arrayfromargs(messagename, arguments);\n    \n    if (a.length == 0) {\n        post(\"Error: No command specified\\n\");\n        return;\n    }\n    \n    var command = a[0];\n    const MIN_LENGTH = 10;  // Minimum length in pixels\n    const MIN_MASS = 5;     // Minimum mass \n    \n    switch(command) {\n        case \"length1\":\n            if (a.length >= 2 && !isNaN(a[1])) {\n                length1 = Math.max(MIN_LENGTH, parseFloat(a[1]));\n                if (parseFloat(a[1]) < MIN_LENGTH) {\n                    post(\"Warning: length1 clipped to minimum value of \" + MIN_LENGTH + \"\\n\");\n                }\n                mgraphics.redraw();\n            } else {\n                post(\"Error: length1 requires a numeric value\\n\");\n            }\n            break;\n            \n        case \"length2\":\n            if (a.length >= 2 && !isNaN(a[1])) {\n                length2 = Math.max(MIN_LENGTH, parseFloat(a[1]));\n                if (parseFloat(a[1]) < MIN_LENGTH) {\n                    post(\"Warning: length2 clipped to minimum value of \" + MIN_LENGTH + \"\\n\");\n                }\n                mgraphics.redraw();\n            } else {\n                post(\"Error: length2 requires a numeric value\\n\");\n            }\n            break;\n            \n        case \"mass1\":\n            if (a.length >= 2 && !isNaN(a[1])) {\n                mass1 = Math.max(MIN_MASS, parseFloat(a[1]));\n                if (parseFloat(a[1]) < MIN_MASS) {\n                    post(\"Warning: mass1 clipped to minimum value of \" + MIN_MASS + \"\\n\");\n                }\n                mgraphics.redraw();\n            } else {\n                post(\"Error: mass1 requires a numeric value\\n\");\n            }\n            break;\n            \n        case \"mass2\":\n            if (a.length >= 2 && !isNaN(a[1])) {\n                mass2 = Math.max(MIN_MASS, parseFloat(a[1]));\n                if (parseFloat(a[1]) < MIN_MASS) {\n                    post(\"Warning: mass2 clipped to minimum value of \" + MIN_MASS + \"\\n\");\n                }\n                mgraphics.redraw();\n            } else {\n                post(\"Error: mass2 requires a numeric value\\n\");\n            }\n            break;\n            \n        case \"angle1\":\n            if (a.length >= 2 && !isNaN(a[1])) {\n                angle1 = parseFloat(a[1]) * Math.PI / 180; // degrees -> radians\n                mgraphics.redraw();\n            } else {\n                post(\"Error: angle1 requires a numeric value (in degrees)\\n\");\n            }\n            break;\n            \n        case \"angle2\":\n            if (a.length >= 2 && !isNaN(a[1])) {\n                angle2 = parseFloat(a[1]) * Math.PI / 180; // degrees -> radians\n                mgraphics.redraw();\n            } else {\n                post(\"Error: angle2 requires a numeric value (in degrees)\\n\");\n            }\n            break;\n            \n        case \"velocity1\":\n            if (a.length >= 2 && !isNaN(a[1])) {\n                velocity1 = parseFloat(a[1]);\n                mgraphics.redraw();\n            } else {\n                post(\"Error: velocity1 requires a numeric value\\n\");\n            }\n            break;\n            \n        case \"velocity2\":\n            if (a.length >= 2 && !isNaN(a[1])) {\n                velocity2 = parseFloat(a[1]);\n                mgraphics.redraw();\n            } else {\n                post(\"Error: velocity2 requires a numeric value\\n\");\n            }\n            break;\n            \n        case \"gravity\":\n            if (a.length >= 2 && !isNaN(a[1])) {\n                g = parseFloat(a[1]);\n                mgraphics.redraw();\n            } else {\n                post(\"Error: gravity requires a numeric value\\n\");\n            }\n            break;\n            \n        case \"trace\":\n            if (a.length >= 2 && !isNaN(a[1])) {\n                const newLength = parseInt(a[1]);\n                if (newLength < 0) {\n                    post(\"Warning: trace length cannot be negative. Setting to 0\\n\");\n                    maxTracePoints = 0;\n                } else if (newLength > 1000) {\n                    post(\"Warning: trace length limited to maximum of 1000 points\\n\");\n                    maxTracePoints = 1000;\n                } else {\n                    maxTracePoints = newLength;\n                }\n                // Trim existing points if needed\n                tracePoints = tracePoints.slice(-maxTracePoints);\n                mgraphics.redraw();\n                post(\"Trace length set to \" + maxTracePoints + \" points\\n\");\n            } else {\n                post(\"Error: trace requires a numeric value (0 to clear trace)\\n\");\n            }\n            break;\n\n        case \"speed\":\n            if (a.length >= 2 && !isNaN(a[1])) {\n                const newSpeed = parseFloat(a[1]);\n                if (newSpeed < 0) {\n                    post(\"Warning: speed cannot be negative. Setting to 0 (frozen)\\n\");\n                    simulationSpeed = 0;\n                } else if (newSpeed > 10) {\n                    post(\"Warning: speed limited to maximum of 10x\\n\");\n                    simulationSpeed = 10;\n                } else {\n                    simulationSpeed = newSpeed;\n                }\n            } else {\n                post(\"Error: speed requires a numeric value (1.0 = normal speed)\\n\");\n            }\n            break;\n            \n        case \"reset\":\n            // Reset to initial conditions\n            velocity1 = 0;\n            velocity2 = 0;\n            angle1 = Math.PI / 2;\n            angle2 = Math.PI / 2;\n            tracePoints = [];\n            mgraphics.redraw();\n            break;\n            \n        case \"clear\":\n            // Clear just the trajectory\n            tracePoints = [];\n            mgraphics.redraw();\n            break;\n            \n        default:\n            post(\"Unknown command: \" + command + \"\\n\");\n            post(\"Available commands: length1, length2, mass1, mass2, angle1, angle2, velocity1, velocity2, gravity, trace, speed, reset, clear\\n\");\n            break;\n    }\n}\n\nfunction bang() {\n    // Toggle animation\n    isAnimating = !isAnimating;\n    if (isAnimating) {\n        task.interval = 16; // 16ms interval for ~60fps\n        task.repeat();\n    } else {\n        task.cancel();\n    }\n}\n\n// Clean up when the script is recompiled\nfunction clean() {\n    isAnimating = false;\n    task.cancel();\n}\n",
						"filename" : "none",
						"flags" : 0,
						"embed" : 1,
						"autowatch" : 1
					}

				}

			}
, 			{
				"box" : 				{
					"id" : "obj-58",
					"maxclass" : "comment",
					"numinlets" : 1,
					"numoutlets" : 0,
					"patching_rect" : [ 742.0, 64.0, 150.0, 20.0 ],
					"text" : "resonance"
				}

			}
, 			{
				"box" : 				{
					"format" : 6,
					"id" : "obj-56",
					"maxclass" : "flonum",
					"maximum" : 0.5,
					"minimum" : 0.0,
					"numinlets" : 1,
					"numoutlets" : 2,
					"outlettype" : [ "", "bang" ],
					"parameter_enable" : 0,
					"patching_rect" : [ 689.0, 63.0, 50.0, 22.0 ]
				}

			}
, 			{
				"box" : 				{
					"id" : "obj-54",
					"maxclass" : "comment",
					"numinlets" : 1,
					"numoutlets" : 0,
					"patching_rect" : [ 704.0, 34.0, 150.0, 20.0 ],
					"text" : "cutoff"
				}

			}
, 			{
				"box" : 				{
					"id" : "obj-52",
					"maxclass" : "number",
					"numinlets" : 1,
					"numoutlets" : 2,
					"outlettype" : [ "", "bang" ],
					"parameter_enable" : 0,
					"patching_rect" : [ 652.0, 33.0, 50.0, 22.0 ]
				}

			}
, 			{
				"box" : 				{
					"id" : "obj-50",
					"maxclass" : "gain~",
					"multichannelvariant" : 0,
					"numinlets" : 1,
					"numoutlets" : 2,
					"outlettype" : [ "signal", "" ],
					"parameter_enable" : 0,
					"patching_rect" : [ 280.158734500408173, 465.873023092746735, 22.0, 140.0 ]
				}

			}
, 			{
				"box" : 				{
					"id" : "obj-49",
					"maxclass" : "newobj",
					"numinlets" : 2,
					"numoutlets" : 1,
					"outlettype" : [ "signal" ],
					"patching_rect" : [ 280.0, 427.0, 29.5, 22.0 ],
					"text" : "-~"
				}

			}
, 			{
				"box" : 				{
					"id" : "obj-48",
					"maxclass" : "newobj",
					"numinlets" : 3,
					"numoutlets" : 1,
					"outlettype" : [ "signal" ],
					"patching_rect" : [ 368.0, 363.0, 92.0, 22.0 ],
					"text" : "lores~ 2300 0.7"
				}

			}
, 			{
				"box" : 				{
					"id" : "obj-39",
					"maxclass" : "newobj",
					"numinlets" : 2,
					"numoutlets" : 1,
					"outlettype" : [ "signal" ],
					"patching_rect" : [ 272.0, 295.0, 29.5, 22.0 ],
					"text" : "*~"
				}

			}
, 			{
				"box" : 				{
					"id" : "obj-38",
					"maxclass" : "comment",
					"numinlets" : 1,
					"numoutlets" : 0,
					"patching_rect" : [ 494.0, 38.0, 150.0, 20.0 ],
					"text" : "decay"
				}

			}
, 			{
				"box" : 				{
					"format" : 6,
					"id" : "obj-34",
					"maxclass" : "flonum",
					"numinlets" : 1,
					"numoutlets" : 2,
					"outlettype" : [ "", "bang" ],
					"parameter_enable" : 0,
					"patching_rect" : [ 429.5, 38.0, 50.0, 22.0 ]
				}

			}
, 			{
				"box" : 				{
					"id" : "obj-32",
					"maxclass" : "message",
					"numinlets" : 2,
					"numoutlets" : 1,
					"outlettype" : [ "" ],
					"patching_rect" : [ 402.5, 154.0, 77.0, 22.0 ],
					"text" : "105."
				}

			}
, 			{
				"box" : 				{
					"id" : "obj-31",
					"maxclass" : "message",
					"numinlets" : 2,
					"numoutlets" : 1,
					"outlettype" : [ "" ],
					"patching_rect" : [ 308.5, 154.0, 77.0, 22.0 ],
					"text" : "105."
				}

			}
, 			{
				"box" : 				{
					"id" : "obj-29",
					"maxclass" : "comment",
					"numinlets" : 1,
					"numoutlets" : 0,
					"patching_rect" : [ 415.0, 181.0, 52.0, 20.0 ],
					"text" : "open"
				}

			}
, 			{
				"box" : 				{
					"id" : "obj-27",
					"maxclass" : "message",
					"numinlets" : 2,
					"numoutlets" : 1,
					"outlettype" : [ "" ],
					"patching_rect" : [ 396.5, 203.0, 69.0, 22.0 ],
					"text" : "1, 0 $1 -0.7"
				}

			}
, 			{
				"box" : 				{
					"id" : "obj-26",
					"maxclass" : "comment",
					"numinlets" : 1,
					"numoutlets" : 0,
					"patching_rect" : [ 334.5, 181.0, 51.0, 20.0 ],
					"text" : "closed"
				}

			}
, 			{
				"box" : 				{
					"id" : "obj-21",
					"maxclass" : "message",
					"numinlets" : 2,
					"numoutlets" : 1,
					"outlettype" : [ "" ],
					"patching_rect" : [ 325.5, 203.0, 69.0, 22.0 ],
					"text" : "1, 0 $1 -0.9"
				}

			}
, 			{
				"box" : 				{
					"id" : "obj-19",
					"maxclass" : "newobj",
					"numinlets" : 3,
					"numoutlets" : 2,
					"outlettype" : [ "signal", "bang" ],
					"patching_rect" : [ 318.5, 250.0, 45.0, 22.0 ],
					"text" : "curve~"
				}

			}
, 			{
				"box" : 				{
					"id" : "obj-18",
					"maxclass" : "newobj",
					"numinlets" : 1,
					"numoutlets" : 1,
					"outlettype" : [ "signal" ],
					"patching_rect" : [ 253.5, 250.0, 44.0, 22.0 ],
					"text" : "noise~"
				}

			}
, 			{
				"box" : 				{
					"id" : "obj-15",
					"maxclass" : "button",
					"numinlets" : 1,
					"numoutlets" : 1,
					"outlettype" : [ "bang" ],
					"parameter_enable" : 0,
					"patching_rect" : [ 362.0, 76.0, 24.0, 24.0 ]
				}

			}
, 			{
				"box" : 				{
					"id" : "obj-13",
					"maxclass" : "button",
					"numinlets" : 1,
					"numoutlets" : 1,
					"outlettype" : [ "bang" ],
					"parameter_enable" : 0,
					"patching_rect" : [ 335.0, 76.0, 24.0, 24.0 ]
				}

			}
, 			{
				"box" : 				{
					"id" : "obj-7",
					"maxclass" : "newobj",
					"numinlets" : 0,
					"numoutlets" : 1,
					"outlettype" : [ "" ],
					"patching_rect" : [ 387.0, 37.0, 29.0, 22.0 ],
					"text" : "r #3"
				}

			}
, 			{
				"box" : 				{
					"id" : "obj-8",
					"maxclass" : "newobj",
					"numinlets" : 0,
					"numoutlets" : 1,
					"outlettype" : [ "" ],
					"patching_rect" : [ 334.0, 37.0, 29.0, 22.0 ],
					"text" : "r #2"
				}

			}
, 			{
				"box" : 				{
					"id" : "obj-6",
					"maxclass" : "newobj",
					"numinlets" : 1,
					"numoutlets" : 0,
					"patching_rect" : [ 136.0, 145.0, 31.0, 22.0 ],
					"text" : "s #3"
				}

			}
, 			{
				"box" : 				{
					"id" : "obj-5",
					"maxclass" : "newobj",
					"numinlets" : 1,
					"numoutlets" : 0,
					"patching_rect" : [ 83.0, 178.461555480957031, 31.0, 22.0 ],
					"text" : "s #2"
				}

			}
, 			{
				"box" : 				{
					"id" : "obj-4",
					"maxclass" : "newobj",
					"numinlets" : 1,
					"numoutlets" : 0,
					"patching_rect" : [ 36.0, 145.0, 31.0, 22.0 ],
					"text" : "s #1"
				}

			}
, 			{
				"box" : 				{
					"id" : "obj-3",
					"maxclass" : "newobj",
					"numinlets" : 4,
					"numoutlets" : 4,
					"outlettype" : [ "bang", "bang", "bang", "" ],
					"patching_rect" : [ 40.0, 107.0, 74.0, 22.0 ],
					"text" : "sel 51 54 58"
				}

			}
, 			{
				"box" : 				{
					"id" : "obj-2",
					"maxclass" : "newobj",
					"numinlets" : 2,
					"numoutlets" : 2,
					"outlettype" : [ "int", "int" ],
					"patching_rect" : [ 40.0, 74.0, 55.0, 22.0 ],
					"text" : "stripnote"
				}

			}
, 			{
				"box" : 				{
					"id" : "obj-1",
					"maxclass" : "newobj",
					"numinlets" : 1,
					"numoutlets" : 3,
					"outlettype" : [ "int", "int", "int" ],
					"patching_rect" : [ 47.0, 21.0, 41.0, 22.0 ],
					"text" : "notein"
				}

			}
 ],
		"lines" : [ 			{
				"patchline" : 				{
					"destination" : [ "obj-2", 1 ],
					"source" : [ "obj-1", 1 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-2", 0 ],
					"source" : [ "obj-1", 0 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-14", 0 ],
					"source" : [ "obj-10", 0 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-69", 0 ],
					"midpoints" : [ 522.079712152481079, 669.695658087730408, 281.5, 669.695658087730408 ],
					"source" : [ "obj-11", 0 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-35", 0 ],
					"source" : [ "obj-12", 0 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-31", 0 ],
					"source" : [ "obj-13", 0 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-60", 0 ],
					"midpoints" : [ 1512.577066421508789, 355.743611216545105, 1189.500112533569336, 355.743611216545105 ],
					"source" : [ "obj-14", 0 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-32", 0 ],
					"source" : [ "obj-15", 0 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-24", 0 ],
					"source" : [ "obj-16", 0 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-11", 0 ],
					"order" : 7,
					"source" : [ "obj-17", 0 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-52", 0 ],
					"order" : 5,
					"source" : [ "obj-17", 0 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-56", 0 ],
					"order" : 4,
					"source" : [ "obj-17", 0 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-71", 0 ],
					"order" : 6,
					"source" : [ "obj-17", 0 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-76", 0 ],
					"order" : 0,
					"source" : [ "obj-17", 0 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-77", 0 ],
					"order" : 1,
					"source" : [ "obj-17", 0 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-78", 0 ],
					"order" : 2,
					"source" : [ "obj-17", 0 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-79", 0 ],
					"order" : 3,
					"source" : [ "obj-17", 0 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-39", 0 ],
					"source" : [ "obj-18", 0 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-39", 1 ],
					"source" : [ "obj-19", 0 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-3", 0 ],
					"source" : [ "obj-2", 0 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-22", 0 ],
					"source" : [ "obj-20", 0 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-19", 0 ],
					"source" : [ "obj-21", 0 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-60", 0 ],
					"midpoints" : [ 1058.730869293212891, 324.709130585193634, 1189.500112533569336, 324.709130585193634 ],
					"source" : [ "obj-22", 0 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-60", 0 ],
					"midpoints" : [ 1271.038581848144531, 355.743611216545105, 1189.500112533569336, 355.743611216545105 ],
					"source" : [ "obj-24", 0 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-60", 0 ],
					"midpoints" : [ 1346.42320442199707, 355.743611216545105, 1189.500112533569336, 355.743611216545105 ],
					"source" : [ "obj-25", 0 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-19", 0 ],
					"source" : [ "obj-27", 0 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-17", 0 ],
					"source" : [ "obj-28", 0 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-4", 0 ],
					"source" : [ "obj-3", 0 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-5", 0 ],
					"source" : [ "obj-3", 1 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-6", 0 ],
					"source" : [ "obj-3", 2 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-25", 0 ],
					"source" : [ "obj-30", 0 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-21", 0 ],
					"source" : [ "obj-31", 0 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-27", 0 ],
					"source" : [ "obj-32", 0 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-36", 0 ],
					"source" : [ "obj-33", 0 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-31", 1 ],
					"order" : 1,
					"source" : [ "obj-34", 0 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-32", 1 ],
					"order" : 0,
					"source" : [ "obj-34", 0 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-60", 0 ],
					"midpoints" : [ 1437.19244384765625, 355.743611216545105, 1189.500112533569336, 355.743611216545105 ],
					"source" : [ "obj-35", 0 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-60", 0 ],
					"midpoints" : [ 941.807781219482422, 433.743611216545105, 1124.586412131786346, 433.743611216545105, 1124.586412131786346, 334.743611216545105, 1189.500112533569336, 334.743611216545105 ],
					"source" : [ "obj-36", 0 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-40", 0 ],
					"source" : [ "obj-37", 0 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-48", 0 ],
					"order" : 0,
					"source" : [ "obj-39", 0 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-49", 0 ],
					"order" : 1,
					"source" : [ "obj-39", 0 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-60", 0 ],
					"midpoints" : [ 771.038534164428711, 433.743611216545105, 1124.586412131786346, 433.743611216545105, 1124.586412131786346, 334.743611216545105, 1189.500112533569336, 334.743611216545105 ],
					"source" : [ "obj-40", 0 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-42", 0 ],
					"source" : [ "obj-41", 0 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-60", 0 ],
					"midpoints" : [ 851.038541793823242, 433.743611216545105, 1124.586412131786346, 433.743611216545105, 1124.586412131786346, 334.743611216545105, 1189.500112533569336, 334.743611216545105 ],
					"source" : [ "obj-42", 0 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-44", 0 ],
					"source" : [ "obj-43", 0 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-60", 0 ],
					"midpoints" : [ 941.807781219482422, 325.743611216545105, 1189.500112533569336, 325.743611216545105 ],
					"source" : [ "obj-44", 0 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-51", 0 ],
					"source" : [ "obj-45", 0 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-49", 1 ],
					"source" : [ "obj-48", 0 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-50", 0 ],
					"source" : [ "obj-49", 0 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-69", 1 ],
					"order" : 0,
					"source" : [ "obj-50", 0 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-69", 0 ],
					"order" : 1,
					"source" : [ "obj-50", 0 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-60", 0 ],
					"midpoints" : [ 771.038534164428711, 325.743611216545105, 1189.500112533569336, 325.743611216545105 ],
					"source" : [ "obj-51", 0 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-48", 1 ],
					"source" : [ "obj-52", 0 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-55", 0 ],
					"source" : [ "obj-53", 0 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-60", 0 ],
					"midpoints" : [ 851.038541793823242, 325.743611216545105, 1189.500112533569336, 325.743611216545105 ],
					"source" : [ "obj-55", 0 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-48", 2 ],
					"source" : [ "obj-56", 0 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-60", 0 ],
					"midpoints" : [ 1027.961635589599609, 325.743611216545105, 1189.500112533569336, 325.743611216545105 ],
					"source" : [ "obj-57", 0 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-60", 0 ],
					"midpoints" : [ 860.269311904907227, 205.743611216545105, 1189.500112533569336, 205.743611216545105 ],
					"source" : [ "obj-59", 0 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-28", 0 ],
					"midpoints" : [ 1189.500112533569336, 757.743611216545105, 1147.586412131786346, 757.743611216545105, 1147.586412131786346, 393.045499324798584, 1612.577075958251953, 393.045499324798584 ],
					"source" : [ "obj-60", 0 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-69", 0 ],
					"midpoints" : [ 694.543481707572937, 708.695658087730408, 682.043481707572937, 708.695658087730408, 682.043481707572937, 762.695658087730408, 281.5, 762.695658087730408 ],
					"source" : [ "obj-65", 0 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-80", 1 ],
					"source" : [ "obj-69", 1 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-80", 0 ],
					"source" : [ "obj-69", 0 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-15", 0 ],
					"source" : [ "obj-7", 0 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-69", 0 ],
					"midpoints" : [ 522.079712152481079, 762.695658087730408, 281.5, 762.695658087730408 ],
					"source" : [ "obj-70", 0 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-69", 0 ],
					"midpoints" : [ 522.079712152481079, 763.387064337730408, 281.5, 763.387064337730408 ],
					"source" : [ "obj-71", 0 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-69", 0 ],
					"midpoints" : [ 694.543481707572937, 762.695658087730408, 281.5, 762.695658087730408 ],
					"source" : [ "obj-72", 0 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-5", 0 ],
					"source" : [ "obj-74", 0 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-80", 0 ],
					"source" : [ "obj-76", 0 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-80", 0 ],
					"source" : [ "obj-77", 0 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-80", 0 ],
					"source" : [ "obj-78", 0 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-80", 0 ],
					"source" : [ "obj-79", 0 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-13", 0 ],
					"source" : [ "obj-8", 0 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-9", 1 ],
					"source" : [ "obj-80", 1 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-9", 0 ],
					"source" : [ "obj-80", 0 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-68", 1 ],
					"source" : [ "obj-9", 1 ]
				}

			}
, 			{
				"patchline" : 				{
					"destination" : [ "obj-68", 0 ],
					"source" : [ "obj-9", 0 ]
				}

			}
 ],
		"parameters" : 		{
			"obj-9" : [ "live.gain~", "live.gain~", 0 ],
			"parameterbanks" : 			{
				"0" : 				{
					"index" : 0,
					"name" : "",
					"parameters" : [ "-", "-", "-", "-", "-", "-", "-", "-" ],
					"buttons" : [ "-", "-", "-", "-", "-", "-", "-", "-" ]
				}

			}
,
			"inherited_shortname" : 1
		}
,
		"dependency_cache" : [ 			{
				"name" : "v8ui_default.js",
				"bootpath" : "C74:/jsui",
				"type" : "TEXT",
				"implicit" : 1
			}
 ],
		"autosave" : 0
	}

}
