#N canvas 47 0 885 600 10; #X declare -lib mrpeach/packOSC; #X declare -lib mrpeach/udpsend; #X obj 170 145 hid; #X msg 162 73 print; #X obj 109 105 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 1; #X obj -43 59 import mrpeach/packOSC; #X obj -42 89 import mrpeach/udpsend; #X obj 26 127 loadbang; #X obj 106 211 r osc_packer; #X obj 106 242 packOSC; #X obj 94 297 udpsend; #X msg -30 221 disconnect; #X obj 318 555 s osc_packer; #X msg 14 157 connect localhost 9951; #X obj 225 241 route key; #X obj 303 165 print; #X obj 575 335 route 1 0; #X text 353 166 DEBUG; #X text -53 139 OSC send; #X obj 433 331 route 1 0; #N canvas 85 34 780 490 binary-counter 0; #X obj 232 73 float; #X floatatom 218 147 5 0 0 0 - - -; #X obj 218 111 + 1; #X obj 217 37 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X msg 143 151 0; #X msg 316 39 0; #X obj 142 122 select 2; #X obj 82 14 inlet; #X obj 125 238 outlet; #X text 369 -27 Any keypress on my Logitech Logitech Dual Action controller sends 2 messages (well \, 2 each for press/depress): btn_2 1 btn_2 1 btn_2 0 btn_2 0 This counter helps count button presses correctly by counting each pair btn_# 1 message as one event.; #X connect 0 0 2 0; #X connect 2 0 1 0; #X connect 2 0 0 1; #X connect 2 0 6 0; #X connect 3 0 0 0; #X connect 4 0 0 1; #X connect 5 0 0 1; #X connect 6 0 4 0; #X connect 6 0 8 0; #X connect 7 0 3 0; #X restore 565 363 pd binary-counter; #N canvas 127 42 450 300 binary-counter 0; #X obj 232 73 float; #X floatatom 218 147 5 0 0 0 - - -; #X obj 218 111 + 1; #X obj 217 37 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X msg 143 151 0; #X msg 316 39 0; #X obj 142 122 select 2; #X obj 82 14 inlet; #X obj 125 238 outlet; #X connect 0 0 2 0; #X connect 2 0 1 0; #X connect 2 0 0 1; #X connect 2 0 6 0; #X connect 3 0 0 0; #X connect 4 0 0 1; #X connect 5 0 0 1; #X connect 6 0 4 0; #X connect 6 0 8 0; #X connect 7 0 3 0; #X restore 444 363 pd binary-counter; #X text -17 -11 This patch is my first pass at using a Logitech Dual Action (G-UF13A) USB Game Controller (which uses the HID interface) to control the SooperLooper program via OSC.; #X text 38 512 SooperLooper OSC control; #X msg 229 84 open \$1; #X obj 373 42 hradio 15 1 1 10 empty empty HID_device 0 -8 0 10 -262144 -1 -1 5; #X obj 338 62 + 1; #X text 369 12 The controller is HID device #6 on my system; #X obj 442 205 route abs; #X obj 534 235 route abs_x abs_y abs_rz abs_hat0x abs_hat0y; #N canvas 0 0 296 167 pot-inverter 0; #X obj 139 53 - 255; #X obj 139 76 * -1; #X obj 140 29 inlet; #X obj 139 99 outlet; #X text 19 21 The way I wired my pots \, they go from 255 to 0 This makes them go the other way around.; #X connect 0 0 1 0; #X connect 1 0 3 0; #X connect 2 0 0 0; #X restore 615 287 pd pot-inverter; #N canvas 0 0 296 167 pot-inverter 0; #X obj 139 53 - 255; #X obj 139 76 * -1; #X obj 140 29 inlet; #X obj 139 99 outlet; #X connect 0 0 1 0; #X connect 1 0 3 0; #X connect 2 0 0 0; #X restore 722 289 pd pot-inverter; #N canvas 415 295 450 300 binary-counter 0; #X obj 232 73 float; #X floatatom 218 147 5 0 0 0 - - -; #X obj 218 111 + 1; #X obj 217 37 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X msg 143 151 0; #X msg 316 39 0; #X obj 142 122 select 2; #X obj 82 14 inlet; #X obj 125 238 outlet; #X connect 0 0 2 0; #X connect 2 0 1 0; #X connect 2 0 0 1; #X connect 2 0 6 0; #X connect 3 0 0 0; #X connect 4 0 0 1; #X connect 5 0 0 1; #X connect 6 0 4 0; #X connect 6 0 8 0; #X connect 7 0 3 0; #X restore 179 347 pd binary-counter; #N canvas 337 265 450 300 binary-counter 0; #X obj 232 73 float; #X floatatom 218 147 5 0 0 0 - - -; #X obj 218 111 + 1; #X obj 217 37 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X msg 143 151 0; #X msg 316 39 0; #X obj 142 122 select 2; #X obj 82 14 inlet; #X obj 125 238 outlet; #X connect 0 0 2 0; #X connect 2 0 1 0; #X connect 2 0 0 1; #X connect 2 0 6 0; #X connect 3 0 0 0; #X connect 4 0 0 1; #X connect 5 0 0 1; #X connect 6 0 4 0; #X connect 6 0 8 0; #X connect 7 0 3 0; #X restore 297 350 pd binary-counter; #X obj 221 482 r left_footswitch; #X obj 428 480 r right_footswitch; #X obj 176 411 s right_toggle; #X obj 300 410 s left_toggle; #X obj 354 317 route 1 0; #X obj 256 318 route 1 0; #X obj 441 422 s right_footswitch; #X obj 568 422 s left_footswitch; #X msg 221 511 send /sl/-1/hit record; #X msg 428 514 send /sl/-1/hit overdub; #X obj 225 271 route btn_0 btn_1 btn_2 btn_3 btn_4 btn_5 btn_6 btn_7 btn_8 btn_9 btn_10 btn_11; #X obj 567 386 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1; #X obj 441 386 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1; #X obj 298 381 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1; #X obj 179 377 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1; #X connect 0 0 12 0; #X connect 0 0 13 0; #X connect 0 0 26 0; #X connect 1 0 0 0; #X connect 2 0 0 0; #X connect 5 0 11 0; #X connect 6 0 7 0; #X connect 7 0 8 0; #X connect 9 0 8 0; #X connect 11 0 8 0; #X connect 12 0 42 0; #X connect 14 0 18 0; #X connect 14 1 18 0; #X connect 17 0 19 0; #X connect 17 1 19 0; #X connect 18 0 43 0; #X connect 19 0 44 0; #X connect 22 0 0 0; #X connect 23 0 24 0; #X connect 24 0 22 0; #X connect 26 0 27 0; #X connect 27 1 28 0; #X connect 27 2 29 0; #X connect 30 0 46 0; #X connect 31 0 45 0; #X connect 32 0 40 0; #X connect 33 0 41 0; #X connect 36 0 31 0; #X connect 36 1 31 0; #X connect 37 0 30 0; #X connect 37 1 30 0; #X connect 40 0 10 0; #X connect 41 0 10 0; #X connect 42 4 37 0; #X connect 42 5 36 0; #X connect 42 6 17 0; #X connect 42 7 14 0; #X connect 43 0 39 0; #X connect 44 0 38 0; #X connect 45 0 35 0; #X connect 46 0 34 0;