# HG changeset patch # User Becky Stewart # Date 1298635385 0 # Node ID 950b839f50ed6e562a7792a66d1c81a7e796bd59 # Parent 85d158045994634cf0944689dacdbff7bfdbca93# Parent 1df5ded9f9ff30e3d62c54d3fbe8bab8b091bfc3 Merge diff -r 85d158045994 -r 950b839f50ed Ableton Project/Ableton.als Binary file Ableton Project/Ableton.als has changed diff -r 85d158045994 -r 950b839f50ed Abletons max connection.maxpat --- a/Abletons max connection.maxpat Fri Feb 25 12:02:22 2011 +0000 +++ b/Abletons max connection.maxpat Fri Feb 25 12:03:05 2011 +0000 @@ -1,9 +1,9 @@ { "patcher" : { "fileversion" : 1, - "rect" : [ 204.0, 44.0, 988.0, 691.0 ], + "rect" : [ 815.0, 97.0, 584.0, 712.0 ], "bglocked" : 0, - "defrect" : [ 204.0, 44.0, 988.0, 691.0 ], + "defrect" : [ 815.0, 97.0, 584.0, 712.0 ], "openrect" : [ 0.0, 0.0, 0.0, 0.0 ], "openinpresentation" : 0, "default_fontsize" : 12.0, @@ -20,14 +20,1073 @@ "devicewidth" : 0.0, "boxes" : [ { "box" : { + "maxclass" : "message", + "text" : "1 1 48", + "patching_rect" : [ 678.0, 240.0, 50.0, 18.0 ], + "id" : "obj-167", + "fontname" : "Arial", + "numinlets" : 2, + "numoutlets" : 1, + "fontsize" : 12.0, + "outlettype" : [ "" ] + } + + } +, { + "box" : { + "maxclass" : "button", + "patching_rect" : [ 668.0, 157.0, 20.0, 20.0 ], + "id" : "obj-165", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "bang" ] + } + + } +, { + "box" : { + "maxclass" : "newobj", + "text" : "ctlout a", + "patching_rect" : [ 325.0, 648.0, 49.0, 20.0 ], + "id" : "obj-163", + "fontname" : "Arial", + "numinlets" : 3, + "numoutlets" : 0, + "fontsize" : 12.0 + } + + } +, { + "box" : { + "maxclass" : "comment", + "text" : "map to launch scene", + "patching_rect" : [ 992.0, 580.0, 122.0, 20.0 ], + "id" : "obj-162", + "fontname" : "Arial", + "numinlets" : 1, + "numoutlets" : 0, + "fontsize" : 12.0, + "presentation_rect" : [ 1031.0, 586.0, 0.0, 0.0 ] + } + + } +, { + "box" : { + "maxclass" : "message", + "text" : "127 2 16, 0 2 16", + "patching_rect" : [ 894.0, 581.0, 97.0, 18.0 ], + "id" : "obj-161", + "fontname" : "Arial", + "numinlets" : 2, + "numoutlets" : 1, + "fontsize" : 12.0, + "outlettype" : [ "" ] + } + + } +, { + "box" : { + "maxclass" : "comment", + "text" : "launch scene and move to next scene. (different scenes are different drum loop)", + "linecount" : 7, + "patching_rect" : [ 334.0, 529.285706, 67.0, 86.0 ], + "id" : "obj-144", + "fontname" : "Arial", + "numinlets" : 1, + "numoutlets" : 0, + "fontsize" : 9.836608 + } + + } +, { + "box" : { + "maxclass" : "message", + "text" : "127 2 16, 0 2 16", + "linecount" : 2, + "patching_rect" : [ 325.0, 497.0, 60.0, 32.0 ], + "id" : "obj-141", + "fontname" : "Arial", + "numinlets" : 2, + "numoutlets" : 1, + "fontsize" : 12.0, + "outlettype" : [ "" ] + } + + } +, { + "box" : { + "maxclass" : "comment", + "text" : "IAC Driver Bus should be set to output 'a' under MIDI settings.", + "linecount" : 2, + "patching_rect" : [ 12.0, 67.37207, 220.0, 39.0 ], + "frgb" : [ 1.0, 1.0, 1.0, 1.0 ], + "id" : "obj-139", + "fontname" : "Arial", + "numinlets" : 1, + "bgcolor" : [ 0.811765, 0.372549, 0.372549, 1.0 ], + "numoutlets" : 0, + "textcolor" : [ 1.0, 1.0, 1.0, 1.0 ], + "fontsize" : 14.012403, + "presentation_rect" : [ 15.0, 67.37207, 0.0, 0.0 ] + } + + } +, { + "box" : { + "maxclass" : "comment", + "text" : "to Ableton", + "patching_rect" : [ 405.0, 670.0, 67.0, 20.0 ], + "id" : "obj-138", + "fontname" : "Arial", + "numinlets" : 1, + "numoutlets" : 0, + "fontsize" : 12.0 + } + + } +, { + "box" : { + "maxclass" : "comment", + "text" : "We listen on port 12346.", + "linecount" : 2, + "patching_rect" : [ 401.0, 2.37207, 103.0, 39.0 ], + "frgb" : [ 1.0, 1.0, 1.0, 1.0 ], + "id" : "obj-135", + "fontname" : "Arial", + "numinlets" : 1, + "bgcolor" : [ 0.811765, 0.372549, 0.372549, 1.0 ], + "numoutlets" : 0, + "textcolor" : [ 1.0, 1.0, 1.0, 1.0 ], + "fontsize" : 14.012403, + "presentation_rect" : [ 997.0, 240.37207, 0.0, 0.0 ] + } + + } +, { + "box" : { + "maxclass" : "comment", + "text" : "CC2", + "patching_rect" : [ 686.0, 583.0, 35.0, 20.0 ], + "id" : "obj-134", + "fontname" : "Arial", + "numinlets" : 1, + "numoutlets" : 0, + "fontsize" : 12.0, + "presentation_rect" : [ 785.0, 566.0, 0.0, 0.0 ] + } + + } +, { + "box" : { + "maxclass" : "comment", + "text" : "CC1", + "patching_rect" : [ 686.0, 556.0, 35.0, 20.0 ], + "id" : "obj-133", + "fontname" : "Arial", + "numinlets" : 1, + "numoutlets" : 0, + "fontsize" : 12.0 + } + + } +, { + "box" : { + "maxclass" : "comment", + "text" : "Inst 3", + "patching_rect" : [ 836.0, 529.0, 43.0, 20.0 ], + "id" : "obj-131", + "fontname" : "Arial", + "numinlets" : 1, + "numoutlets" : 0, + "fontsize" : 12.0, + "presentation_rect" : [ 935.0, 512.0, 0.0, 0.0 ] + } + + } +, { + "box" : { + "maxclass" : "comment", + "text" : "Inst 2", + "patching_rect" : [ 784.0, 529.0, 43.0, 20.0 ], + "id" : "obj-130", + "fontname" : "Arial", + "numinlets" : 1, + "numoutlets" : 0, + "fontsize" : 12.0, + "presentation_rect" : [ 883.0, 512.0, 0.0, 0.0 ] + } + + } +, { + "box" : { + "maxclass" : "comment", + "text" : "Inst 1", + "patching_rect" : [ 730.0, 529.0, 43.0, 20.0 ], + "id" : "obj-129", + "fontname" : "Arial", + "numinlets" : 1, + "numoutlets" : 0, + "fontsize" : 12.0 + } + + } +, { + "box" : { + "maxclass" : "message", + "text" : "50 2 3", + "patching_rect" : [ 836.0, 583.0, 44.0, 18.0 ], + "id" : "obj-126", + "fontname" : "Arial", + "numinlets" : 2, + "numoutlets" : 1, + "fontsize" : 12.0, + "outlettype" : [ "" ], + "presentation_rect" : [ 934.0, 566.0, 0.0, 0.0 ] + } + + } +, { + "box" : { + "maxclass" : "message", + "text" : "50 1 3", + "patching_rect" : [ 836.0, 556.0, 44.0, 18.0 ], + "id" : "obj-127", + "fontname" : "Arial", + "numinlets" : 2, + "numoutlets" : 1, + "fontsize" : 12.0, + "outlettype" : [ "" ], + "presentation_rect" : [ 934.0, 541.0, 0.0, 0.0 ] + } + + } +, { + "box" : { + "maxclass" : "message", + "text" : "50 2 2", + "patching_rect" : [ 784.0, 583.0, 44.0, 18.0 ], + "id" : "obj-124", + "fontname" : "Arial", + "numinlets" : 2, + "numoutlets" : 1, + "fontsize" : 12.0, + "outlettype" : [ "" ], + "presentation_rect" : [ 881.0, 566.0, 0.0, 0.0 ] + } + + } +, { + "box" : { + "maxclass" : "message", + "text" : "50 1 2", + "patching_rect" : [ 784.0, 556.0, 44.0, 18.0 ], + "id" : "obj-125", + "fontname" : "Arial", + "numinlets" : 2, + "numoutlets" : 1, + "fontsize" : 12.0, + "outlettype" : [ "" ], + "presentation_rect" : [ 881.0, 541.0, 0.0, 0.0 ] + } + + } +, { + "box" : { + "maxclass" : "message", + "text" : "50 2 1", + "patching_rect" : [ 730.0, 583.0, 44.0, 18.0 ], + "id" : "obj-123", + "fontname" : "Arial", + "numinlets" : 2, + "numoutlets" : 1, + "fontsize" : 12.0, + "outlettype" : [ "" ], + "presentation_rect" : [ 829.0, 566.0, 0.0, 0.0 ] + } + + } +, { + "box" : { + "maxclass" : "message", + "text" : "50 1 1", + "patching_rect" : [ 730.0, 556.0, 44.0, 18.0 ], + "id" : "obj-122", + "fontname" : "Arial", + "numinlets" : 2, + "numoutlets" : 1, + "fontsize" : 12.0, + "outlettype" : [ "" ] + } + + } +, { + "box" : { + "maxclass" : "newobj", + "text" : "ctlout a", + "patching_rect" : [ 784.0, 622.0, 49.0, 20.0 ], + "id" : "obj-120", + "fontname" : "Arial", + "numinlets" : 3, + "numoutlets" : 0, + "fontsize" : 12.0 + } + + } +, { + "box" : { + "maxclass" : "comment", + "text" : "For setting up the mapping in Ableton:", + "linecount" : 2, + "patching_rect" : [ 680.0, 479.191315, 135.0, 40.0 ], + "id" : "obj-119", + "fontname" : "Arial", + "numinlets" : 1, + "numoutlets" : 0, + "fontsize" : 14.350855 + } + + } +, { + "box" : { + "maxclass" : "comment", + "text" : "Send chord changes 68ms early.", + "patching_rect" : [ 197.0, 385.92392, 167.0, 18.0 ], + "id" : "obj-115", + "fontname" : "Arial", + "numinlets" : 1, + "numoutlets" : 0, + "fontsize" : 10.29036 + } + + } +, { + "box" : { + "maxclass" : "comment", + "text" : "IP address for Joe needs to be set below", + "linecount" : 2, + "patching_rect" : [ 12.0, 6.492308, 226.0, 57.0 ], + "frgb" : [ 1.0, 1.0, 1.0, 1.0 ], + "id" : "obj-113", + "fontname" : "Arial", + "numinlets" : 1, + "bgcolor" : [ 0.811765, 0.372549, 0.372549, 1.0 ], + "numoutlets" : 0, + "textcolor" : [ 1.0, 1.0, 1.0, 1.0 ], + "fontsize" : 22.117697 + } + + } +, { + "box" : { + "maxclass" : "comment", + "text" : "to Joe", + "patching_rect" : [ 120.0, 520.37207, 50.0, 23.0 ], + "frgb" : [ 1.0, 1.0, 1.0, 1.0 ], + "id" : "obj-111", + "fontname" : "Arial", + "numinlets" : 1, + "bgcolor" : [ 0.811765, 0.372549, 0.372549, 1.0 ], + "numoutlets" : 0, + "textcolor" : [ 1.0, 1.0, 1.0, 1.0 ], + "fontsize" : 14.012403 + } + + } +, { + "box" : { + "maxclass" : "newobj", + "text" : "delay 68", + "patching_rect" : [ 127.0, 414.0, 56.0, 20.0 ], + "id" : "obj-109", + "fontname" : "Arial", + "numinlets" : 2, + "numoutlets" : 1, + "fontsize" : 12.0, + "outlettype" : [ "bang" ] + } + + } +, { + "box" : { + "maxclass" : "newobj", + "text" : "delay 400", + "patching_rect" : [ 127.0, 375.0, 63.0, 20.0 ], + "id" : "obj-108", + "fontname" : "Arial", + "numinlets" : 2, + "numoutlets" : 1, + "fontsize" : 12.0, + "outlettype" : [ "bang" ] + } + + } +, { + "box" : { + "maxclass" : "comment", + "text" : "final beat", + "patching_rect" : [ 146.0, 340.0, 59.0, 20.0 ], + "id" : "obj-107", + "fontname" : "Arial", + "numinlets" : 1, + "numoutlets" : 0, + "fontsize" : 12.0 + } + + } +, { + "box" : { + "maxclass" : "button", + "patching_rect" : [ 126.0, 340.0, 20.0, 20.0 ], + "id" : "obj-105", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "bang" ] + } + + } +, { + "box" : { + "maxclass" : "newobj", + "text" : "+ 1", + "patching_rect" : [ 52.0, 363.756714, 26.5, 17.0 ], + "id" : "obj-94", + "fontname" : "Arial", + "numinlets" : 2, + "numoutlets" : 1, + "fontsize" : 9.108685, + "outlettype" : [ "int" ], + "presentation_rect" : [ 619.0, 546.756714, 0.0, 0.0 ] + } + + } +, { + "box" : { + "maxclass" : "newobj", + "text" : "+ 1", + "patching_rect" : [ 86.0, 362.756714, 26.5, 17.0 ], + "id" : "obj-93", + "fontname" : "Arial", + "numinlets" : 2, + "numoutlets" : 1, + "fontsize" : 9.108685, + "outlettype" : [ "int" ] + } + + } +, { + "box" : { + "maxclass" : "number", + "patching_rect" : [ 86.0, 386.0, 17.996094, 20.0 ], + "id" : "obj-92", + "fontname" : "Arial", + "numinlets" : 1, + "numoutlets" : 2, + "fontsize" : 12.0, + "triangle" : 0, + "outlettype" : [ "int", "bang" ], + "ignoreclick" : 1 + } + + } +, { + "box" : { + "maxclass" : "number", + "patching_rect" : [ 52.0, 386.0, 31.0, 20.0 ], + "id" : "obj-90", + "fontname" : "Arial", + "numinlets" : 1, + "numoutlets" : 2, + "fontsize" : 12.0, + "triangle" : 0, + "outlettype" : [ "int", "bang" ], + "ignoreclick" : 1 + } + + } +, { + "box" : { + "maxclass" : "newobj", + "text" : "% 4", + "patching_rect" : [ 86.0, 342.84613, 26.5, 17.0 ], + "id" : "obj-88", + "fontname" : "Arial", + "numinlets" : 2, + "numoutlets" : 1, + "fontsize" : 9.108685, + "outlettype" : [ "int" ] + } + + } +, { + "box" : { + "maxclass" : "newobj", + "text" : "/ 4", + "patching_rect" : [ 52.0, 342.84613, 26.5, 17.0 ], + "id" : "obj-87", + "fontname" : "Arial", + "numinlets" : 2, + "numoutlets" : 1, + "fontsize" : 9.164513, + "outlettype" : [ "int" ] + } + + } +, { + "box" : { + "maxclass" : "newobj", + "text" : "loadmess 16", + "patching_rect" : [ 110.0, 242.0, 79.0, 20.0 ], + "id" : "obj-86", + "fontname" : "Arial", + "numinlets" : 1, + "numoutlets" : 1, + "fontsize" : 12.0, + "outlettype" : [ "" ] + } + + } +, { + "box" : { + "maxclass" : "comment", + "text" : "bars per chord & drum loop", + "patching_rect" : [ 161.0, 265.0, 158.0, 20.0 ], + "id" : "obj-85", + "fontname" : "Arial", + "numinlets" : 1, + "numoutlets" : 0, + "fontsize" : 12.0 + } + + } +, { + "box" : { + "maxclass" : "newobj", + "text" : "expr $i1*4 - 1", + "patching_rect" : [ 110.0, 289.374817, 70.0, 18.0 ], + "id" : "obj-83", + "fontname" : "Arial", + "numinlets" : 1, + "numoutlets" : 1, + "fontsize" : 10.024733, + "outlettype" : [ "" ] + } + + } +, { + "box" : { + "maxclass" : "number", + "patching_rect" : [ 110.0, 265.0, 50.0, 20.0 ], + "id" : "obj-80", + "fontname" : "Arial", + "numinlets" : 1, + "numoutlets" : 2, + "fontsize" : 12.0, + "outlettype" : [ "int", "bang" ] + } + + } +, { + "box" : { + "maxclass" : "newobj", + "text" : "counter 0 63", + "patching_rect" : [ 52.0, 312.0, 77.0, 20.0 ], + "id" : "obj-78", + "fontname" : "Arial", + "numinlets" : 5, + "numoutlets" : 4, + "fontsize" : 12.0, + "outlettype" : [ "int", "", "", "int" ] + } + + } +, { + "box" : { + "maxclass" : "led", + "patching_rect" : [ 78.0, 228.0, 28.0, 28.0 ], + "id" : "obj-75", + "numinlets" : 1, + "blinktime" : 234, + "numoutlets" : 1, + "outlettype" : [ "int" ] + } + + } +, { + "box" : { + "maxclass" : "toggle", + "patching_rect" : [ 41.0, 168.0, 20.0, 20.0 ], + "id" : "obj-74", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "int" ] + } + + } +, { + "box" : { + "maxclass" : "comment", + "text" : "nearly 128 BPM", + "patching_rect" : [ 110.0, 205.0, 99.0, 20.0 ], + "id" : "obj-72", + "fontname" : "Arial", + "numinlets" : 1, + "numoutlets" : 0, + "fontsize" : 12.0 + } + + } +, { + "box" : { + "maxclass" : "newobj", + "text" : "metro 468", + "patching_rect" : [ 41.0, 205.0, 65.0, 20.0 ], + "id" : "obj-70", + "fontname" : "Arial", + "numinlets" : 2, + "numoutlets" : 1, + "fontsize" : 12.0, + "outlettype" : [ "bang" ] + } + + } +, { + "box" : { + "maxclass" : "comment", + "text" : "Clock to change drum loop and chord", + "linecount" : 2, + "patching_rect" : [ 13.0, 125.0, 150.0, 34.0 ], + "id" : "obj-69", + "fontname" : "Arial", + "numinlets" : 1, + "numoutlets" : 0, + "fontsize" : 12.0 + } + + } +, { + "box" : { + "maxclass" : "comment", + "text" : "Simulate Kinect input", + "patching_rect" : [ 981.0, 16.441864, 164.0, 26.0 ], + "id" : "obj-67", + "fontname" : "Arial", + "numinlets" : 1, + "numoutlets" : 0, + "fontsize" : 16.599777 + } + + } +, { + "box" : { + "maxclass" : "newobj", + "text" : "p delay note-offs for instrument 1", + "patching_rect" : [ 401.0, 248.944763, 186.0, 20.0 ], + "id" : "obj-65", + "fontname" : "Arial", + "numinlets" : 1, + "numoutlets" : 1, + "fontsize" : 12.0, + "outlettype" : [ "" ], + "patcher" : { + "fileversion" : 1, + "rect" : [ 25.0, 69.0, 640.0, 480.0 ], + "bglocked" : 0, + "defrect" : [ 25.0, 69.0, 640.0, 480.0 ], + "openrect" : [ 0.0, 0.0, 0.0, 0.0 ], + "openinpresentation" : 0, + "default_fontsize" : 12.0, + "default_fontface" : 0, + "default_fontname" : "Arial", + "gridonopen" : 0, + "gridsize" : [ 15.0, 15.0 ], + "gridsnaponopen" : 0, + "toolbarvisible" : 1, + "boxanimatetime" : 200, + "imprint" : 0, + "enablehscroll" : 1, + "enablevscroll" : 1, + "devicewidth" : 0.0, + "boxes" : [ { + "box" : { + "maxclass" : "comment", + "text" : "pitch vel chan", + "patching_rect" : [ 208.0, 461.0, 96.0, 20.0 ], + "id" : "obj-5", + "fontname" : "Arial", + "numinlets" : 1, + "numoutlets" : 0, + "fontsize" : 12.0 + } + + } +, { + "box" : { + "maxclass" : "comment", + "text" : "pitch vel chan", + "patching_rect" : [ 161.0, 57.0, 86.0, 20.0 ], + "id" : "obj-2", + "fontname" : "Arial", + "numinlets" : 1, + "numoutlets" : 0, + "fontsize" : 12.0 + } + + } +, { + "box" : { + "maxclass" : "newobj", + "text" : "zl rev", + "patching_rect" : [ 192.0, 414.055237, 39.0, 20.0 ], + "id" : "obj-62", + "fontname" : "Arial", + "numinlets" : 2, + "numoutlets" : 2, + "fontsize" : 12.0, + "outlettype" : [ "", "" ] + } + + } +, { + "box" : { + "maxclass" : "comment", + "text" : "chan vel pitch", + "patching_rect" : [ 208.0, 389.566895, 73.0, 17.0 ], + "id" : "obj-61", + "fontname" : "Arial", + "numinlets" : 1, + "numoutlets" : 0, + "fontsize" : 9.106835 + } + + } +, { + "box" : { + "maxclass" : "newobj", + "text" : "prepend 1", + "patching_rect" : [ 192.0, 367.055237, 65.0, 20.0 ], + "id" : "obj-59", + "fontname" : "Arial", + "numinlets" : 1, + "numoutlets" : 1, + "fontsize" : 12.0, + "outlettype" : [ "" ] + } + + } +, { + "box" : { + "maxclass" : "newobj", + "text" : "pack 0 0", + "patching_rect" : [ 192.0, 310.055237, 56.0, 20.0 ], + "id" : "obj-58", + "fontname" : "Arial", + "numinlets" : 2, + "numoutlets" : 1, + "fontsize" : 12.0, + "outlettype" : [ "" ] + } + + } +, { + "box" : { + "maxclass" : "newobj", + "text" : "pipe 100", + "patching_rect" : [ 50.0, 337.055237, 57.0, 20.0 ], + "id" : "obj-57", + "fontname" : "Arial", + "numinlets" : 2, + "numoutlets" : 1, + "fontsize" : 12.0, + "outlettype" : [ "" ] + } + + } +, { + "box" : { + "maxclass" : "newobj", + "text" : "pack 0 0", + "patching_rect" : [ 50.0, 310.055237, 56.0, 20.0 ], + "id" : "obj-56", + "fontname" : "Arial", + "numinlets" : 2, + "numoutlets" : 1, + "fontsize" : 12.0, + "outlettype" : [ "" ] + } + + } +, { + "box" : { + "maxclass" : "comment", + "text" : "chan vel pitch", + "patching_rect" : [ 157.0, 164.629944, 79.0, 19.0 ], + "id" : "obj-53", + "fontname" : "Arial", + "numinlets" : 1, + "numoutlets" : 0, + "fontsize" : 10.536201 + } + + } +, { + "box" : { + "maxclass" : "comment", + "text" : "vel pitch", + "patching_rect" : [ 148.0, 217.055237, 55.0, 20.0 ], + "id" : "obj-51", + "fontname" : "Arial", + "numinlets" : 1, + "numoutlets" : 0, + "fontsize" : 12.0 + } + + } +, { + "box" : { + "maxclass" : "newobj", + "text" : "if $i1!=0 then $i1 else out2 0", + "patching_rect" : [ 50.0, 277.055237, 161.0, 20.0 ], + "id" : "obj-24", + "fontname" : "Arial", + "numinlets" : 1, + "numoutlets" : 2, + "fontsize" : 12.0, + "outlettype" : [ "", "" ] + } + + } +, { + "box" : { + "maxclass" : "newobj", + "text" : "unpack 0 0", + "patching_rect" : [ 131.0, 238.055237, 69.0, 20.0 ], + "id" : "obj-22", + "fontname" : "Arial", + "numinlets" : 1, + "numoutlets" : 2, + "fontsize" : 12.0, + "outlettype" : [ "int", "int" ] + } + + } +, { + "box" : { + "maxclass" : "comment", + "text" : "Instrument 1 is monophonic with glide: this bit of patching delays the note-offs slightly", + "linecount" : 3, + "patching_rect" : [ 155.0, 100.0, 147.0, 42.0 ], + "id" : "obj-20", + "fontname" : "Arial", + "numinlets" : 1, + "numoutlets" : 0, + "fontsize" : 10.385214 + } + + } +, { + "box" : { + "maxclass" : "newobj", + "text" : "zl rev", + "patching_rect" : [ 131.0, 145.055237, 39.0, 20.0 ], + "id" : "obj-12", + "fontname" : "Arial", + "numinlets" : 2, + "numoutlets" : 2, + "fontsize" : 12.0, + "outlettype" : [ "", "" ] + } + + } +, { + "box" : { + "maxclass" : "newobj", + "text" : "route 1", + "patching_rect" : [ 131.0, 185.055237, 48.0, 20.0 ], + "id" : "obj-4", + "fontname" : "Arial", + "numinlets" : 1, + "numoutlets" : 2, + "fontsize" : 12.0, + "outlettype" : [ "", "" ] + } + + } +, { + "box" : { + "maxclass" : "inlet", + "patching_rect" : [ 131.0, 40.0, 25.0, 25.0 ], + "id" : "obj-63", + "numinlets" : 0, + "numoutlets" : 1, + "outlettype" : [ "" ], + "comment" : "" + } + + } +, { + "box" : { + "maxclass" : "outlet", + "patching_rect" : [ 192.0, 494.055237, 25.0, 25.0 ], + "id" : "obj-64", + "numinlets" : 1, + "numoutlets" : 0, + "comment" : "" + } + + } + ], + "lines" : [ { + "patchline" : { + "source" : [ "obj-12", 0 ], + "destination" : [ "obj-4", 0 ], + "hidden" : 0, + "midpoints" : [ ] + } + + } +, { + "patchline" : { + "source" : [ "obj-4", 0 ], + "destination" : [ "obj-22", 0 ], + "hidden" : 0, + "midpoints" : [ ] + } + + } +, { + "patchline" : { + "source" : [ "obj-22", 0 ], + "destination" : [ "obj-24", 0 ], + "hidden" : 0, + "midpoints" : [ ] + } + + } +, { + "patchline" : { + "source" : [ "obj-22", 1 ], + "destination" : [ "obj-56", 1 ], + "hidden" : 0, + "midpoints" : [ ] + } + + } +, { + "patchline" : { + "source" : [ "obj-24", 0 ], + "destination" : [ "obj-56", 0 ], + "hidden" : 0, + "midpoints" : [ ] + } + + } +, { + "patchline" : { + "source" : [ "obj-56", 0 ], + "destination" : [ "obj-57", 0 ], + "hidden" : 0, + "midpoints" : [ ] + } + + } +, { + "patchline" : { + "source" : [ "obj-24", 1 ], + "destination" : [ "obj-58", 0 ], + "hidden" : 0, + "midpoints" : [ ] + } + + } +, { + "patchline" : { + "source" : [ "obj-22", 1 ], + "destination" : [ "obj-58", 1 ], + "hidden" : 0, + "midpoints" : [ ] + } + + } +, { + "patchline" : { + "source" : [ "obj-57", 0 ], + "destination" : [ "obj-59", 0 ], + "hidden" : 0, + "midpoints" : [ ] + } + + } +, { + "patchline" : { + "source" : [ "obj-58", 0 ], + "destination" : [ "obj-59", 0 ], + "hidden" : 0, + "midpoints" : [ ] + } + + } +, { + "patchline" : { + "source" : [ "obj-4", 1 ], + "destination" : [ "obj-62", 1 ], + "hidden" : 0, + "midpoints" : [ 169.5, 212.055237, 301.0, 212.055237, 301.0, 409.055237, 221.5, 409.055237 ] + } + + } +, { + "patchline" : { + "source" : [ "obj-59", 0 ], + "destination" : [ "obj-62", 0 ], + "hidden" : 0, + "midpoints" : [ ] + } + + } +, { + "patchline" : { + "source" : [ "obj-63", 0 ], + "destination" : [ "obj-12", 0 ], + "hidden" : 0, + "midpoints" : [ ] + } + + } +, { + "patchline" : { + "source" : [ "obj-62", 0 ], + "destination" : [ "obj-64", 0 ], + "hidden" : 0, + "midpoints" : [ ] + } + + } + ] + } +, + "saved_object_attributes" : { + "default_fontsize" : 12.0, + "fontname" : "Arial", + "globalpatchername" : "", + "fontface" : 0, + "default_fontface" : 0, + "fontsize" : 12.0, + "default_fontname" : "Arial" + } + + } + + } +, { + "box" : { "maxclass" : "newobj", "text" : "udpsend localhost 12344", + "patching_rect" : [ 998.0, 214.0, 144.0, 20.0 ], "id" : "obj-32", "fontname" : "Arial", "numinlets" : 1, - "fontsize" : 12.0, "numoutlets" : 0, - "patching_rect" : [ 747.0, 573.0, 144.0, 20.0 ] + "fontsize" : 12.0 } } @@ -35,13 +1094,13 @@ "box" : { "maxclass" : "newobj", "text" : "prepend /person", + "patching_rect" : [ 998.0, 174.0, 98.0, 20.0 ], "id" : "obj-31", "fontname" : "Arial", "numinlets" : 1, + "numoutlets" : 1, "fontsize" : 12.0, - "numoutlets" : 1, - "outlettype" : [ "" ], - "patching_rect" : [ 736.0, 533.0, 98.0, 20.0 ] + "outlettype" : [ "" ] } } @@ -49,87 +1108,87 @@ "box" : { "maxclass" : "newobj", "text" : "pak i f f f", + "patching_rect" : [ 998.0, 95.0, 59.5, 20.0 ], "id" : "obj-30", "fontname" : "Arial", "numinlets" : 4, + "numoutlets" : 1, "fontsize" : 12.0, - "numoutlets" : 1, - "outlettype" : [ "" ], - "patching_rect" : [ 728.0, 454.0, 59.5, 20.0 ] + "outlettype" : [ "" ] } } , { "box" : { "maxclass" : "flonum", + "patching_rect" : [ 1084.0, 50.0, 80.0, 20.0 ], "id" : "obj-29", "fontname" : "Arial", "numinlets" : 1, + "numoutlets" : 2, "fontsize" : 12.0, - "numoutlets" : 2, - "outlettype" : [ "float", "bang" ], - "patching_rect" : [ 866.0, 403.0, 80.0, 20.0 ] + "outlettype" : [ "float", "bang" ] } } , { "box" : { "maxclass" : "flonum", + "patching_rect" : [ 1030.0, 50.0, 50.0, 20.0 ], "id" : "obj-27", "fontname" : "Arial", "numinlets" : 1, + "numoutlets" : 2, "fontsize" : 12.0, - "numoutlets" : 2, - "outlettype" : [ "float", "bang" ], - "patching_rect" : [ 794.0, 403.0, 50.0, 20.0 ] + "outlettype" : [ "float", "bang" ] } } , { "box" : { "maxclass" : "flonum", + "patching_rect" : [ 977.0, 50.0, 50.0, 20.0 ], "id" : "obj-25", "fontname" : "Arial", "numinlets" : 1, + "numoutlets" : 2, "fontsize" : 12.0, - "numoutlets" : 2, - "outlettype" : [ "float", "bang" ], - "patching_rect" : [ 723.0, 399.0, 50.0, 20.0 ] + "outlettype" : [ "float", "bang" ] } } , { "box" : { "maxclass" : "number", + "patching_rect" : [ 923.0, 50.0, 50.0, 20.0 ], "id" : "obj-23", "fontname" : "Arial", "numinlets" : 1, + "numoutlets" : 2, "fontsize" : 12.0, - "numoutlets" : 2, - "outlettype" : [ "int", "bang" ], - "patching_rect" : [ 653.0, 403.0, 50.0, 20.0 ] + "outlettype" : [ "int", "bang" ] } } , { "box" : { "maxclass" : "button", + "patching_rect" : [ 414.0, 466.0, 20.0, 20.0 ], "id" : "obj-21", "numinlets" : 1, "numoutlets" : 1, - "outlettype" : [ "bang" ], - "patching_rect" : [ 175.0, 322.0, 20.0, 20.0 ] + "outlettype" : [ "bang" ] } } , { "box" : { "maxclass" : "button", + "patching_rect" : [ 325.0, 436.0, 20.0, 20.0 ], "id" : "obj-19", "numinlets" : 1, "numoutlets" : 1, - "outlettype" : [ "bang" ], - "patching_rect" : [ 385.0, 319.0, 20.0, 20.0 ] + "outlettype" : [ "bang" ] } } @@ -137,13 +1196,13 @@ "box" : { "maxclass" : "newobj", "text" : "flush", + "patching_rect" : [ 401.0, 497.0, 49.0, 20.0 ], "id" : "obj-17", "fontname" : "Arial", "numinlets" : 2, + "numoutlets" : 2, "fontsize" : 12.0, - "numoutlets" : 2, - "outlettype" : [ "int", "int" ], - "patching_rect" : [ 313.0, 356.0, 36.0, 20.0 ] + "outlettype" : [ "int", "int" ] } } @@ -151,42 +1210,26 @@ "box" : { "maxclass" : "message", "text" : "/chord", + "patching_rect" : [ 72.0, 522.0, 44.0, 18.0 ], "id" : "obj-16", "fontname" : "Arial", "numinlets" : 2, + "numoutlets" : 1, "fontsize" : 12.0, - "numoutlets" : 1, - "outlettype" : [ "" ], - "patching_rect" : [ 358.0, 433.0, 44.0, 18.0 ] + "outlettype" : [ "" ] } } , { "box" : { "maxclass" : "newobj", - "text" : "udpsend 169.254.5.9 12345", + "text" : "udpsend localhost 12345", + "patching_rect" : [ 72.0, 546.0, 144.0, 20.0 ], "id" : "obj-10", "fontname" : "Arial", "numinlets" : 1, - "fontsize" : 12.0, "numoutlets" : 0, - "patching_rect" : [ 353.0, 538.0, 160.0, 20.0 ] - } - - } -, { - "box" : { - "maxclass" : "message", - "text" : "/pitch_vel_chan \"82 127 2\"", - "linecount" : 4, - "id" : "obj-9", - "fontname" : "Arial", - "numinlets" : 2, - "fontsize" : 12.0, - "presentation_rect" : [ 200.0, 127.0, 0.0, 0.0 ], - "numoutlets" : 1, - "outlettype" : [ "" ], - "patching_rect" : [ 222.0, 86.0, 50.0, 60.0 ] + "fontsize" : 12.0 } } @@ -194,13 +1237,13 @@ "box" : { "maxclass" : "newobj", "text" : "unpack 0 0 0", + "patching_rect" : [ 401.0, 413.0, 79.0, 20.0 ], "id" : "obj-7", "fontname" : "Arial", "numinlets" : 1, + "numoutlets" : 3, "fontsize" : 12.0, - "numoutlets" : 3, - "outlettype" : [ "int", "int", "int" ], - "patching_rect" : [ 306.0, 272.0, 79.0, 20.0 ] + "outlettype" : [ "int", "int", "int" ] } } @@ -209,13 +1252,13 @@ "maxclass" : "message", "text" : "82 127 2", "linecount" : 2, + "patching_rect" : [ 345.0, 243.0, 50.0, 32.0 ], "id" : "obj-6", "fontname" : "Arial", "numinlets" : 2, + "numoutlets" : 1, "fontsize" : 12.0, - "numoutlets" : 1, - "outlettype" : [ "" ], - "patching_rect" : [ 403.0, 253.0, 50.0, 32.0 ] + "outlettype" : [ "" ] } } @@ -223,12 +1266,12 @@ "box" : { "maxclass" : "newobj", "text" : "ctlout a", + "patching_rect" : [ 694.0, 193.387756, 52.0, 21.0 ], "id" : "obj-2", "fontname" : "Arial", "numinlets" : 3, - "fontsize" : 12.0, "numoutlets" : 0, - "patching_rect" : [ 569.0, 243.0, 49.0, 20.0 ] + "fontsize" : 12.88093 } } @@ -237,12 +1280,12 @@ "maxclass" : "comment", "text" : "OSC input is routed to instruments 1-3.", "linecount" : 2, + "patching_rect" : [ 528.0, 31.91593, 176.0, 45.0 ], "id" : "obj-54", "fontname" : "Arial Bold", "numinlets" : 1, - "fontsize" : 16.935125, "numoutlets" : 0, - "patching_rect" : [ 433.0, 31.91593, 176.0, 45.0 ] + "fontsize" : 16.935125 } } @@ -250,12 +1293,12 @@ "box" : { "maxclass" : "comment", "text" : "value, CC number, channel", + "patching_rect" : [ 738.0, 159.794876, 120.0, 16.0 ], "id" : "obj-43", "fontname" : "Arial Bold", "numinlets" : 1, - "fontsize" : 8.046342, "numoutlets" : 0, - "patching_rect" : [ 613.0, 160.0, 117.0, 16.0 ] + "fontsize" : 8.46547 } } @@ -263,13 +1306,13 @@ "box" : { "maxclass" : "newobj", "text" : "zl rev", + "patching_rect" : [ 694.0, 156.25, 39.0, 19.0 ], "id" : "obj-39", "fontname" : "Arial Bold", "numinlets" : 2, - "fontsize" : 10.0, "numoutlets" : 2, - "outlettype" : [ "", "" ], - "patching_rect" : [ 569.0, 157.0, 36.0, 18.0 ] + "fontsize" : 11.134259, + "outlettype" : [ "", "" ] } } @@ -278,12 +1321,12 @@ "maxclass" : "comment", "text" : "Route MIDI data from Joe to the three instruments.", "linecount" : 5, + "patching_rect" : [ 327.0, 107.0, 71.0, 64.0 ], "id" : "obj-35", "fontname" : "Arial Bold", "numinlets" : 1, - "fontsize" : 10.0, "numoutlets" : 0, - "patching_rect" : [ 228.0, 293.0, 71.0, 64.0 ] + "fontsize" : 10.0 } } @@ -291,13 +1334,13 @@ "box" : { "maxclass" : "newobj", "text" : "fromsymbol", + "patching_rect" : [ 401.0, 218.0, 68.0, 18.0 ], "id" : "obj-15", "fontname" : "Arial Bold", "numinlets" : 1, + "numoutlets" : 1, "fontsize" : 10.0, - "numoutlets" : 1, - "outlettype" : [ "" ], - "patching_rect" : [ 306.0, 218.0, 68.0, 18.0 ] + "outlettype" : [ "" ] } } @@ -305,12 +1348,12 @@ "box" : { "maxclass" : "newobj", "text" : "print unhandled_osc", + "patching_rect" : [ 495.0, 157.0, 109.0, 18.0 ], "id" : "obj-14", "fontname" : "Arial Bold", "numinlets" : 1, - "fontsize" : 10.0, "numoutlets" : 0, - "patching_rect" : [ 400.0, 157.0, 109.0, 18.0 ] + "fontsize" : 10.0 } } @@ -319,12 +1362,12 @@ "maxclass" : "comment", "text" : "From tim's Grid mapping.\nIn form: channel, CC number, value", "linecount" : 2, + "patching_rect" : [ 702.0, 100.703423, 155.0, 27.0 ], "id" : "obj-13", "fontname" : "Arial Bold", "numinlets" : 1, - "fontsize" : 8.381793, "numoutlets" : 0, - "patching_rect" : [ 577.0, 100.959999, 152.0, 26.0 ] + "fontsize" : 8.716659 } } @@ -332,12 +1375,12 @@ "box" : { "maxclass" : "comment", "text" : "From Joe as one big string", + "patching_rect" : [ 417.0, 116.231461, 105.0, 15.0 ], "id" : "obj-11", "fontname" : "Arial Bold", "numinlets" : 1, - "fontsize" : 7.352522, "numoutlets" : 0, - "patching_rect" : [ 322.0, 116.231461, 105.0, 15.0 ] + "fontsize" : 7.352522 } } @@ -345,13 +1388,13 @@ "box" : { "maxclass" : "newobj", "text" : "route /cc", + "patching_rect" : [ 694.0, 132.480774, 55.0, 19.0 ], "id" : "obj-8", "fontname" : "Arial Bold", "numinlets" : 1, - "fontsize" : 10.0, "numoutlets" : 2, - "outlettype" : [ "", "" ], - "patching_rect" : [ 569.0, 133.0, 52.0, 18.0 ] + "fontsize" : 10.605745, + "outlettype" : [ "", "" ] } } @@ -359,13 +1402,13 @@ "box" : { "maxclass" : "newobj", "text" : "route /pitch_vel_chan", + "patching_rect" : [ 401.0, 133.0, 113.0, 18.0 ], "id" : "obj-5", "fontname" : "Arial Bold", "numinlets" : 1, + "numoutlets" : 2, "fontsize" : 10.0, - "numoutlets" : 2, - "outlettype" : [ "", "" ], - "patching_rect" : [ 306.0, 133.0, 113.0, 18.0 ] + "outlettype" : [ "", "" ] } } @@ -373,13 +1416,13 @@ "box" : { "maxclass" : "newobj", "text" : "udpreceive 12346", + "patching_rect" : [ 399.0, 42.0, 94.0, 18.0 ], "id" : "obj-3", "fontname" : "Arial Bold", "numinlets" : 1, + "numoutlets" : 1, "fontsize" : 10.0, - "numoutlets" : 1, - "outlettype" : [ "" ], - "patching_rect" : [ 304.0, 42.0, 94.0, 18.0 ] + "outlettype" : [ "" ] } } @@ -387,20 +1430,20 @@ "box" : { "maxclass" : "newobj", "text" : "noteout a", + "patching_rect" : [ 401.0, 648.0, 79.0, 20.0 ], "id" : "obj-1", "fontname" : "Arial", "numinlets" : 3, - "fontsize" : 12.0, "numoutlets" : 0, - "patching_rect" : [ 306.0, 404.0, 61.0, 20.0 ] + "fontsize" : 12.0 } } ], "lines" : [ { "patchline" : { - "source" : [ "obj-29", 0 ], - "destination" : [ "obj-30", 3 ], + "source" : [ "obj-8", 0 ], + "destination" : [ "obj-167", 1 ], "hidden" : 0, "midpoints" : [ ] } @@ -408,8 +1451,8 @@ } , { "patchline" : { - "source" : [ "obj-27", 0 ], - "destination" : [ "obj-30", 2 ], + "source" : [ "obj-8", 0 ], + "destination" : [ "obj-165", 0 ], "hidden" : 0, "midpoints" : [ ] } @@ -417,8 +1460,8 @@ } , { "patchline" : { - "source" : [ "obj-25", 0 ], - "destination" : [ "obj-30", 1 ], + "source" : [ "obj-141", 0 ], + "destination" : [ "obj-163", 0 ], "hidden" : 0, "midpoints" : [ ] } @@ -426,8 +1469,8 @@ } , { "patchline" : { - "source" : [ "obj-23", 0 ], - "destination" : [ "obj-30", 0 ], + "source" : [ "obj-19", 0 ], + "destination" : [ "obj-141", 0 ], "hidden" : 0, "midpoints" : [ ] } @@ -435,8 +1478,8 @@ } , { "patchline" : { - "source" : [ "obj-30", 0 ], - "destination" : [ "obj-31", 0 ], + "source" : [ "obj-161", 0 ], + "destination" : [ "obj-120", 0 ], "hidden" : 0, "midpoints" : [ ] } @@ -444,8 +1487,8 @@ } , { "patchline" : { - "source" : [ "obj-31", 0 ], - "destination" : [ "obj-32", 0 ], + "source" : [ "obj-127", 0 ], + "destination" : [ "obj-120", 0 ], "hidden" : 0, "midpoints" : [ ] } @@ -453,7 +1496,331 @@ } , { "patchline" : { - "source" : [ "obj-21", 0 ], + "source" : [ "obj-126", 0 ], + "destination" : [ "obj-120", 0 ], + "hidden" : 0, + "midpoints" : [ ] + } + + } +, { + "patchline" : { + "source" : [ "obj-125", 0 ], + "destination" : [ "obj-120", 0 ], + "hidden" : 0, + "midpoints" : [ ] + } + + } +, { + "patchline" : { + "source" : [ "obj-124", 0 ], + "destination" : [ "obj-120", 0 ], + "hidden" : 0, + "midpoints" : [ ] + } + + } +, { + "patchline" : { + "source" : [ "obj-122", 0 ], + "destination" : [ "obj-120", 0 ], + "hidden" : 0, + "midpoints" : [ ] + } + + } +, { + "patchline" : { + "source" : [ "obj-123", 0 ], + "destination" : [ "obj-120", 0 ], + "hidden" : 0, + "midpoints" : [ ] + } + + } +, { + "patchline" : { + "source" : [ "obj-108", 0 ], + "destination" : [ "obj-19", 0 ], + "hidden" : 0, + "midpoints" : [ 136.5, 402.0, 334.5, 402.0 ] + } + + } +, { + "patchline" : { + "source" : [ "obj-16", 0 ], + "destination" : [ "obj-10", 0 ], + "hidden" : 0, + "midpoints" : [ ] + } + + } +, { + "patchline" : { + "source" : [ "obj-105", 0 ], + "destination" : [ "obj-108", 0 ], + "hidden" : 0, + "midpoints" : [ ] + } + + } +, { + "patchline" : { + "source" : [ "obj-108", 0 ], + "destination" : [ "obj-109", 0 ], + "hidden" : 0, + "midpoints" : [ ] + } + + } +, { + "patchline" : { + "source" : [ "obj-70", 0 ], + "destination" : [ "obj-75", 0 ], + "hidden" : 0, + "midpoints" : [ ] + } + + } +, { + "patchline" : { + "source" : [ "obj-74", 0 ], + "destination" : [ "obj-70", 0 ], + "hidden" : 0, + "midpoints" : [ ] + } + + } +, { + "patchline" : { + "source" : [ "obj-70", 0 ], + "destination" : [ "obj-78", 0 ], + "hidden" : 0, + "midpoints" : [ ] + } + + } +, { + "patchline" : { + "source" : [ "obj-78", 3 ], + "destination" : [ "obj-105", 0 ], + "hidden" : 0, + "midpoints" : [ ] + } + + } +, { + "patchline" : { + "source" : [ "obj-80", 0 ], + "destination" : [ "obj-83", 0 ], + "hidden" : 0, + "midpoints" : [ ] + } + + } +, { + "patchline" : { + "source" : [ "obj-83", 0 ], + "destination" : [ "obj-78", 4 ], + "hidden" : 0, + "midpoints" : [ ] + } + + } +, { + "patchline" : { + "source" : [ "obj-78", 0 ], + "destination" : [ "obj-87", 0 ], + "hidden" : 0, + "midpoints" : [ ] + } + + } +, { + "patchline" : { + "source" : [ "obj-78", 0 ], + "destination" : [ "obj-88", 0 ], + "hidden" : 0, + "midpoints" : [ ] + } + + } +, { + "patchline" : { + "source" : [ "obj-94", 0 ], + "destination" : [ "obj-90", 0 ], + "hidden" : 0, + "midpoints" : [ ] + } + + } +, { + "patchline" : { + "source" : [ "obj-87", 0 ], + "destination" : [ "obj-94", 0 ], + "hidden" : 0, + "midpoints" : [ ] + } + + } +, { + "patchline" : { + "source" : [ "obj-93", 0 ], + "destination" : [ "obj-92", 0 ], + "hidden" : 0, + "midpoints" : [ ] + } + + } +, { + "patchline" : { + "source" : [ "obj-88", 0 ], + "destination" : [ "obj-93", 0 ], + "hidden" : 0, + "midpoints" : [ ] + } + + } +, { + "patchline" : { + "source" : [ "obj-86", 0 ], + "destination" : [ "obj-80", 0 ], + "hidden" : 0, + "midpoints" : [ ] + } + + } +, { + "patchline" : { + "source" : [ "obj-15", 0 ], + "destination" : [ "obj-65", 0 ], + "hidden" : 0, + "midpoints" : [ ] + } + + } +, { + "patchline" : { + "source" : [ "obj-65", 0 ], + "destination" : [ "obj-7", 0 ], + "hidden" : 0, + "midpoints" : [ ] + } + + } +, { + "patchline" : { + "source" : [ "obj-5", 1 ], + "destination" : [ "obj-14", 0 ], + "hidden" : 0, + "midpoints" : [ ] + } + + } +, { + "patchline" : { + "source" : [ "obj-5", 0 ], + "destination" : [ "obj-15", 0 ], + "hidden" : 0, + "midpoints" : [ ] + } + + } +, { + "patchline" : { + "source" : [ "obj-3", 0 ], + "destination" : [ "obj-5", 0 ], + "hidden" : 0, + "midpoints" : [ ] + } + + } +, { + "patchline" : { + "source" : [ "obj-3", 0 ], + "destination" : [ "obj-8", 0 ], + "hidden" : 0, + "midpoints" : [ ] + } + + } +, { + "patchline" : { + "source" : [ "obj-8", 0 ], + "destination" : [ "obj-39", 0 ], + "hidden" : 0, + "midpoints" : [ ] + } + + } +, { + "patchline" : { + "source" : [ "obj-39", 0 ], + "destination" : [ "obj-2", 0 ], + "hidden" : 0, + "midpoints" : [ ] + } + + } +, { + "patchline" : { + "source" : [ "obj-15", 0 ], + "destination" : [ "obj-6", 1 ], + "hidden" : 0, + "midpoints" : [ ] + } + + } +, { + "patchline" : { + "source" : [ "obj-7", 2 ], + "destination" : [ "obj-1", 2 ], + "hidden" : 0, + "midpoints" : [ ] + } + + } +, { + "patchline" : { + "source" : [ "obj-7", 1 ], + "destination" : [ "obj-17", 1 ], + "hidden" : 0, + "midpoints" : [ ] + } + + } +, { + "patchline" : { + "source" : [ "obj-7", 0 ], + "destination" : [ "obj-17", 0 ], + "hidden" : 0, + "midpoints" : [ ] + } + + } +, { + "patchline" : { + "source" : [ "obj-17", 0 ], + "destination" : [ "obj-1", 0 ], + "hidden" : 0, + "midpoints" : [ ] + } + + } +, { + "patchline" : { + "source" : [ "obj-19", 0 ], + "destination" : [ "obj-16", 0 ], + "hidden" : 0, + "midpoints" : [ ] + } + + } +, { + "patchline" : { + "source" : [ "obj-19", 0 ], "destination" : [ "obj-17", 0 ], "hidden" : 0, "midpoints" : [ ] @@ -471,7 +1838,7 @@ } , { "patchline" : { - "source" : [ "obj-19", 0 ], + "source" : [ "obj-21", 0 ], "destination" : [ "obj-17", 0 ], "hidden" : 0, "midpoints" : [ ] @@ -480,8 +1847,8 @@ } , { "patchline" : { - "source" : [ "obj-19", 0 ], - "destination" : [ "obj-16", 0 ], + "source" : [ "obj-31", 0 ], + "destination" : [ "obj-32", 0 ], "hidden" : 0, "midpoints" : [ ] } @@ -489,8 +1856,8 @@ } , { "patchline" : { - "source" : [ "obj-17", 0 ], - "destination" : [ "obj-1", 0 ], + "source" : [ "obj-30", 0 ], + "destination" : [ "obj-31", 0 ], "hidden" : 0, "midpoints" : [ ] } @@ -498,8 +1865,8 @@ } , { "patchline" : { - "source" : [ "obj-7", 0 ], - "destination" : [ "obj-17", 0 ], + "source" : [ "obj-23", 0 ], + "destination" : [ "obj-30", 0 ], "hidden" : 0, "midpoints" : [ ] } @@ -507,8 +1874,8 @@ } , { "patchline" : { - "source" : [ "obj-7", 1 ], - "destination" : [ "obj-17", 1 ], + "source" : [ "obj-25", 0 ], + "destination" : [ "obj-30", 1 ], "hidden" : 0, "midpoints" : [ ] } @@ -516,8 +1883,8 @@ } , { "patchline" : { - "source" : [ "obj-16", 0 ], - "destination" : [ "obj-10", 0 ], + "source" : [ "obj-27", 0 ], + "destination" : [ "obj-30", 2 ], "hidden" : 0, "midpoints" : [ ] } @@ -525,89 +1892,8 @@ } , { "patchline" : { - "source" : [ "obj-3", 0 ], - "destination" : [ "obj-9", 1 ], - "hidden" : 0, - "midpoints" : [ ] - } - - } -, { - "patchline" : { - "source" : [ "obj-7", 2 ], - "destination" : [ "obj-1", 2 ], - "hidden" : 0, - "midpoints" : [ ] - } - - } -, { - "patchline" : { - "source" : [ "obj-15", 0 ], - "destination" : [ "obj-7", 0 ], - "hidden" : 0, - "midpoints" : [ ] - } - - } -, { - "patchline" : { - "source" : [ "obj-15", 0 ], - "destination" : [ "obj-6", 1 ], - "hidden" : 0, - "midpoints" : [ ] - } - - } -, { - "patchline" : { - "source" : [ "obj-39", 0 ], - "destination" : [ "obj-2", 0 ], - "hidden" : 0, - "midpoints" : [ ] - } - - } -, { - "patchline" : { - "source" : [ "obj-8", 0 ], - "destination" : [ "obj-39", 0 ], - "hidden" : 0, - "midpoints" : [ ] - } - - } -, { - "patchline" : { - "source" : [ "obj-3", 0 ], - "destination" : [ "obj-8", 0 ], - "hidden" : 0, - "midpoints" : [ ] - } - - } -, { - "patchline" : { - "source" : [ "obj-3", 0 ], - "destination" : [ "obj-5", 0 ], - "hidden" : 0, - "midpoints" : [ ] - } - - } -, { - "patchline" : { - "source" : [ "obj-5", 0 ], - "destination" : [ "obj-15", 0 ], - "hidden" : 0, - "midpoints" : [ ] - } - - } -, { - "patchline" : { - "source" : [ "obj-5", 1 ], - "destination" : [ "obj-14", 0 ], + "source" : [ "obj-29", 0 ], + "destination" : [ "obj-30", 3 ], "hidden" : 0, "midpoints" : [ ] } diff -r 85d158045994 -r 950b839f50ed tim_grid_mapper/grid_mapper.py --- a/tim_grid_mapper/grid_mapper.py Fri Feb 25 12:02:22 2011 +0000 +++ b/tim_grid_mapper/grid_mapper.py Fri Feb 25 12:03:05 2011 +0000 @@ -1,4 +1,5 @@ -''' +#! /usr/bin/python +''' grid_mapper.py - maintained by Tim. This module implements a mapping from person positions (id,x,y,z) to generate @@ -10,6 +11,7 @@ from OSC import ThreadingOSCServer, OSCClient, OSCMessage, OSCClientError from threading import Thread from time import sleep +import pdb #### PUBLIC OPTIONS #### num_channels = 3 # number of instruments (and max number of people who can @@ -51,7 +53,19 @@ currently_playing = [None] * num_channels # mapping from personId to time of last update -last_update_times = {} +# ((not yet implemented)) +#last_update_times = {} + +# mapping from (channel, CC_number) to last CC value sent: +last_value_sent = { + (1, 1) : 0, + (1, 2) : 0, + (2, 1) : 0, + (2, 2) : 0, + (3, 1) : 0, + (3, 2) : 0, +} + # OSC OBJECTS server = None # Initialised when start() is run @@ -69,7 +83,19 @@ message = OSCMessage(address) message.extend(data) client.sendto(message, joe) - print_d('==OSC Output to Joe %s:==\n %s' % (joe, data)) + print_d('\n==OSC Output "%s" to Joe %s:==\n %s' % (address, joe, data)) + + +def send_to_ableton(data, address='/cc'): + '''Sends `data` to Ableton (via Max) as an OSC message. + ''' + #pdb.set_trace() + message = OSCMessage(address) + message.extend(data) + client.sendto(message, ableton) + print('\n==OSC Output "%s" to Ableton %s:==\n %s' % (address, ableton, data)) + + def flush(channel): '''Sends note off messages for whatever note is currently playing on @@ -82,10 +108,11 @@ 'Turn off note %i on channel %i' % (pitch, channel), # first string is ignored int(pitch), # pitch to turn off - 0, # 0 to turn note off - 127, # doesn't matter for note-off (but never send 0) + 0, # 0 to turn note off + 127, # doesn't matter for note-off (but never send 0) int(channel), ]) + currently_playing[channel] = None def person_handler(address, tags, data, client_address): @@ -95,6 +122,14 @@ ''' pitch, velocity, channel, cc1, cc2 = grid_map(*data) + cc1, cc2 = int(round(cc1)), int(round(cc2)) + if cc1 != last_value_sent[(channel, 1)]: + send_to_ableton([channel, 1, cc1], '/cc') + last_value_sent[(channel, 1)] = cc1 + if cc2 != last_value_sent[(channel, 2)]: + send_to_ableton([channel, 2, cc2], '/cc') + last_value_sent[(channel, 2)] = cc2 + ## Format data for Joe - done using Specification.txt on 2011-02-15 @@ -113,11 +148,13 @@ 'Turn on note %i on channel %i' % (pitch, channel), # first value is string which is ignored int(pitch), - 1, # 1 to turn note on + 1, # 1 to turn note on int(velocity), int(channel) ]) - + currently_playing[channel] = pitch + + @@ -144,7 +181,7 @@ MIN['x'], MAX['x'], MIN['cc1'], MAX['cc1']) ) - cc2 = round(interpolate(x, + cc2 = round(interpolate(y, MIN['y'], MAX['y'], MIN['cc2'], MAX['cc2']) )