OSCでUE5とabletonを繋ぐ

UE5の公式リリースがあってから数ヶ月が経ち高品質なリアルタイムレンダリングツールを無料で使い始めることができるのは、やはり凄い。

今回はAbleton Live(Max)とUE5をOSCで繋ぐ。

UE5では公式からOSCプラグインツールが提供されている。

マニュアルも用意されているのでこちらに沿って作っていく。
現在は4.7系のマニュアルだけのようだが、UE5.03でも問題なく動いた。

https://docs.unrealengine.com/4.27/ja/WorkingWithAudio/OSC/


## OSC用のブループリント作成
任意のプロジェクトを用意したらブループリントを作成していきます。

OSCメッセージを受信するサーバーを作成します。
サンプルを参考に受信したら、アドレスと値を再生ビューに表示するようにしました。

![スクリーンショット 2022-09-06 19.56.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152481/3811c152-c5fe-73c6-911b-ae5705018cb5.png)


## Ableton(Max)からOSCを送る。

Max for liveからOSCを送ります。
MIDIをトリガーしたら、OSCを飛ばすデバイスパッチを作りました。
もしくは、OSC MIDI Sendというデバイスがデフォルトでついています。

![スクリーンショット 2022-09-07 17.39.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152481/8d2f5016-8d22-35a9-d139-a8bf350d72d9.png)

そこから送り先のアドレスを設定して、UE5の再生ボタンを押せば、簡単に通信プログラムが作成できました！


以下コピーして、Ableton LiveからMax for liveでMax MIDI Effectを新規に作成してください。その後、Max Editor画面に貼り付けると見れるはずです。

```Max
{
	"boxes" : [ 		{
			"box" : 			{
				"maxclass" : "newobj",
				"text" : "change",
				"outlettype" : [ "", "int", "int" ],
				"numinlets" : 1,
				"patching_rect" : [ 753.833344000000011, 395.0, 41.0, 20.0 ],
				"numoutlets" : 3,
				"id" : "obj-110"
			}

		}
, 		{
			"box" : 			{
				"maxclass" : "number",
				"outlettype" : [ "", "bang" ],
				"parameter_enable" : 0,
				"numinlets" : 1,
				"patching_rect" : [ 753.833344000000011, 431.199999749660492, 50.0, 20.0 ],
				"numoutlets" : 2,
				"id" : "obj-109"
			}

		}
, 		{
			"box" : 			{
				"maxclass" : "comment",
				"text" : "/note\n/velocity\n/noteon\n/polypressure\n/controlchange\n/pgmchange\n/aftertouch\n/pitchvend\n/midichannel",
				"linecount" : 9,
				"presentation_linecount" : 9,
				"presentation_rect" : [ 197.166655999999989, 3.0, 104.0, 147.0 ],
				"presentation" : 1,
				"numinlets" : 1,
				"patching_rect" : [ 569.333344000000011, 213.0, 205.0, 147.0 ],
				"numoutlets" : 0,
				"id" : "obj-104",
				"fontsize" : 14.0
			}

		}
, 		{
			"box" : 			{
				"maxclass" : "live.numbox",
				"varname" : "live.numbox[8]",
				"presentation_rect" : [ 305.166655999999989, 133.0, 44.0, 15.0 ],
				"outlettype" : [ "", "float" ],
				"parameter_enable" : 1,
				"presentation" : 1,
				"numinlets" : 1,
				"patching_rect" : [ 753.833344000000011, 369.5, 44.0, 15.0 ],
				"numoutlets" : 2,
				"id" : "obj-102",
				"saved_attribute_attributes" : 				{
					"valueof" : 					{
						"parameter_longname" : "live.numbox[9]",
						"parameter_shortname" : "live.numbox",
						"parameter_type" : 0,
						"parameter_unitstyle" : 0
					}

				}

			}

		}
, 		{
			"box" : 			{
				"maxclass" : "live.numbox",
				"varname" : "live.numbox[7]",
				"presentation_rect" : [ 305.166655999999989, 117.0, 44.0, 15.0 ],
				"outlettype" : [ "", "float" ],
				"parameter_enable" : 1,
				"presentation" : 1,
				"numinlets" : 1,
				"patching_rect" : [ 649.333344000000011, 382.5, 44.0, 15.0 ],
				"numoutlets" : 2,
				"id" : "obj-101",
				"saved_attribute_attributes" : 				{
					"valueof" : 					{
						"parameter_longname" : "live.numbox[8]",
						"parameter_shortname" : "live.numbox",
						"parameter_type" : 0,
						"parameter_unitstyle" : 0
					}

				}

			}

		}
, 		{
			"box" : 			{
				"maxclass" : "live.numbox",
				"varname" : "live.numbox[5]",
				"presentation_rect" : [ 305.166655999999989, 86.0, 44.0, 15.0 ],
				"outlettype" : [ "", "float" ],
				"parameter_enable" : 1,
				"presentation" : 1,
				"numinlets" : 1,
				"patching_rect" : [ 454.333344000000011, 382.5, 44.0, 15.0 ],
				"numoutlets" : 2,
				"id" : "obj-100",
				"saved_attribute_attributes" : 				{
					"valueof" : 					{
						"parameter_longname" : "live.numbox[7]",
						"parameter_shortname" : "live.numbox",
						"parameter_type" : 0,
						"parameter_unitstyle" : 0
					}

				}

			}

		}
, 		{
			"box" : 			{
				"maxclass" : "live.numbox",
				"varname" : "live.numbox[6]",
				"presentation_rect" : [ 305.166655999999989, 101.0, 44.0, 15.0 ],
				"outlettype" : [ "", "float" ],
				"parameter_enable" : 1,
				"presentation" : 1,
				"numinlets" : 1,
				"patching_rect" : [ 569.333344000000011, 382.5, 44.0, 15.0 ],
				"numoutlets" : 2,
				"id" : "obj-99",
				"saved_attribute_attributes" : 				{
					"valueof" : 					{
						"parameter_longname" : "live.numbox[6]",
						"parameter_shortname" : "live.numbox",
						"parameter_type" : 0,
						"parameter_unitstyle" : 0
					}

				}

			}

		}
, 		{
			"box" : 			{
				"maxclass" : "live.numbox",
				"varname" : "live.numbox[4]",
				"presentation_rect" : [ 305.166655999999989, 70.0, 44.0, 15.0 ],
				"outlettype" : [ "", "float" ],
				"parameter_enable" : 1,
				"presentation" : 1,
				"numinlets" : 1,
				"patching_rect" : [ 386.5, 382.5, 44.0, 15.0 ],
				"numoutlets" : 2,
				"id" : "obj-97",
				"saved_attribute_attributes" : 				{
					"valueof" : 					{
						"parameter_longname" : "live.numbox[4]",
						"parameter_shortname" : "live.numbox",
						"parameter_type" : 0,
						"parameter_unitstyle" : 0
					}

				}

			}

		}
, 		{
			"box" : 			{
				"maxclass" : "live.numbox",
				"varname" : "live.numbox[2]",
				"presentation_rect" : [ 305.166655999999989, 54.0, 44.0, 15.0 ],
				"outlettype" : [ "", "float" ],
				"parameter_enable" : 1,
				"presentation" : 1,
				"numinlets" : 1,
				"patching_rect" : [ 285.5, 382.5, 44.0, 15.0 ],
				"numoutlets" : 2,
				"id" : "obj-95",
				"saved_attribute_attributes" : 				{
					"valueof" : 					{
						"parameter_longname" : "live.numbox[2]",
						"parameter_shortname" : "live.numbox",
						"parameter_type" : 0,
						"parameter_unitstyle" : 0
					}

				}

			}

		}
, 		{
			"box" : 			{
				"maxclass" : "live.numbox",
				"varname" : "live.numbox[3]",
				"presentation_rect" : [ 305.166655999999989, 37.5, 44.0, 15.0 ],
				"outlettype" : [ "", "float" ],
				"parameter_enable" : 1,
				"presentation" : 1,
				"numinlets" : 1,
				"patching_rect" : [ 160.0, 382.5, 44.0, 15.0 ],
				"numoutlets" : 2,
				"id" : "obj-96",
				"saved_attribute_attributes" : 				{
					"valueof" : 					{
						"parameter_longname" : "live.numbox[3]",
						"parameter_shortname" : "live.numbox",
						"parameter_type" : 0,
						"parameter_unitstyle" : 0
					}

				}

			}

		}
, 		{
			"box" : 			{
				"maxclass" : "live.numbox",
				"varname" : "live.numbox[1]",
				"presentation_rect" : [ 305.166655999999989, 21.5, 44.0, 15.0 ],
				"outlettype" : [ "", "float" ],
				"parameter_enable" : 1,
				"presentation" : 1,
				"numinlets" : 1,
				"patching_rect" : [ 105.0, 382.5, 44.0, 15.0 ],
				"numoutlets" : 2,
				"id" : "obj-94",
				"saved_attribute_attributes" : 				{
					"valueof" : 					{
						"parameter_longname" : "live.numbox[1]",
						"parameter_shortname" : "live.numbox",
						"parameter_type" : 0,
						"parameter_unitstyle" : 0
					}

				}

			}

		}
, 		{
			"box" : 			{
				"maxclass" : "live.numbox",
				"varname" : "live.numbox",
				"presentation_rect" : [ 305.166655999999989, 6.0, 44.0, 15.0 ],
				"outlettype" : [ "", "float" ],
				"parameter_enable" : 1,
				"presentation" : 1,
				"numinlets" : 1,
				"patching_rect" : [ 57.0, 382.5, 44.0, 15.0 ],
				"numoutlets" : 2,
				"id" : "obj-93",
				"saved_attribute_attributes" : 				{
					"valueof" : 					{
						"parameter_longname" : "live.numbox",
						"parameter_shortname" : "live.numbox",
						"parameter_type" : 0,
						"parameter_unitstyle" : 0
					}

				}

			}

		}
, 		{
			"box" : 			{
				"maxclass" : "comment",
				"text" : "PORT",
				"presentation_rect" : [ 14.5, 58.0, 40.0, 18.0 ],
				"presentation" : 1,
				"numinlets" : 1,
				"patching_rect" : [ 69.0, 47.0, 150.0, 18.0 ],
				"numoutlets" : 0,
				"id" : "obj-91"
			}

		}
, 		{
			"box" : 			{
				"maxclass" : "comment",
				"text" : "IP",
				"presentation_rect" : [ 14.5, 33.0, 22.0, 18.0 ],
				"presentation" : 1,
				"numinlets" : 1,
				"patching_rect" : [ 54.0, 32.0, 150.0, 18.0 ],
				"numoutlets" : 0,
				"id" : "obj-90"
			}

		}
, 		{
			"box" : 			{
				"maxclass" : "live.text",
				"varname" : "live.text[1]",
				"presentation_rect" : [ 140.25, 33.0, 44.0, 20.0 ],
				"outlettype" : [ "", "" ],
				"mode" : 0,
				"parameter_enable" : 1,
				"presentation" : 1,
				"numinlets" : 1,
				"patching_rect" : [ 270.0, 140.0, 44.0, 15.0 ],
				"numoutlets" : 2,
				"id" : "obj-88",
				"text" : "set",
				"fontsize" : 10.0,
				"saved_attribute_attributes" : 				{
					"valueof" : 					{
						"parameter_enum" : [ "val1", "val2" ],
						"parameter_longname" : "live.text[1]",
						"parameter_mmax" : 1,
						"parameter_shortname" : "live.text",
						"parameter_type" : 2
					}

				}

			}

		}
, 		{
			"box" : 			{
				"maxclass" : "comment",
				"text" : "NINETEEN95 STUDIO",
				"presentation_rect" : [ 234.166655999999989, 152.0, 115.0, 18.0 ],
				"textjustification" : 2,
				"presentation" : 1,
				"numinlets" : 1,
				"patching_rect" : [ 375.0, 138.0, 150.0, 18.0 ],
				"numoutlets" : 0,
				"id" : "obj-87"
			}

		}
, 		{
			"box" : 			{
				"maxclass" : "newobj",
				"text" : "prepend /midichannel",
				"outlettype" : [ "" ],
				"numinlets" : 1,
				"patching_rect" : [ 753.833344000000011, 490.0, 116.0, 20.0 ],
				"numoutlets" : 1,
				"id" : "obj-85"
			}

		}
, 		{
			"box" : 			{
				"maxclass" : "newobj",
				"text" : "prepend /pitchbend",
				"outlettype" : [ "" ],
				"numinlets" : 1,
				"patching_rect" : [ 664.333344000000011, 520.0, 94.0, 20.0 ],
				"numoutlets" : 1,
				"id" : "obj-84"
			}

		}
, 		{
			"box" : 			{
				"maxclass" : "newobj",
				"text" : "prepend /aftertouch",
				"outlettype" : [ "" ],
				"numinlets" : 1,
				"patching_rect" : [ 570.333344000000011, 490.0, 106.0, 20.0 ],
				"numoutlets" : 1,
				"id" : "obj-83"
			}

		}
, 		{
			"box" : 			{
				"maxclass" : "newobj",
				"text" : "prepend /pgmchange",
				"outlettype" : [ "" ],
				"numinlets" : 1,
				"patching_rect" : [ 455.333344000000011, 520.0, 119.0, 20.0 ],
				"numoutlets" : 1,
				"id" : "obj-82"
			}

		}
, 		{
			"box" : 			{
				"maxclass" : "newobj",
				"text" : "prepend /controlchange",
				"outlettype" : [ "" ],
				"numinlets" : 1,
				"patching_rect" : [ 382.5, 490.0, 130.0, 20.0 ],
				"numoutlets" : 1,
				"id" : "obj-81"
			}

		}
, 		{
			"box" : 			{
				"maxclass" : "newobj",
				"text" : "prepend /polypressure",
				"outlettype" : [ "" ],
				"numinlets" : 1,
				"patching_rect" : [ 278.0, 468.0, 113.0, 20.0 ],
				"numoutlets" : 1,
				"id" : "obj-80"
			}

		}
, 		{
			"box" : 			{
				"maxclass" : "comment",
				"text" : "MIDI \nChannel",
				"linecount" : 2,
				"textcolor" : [ 0.501961, 0.501961, 0.501961, 1.0 ],
				"fontname" : "Arial",
				"numinlets" : 1,
				"patching_rect" : [ 753.833344000000011, 417.0, 48.0, 29.0 ],
				"numoutlets" : 0,
				"id" : "obj-70",
				"fontsize" : 10.0
			}

		}
, 		{
			"box" : 			{
				"maxclass" : "comment",
				"text" : "Pitch\nBend",
				"linecount" : 2,
				"textcolor" : [ 0.501961, 0.501961, 0.501961, 1.0 ],
				"fontname" : "Arial",
				"numinlets" : 1,
				"patching_rect" : [ 659.333344000000011, 417.0, 35.0, 29.0 ],
				"numoutlets" : 0,
				"id" : "obj-71",
				"fontsize" : 10.0
			}

		}
, 		{
			"box" : 			{
				"maxclass" : "comment",
				"text" : "Aftertouch",
				"textcolor" : [ 0.501961, 0.501961, 0.501961, 1.0 ],
				"fontname" : "Arial",
				"numinlets" : 1,
				"patching_rect" : [ 565.333344000000011, 417.0, 58.0, 18.0 ],
				"numoutlets" : 0,
				"id" : "obj-26",
				"fontsize" : 10.0
			}

		}
, 		{
			"box" : 			{
				"maxclass" : "comment",
				"text" : "Pgm \nChange",
				"linecount" : 2,
				"textcolor" : [ 0.501961, 0.501961, 0.501961, 1.0 ],
				"fontname" : "Arial",
				"numinlets" : 1,
				"patching_rect" : [ 450.666656999999987, 419.0, 50.0, 29.0 ],
				"numoutlets" : 0,
				"id" : "obj-25",
				"fontsize" : 10.0
			}

		}
, 		{
			"box" : 			{
				"maxclass" : "comment",
				"text" : "Control \nChange",
				"linecount" : 2,
				"textcolor" : [ 0.501961, 0.501961, 0.501961, 1.0 ],
				"fontname" : "Arial",
				"numinlets" : 1,
				"patching_rect" : [ 377.5, 417.0, 52.0, 29.0 ],
				"numoutlets" : 0,
				"id" : "obj-24",
				"fontsize" : 10.0
			}

		}
, 		{
			"box" : 			{
				"maxclass" : "comment",
				"text" : "Poly \nPressure",
				"linecount" : 2,
				"textcolor" : [ 0.501961, 0.501961, 0.501961, 1.0 ],
				"fontname" : "Arial",
				"numinlets" : 1,
				"patching_rect" : [ 286.5, 417.0, 51.0, 29.0 ],
				"numoutlets" : 0,
				"id" : "obj-72",
				"fontsize" : 10.0
			}

		}
, 		{
			"box" : 			{
				"maxclass" : "newobj",
				"text" : "unpack i i",
				"outlettype" : [ "int", "int" ],
				"fontname" : "Arial",
				"numinlets" : 1,
				"patching_rect" : [ 287.5, 356.0, 54.0, 20.0 ],
				"numoutlets" : 2,
				"id" : "obj-73",
				"fontsize" : 10.0
			}

		}
, 		{
			"box" : 			{
				"maxclass" : "newobj",
				"text" : "unpack i i",
				"outlettype" : [ "int", "int" ],
				"fontname" : "Arial",
				"numinlets" : 1,
				"patching_rect" : [ 382.5, 356.0, 54.0, 20.0 ],
				"numoutlets" : 2,
				"id" : "obj-20",
				"fontsize" : 10.0
			}

		}
, 		{
			"box" : 			{
				"maxclass" : "button",
				"outlettype" : [ "bang" ],
				"parameter_enable" : 0,
				"numinlets" : 1,
				"patching_rect" : [ 280.0, 23.0, 24.0, 24.0 ],
				"numoutlets" : 1,
				"id" : "obj-69"
			}

		}
, 		{
			"box" : 			{
				"maxclass" : "live.text",
				"varname" : "live.text",
				"presentation_rect" : [ 10.0, 6.0, 44.0, 15.0 ],
				"outlettype" : [ "", "" ],
				"mode" : 0,
				"parameter_enable" : 1,
				"presentation" : 1,
				"numinlets" : 1,
				"patching_rect" : [ 280.0, 3.599999904632568, 44.0, 15.0 ],
				"numoutlets" : 2,
				"id" : "obj-67",
				"text" : "reset",
				"fontsize" : 10.0,
				"saved_attribute_attributes" : 				{
					"valueof" : 					{
						"parameter_enum" : [ "val1", "val2" ],
						"parameter_longname" : "live.text",
						"parameter_mmax" : 1,
						"parameter_shortname" : "live.text",
						"parameter_type" : 2
					}

				}

			}

		}
, 		{
			"box" : 			{
				"maxclass" : "message",
				"text" : "0",
				"outlettype" : [ "" ],
				"numinlets" : 2,
				"patching_rect" : [ 196.0, 239.0, 30.0, 20.0 ],
				"numoutlets" : 1,
				"id" : "obj-65",
				"fontsize" : 10.0
			}

		}
, 		{
			"box" : 			{
				"maxclass" : "button",
				"outlettype" : [ "bang" ],
				"parameter_enable" : 0,
				"numinlets" : 1,
				"patching_rect" : [ 218.5, 325.0, 24.0, 24.0 ],
				"numoutlets" : 1,
				"id" : "obj-62"
			}

		}
, 		{
			"box" : 			{
				"maxclass" : "toggle",
				"outlettype" : [ "int" ],
				"parameter_enable" : 0,
				"numinlets" : 1,
				"patching_rect" : [ 222.0, 365.0, 24.0, 24.0 ],
				"numoutlets" : 1,
				"id" : "obj-60"
			}

		}
, 		{
			"box" : 			{
				"maxclass" : "newobj",
				"text" : "prepend /noteon",
				"outlettype" : [ "" ],
				"numinlets" : 1,
				"patching_rect" : [ 186.5, 468.0, 81.0, 20.0 ],
				"numoutlets" : 1,
				"id" : "obj-51",
				"fontsize" : 10.0
			}

		}
, 		{
			"box" : 			{
				"maxclass" : "newobj",
				"text" : "prepend /velocity",
				"outlettype" : [ "" ],
				"numinlets" : 1,
				"patching_rect" : [ 94.5, 468.0, 84.0, 20.0 ],
				"numoutlets" : 1,
				"id" : "obj-50",
				"fontsize" : 10.0
			}

		}
, 		{
			"box" : 			{
				"maxclass" : "comment",
				"text" : "Note \nOn/Off",
				"linecount" : 2,
				"fontname" : "Arial",
				"numinlets" : 1,
				"patching_rect" : [ 132.5, 352.0, 44.0, 29.0 ],
				"numoutlets" : 0,
				"id" : "obj-10",
				"fontsize" : 10.0
			}

		}
, 		{
			"box" : 			{
				"maxclass" : "comment",
				"text" : "note num velocity",
				"numinlets" : 1,
				"patching_rect" : [ 16.5, 226.0, 103.0, 18.0 ],
				"numoutlets" : 0,
				"id" : "obj-49",
				"fontsize" : 10.0
			}

		}
, 		{
			"box" : 			{
				"maxclass" : "newobj",
				"text" : "unpack i i",
				"outlettype" : [ "int", "int" ],
				"fontname" : "Arial",
				"numinlets" : 1,
				"patching_rect" : [ 43.0, 325.0, 53.0, 20.0 ],
				"numoutlets" : 2,
				"id" : "obj-11",
				"fontsize" : 10.0
			}

		}
, 		{
			"box" : 			{
				"maxclass" : "number",
				"outlettype" : [ "", "bang" ],
				"parameter_enable" : 0,
				"fontname" : "Arial",
				"numinlets" : 1,
				"patching_rect" : [ 43.0, 352.0, 35.0, 20.0 ],
				"numoutlets" : 2,
				"id" : "obj-12",
				"fontsize" : 10.0
			}

		}
, 		{
			"box" : 			{
				"maxclass" : "number",
				"outlettype" : [ "", "bang" ],
				"parameter_enable" : 0,
				"fontname" : "Arial",
				"numinlets" : 1,
				"patching_rect" : [ 89.0, 352.0, 36.0, 20.0 ],
				"numoutlets" : 2,
				"id" : "obj-14",
				"fontsize" : 10.0
			}

		}
, 		{
			"box" : 			{
				"maxclass" : "newobj",
				"text" : "midiparse",
				"outlettype" : [ "", "", "", "int", "int", "", "int", "" ],
				"numinlets" : 1,
				"patching_rect" : [ 43.0, 160.0, 93.0, 20.0 ],
				"numoutlets" : 8,
				"id" : "obj-35",
				"fontsize" : 10.0
			}

		}
, 		{
			"box" : 			{
				"maxclass" : "newobj",
				"text" : "prepend /note",
				"outlettype" : [ "" ],
				"numinlets" : 1,
				"patching_rect" : [ 16.5, 468.0, 75.0, 20.0 ],
				"numoutlets" : 1,
				"id" : "obj-31",
				"fontsize" : 10.0
			}

		}
, 		{
			"box" : 			{
				"maxclass" : "newobj",
				"text" : "loadbang",
				"outlettype" : [ "bang" ],
				"numinlets" : 1,
				"patching_rect" : [ 196.0, 53.0, 53.0, 20.0 ],
				"numoutlets" : 1,
				"id" : "obj-30",
				"fontsize" : 10.0
			}

		}
, 		{
			"box" : 			{
				"maxclass" : "message",
				"text" : "5005",
				"outlettype" : [ "" ],
				"numinlets" : 2,
				"patching_rect" : [ 319.0, 71.0, 31.0, 20.0 ],
				"numoutlets" : 1,
				"id" : "obj-29",
				"fontsize" : 10.0
			}

		}
, 		{
			"box" : 			{
				"maxclass" : "number",
				"presentation_rect" : [ 56.5, 57.0, 50.0, 20.0 ],
				"outlettype" : [ "", "bang" ],
				"parameter_enable" : 0,
				"presentation" : 1,
				"numinlets" : 1,
				"patching_rect" : [ 319.0, 170.0, 51.0, 20.0 ],
				"numoutlets" : 2,
				"id" : "obj-27",
				"fontsize" : 10.0
			}

		}
, 		{
			"box" : 			{
				"maxclass" : "message",
				"text" : "127.0.0.1",
				"outlettype" : [ "" ],
				"numinlets" : 2,
				"patching_rect" : [ 196.0, 115.0, 50.0, 20.0 ],
				"numoutlets" : 1,
				"id" : "obj-21",
				"fontsize" : 10.0
			}

		}
, 		{
			"box" : 			{
				"maxclass" : "textedit",
				"text" : "127.0.0.1",
				"presentation_rect" : [ 56.5, 33.0, 80.5, 20.0 ],
				"outlettype" : [ "", "int", "", "" ],
				"parameter_enable" : 0,
				"presentation" : 1,
				"numinlets" : 1,
				"patching_rect" : [ 196.0, 176.0, 105.0, 24.0 ],
				"numoutlets" : 4,
				"id" : "obj-19",
				"fontsize" : 10.0
			}

		}
, 		{
			"box" : 			{
				"maxclass" : "newobj",
				"text" : "udpsend 127.0.0.1 5005",
				"numinlets" : 1,
				"patching_rect" : [ 23.0, 601.0, 116.0, 20.0 ],
				"numoutlets" : 0,
				"id" : "obj-6",
				"fontsize" : 10.0
			}

		}
, 		{
			"box" : 			{
				"maxclass" : "live.comment",
				"text" : "MIDI to Live",
				"textjustification" : 0,
				"numinlets" : 1,
				"patching_rect" : [ 106.0, 114.0, 61.0, 18.0 ],
				"numoutlets" : 0,
				"id" : "obj-5",
				"fontsize" : 10.0
			}

		}
, 		{
			"box" : 			{
				"maxclass" : "live.comment",
				"text" : "MIDI from Live",
				"textjustification" : 0,
				"numinlets" : 1,
				"patching_rect" : [ 33.0, 16.0, 73.0, 18.0 ],
				"numoutlets" : 0,
				"id" : "obj-4",
				"fontsize" : 10.0
			}

		}
, 		{
			"box" : 			{
				"maxclass" : "live.comment",
				"text" : "Build your MIDI effect here",
				"textjustification" : 0,
				"numinlets" : 1,
				"patching_rect" : [ 63.0, 75.0, 128.0, 18.0 ],
				"numoutlets" : 0,
				"id" : "obj-3",
				"fontsize" : 10.0
			}

		}
, 		{
			"box" : 			{
				"maxclass" : "comment",
				"text" : "Device vertical limit",
				"hidden" : 1,
				"fontname" : "Ableton Sans Medium Regular",
				"numinlets" : 1,
				"patching_rect" : [ 1.5, 197.0, 122.0, 18.0 ],
				"numoutlets" : 0,
				"id" : "obj-9",
				"fontsize" : 10.0
			}

		}
, 		{
			"box" : 			{
				"maxclass" : "newobj",
				"text" : "midiout",
				"fontname" : "Arial Bold",
				"numinlets" : 1,
				"patching_rect" : [ 48.0, 114.0, 47.0, 20.0 ],
				"numoutlets" : 0,
				"id" : "obj-2",
				"fontsize" : 10.0
			}

		}
, 		{
			"box" : 			{
				"maxclass" : "newobj",
				"text" : "midiin",
				"outlettype" : [ "int" ],
				"fontname" : "Arial Bold",
				"numinlets" : 1,
				"patching_rect" : [ 48.0, 34.0, 40.0, 20.0 ],
				"numoutlets" : 1,
				"id" : "obj-1",
				"fontsize" : 10.0
			}

		}
, 		{
			"box" : 			{
				"maxclass" : "message",
				"text" : "port $1",
				"outlettype" : [ "" ],
				"numinlets" : 2,
				"patching_rect" : [ 319.0, 239.0, 50.0, 20.0 ],
				"numoutlets" : 1,
				"id" : "obj-17",
				"fontsize" : 10.0
			}

		}
, 		{
			"box" : 			{
				"maxclass" : "message",
				"text" : "host $1",
				"outlettype" : [ "" ],
				"numinlets" : 2,
				"patching_rect" : [ 242.0, 246.0, 50.0, 20.0 ],
				"numoutlets" : 1,
				"id" : "obj-18",
				"fontsize" : 10.0
			}

		}
, 		{
			"box" : 			{
				"maxclass" : "message",
				"text" : "set $1",
				"outlettype" : [ "" ],
				"numinlets" : 2,
				"patching_rect" : [ 196.0, 140.0, 50.0, 20.0 ],
				"numoutlets" : 1,
				"id" : "obj-22",
				"fontsize" : 10.0
			}

		}
 ],
	"lines" : [ 		{
			"patchline" : 			{
				"source" : [ "obj-99", 0 ],
				"destination" : [ "obj-83", 0 ]
			}

		}
, 		{
			"patchline" : 			{
				"source" : [ "obj-97", 0 ],
				"destination" : [ "obj-81", 0 ]
			}

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

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

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

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

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

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

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

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

		}
, 		{
			"patchline" : 			{
				"source" : [ "obj-73", 0 ],
				"destination" : [ "obj-95", 0 ]
			}

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

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

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

		}
, 		{
			"patchline" : 			{
				"source" : [ "obj-65", 0 ],
				"destination" : [ "obj-60", 0 ]
			}

		}
, 		{
			"patchline" : 			{
				"source" : [ "obj-62", 0 ],
				"destination" : [ "obj-60", 0 ]
			}

		}
, 		{
			"patchline" : 			{
				"source" : [ "obj-60", 0 ],
				"destination" : [ "obj-96", 0 ],
				"order" : 1
			}

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

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

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

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

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

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

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

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

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

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

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

		}
, 		{
			"patchline" : 			{
				"source" : [ "obj-30", 0 ],
				"destination" : [ "obj-65", 0 ],
				"order" : 1
			}

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

		}
, 		{
			"patchline" : 			{
				"source" : [ "obj-30", 0 ],
				"destination" : [ "obj-21", 0 ],
				"order" : 2
			}

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

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

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

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

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

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

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

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

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

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

		}
, 		{
			"patchline" : 			{
				"source" : [ "obj-12", 0 ],
				"destination" : [ "obj-93", 0 ],
				"order" : 1
			}

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

		}
, 		{
			"patchline" : 			{
				"source" : [ "obj-12", 0 ],
				"destination" : [ "obj-31", 0 ],
				"order" : 2
			}

		}
, 		{
			"patchline" : 			{
				"source" : [ "obj-110", 0 ],
				"destination" : [ "obj-109", 0 ]
			}

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

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

		}
, 		{
			"patchline" : 			{
				"source" : [ "obj-109", 0 ],
				"destination" : [ "obj-85", 0 ]
			}

		}
, 		{
			"patchline" : 			{
				"source" : [ "obj-102", 0 ],
				"destination" : [ "obj-110", 0 ]
			}

		}
, 		{
			"patchline" : 			{
				"source" : [ "obj-101", 0 ],
				"destination" : [ "obj-84", 0 ]
			}

		}
, 		{
			"patchline" : 			{
				"source" : [ "obj-100", 0 ],
				"destination" : [ "obj-82", 0 ]
			}

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

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

		}
 ],
	"appversion" : 	{
		"major" : 8,
		"minor" : 3,
		"revision" : 1,
		"architecture" : "x64",
		"modernui" : 1
	}
,
	"classnamespace" : "box"
}


````