diff --git a/Procontrol Map.csv b/Procontrol Map.csv new file mode 100644 index 0000000..28d9f12 --- /dev/null +++ b/Procontrol Map.csv @@ -0,0 +1,290 @@ +"button number" "type" "number" "on" "off (" "ch/section" "function" "LED Y/N #" "hex push / pot down" "hex rel / pot up" +1 90 00 40 00 1 "REC Ready" "Y" "MP recv: c:1 s:30 d:90 00 40 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" "MP recv: c:1 s:30 d:90 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" +2 90 01 40 00 1 "ins/send" "Y" "MP recv: c:1 s:30 d:90 01 40 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" "MP recv: c:1 s:30 d:90 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" +3 90 02 40 00 1 "EQ in /edit" "Y" "MP recv: c:1 s:30 d:90 02 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" "MP recv: c:1 s:30 d:90 02 00 21 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" +4 90 03 40 00 1 "Dyn in/edit" "Y" "MP recv: c:1 s:30 d:90 03 40 33 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" "MP recv: c:1 s:30 d:90 03 00 60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" +5 "b0" 40 40 00 1 "pan pot" "MP recv: c:1 s:30 d:b0 40 3f 3a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" "MP recv: c:1 s:30 d:b0 40 41 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" +6 90 04 40 00 1 "pre/post assign/mute" "y" "MP recv: c:1 s:30 d:90 04 40 6f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" "MP recv: c:1 s:30 d:90 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" +7 90 05 40 00 1 "auto" "y 5 (WR, TC, LT, TM, RD)" "MP recv: c:1 s:30 d:90 05 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" "MP recv: c:1 s:30 d:90 05 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" +8 90 06 40 00 1 "sel" "Y" "MP recv: c:1 s:30 d:90 06 40 5f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" "MP recv: c:1 s:30 d:90 06 00 6f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" +9 90 07 40 00 1 "solo" "Y" "MP recv: c:1 s:30 d:90 07 40 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" "MP recv: c:1 s:30 d:90 07 00 60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" +10 90 08 40 00 1 "mute" "Y" "MP recv: c:1 s:30 d:90 08 40 60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" "MP recv: c:1 s:30 d:90 08 00 4f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" +11 90 00 41 01 2 "REC Ready" "Y" "MP recv: c:1 s:30 d:90 00 41 3e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" "MP recv: c:1 s:30 d:90 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" +12 90 01 41 01 2 "ins/send" "Y" "MP recv: c:1 s:30 d:90 01 41 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" "MP recv: c:1 s:30 d:90 01 01 5f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" +13 90 02 41 01 2 "EQ in /edit" "Y" "MP recv: c:1 s:30 d:90 02 41 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" "MP recv: c:1 s:30 d:90 02 01 e4 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" +14 90 03 41 01 2 "Dyn in/edit" "Y" "MP recv: c:1 s:30 d:90 03 41 a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" "MP recv: c:1 s:30 d:90 03 01 60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" +15 "b0" 41 41 01 2 "pan pot" "MP recv: c:1 s:30 d:b0 41 3f a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" "MP recv: c:1 s:30 d:b0 41 41 60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" +16 90 04 41 01 2 "pre/post assign/mute" "y" "MP recv: c:1 s:30 d:90 04 41 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" "MP recv: c:1 s:30 d:90 04 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" +17 90 05 41 01 2 "auto" "y 5 (WR, TC, LT, TM, RD)" "MP recv: c:1 s:30 d:90 05 41 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" "MP recv: c:1 s:30 d:90 05 01 71 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" +18 90 06 41 01 2 "sel" "Y" "MP recv: c:1 s:30 d:90 06 41 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" "MP recv: c:1 s:30 d:90 06 01 ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" +19 90 07 41 01 2 "solo" "Y" "MP recv: c:1 s:30 d:90 07 41 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" "MP recv: c:1 s:30 d:90 07 01 a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" +20 90 08 41 01 2 "mute" "Y" "MP recv: c:1 s:30 d:90 08 41 a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" "MP recv: c:1 s:30 d:90 08 01 5f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" +21 90 00 42 02 3 "REC Ready" "Y" "MP recv: c:1 s:30 d:90 00 42 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" "MP recv: c:1 s:30 d:90 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" +22 90 01 42 02 3 "ins/send" "Y" "MP recv: c:1 s:30 d:90 01 42 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" "MP recv: c:1 s:30 d:90 01 02 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" +23 90 02 42 02 3 "EQ in /edit" "Y" "MP recv: c:1 s:30 d:90 02 42 5f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" "MP recv: c:1 s:30 d:90 02 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" +24 90 03 42 02 3 "Dyn in/edit" "Y" "MP recv: c:1 s:30 d:90 03 42 5f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" "MP recv: c:1 s:30 d:90 03 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" +25 "b0" 42 42 02 3 "pan pot" "MP recv: c:1 s:30 d:b0 42 39 5f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" "MP recv: c:1 s:30 d:b0 42 48 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" +26 90 04 42 02 3 "pre/post assign/mute" "y" "MP recv: c:1 s:30 d:90 04 42 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" "MP recv: c:1 s:30 d:90 04 02 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" +27 90 05 42 02 3 "auto" "y 5 (WR, TC, LT, TM, RD)" "MP recv: c:1 s:30 d:90 05 42 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" "MP recv: c:1 s:30 d:90 05 02 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" +28 90 06 42 02 3 "sel" "Y" "MP recv: c:1 s:30 d:90 06 42 71 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" "MP recv: c:1 s:30 d:90 06 02 ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" +29 90 07 42 02 3 "solo" "Y" "MP recv: c:1 s:30 d:90 07 42 70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" "MP recv: c:1 s:30 d:90 07 02 8b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" +30 90 08 42 02 3 "mute" "Y" "MP recv: c:1 s:30 d:90 08 42 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" "MP recv: c:1 s:30 d:90 08 02 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" +31 90 00 43 03 4 "REC Ready" "Y" +32 90 01 43 03 4 "ins/send" "Y" +33 90 02 43 03 4 "EQ in /edit" "Y" +34 90 03 43 03 4 "Dyn in/edit" "Y" +35 "b0" 43 43 03 4 "pan pot" +36 90 04 43 03 4 "pre/post assign/mute" "y" +37 90 05 43 03 4 "auto" "y 5 (WR, TC, LT, TM, RD)" +38 90 06 43 03 4 "sel" "Y" +39 90 07 43 03 4 "solo" "Y" +40 90 08 43 03 4 "mute" "Y" +41 90 00 44 04 5 "REC Ready" "Y" +42 90 01 44 04 5 "ins/send" "Y" +43 90 02 44 04 5 "EQ in /edit" "Y" +44 90 03 44 04 5 "Dyn in/edit" "Y" +45 "b0" 44 44 04 5 "pan pot" +46 90 04 44 04 5 "pre/post assign/mute" "y" +47 90 05 44 04 5 "auto" "y 5 (WR, TC, LT, TM, RD)" +48 90 06 44 04 5 "sel" "Y" +49 90 07 44 04 5 "solo" "Y" +50 90 08 44 04 5 "mute" "Y" +51 90 00 45 05 6 "REC Ready" "Y" +52 90 01 45 05 6 "ins/send" "Y" +53 90 02 45 05 6 "EQ in /edit" "Y" +54 90 03 45 05 6 "Dyn in/edit" "Y" +55 "b0" 45 45 05 6 "pan pot" +56 90 04 45 05 6 "pre/post assign/mute" "y" +57 90 05 45 05 6 "auto" "y 5 (WR, TC, LT, TM, RD)" +58 90 06 45 05 6 "sel" "Y" +59 90 07 45 05 6 "solo" "Y" +60 90 08 45 05 6 "mute" "Y" +61 90 00 46 06 7 "REC Ready" "Y" +62 90 01 46 06 7 "ins/send" "Y" +63 90 02 46 06 7 "EQ in /edit" "Y" +64 90 03 46 06 7 "Dyn in/edit" "Y" +65 "b0" 46 46 06 7 "pan pot" +66 90 04 46 06 7 "pre/post assign/mute" "y" +67 90 05 46 06 7 "auto" "y 5 (WR, TC, LT, TM, RD)" +68 90 06 46 06 7 "sel" "Y" +69 90 07 46 06 7 "solo" "Y" +70 90 08 46 06 7 "mute" "Y" +71 90 00 47 07 8 "REC Ready" "Y" +72 90 01 47 07 8 "ins/send" "Y" +73 90 02 47 07 8 "EQ in /edit" "Y" +74 90 03 47 07 8 "Dyn in/edit" "Y" +75 "b0" 47 47 07 8 "pan pot" +76 90 04 47 07 8 "pre/post assign/mute" "y" +77 90 05 47 07 8 "auto" "y 5 (WR, TC, LT, TM, RD)" +78 90 06 47 07 8 "sel" "Y" +79 90 07 47 07 8 "solo" "Y" +80 90 08 47 07 8 "mute" "Y" "MP recv: c:1 s:30 d:90 08 47 b5 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" "MP recv: c:1 s:30 d:90 08 07 b6 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" +81 90 00 48 08 "utils leftof channel" "Clr/F1" "Y" "MP recv: c:1 s:30 d:90 00 48 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" "MP recv: c:1 s:30 d:90 00 08 a9 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" +82 90 01 48 08 "MSTR rec" "Y" +83 90 02 48 08 "F2" "Y" +84 90 03 48 08 "INS/ BYP" "Y" +85 90 04 48 08 "F3" "Y" +86 90 05 48 08 "In/Edit" "Y" +87 90 06 48 08 "F4" "Y" +88 90 07 48 08 "Default" "Y" +89 90 08 48 08 "select assign" "Pan" "Y" +90 90 09 48 08 "Mon / Ø" "Y" +91 90 "0a" 48 08 "input" "Y" +92 90 "0b" 48 08 "output" "Y" +93 90 "0c" 48 08 "assign" "Y" +94 90 "0d" 48 08 "send mute" "Y" +95 90 "0e" 48 08 "send a/f" "Y" +96 90 "0f" 48 08 "send d/I" "Y" +97 90 10 48 08 "send b/g" "Y" +98 90 11 48 08 "send e/j" "Y" +99 90 12 48 08 "send c/h" "Y" +100 90 13 48 08 "FLIP" "Y" +101 90 14 48 08 "solo clear" "Y" +102 90 15 48 08 "auto suspend" "Y" +103 90 16 48 08 "display mode" "Y" +104 90 17 48 08 "automation mode" "write" "Y" +105 90 18 48 08 "automation enables" "vol" "Y" +106 90 19 48 08 "automation mode" "touch" "Y" +107 90 "1a" 48 08 "automation enables" "pan" "Y" +108 90 "1b" 48 08 "automation mode" "latch" "Y" +109 90 "1c" 48 08 "automation enables" "mute" "Y" +110 90 "1d" 48 08 "automation mode" "trim" "Y" +111 90 "1e" 48 08 "automation enables" "send vol" "Y" +112 90 "1f" 48 08 "automation mode" "read" "Y" +113 90 20 48 08 "automation enables" "send mute" "Y" "MP recv: c:1 s:30 d:90 20 48 54 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" "MP recv: c:1 s:30 d:90 20 08 a9 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" +114 90 21 48 08 "automation mode" "off" "Y" +115 90 22 48 08 "automation enables" "plugin" "Y" +116 90 23 48 08 "shortcuts" "shift/add" "N" +117 90 24 48 08 "shortcuts" "opt(alt)ALL" "N" +118 90 25 48 08 "shortcuts" "CTL/CLUTCH" "N" +119 90 26 48 08 "shortcuts" "CMND/CTL" "N" +120 90 00 "4d" "0d" "DSP Edit assign 1" "select /auto" "Y" +121 90 01 "4d" "0d" "DSP Edit assign 1" "assign / enable" "Y" +122 "b0" "4d" "DSP Edit assign 1" "pot (encoder)" "n" +123 90 02 "4d" "0d" "DSP Edit assign 1" "bypass / in/out/Ø" "Y" +124 90 00 "4e" "0e" "DSP Edit assign 2" "select /auto" "Y" +125 90 01 "4e" "0e" "DSP Edit assign 2" "assign / enable" "Y" +126 "b0" "4e" "DSP Edit assign 2" "pot (encoder)" "MP recv: c:1 s:30 d:b0 4d 3f 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" "MP recv: c:1 s:30 d:b0 4d 41 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" +127 90 02 "4e" "0e" "DSP Edit assign 2" "bypass / in/out/Ø" "Y" +128 90 00 "4f" "0f" "DSP Edit assign 3" "select /auto" "Y" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" +129 90 01 "4f" "0f" "DSP Edit assign 3" "assign / enable" "Y" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" +130 "b0" "4f" "pot (encoder)" +131 90 02 "4f" "0f" "DSP Edit assign 3" "bypass / in/out/Ø" "Y" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" +132 90 00 50 10 "DSP Edit assign 4" "select /auto" "Y" +133 90 01 50 10 "DSP Edit assign 4" "assign / enable" "Y" +134 "b0" 50 "pot (encoder)" +135 90 02 50 10 "DSP Edit assign 4" "bypass / in/out/Ø" "Y" +136 90 00 51 11 "DSP Edit assign 5" "select /auto" "Y" +137 90 01 51 11 "DSP Edit assign 5" "assign / enable" "Y" +138 "b0" 51 "pot (encoder)" +139 90 02 51 11 "DSP Edit assign 5" "bypass / in/out/Ø" "Y" +140 90 00 52 12 "DSP Edit assign 6" "select /auto" "Y" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" +141 90 01 52 12 "DSP Edit assign 6" "assign / enable" "Y" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" +142 "b0" 52 "pot (encoder)" +143 90 02 52 12 "DSP Edit assign 6" "bypass / in/out/Ø" "Y" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" +144 90 00 53 13 "DSP Edit assign 7" "select /auto" "Y" +145 90 01 53 13 "DSP Edit assign 7" "assign / enable" "Y" +146 "b0" 53 "pot (encoder)" +147 90 02 53 13 "DSP Edit assign 7" "bypass / in/out/Ø" "Y" +148 90 00 54 14 "DSP Edit assign 8" "select /auto" "Y" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" "DSP Edit assign 2" "select /auto" +149 90 01 54 14 "DSP Edit assign 8" "assign / enable" "Y" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" "DSP Edit assign 2" "assign / enable" +150 "b0" 54 "pot (encoder)" +151 90 02 54 14 "DSP Edit assign 8" "bypass / in/out/Ø" "Y" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" "DSP Edit assign 2" "bypass / in/out/Ø" +152 90 00 55 15 "counter mode" "Y" "MP recv: c:1 s:30 d:90 00 55 4e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" "MP recv: c:1 s:30 d:90 00 15 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" +153 90 01 55 15 "DSP EDIT ASSIGN" "info" "Y" +154 90 02 55 15 "DSP EDIT ASSIGN" "inserts / parameter" "Y" +155 90 03 55 15 "DSP EDIT ASSIGN" "sends" "Y" +156 90 04 55 15 "groups (DSP edit)" "create" "Y" +157 90 05 55 15 "groups (DSP edit)" "enable" "Y" +158 90 06 55 15 "groups (DSP edit)" "edit" "Y" +159 90 07 55 15 "groups (DSP edit)" "select" "Y" +160 90 08 55 15 "groups (DSP edit)" "suspend" "Y" +161 90 09 55 15 "channel/group (DSP edit)" "compare" "Y" +162 90 "0a" 55 15 "channel/group (DSP edit)" "master bypass" "Y" +163 90 00 56 16 "control room" "mix to aux" "Y" "MP recv: c:1 s:30 d:90 00 56 6f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" "MP recv: c:1 s:30 d:90 00 16 6f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" +164 90 01 56 16 "control room" "stereo mix" "Y" +165 90 02 56 16 "control room" "SRC 1 (3-4)" "Y" +166 90 03 56 16 "control room" "SRC 2 5-6" "Y" +167 90 04 56 16 "control room" "SRC 3" "Y" +168 90 05 56 16 "control room" "mono" "Y" +169 90 06 56 16 "control room" "dim" "Y" +170 90 07 56 16 "control room" "mute" "Y" +171 90 00 57 17 "channel matrix" "go to" "Y" +172 90 01 57 17 "channel matrix" "1 / A" "Y" +173 90 02 57 17 "channel matrix" "2 / B" "Y" +174 90 03 57 17 "channel matrix" "3 / C" "Y" +175 90 04 57 17 "channel matrix" "4 / D" "Y" +176 90 05 57 17 "channel matrix" "5 / E" "Y" +177 90 06 57 17 "channel matrix" "6 / F" "Y" +178 90 07 57 17 "channel matrix" "7 / G" "Y" +179 90 08 57 17 "channel matrix" "8 / H" "Y" +180 90 09 57 17 "channel matrix" "9 / I" "Y" +181 90 "0a" 57 17 "channel matrix" "10 / J" "Y" +182 90 "0b" 57 17 "channel matrix" "11 / K" "Y" +183 90 "0c" 57 17 "channel matrix" "12 / L" "Y" +184 90 "0d" 57 17 "channel matrix" "13 / M" "Y" +185 90 "0e" 57 17 "channel matrix" "14 / N" "Y" +186 90 "0f" 57 17 "channel matrix" "15 / O" "Y" +187 90 10 57 17 "channel matrix" "16 / P" "Y" +188 90 11 57 17 "channel matrix" "17 / Q" "Y" +189 90 12 57 17 "channel matrix" "18 / R" "Y" +190 90 13 57 17 "channel matrix" "19 / S" "Y" +191 90 14 57 17 "channel matrix" "20 / T" "Y" +192 90 15 57 17 "channel matrix" "21 / U" "Y" +193 90 16 57 17 "channel matrix" "22 / V" "Y" +194 90 17 57 17 "channel matrix" "23 / W" "Y" +195 90 18 57 17 "channel matrix" "24 / X" "Y" +196 90 19 57 17 "channel matrix" "25 / Y" "Y" +197 90 "1a" 57 17 "channel matrix" "26 / Z" "Y" +198 90 "1b" 57 17 "channel matrix" "27 / Shift" "Y" +199 90 "1c" 57 17 "channel matrix" "28 / Cap lock" "Y" +200 90 "1d" 57 17 "channel matrix" "29 / # " "Y" +201 90 "1e" 57 17 "channel matrix" "30 / &" "Y" +202 90 "1f" 57 17 "channel matrix" "31 / delete" "Y" +203 90 20 57 17 "channel matrix" "32 / space" "Y" +204 90 21 57 17 "channel matrix" "alpha" "Y" +205 90 57 17 "Y" +206 90 23 57 17 "master faders" "Y" +207 90 24 57 17 "channel matrix - Status" "select" "Y" +208 90 25 57 17 "channel matrix - Status" "mute" "Y" +209 90 26 57 17 "channel matrix - Status" "solo" "Y" +210 90 27 57 17 "channel matrix - Status" "rec rdy" "Y" +211 90 28 57 17 "channel matrix - Status" "snapshot" "Y" +212 90 29 57 17 "channel matrix - Status" "clr all" "Y" +213 90 "2a" 57 17 "channel matrix - Status" "param/ pages" "Y" +214 90 "2b" 57 17 "channel matrix" "view" "Y" +215 90 "2c" 57 17 "channel matrix - Banks" "A 1-32" "Y" +216 90 "2d" 57 17 "channel matrix - Banks" "B 33 - 64" "Y" +217 90 "2e" 57 17 "channel matrix - Banks" "C 65 - 96" "Y" +218 90 "2f" 57 17 "channel matrix - Banks" "D 97 - 128" "Y" +219 90 30 57 17 "channel Matrix - escape" "Y" +220 90 00 58 18 "Zoom / Sel" "up" "N" +221 90 01 58 18 "Zoom / Sel" "prev / left" "N" +222 90 02 58 18 "Zoom / Sel" "zoom / Sel" "Y" +223 90 03 58 18 "Zoom / Sel" "next / right" "N" +224 90 04 58 18 "Zoom / Sel" "down" "N" +225 90 00 59 19 "windows" "mix" "Y" +226 90 01 59 19 "windows" "edit" "Y" +227 90 02 59 19 "windows" "status" "Y" +228 90 03 59 19 "windows" "transport" "Y" +229 90 04 59 19 "windows" "plug in" "Y" +230 90 05 59 19 "windows" "mem location" "Y" +231 90 06 59 19 "undo" "Y" +232 90 07 59 19 "save" "Y" +233 90 00 "5a" "1a" "keypad" 0 "Y" +234 90 01 "5a" "1a" "keypad" 1 "Y" +235 90 02 "5a" "1a" "keypad" 2 "Y" +236 90 03 "5a" "1a" "keypad" 3 "Y" +237 90 04 "5a" "1a" "keypad" 4 "Y" +238 90 05 "5a" "1a" "keypad" 5 "Y" +239 90 06 "5a" "1a" "keypad" 6 "Y" +240 90 07 "5a" "1a" "keypad" 7 "Y" +241 90 08 "5a" "1a" "keypad" 8 "Y" +242 90 09 "5a" "1a" "keypad" 9 "Y" +243 90 "0a" "5a" "1a" "keypad" "clr" "Y" +244 90 "0b" "5a" "1a" "keypad" "=" "Y" +245 90 "0c" "5a" "1a" "keypad" "/" "Y" +246 90 "0d" "5a" "1a" "keypad" "*" "Y" +247 90 "0e" "5a" "1a" "keypad" "-" "Y" +248 90 "0f" "5a" "1a" "keypad" "+" "Y" +249 90 10 "5a" "1a" "keypad" """.""" "Y" +250 90 11 "5a" "1a" "keypad" "enter" "Y" +251 90 00 "5b" "1b" "edit mode" "shuffle" "Y" +252 90 01 "5b" "1b" "edit mode" "slip" "Y" +253 90 02 "5b" "1b" "edit mode" "spot" "Y" +254 90 03 "5b" "1b" "edit mode" "grid" "Y" +255 90 04 "5b" "1b" "edit functions" "cut" "n" +256 90 05 "5b" "1b" "edit functions" "copy" "n" +257 90 06 "5b" "1b" "edit functions" "paste" "n" +258 90 07 "5b" "1b" "edit functions" "delete" "n" +259 90 08 "5b" "1b" "edit functions" "separate" "n" +260 90 09 "5b" "1b" "edit functions" "capture" "n" +261 90 "0a" "5b" "1b" "Bank select" "left" "n" +262 90 "0b" "5b" "1b" "bank select" "nudge" "Y" +263 90 "0c" "5b" "1b" "bank select" "right" "n" +264 90 "0d" "5b" "1b" "edit tool" "trim" "Y" +265 90 "0e" "5b" "1b" "edit tool" "select" "Y" +266 90 "0f" "5b" "1b" "edit tool" "grab" "Y" +267 90 10 "5b" "1b" "edit tool" "pencil" "Y" +268 90 00 "5c" "1c" "TRANSPORT" "audition" "Y" +269 90 01 "5c" "1c" "TRANSPORT" "pre" "Y" +270 90 02 "5c" "1c" "TRANSPORT" "in" "Y" +271 90 03 "5c" "1c" "TRANSPORT" "out" "Y" +272 90 04 "5c" "1c" "TRANSPORT" "post" "Y" +273 90 05 "5c" "1c" "TRANSPORT" "online" "Y" +274 90 06 "5c" "1c" "TRANSPORT" "home (beginning of project)" "Y" +275 90 07 "5c" "1c" "TRANSPORT" "end (of project)" "Y" +276 90 08 "5c" "1c" "TRANSPORT" "ext trans" "Y" +277 90 09 "5c" "1c" "TRANSPORT" "loop playback" "Y" +278 90 "0a" "5c" "1c" "TRANSPORT" "loop rec" "Y" +279 90 "0b" "5c" "1c" "TRANSPORT" "quick punch" "Y" +280 90 "0c" "5c" "1c" "TRANSPORT" "talk back" "Y" +281 90 "0d" "5c" "1c" "TRANSPORT" "rew" "Y" +282 90 "0e" "5c" "1c" "TRANSPORT" "FF" "Y" +283 90 "0f" "5c" "1c" "TRANSPORT" "stop" "Y" +284 90 10 "5c" "1c" "TRANSPORT" "play" "Y" +285 90 11 "5c" "1c" "TRANSPORT" "rec" "Y" +286 "f0 13 00 60 " 01 10 00 "touch pad " "left button" "n" +287 "f0 13 00 60" 01 20 0 "touch pad " "right button" "n" +288 "fo 13 00 60" 01 "touch pad " "touch pad" "n" +289 "b0 5c 3f" "jog wheel" "n" diff --git a/procontrolmap.py b/procontrolmap.py index 57123f0..91df881 100644 --- a/procontrolmap.py +++ b/procontrolmap.py @@ -37,16 +37,16 @@ 0x90: { 'Address': 'button', 'ChildByte': 2, - 'ChildByteMatch': 0x18, + 'ChildByteMatch': 0x08, ##changed From 0x18 for Procontrol(8 ch) 'ValueByte': 2, 'ValueByteMask': 0x40, 'Children': { - 0x18: { + 0x08: { ## changed from 0x18 since pro control has 24 channels but Pro control only has 8 so command buttons start at 0x08 instead of 0x18 'Address': 'command', 'ChildByte': 2, - 'ChildByteMask': 0xBF, + 'ChildByteMask': 0xBF, ## not sure what childbyte MAsk means does this need to be changes 'Children': { - 0x18: { + 0x08: { 'Address': 'utility_misc_meterselect_automationenable', 'ChildByte': 1, 'Children': { @@ -121,62 +121,58 @@ 'LED': True }, 0x09: { - 'Address': 'channel_toggle', - 'Zone': 'meter_select', + 'Address': 'mon_phase', + 'Zone': 'Assignment', ##not sure this is correct zone 'LED': True }, 0x0a: { - 'Address': 'input', - 'Zone': 'meter_select', + 'Address': 'Input', + 'Zone': 'Assignment', 'LED': True }, 0x0b: { - 'Address': 'PreFader', - 'Zone': 'meter_select', + 'Address': 'Output', + 'Zone': 'Assignment', 'LED': True }, 0x0c: { - 'Address': 'PostFader', - 'Zone': 'meter_select', + 'Address': 'Assign', + 'Zone': 'Assignment', 'LED': True }, 0x0d: { 'Address': 'SendMute', - 'Zone': 'Misc', + 'Zone': 'Sends', 'LED': True }, - 0x0e: { - 'Address': 'ClearPeaks', - 'Zone': 'meter_select', + 0x13: { + 'Address': 'Flip', + 'Zone': 'Sends', 'LED': True }, - 0x0f: { - 'Address': 'RecSafe', - 'Zone': 'Misc', + 0x0e: { + 'Address': 'A/F', + 'Zone': 'Sends', 'LED': True }, 0x10: { - 'Address': 'ShowValues', - 'SetMode': '/track/procscribstrip/pan', - 'Zone': 'Misc', + 'Address': 'B/G', + 'Zone': 'Sends', 'LED': True }, - 0x11: { - 'Address': 'ShowGroup', - 'SetMode': '/track/number', - 'Zone': 'Misc', + 0x12: { + 'Address': 'C/H', + 'Zone': 'Sends', 'LED': True }, - 0x12: { - 'Address': 'ShowChannelNames', - 'SetMode': '/track/procscribstrip/name', - 'Zone': 'Misc', + 0x0f: { + 'Address': 'D/I', + 'Zone': 'Sends', 'LED': True }, - 0x13: { - 'Address': 'ShowInfo', - 'SetMode': '/track/procscribstrip/volume', - 'Zone': 'Misc', + 0x11: { + 'Address': 'E/J', + 'Zone': 'Sends', 'LED': True }, 0x14: { @@ -184,18 +180,13 @@ 'Zone': 'Utility', 'LED': True }, - 0x2e: { - 'Address': 'SoloSafe', - 'Zone': 'Utility', - 'LED': True - }, 0x15: { 'Address': 'auto_suspend', 'Zone': 'automation_enable', 'LED': True }, 0x16: { - 'Address': 'vel_sens_encoders', + 'Address': 'display_mode', 'Zone': 'Misc', 'LED': True }, @@ -259,104 +250,556 @@ 'Zone': 'automation_enable', 'LED': True }, - 0x2f: { - 'Address': 'WriteAutoToStart', - 'Zone': 'automation_enable' + 0x23: { + 'Address': 'Shift', + 'Zone': 'Modifiers', + 'CmdClass': 'C24modifiers' }, - 0x30: { - 'Address': 'WriteAutoToAll', - 'Zone': 'automation_enable' + 0x24: { + 'Address': 'Option', + 'Zone': 'Modifiers', + 'CmdClass': 'C24modifiers' }, - 0x31: { - 'Address': 'WriteAutoToEnd', - 'Zone': 'automation_enable' + 0x25: { + 'Address': 'Control', + 'Zone': 'Modifiers', + 'CmdClass': 'C24modifiers' }, - 0x23: { - 'Address': 'Shift', + 0x26: { + 'Address': 'Command', 'Zone': 'Modifiers', 'CmdClass': 'C24modifiers' }, + } + }, +## is it possible to use byte mask here to avoid repeating all 8 DSP EDIT Zones???? + 0x0d: { + 'Address': 'DSPEdit1', + 'ChildByte': 1, + 'Children': { + 0x00: { + 'Address': 'select_auto', + 'Zone': 'DspEditAssign1', + 'LED': True + }, + 0x01: { + 'Address': 'assign_enable', + 'Zone': 'DspEditAssign1', + 'LED': True + }, + 0x02: { + 'Address': 'bypass_in_out', + 'Zone': 'DspEditAssign1', + 'LED': True + } + } + }, + 0x0e: { + 'Address': 'DSPEDit2', + 'ChildByte': 1, + 'Children': { + 0x00: { + 'Address': 'select_auto', + 'Zone': 'DspEditAssign2', + 'LED': True + }, + 0x01: { + 'Address': 'assign_enable', + 'Zone': 'DspEditAssign2', + 'LED': True + }, + 0x02: { + 'Address': 'bypass_in_out', + 'Zone': 'DspEditAssign2', + 'LED': True + } + } + }, + 0x0f: { + 'Address': 'DSPEdit3', + 'ChildByte': 1, + 'Children': { + 0x00: { + 'Address': 'select_auto', + 'Zone': 'DspEditAssign3', + 'LED': True + }, + 0x01: { + 'Address': 'assign_enable', + 'Zone': 'DspEditAssign3', + 'LED': True + }, + 0x02: { + 'Address': 'bypass_in_out', + 'Zone': 'DspEditAssign3', + 'LED': True + } + } + }, + 0x10: { + 'Address': 'DSPEdit4', + 'ChildByte': 1, + 'Children': { + 0x00: { + 'Address': 'select_auto', + 'Zone': 'DspEditAssign4', + 'LED': True + }, + 0x01: { + 'Address': 'assign_enable', + 'Zone': 'DspEditAssign4', + 'LED': True + }, + 0x02: { + 'Address': 'bypass_in_out', + 'Zone': 'DspEditAssign4', + 'LED': True + } + } + }, + 0x11: { + 'Address': 'DSPEdit5', + 'ChildByte': 1, + 'Children': { + 0x00: { + 'Address': 'select_auto', + 'Zone': 'DspEditAssign5', + 'LED': True + }, + 0x01: { + 'Address': 'assign_enable', + 'Zone': 'DspEditAssign5', + 'LED': True + }, + 0x02: { + 'Address': 'bypass_in_out', + 'Zone': 'DspEditAssign5', + 'LED': True + } + } + }, + 0x12: { + 'Address': 'DSPEdit6', + 'ChildByte': 1, + 'Children': { + 0x00: { + 'Address': 'select_auto', + 'Zone': 'DspEditAssign6', + 'LED': True + }, + 0x01: { + 'Address': 'assign_enable', + 'Zone': 'DspEditAssign6', + 'LED': True + }, + 0x02: { + 'Address': 'bypass_in_out', + 'Zone': 'DspEditAssign6', + 'LED': True + } + } + }, + 0x13: { + 'Address': 'DSPEdit7', + 'ChildByte': 1, + 'Children': { + 0x00: { + 'Address': 'select_auto', + 'Zone': 'DspEditAssign7', + 'LED': True + }, + 0x01: { + 'Address': 'assign_enable', + 'Zone': 'DspEditAssign7', + 'LED': True + }, + 0x02: { + 'Address': 'bypass_in_out', + 'Zone': 'DspEditAssign7', + 'LED': True + } + } + }, + 0x14: { + 'Address': 'DSPEdit8', + 'ChildByte': 1, + 'Children': { + 0x00: { + 'Address': 'select_auto', + 'Zone': 'DspEditAssign8', + 'LED': True + }, + 0x01: { + 'Address': 'assign_enable', + 'Zone': 'DspEditAssign8', + 'LED': True + }, + 0x02: { + 'Address': 'bypass_in_out', + 'Zone': 'DspEditAssign8', + 'LED': True + } + } + }, + 0x15: { + 'Address': 'DSPEdit+Groups', + 'ChildByte': 1, + 'Children': { + 0x00: { # oddly placed, clock mode + 'Address': 'CounterMode', + 'Zone': 'Counter', + 'CmdClass': 'C24clock' + }, + 0x01: { + 'Address': 'Info', + 'Zone': 'DSPEdit', + 'LED': True + }, + 0x02: { + 'Address': 'Inserts_Param', + 'Zone': 'DSPEdit', + 'LED': True + }, + 0x03: { + 'Address': 'Sends', + 'Zone': 'DSPEdit', + 'LED': True + }, + 0x04: { + 'Address': 'Create', + 'Zone': 'Groups', + 'LED': True + }, + 0x05: { + 'Address': 'Enable', + 'Zone': 'Groups', + 'LED': True + }, + 0x06: { + 'Address': 'Edit/Bypass', + 'Zone': 'Groups', + 'LED': True + }, + 0x07: { + 'Address': 'Select', + 'Zone': 'Groups', + 'LED': True + }, + 0x08: { + 'Address': 'Suspend', + 'Zone': 'Groups', + 'LED': True + }, + 0x09: { + 'Address': 'Compare', + 'Zone': 'Groups', + 'LED': True + }, + 0x0a: { + 'Address': 'MasterBypass', + 'Zone': 'DSPEdit', + 'LED': True + } + } + }, + 0x16: { + 'Address': 'ControlRoom', + 'ChildByte': 1, + 'Children': { + 0x00: { # oddly placed, clock mode + 'Address': 'MixToAux', + 'Zone': 'ControlRoom', + 'LED': True + }, + 0x01: { + 'Address': 'StereoMix', + 'Zone': 'ControlRoom', + 'LED': True + }, + 0x02: { + 'Address': 'SRC1_3-4', + 'Zone': 'ControlRoom', + 'LED': True + }, + 0x03: { + 'Address': 'SRC2_5-6', + 'Zone': 'ControlRoom', + 'LED': True + }, + 0x04: { + 'Address': 'SRC3', + 'Zone': 'ControlRoom', + 'LED': True + }, + 0x05: { + 'Address': 'Mono', + 'Zone': 'ControlRoom', + 'LED': True + }, + 0x06: { + 'Address': 'Dim', + 'Zone': 'ControlRoom', + 'LED': True + }, + 0x07: { + 'Address': 'Mute', + 'Zone': 'ControlRoom', + 'LED': True + } + } + }, + 0x17: { + 'Address': 'CannelMatrix', + 'ChildByte': 1, + 'Children': { + 0x00: { + 'Address': 'GoTo', + 'Zone': 'CannelMatrix', + 'LED': True + }, + 0x01: { + 'Address': '1_A', + 'Zone': 'CannelMatrix', + 'LED': True + }, + 0x02: { + 'Address': '2_B', + 'Zone': 'CannelMatrix', + 'LED': True + }, + 0x03: { + 'Address': '3_C', + 'Zone': 'CannelMatrix', + 'LED': True + }, + 0x04: { + 'Address': '4_D', + 'Zone': 'CannelMatrix', + 'LED': True + }, + 0x05: { + 'Address': '5_E', + 'Zone': 'CannelMatrix', + 'LED': True + }, + 0x06: { + 'Address': '6_F', + 'Zone': 'CannelMatrix', + 'LED': True + }, + 0x07: { + 'Address': '7_G', + 'Zone': 'CannelMatrix', + 'LED': True + }, + 0x08: { + 'Address': '8_H', + 'Zone': 'CannelMatrix', + 'LED': True + }, + 0x09: { + 'Address': '9_I', + 'Zone': 'CannelMatrix', + 'LED': True + }, + 0x0a: { + 'Address': '10_J', + 'Zone': 'CannelMatrix', + 'LED': True + }, + 0x0b: { + 'Address': '11_K', + 'Zone': 'CannelMatrix', + 'LED': True + }, + 0x0c: { + 'Address': '12_L', + 'Zone': 'CannelMatrix', + 'LED': True + }, + 0x0d: { + 'Address': '13_M', + 'Zone': 'CannelMatrix', + 'LED': True + }, + 0x0e: { + 'Address': '14_N', + 'Zone': 'CannelMatrix', + 'LED': True + }, + 0x0f: { + 'Address': '15_O', + 'Zone': 'CannelMatrix', + 'LED': True + }, + 0x10: { + 'Address': '16_P', + 'Zone': 'CannelMatrix', + 'LED': True + }, + 0x11: { + 'Address': '17_Q', + 'Zone': 'CannelMatrix', + 'LED': True + }, + 0x12: { + 'Address': '18_R', + 'Zone': 'CannelMatrix', + 'LED': True + }, + 0x13: { + 'Address': '19_S', + 'Zone': 'CannelMatrix', + 'LED': True + }, + 0x14: { + 'Address': '20_T', + 'Zone': 'CannelMatrix', + 'LED': True + }, + 0x15: { + 'Address': '21_U', + 'Zone': 'CannelMatrix', + 'LED': True + }, + 0x16: { + 'Address': '22_V', + 'Zone': 'CannelMatrix', + 'LED': True + }, + 0x17: { + 'Address': '23_W', + 'Zone': 'CannelMatrix', + 'LED': True + }, + 0x18: { + 'Address': '24_X', + 'Zone': 'CannelMatrix', + 'LED': True + }, + 0x19: { + 'Address': '25_Y', + 'Zone': 'CannelMatrix', + 'LED': True + }, + 0x1a: { + 'Address': '26_Z', + 'Zone': 'CannelMatrix', + 'LED': True + }, + 0x1b: { + 'Address': '27_Shift', + 'Zone': 'CannelMatrix', + 'LED': True + }, + 0x1c: { + 'Address': '28_CapLock', + 'Zone': 'CannelMatrix', + 'LED': True + }, + 0x1d: { + 'Address': '29_#', + 'Zone': 'CannelMatrix', + 'LED': True + }, + 0x1e: { + 'Address': '30_&', + 'Zone': 'CannelMatrix', + 'LED': True + }, + 0x1f: { + 'Address': '31_Delete', + 'Zone': 'CannelMatrix', + 'LED': True + }, + 0x20: { + 'Address': '32_Space', + 'Zone': 'CannelMatrix', + 'LED': True + }, + 0x21: { + 'Address': 'Alpha', + 'Zone': 'CannelMatrix', + 'LED': True + }, + ## 0x22 missing (no button) + 0x23: { ## out of Group (utility???) + 'Address': 'MasterFaders', + 'Zone': 'Faders', + 'LED': True + }, 0x24: { - 'Address': 'Option', - 'Zone': 'Modifiers', - 'CmdClass': 'C24modifiers' - }, + 'Address': 'Select', + 'Zone': 'CannelMatrix', + 'LED': True + }, 0x25: { - 'Address': 'Control', - 'Zone': 'Modifiers', - 'CmdClass': 'C24modifiers' - }, + 'Address': 'Mute', + 'Zone': 'CannelMatrix', + 'LED': True + }, 0x26: { - 'Address': 'Command', - 'Zone': 'Modifiers', - 'CmdClass': 'C24modifiers' - }, + 'Address': 'Solo', + 'Zone': 'CannelMatrix', + 'LED': True + }, 0x27: { - 'Address': 'Auto-Select', - 'Zone': 'Misc', + 'Address': 'RecReady', + 'Zone': 'CannelMatrix', 'LED': True }, 0x28: { - 'Address': 'Pre-Post', - 'Zone': 'Misc', + 'Address': 'Snapshot', + 'Zone': 'CannelMatrix', 'LED': True - }, + }, 0x29: { - 'Address': 'ApplyToAllChannels', - 'Zone': 'Misc', + 'Address': 'ClearAll', + 'Zone': 'CannelMatrix', 'LED': True }, 0x2a: { - 'Address': 'ApplyToAllSelectedChannels', - 'Zone': 'Misc', + 'Address': 'Parameter_Pages', + 'Zone': 'CannelMatrix', 'LED': True - }, + }, 0x2b: { - 'Address': 'CopySettingsFromChannel', - 'Zone': 'Misc', + 'Address': 'View', + 'Zone': 'CannelMatrix', 'LED': True - }, + }, 0x2c: { - 'Address': 'SpecifySettings', - 'Zone': 'Misc', + 'Address': 'BankA_1-32', + 'Zone': 'CannelMatrix', 'LED': True - }, + }, 0x2d: { - 'Address': 'PasteSettingToChannel', - 'Zone': 'Misc', + 'Address': 'BankB_32-64', + 'Zone': 'CannelMatrix', + 'LED': True + }, + 0x2e: { + 'Address': 'BankC_65-96', + 'Zone': 'CannelMatrix', + 'LED': True + }, + 0x2f: { + 'Address': 'BankD_97-128', + 'Zone': 'CannelMatrix', + 'LED': True + }, + 0x30: { ## More of a Utility Key for exiting on screen dialogs + 'Address': 'Esc/Cancel', + 'Zone': 'Utility', 'LED': True } } }, + 0x19: { 'Address': 'Window+ZoomPresets+Navigation', 'ChildByte': 1, 'Children': { - 0x08: { - 'Address': 'Preset1', - 'Zone': 'ZoomPresets', - 'LED': True - }, - 0x09: { - 'Address': 'Preset2', - 'Zone': 'ZoomPresets', - 'LED': True - }, - 0x0A: { - 'Address': 'Preset3', - 'Zone': 'ZoomPresets', - 'LED': True - }, - 0x0B: { - 'Address': 'Preset4', - 'Zone': 'ZoomPresets', - 'LED': True - }, - 0x14: { - 'Address': 'Preset5', - 'Zone': 'ZoomPresets', - 'LED': True - }, 0x00: { 'Address': 'Mix', 'Zone': 'Window', @@ -378,70 +821,30 @@ 'LED': True }, 0x04: { - 'Address': 'Pan', + 'Address': 'PlugIn', 'Zone': 'Window', 'LED': True }, 0x05: { - 'Address': 'Alt', + 'Address': 'Mem-Loc', 'Zone': 'Window', 'LED': True }, 0x06: { - 'Address': 'PlugIn', - 'Zone': 'Window', + 'Address': 'Undo', + 'Zone': 'Utility', 'LED': True }, 0x07: { - 'Address': 'Mem-Loc', - 'Zone': 'Window', + 'Address': 'Save', + 'Zone': 'Utility', 'LED': True - }, - 0x0c: { - 'Address': 'Nav', - 'Zone': 'Navigation', - 'LED': True, - 'CmdClass': 'C24nav' - }, - 0x0d: { - 'Address': 'Zoom', - 'Zone': 'Navigation', - 'LED': True, - 'CmdClass': 'C24nav' - }, - 0x0e: { - 'Address': 'SelAdj', - 'Zone': 'Navigation', - 'LED': True, - 'CmdClass': 'C24nav' - }, - 0x0f: { - 'Address': 'CursorUp', - 'Zone': 'Navigation', - 'CmdClass': 'C24nav' - }, - 0x10: { - 'Address': 'CursorLeft', - 'Zone': 'Navigation', - 'CmdClass': 'C24nav' - }, - 0x11: { - 'Address': 'CursorRight', - 'Zone': 'Navigation', - 'CmdClass': 'C24nav' - }, - 0x12: { - 'Address': 'CursorDown', - 'Zone': 'Navigation', - 'CmdClass': 'C24nav' - }, - 0x13: { # oddly placed, clock mode - 'Address': 'CounterMode', - 'Zone': 'Counter', - 'CmdClass': 'C24clock' } } }, + + + 0x1A: { 'ChildByte': 1, 'Children': { @@ -549,14 +952,6 @@ 'Address': 'Capture', 'Zone': 'Edit Function' }, - 0x1c: { - 'Address': 'Duplicate', - 'Zone': 'Edit Function' - }, - 0x1d: { - 'Address': 'Repeat', - 'Zone': 'Edit Function' - }, 0x0a: { 'Address': 'Left', 'Zone': 'Bank' @@ -589,76 +984,6 @@ 'Address': 'Pencil', 'Zone': 'Edit Tools', 'LED': True - }, - 0x11: { - 'Address': 'MIDI Tools', - 'Zone': 'Edit Tools', - 'LED': True - }, - 0x12: { - 'Address': 'Smart', - 'Zone': 'Edit Tools', - 'LED': True - }, - 0x1e: { - 'Address': 'Link Edit/TL', - 'Zone': 'Edit Tools', - 'LED': True - }, - 0x13: { - 'Address': 'Master Faders', - 'Zone': 'Faders', - 'LED': True - }, - 0x1f: { - 'Address': 'Auto To Cur', - 'Zone': 'Edit Tools', - 'LED': True - }, - 0x20: { - 'Address': 'Auto To All', - 'Zone': 'Edit Tools', - 'LED': True - }, - 0x14: { - 'Address': 'Undo', - 'Zone': 'Utility', - 'LED': True - }, - 0x15: { - 'Address': 'Save', - 'Zone': 'Utility', - 'LED': True - }, - 0x21: { - 'Address': 'Esc/Cancel', - 'Zone': 'Utility', - 'LED': True - }, - 0x17: { - 'Address': 'Create', - 'Zone': 'Groups', - 'LED': True - }, - 0x18: { - 'Address': 'Enable', - 'Zone': 'Groups', - 'LED': True - }, - 0x19: { - 'Address': 'Edit / Bypass', - 'Zone': 'Groups', - 'LED': True - }, - 0x1a: { - 'Address': 'Delete', - 'Zone': 'Groups', - 'LED': True - }, - 0x1b: { - 'Address': 'Suspend', - 'Zone': 'Groups', - 'LED': True } } }, @@ -687,15 +1012,15 @@ 'LED': True }, 0x05: { - 'Address': 'Go To Start', + 'Address': 'Online', 'LED': True }, 0x06: { - 'Address': 'Go To End', + 'Address': 'Go To Start', 'LED': True }, 0x07: { - 'Address': 'Online', + 'Address': 'Go To End', 'LED': True }, 0x08: { @@ -705,7 +1030,6 @@ 0x09: { 'Address': 'LoopPlay', 'LED': True - }, 0x0a: { 'Address': 'Loop Record', @@ -750,132 +1074,7 @@ 'CmdClass': 'C24jpot' } } - }, - 0x1D: { - 'Address': 'Monitor+Pre+Inserts+Assignment+Sends+Pans+Scroll', - 'ChildByte': 1, - 'Children': { - 0x00: { - 'Address': 'Monitor Phase', - 'Zone': 'Monitor Phase & Remote Pre', - 'LED': True - }, - 0x01: { - 'Address': 'Remote Mic Pre', - 'Zone': 'Monitor Phase & Remote Pre', - 'LED': True - }, - 0x02: { - 'Address': 'Compare', - 'Zone': 'Inserts', - 'LED': True - }, - 0x03: { - 'Address': 'Master Bypass', - 'Zone': 'Inserts', - 'LED': True - }, - 0x04: { - 'Address': 'Inserts/Param', - 'Zone': 'Inserts', - 'LED': True - }, - 0x09: { - 'Address': 'Plug-In Safe', - 'Zone': 'Inserts', - 'LED': True - }, - 0x05: { - 'Address': 'Input', - 'Zone': 'Assignment', - 'LED': True - }, - 0x06: { - 'Address': 'Output', - 'Zone': 'Assignment', - 'LED': True - }, - 0x07: { - 'Address': 'Assign', - 'Zone': 'Assignment', - 'LED': True - }, - 0x08: { - 'Address': 'Esc/Cancel', - 'Zone': 'Assignment', - 'LED': True - }, - 0x0a: { - 'Address': 'Flip', - 'Zone': 'Sends', - 'LED': True - }, - 0x0b: { - 'Address': 'A/F', - 'Zone': 'Sends', - 'LED': True - }, - 0x0c: { - 'Address': 'B/G', - 'Zone': 'Sends', - 'LED': True - }, - 0x0d: { - 'Address': 'C/H', - 'Zone': 'Sends', - 'LED': True - }, - 0x0e: { - 'Address': 'D/I', - 'Zone': 'Sends', - 'LED': True - }, - 0x0f: { - 'Address': 'E/J', - 'Zone': 'Sends', - 'LED': True - }, - 0x10: { - 'Address': 'LCR/Front Div', - 'Zone': 'Pans', - 'LED': True - }, - 0x11: { - 'Address': 'Rear/Rear Div', - 'Zone': 'Pans', - 'LED': True - }, - 0x12: { - 'Address': 'FR/FR Div', - 'Zone': 'Pans', - 'LED': True - }, - 0x13: { - 'Address': 'Cent%', - 'Zone': 'Pans', - 'LED': True - }, - 0x16: { - 'Address': 'LFE', - 'Zone': 'Pans', - 'LED': True - }, - 0x17: { - 'Address': 'Left/Right', - 'Zone': 'Pans', - 'LED': True - }, - 0x14: { - 'Address': '<', - 'Zone': 'Channel Bar Scroll', - 'LED': True - }, - 0x15: { - 'Address': '>', - 'Zone': 'Channel Bar Scroll', - 'LED': True - } - } + } } }, # END Command Buttons @@ -891,7 +1090,7 @@ 'LED': True }, 0x04: { - 'Address': 'Switch_Active', + 'Address': 'pre_post_assign_mute', ## changed 'Zone': 'Channel', 'LED': True }, @@ -918,7 +1117,7 @@ 0x05: { 'Address': 'c24automode', 'Zone': 'Channel', - 'CmdClass': 'C24automode' + 'CmdClass': 'C24automode' ## this button has 5 leds (WR,TC,LT,TM,RD) }, 0x06: { 'Address': 'ChannelSelect', @@ -994,6 +1193,7 @@ 0xF5: {'Address': 'Off'} } }, + 0xFF: { 'Address': 'CounterModeLED', 'ChildByte': 2, diff --git a/procontrolosc.py b/procontrolosc.py index 164ff59..d665dfb 100644 --- a/procontrolosc.py +++ b/procontrolosc.py @@ -193,6 +193,8 @@ def walk(node, path, byts, cbyt, tbyt, outp): if tbyt is None: tbyt = item.get('TrackByte') led = item.get('LED') + tog = item.get('Toggle') + act = item.get('Action') if not kids is None: kidbyts = list(mybyts) kidbyts[cbyt] = key @@ -204,6 +206,10 @@ def walk(node, path, byts, cbyt, tbyt, outp): opr = { 'cmdbytes': leafbyts } + if tog: + opr['Toggle'] = tog + # if act: # probably not necessaryt was copying toggle style + # opr['Action'] = act if not tbyt is None: opr['TrackByte'] = tbyt outp[path + '/' + addr] = opr @@ -322,6 +328,8 @@ def get_track(self, track): return None def long_scribble(self, longtextallchars): + """write a long message using ALL the scribble strips + as a long alphanumeric display""" for track_number, track in enumerate(self.c24tracks): if hasattr(track, 'procscribstrip'): psn = track_number * ProCscribstrip.digits @@ -632,7 +640,7 @@ def __str__(self): ) def set_current_display(self): - + """send the current display state to the desk""" self.transform_text() self.cmdbytes[6:ProCscribstrip.digits+6] = [ord(thischar) for thischar in self.dtext8ch] trace(self.log, 'ProCscribstrip mode state: %s = %s', @@ -646,6 +654,8 @@ def restore_desk_display(self): self.set_current_display() def transform_text(self): + """transform the basic text string into one that + is ready for the 4 character scribble strip""" dtext = self.text.get(self.mode) if not dtext is None: # The desk has neat characters with a dot and small numeral, @@ -680,6 +690,7 @@ def c_d(self, addrlist, stuff): class C24jpot(C24base): + """Class for the ProControl Jog wheel""" # 'DirectionByte': 2,1 # 'DirectionByteMask': 0x40, # 'ValueByte': 3 @@ -768,6 +779,7 @@ def _update_from_move(self, parsedcmd): class C24vpot(C24base): + """Class for the ProControl Virtual Pots""" # 'DirectionByte': 2, # 'DirectionByteMask': 0x40, # 'ValueByte': 3 @@ -1009,12 +1021,13 @@ def __init__(self, desk, track): self.cmdbytes = (c_ubyte * 3)() def c_d(self, addrlist, stuff): + """computer to desk handler""" addr = '/'.join(addrlist) val = stuff[0] self.set_btn(addr, val) def set_btn(self, addr, val): - + """set button value""" try: lkpbtn = C24buttonled.mapping_osc[addr] self.log.debug("Button LED: %s", lkpbtn) @@ -1022,19 +1035,37 @@ def set_btn(self, addr, val): tbyt = lkpbtn.get('TrackByte') else: tbyt = None + # added for Toggle dict value from procontrol24.py + tog = lkpbtn.get('Toggle') + if (tog and val == 1) or not tog: + if tog: + vals = self.toggle_state(addr) + else: + vals = val # Copy the byte sequence injecting track number for ind, byt in enumerate(lkpbtn['cmdbytes']): c_byt = c_ubyte(byt) if ind == tbyt and not self.track is None: c_byt.value = c_byt.value | self.track.track_number # On or Off - if ind == 2 and val == 1: + if ind == 2 and vals == 1: c_byt.value = c_byt.value | 0x40 self.cmdbytes[ind] = c_byt trace(self.log, "Button LED cmdbytes: %s", binascii.hexlify(self.cmdbytes)) self.desk.c24_client_send(self.cmdbytes) + return vals except KeyError: self.log.warn("OSCServer LED not found: %s %s", addr, str(val)) + return None + def toggle_state(self, addr): + """toggle between on and off states""" + state = self.states.get('addr') or 0.0 + if state == 0.0: + state = 1.0 + else: + state = 0.0 + self.states[addr] = state + return state class C24automode(C24base): @@ -1098,6 +1129,7 @@ def d_c(self, parsedcmd): self.update_led() def daw_mode(self, mode_in, onoff): + """send the current mode to the DAW""" addr = '/track/c24automode/{}/{}'.format( mode_in, self.track.osctrack_number @@ -1107,6 +1139,7 @@ def daw_mode(self, mode_in, onoff): self.track.desk.osc_client_send(msg) def set_mode(self, mode_in, onoff): + """set the current mode state""" mode = self.modes.get(mode_in) mode['state'] = onoff bitv = mode.get('cmd') @@ -1185,7 +1218,13 @@ def parsecmd(cmdbytes): parsedcmd["addresses"].append('/') parsedcmd["addresses"].append(lkp["Address"]) parsedcmd.update( - {key: lkp[key] for key in lkp if "Byte" in key or "Class" in key or "SetMode" in key} + {key: lkp[key] for key in lkp if any ([ + "Byte" in key, + "Class" in key, + "SetMode" in key, + "Toggle" in key, + "Action" in key # experimental action osc messages + ])} ) if 'ChildByte' in lkp: this_byte_num = lkp['ChildByte'] @@ -1234,13 +1273,11 @@ def parsecmd(cmdbytes): except IndexError: value_byte = 0x00 parsedcmd["Value"] = 0.0 - parsedcmd["address"] = ''.join(parsedcmd["addresses"]) return parsedcmd # Event methods def _desk_to_daw(self, c_databytes): - trace(self.log, binascii.hexlify(c_databytes)) commands = ProCoscsession.cmdsplit(c_databytes) trace(self.log, 'nc: %d', len(commands)) @@ -1255,7 +1292,12 @@ def _desk_to_daw(self, c_databytes): # If map indicates a mode is to be set then call the setter set_mode = parsed_cmd.get('SetMode') if set_mode: - self.desk.mode = set_mode + #Suspect commented out line was a bug preventing + # proper desk wide scriblle updates. + #should have been calling set mode function not setting object. + #@phunkyg 29/09/18 + self.desk.set_mode(set_mode) + #self.desk.mode = set_mode # CLASS based Desk-Daw, where complex logic is needed so encap. in class cmd_class = parsed_cmd.get('CmdClass') @@ -1265,28 +1307,46 @@ def _desk_to_daw(self, c_databytes): inst = getattr(track or self.desk, cmd_class.lower()) # Call the desk_to_computer method of the class inst.d_c(parsed_cmd) + else: - # NON CLASS based Desk-DAW or both - if address.startswith('/button/track/'): - # Channel strip buttons. - # We will assume the track object is here already - osc_msg = OSC.OSCMessage(address) - if not osc_msg is None: - self.osc_client_send(osc_msg, parsed_cmd['Value']) - # ANY OTHER buttons - # If the Reaper.OSC file has something at this address - elif address.startswith('/button'): - osc_msg = OSC.OSCMessage(address) - if not osc_msg is None: - self.osc_client_send(osc_msg, parsed_cmd['Value']) + # NON CLASS based Desk-DAW or both + # this not in Release was experimental first version? + val = parsed_cmd.get('Value') + tog = parsed_cmd.get('Toggle') + act = parsed_cmd.get('Action') + # act_val = 40280 # not needed intital test only + if (act and val == 1): + osc_msg = OSC.OSCMessage() + osc_msg.setAddress("/action") + osc_msg.append(act) + self.osc_client_send(osc_msg) + else: + if (tog and val == 1) or not tog: + if address.startswith('/button/track/'): + # Channel strip buttons. + # We will assume the track object is here already + osc_msg = OSC.OSCMessage(address) + if not osc_msg is None: + self.osc_client_send(osc_msg, val) + # ANY OTHER buttons + # If the Reaper.OSC file has something at this address + # elif address.startswith('/button'): + # NON CLASS based Desk-DAW i.e. basic buttons + elif 'button' in parsed_cmd.get('addresses'): + osc_msg = OSC.OSCMessage(address) + if not osc_msg is None: + self.osc_client_send(osc_msg, parsed_cmd.get('Value')) def _daw_to_desk(self, addr, tags, stuff, source): """message handler for the OSC listener""" - trace(self.log,'received from DAW: %s', addr) - if self.osc_listener_last is None: - self.osc_listener_last = source + trace(self.log, "Received OSC message") self.log.debug("OSC Listener received Message: %s %s [%s] %s", source, addr, tags, str(stuff)) + if self.osc_listener_last is None: + self.osc_listener_last = source + elif self.osc_listener_last != source: + self.log.warn('OSC message received from an unexpected source address %s', source) + # TODO primitive switching needs a proper lookup map addrlist = addr.split('/') if 'track' in addrlist: @@ -1396,7 +1456,7 @@ def _manage_osc_client(self): self.osc_client = OSC.OSCClient() while self.osc_listener is None or self.osc_listener_last is None or not self.osc_listener.running: self.log.debug( - 'Waiting for the OSC listener to get a client %s', self.osc_listener_last) + 'Waiting for the OSC listener to get a client. Last seen was: %s', self.osc_listener_last) time.sleep(TIMING_WAIT_OSC_LISTENER) try: self.log.debug('Starting OSC Client connecting to %s', @@ -1460,6 +1520,7 @@ def c24_client_send(self, cmdbytes): def __init__(self, opts, networks, pipe=None): """Contructor to build the client session object""" self.log = start_logging("procontrolosc", opts.logdir, opts.debug) + trace(self.log, 'Options %s', str(opts)) self.desk = ProCdesk(self) try: self.standalone = pipe is None