#N canvas 1292 262 319 190 10; #N canvas 579 0 1240 993 send_OSC 0; #X obj 327 45 cnv 15 305 63 empty empty empty 20 12 0 14 -135168 -66577 0; #X obj 260 304 r OSC; #X obj 76 9 import mrpeach; #X obj 260 327 packOSC; #X obj 313 365 udpsend; #X obj 389 319 prepend connect; #X obj 389 298 pack s f; #X obj 436 269 fromsymbol; #X msg 313 298 disconnect; #X obj 461 172 t b s b; #X obj 376 392 s def_ip; #X obj 376 373 prepend set; #X obj 334 172 t s s b; #X obj 376 354 tosymbol; #X obj 465 373 prepend set; #X obj 465 354 tosymbol; #X obj 75 32 loadbang; #X obj 75 49 t b b b; #X obj 39 160 s IP; #X msg 201 124 7001; #X obj 201 141 l2s; #X msg 39 118 127.0.0.1; #X obj 39 139 tosymbol; #X obj 47 97 r def_ip; #X obj 542 64 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X text 559 63 Disconnect; #X symbolatom 334 64 15 0 0 2 IP IP -, f 15; #X symbolatom 490 64 7 0 0 2 Out_Port OUT_PORT -, f 7; #X obj 201 158 s OUT_PORT; #X text 338 79 (127.0.0.1 for local machine), f 14; #X symbolatom 435 64 7 0 0 2 In_Port IN_PORT -, f 7; #X obj 212 95 r def_out_port; #X obj 465 392 s def_out_port; #X obj 593 265 udpreceive 7000; #X obj 593 282 unpackOSC; #X obj 593 299 routeOSC /tsseq; #X obj 653 568 routeOSC /state /patt /len /omode; #X obj 653 618 ctlout 107; #X text 725 615 PLAY status; #N canvas 0 0 450 300 (subpatch) 0; #X array active_steps 64 float 2 black black; #X coords 0 1 64 -1 102 34 1; #X restore 690 57 graph; #N canvas 1221 21 450 438 draw_steps 0; #X obj 223 355 noteout; #X obj 226 172 unpack f f, f 13; #X obj 249 189 swap; #X obj 249 206 tabwrite active_steps; #X obj 64 28 inlet; #X obj 174 138 pack f f; #X obj 174 86 s2l /; #X obj 174 67 unpack s f; #X obj 174 48 routeOSC /step; #X obj 225 295 expr int($f1 / 8) * 16 + $f1 % 8; #X obj 55 188 pack f f; #X obj 52 214 print DEBUG; #X obj 159 114 - 1; #X text 370 346 color; #X obj 323 250 r color_step; #X obj 244 332 expr if($f1 == 0 \, 0 \, $f2); #X connect 1 0 2 0; #X connect 1 0 9 0; #X connect 1 1 2 1; #X connect 1 1 15 0; #X connect 2 0 3 0; #X connect 2 1 3 1; #X connect 4 0 8 0; #X connect 5 0 1 0; #X connect 6 0 12 0; #X connect 7 0 6 0; #X connect 7 1 5 1; #X connect 8 0 7 0; #X connect 9 0 0 0; #X connect 9 0 10 1; #X connect 10 0 11 0; #X connect 12 0 5 0; #X connect 12 0 10 0; #X connect 14 0 15 1; #X connect 15 0 0 1; #X restore 726 468 pd draw_steps; #N canvas 660 28 450 415 playhead 0; #X obj 142 122 tabread active_steps; #X obj 136 98 f; #X obj 113 219 expr int($f1 / 8) * 16 + $f1 % 8; #X obj 97 349 noteout; #X obj 116 74 t f f b; #X obj 125 180 noteout; #X obj 125 163 expr int($f1 / 8) * 16 + $f1 % 8; #X text 171 326 PLAYHEAD 44 = med green; #X obj 29 12 inlet; #X obj 78 42 - 1; #X obj 141 259 r color_play; #X obj 98 326 pack f f; #X obj 230 259 loadbang; #X msg 190 293 44; #X text 290 138 color; #X obj 269 72 r color_step; #X obj 141 141 expr if($f1 == 0 \, 0 \, $f2); #X connect 0 0 16 0; #X connect 1 0 0 0; #X connect 1 0 6 0; #X connect 2 0 11 0; #X connect 4 0 2 0; #X connect 4 1 1 1; #X connect 4 2 1 0; #X connect 6 0 5 0; #X connect 8 0 9 0; #X connect 9 0 4 0; #X connect 10 0 11 1; #X connect 11 0 3 0; #X connect 12 0 13 0; #X connect 13 0 11 1; #X connect 15 0 16 1; #X connect 16 0 5 1; #X restore 481 515 pd playhead; #X obj 593 245 prepend port; #X obj 593 212 fromsymbol; #X obj 567 178 t b s b; #X msg 670 211 7000; #X obj 103 138 tosymbol; #X obj 111 95 r def_in_port; #X obj 103 159 s IN_PORT; #X msg 103 116 7000; #X obj 20 43 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X obj 707 268 prepend set; #X obj 707 249 tosymbol; #X obj 707 287 s def_in_port; #X obj 118 355 system; #X msg 118 331 ipconfig & pause; #X obj 441 88 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X text 460 86 Show Local IP Info; #X obj 327 26 cnv 15 305 19 empty empty OSC\ Config 4 6 0 14 -2112 -262144 0; #X obj 634 329 routeOSC /play /edit; #X obj 592 387 routeOSC /clock; #X obj 346 482 print /clock; #X obj 775 383 routeOSC /step/led; #X obj 777 428 print /tsseq/step/led; #X obj 653 595 expr if($f1 > 0 \, 60 \, 0); #X connect 1 0 3 0; #X connect 3 0 4 0; #X connect 5 0 4 0; #X connect 6 0 5 0; #X connect 7 0 6 1; #X connect 7 0 15 0; #X connect 8 0 4 0; #X connect 9 0 6 0; #X connect 9 1 7 0; #X connect 9 2 8 0; #X connect 11 0 10 0; #X connect 12 0 13 0; #X connect 12 1 6 0; #X connect 12 2 8 0; #X connect 13 0 11 0; #X connect 14 0 32 0; #X connect 15 0 14 0; #X connect 16 0 17 0; #X connect 17 0 21 0; #X connect 17 1 49 0; #X connect 17 2 19 0; #X connect 19 0 20 0; #X connect 20 0 28 0; #X connect 21 0 22 0; #X connect 22 0 18 0; #X connect 23 0 21 0; #X connect 24 0 8 0; #X connect 26 0 12 0; #X connect 27 0 9 0; #X connect 30 0 44 0; #X connect 31 0 19 0; #X connect 33 0 34 0; #X connect 34 0 35 0; #X connect 35 0 59 0; #X connect 35 0 60 0; #X connect 35 0 62 0; #X connect 36 0 64 0; #X connect 42 0 33 0; #X connect 43 0 42 0; #X connect 43 0 52 0; #X connect 44 0 6 0; #X connect 44 1 43 0; #X connect 44 2 8 0; #X connect 45 0 42 0; #X connect 46 0 48 0; #X connect 47 0 49 0; #X connect 49 0 46 0; #X connect 50 0 17 0; #X connect 51 0 53 0; #X connect 52 0 51 0; #X connect 55 0 54 0; #X connect 56 0 55 0; #X connect 59 0 36 0; #X connect 59 1 40 0; #X connect 60 0 41 0; #X connect 64 0 37 0; #X coords 0 -1 1 1 307 84 2 326 25; #X restore 6 39 pd send_OSC; #N canvas 132 90 1196 806 MIDI_crap 0; #X obj 32 -213 notein; #X obj 61 85 expr $f1 % 16 < 8; #X obj 28 102 spigot; #X obj 28 68 t f f, f 6; #X obj 207 -167 spigot; #X obj 207 -204 t f f; #X obj 234 -187 expr $f1 % 16 > 7; #X obj 208 -144 expr $f1 / 16 - 0.5; #X obj 407 -193 ctlin; #X obj 407 -168 swap; #X obj 406 -68 pack f f; #X obj 610 345 spigot; #X obj 319 461 spigot; #X text 71 101 Launchpad Pad Note -> 0-63; #X text 252 -167 RHS Buttons; #X text 404 -215 Control Messages (Top Buttons); #X text 449 -197 Top buttons 104-111; #X text 671 -212 104: learn ^ btn; #X text 670 -192 105: view down btn; #X text 671 -172 106: page < btn; #X text 674 -154 107: page > btn; #X text 674 -136 108: inst session btn; #X text 675 -114 109: fx user 1 btn; #X text 677 -76 111: mixer mixer btn; #X text 674 -95 110: user user 2 btn; #X obj 406 -44 route 104 105 106 107 108 109 110 111; #X text 651 383 Send Step; #X text 560 43 Mixer btn (111); #X obj 499 41 expr $f1; #X text 497 23 user (user 2) btn (110); #X obj 318 363 spigot; #X obj 437 26 expr $f1; #X text 435 8 fx (user 1) btn (109); #X obj -13 419 spigot; #X text 38 421 comment; #X text 363 362 comment; #X text 367 464 comment; #X obj 38 402 expr if($f1 > 0 \, 1 \, 0); #X text 921 177 Page > (107); #X obj 373 346 expr if($f1 > 0 \, 1 \, 0); #X obj 370 444 expr if($f1 > 0 \, 1 \, 0); #X obj 922 228 expr if($f1>0 \, 1 \, 0); #X obj 562 61 expr $f1; #X obj 923 195 expr $f1; #X obj 8 288 spigot; #X obj 66 268 expr if($f1 > 0 \, 1 \, 0); #X obj 375 7 expr $f1; #X text 373 -10 inst session btn (108); #X text 11 247 PAD: Jump Step (PLAYING step) (Hold inst session 108) , f 55; #X text -12 358 PAD: Select PLAY Length (Hold Fx User 1 109); #X text 320 326 PAD: Select PLAY Pattern (Hold User 2 110); #X text 317 423 PAD: Select *EDIT* Pattern (Hold Mixer 111); #X text 651 396 Send step if ctrl btns not pressed; #X obj 670 317 expr if($f1 > 0 \, 0 \, 1); #X obj 1014 256 expr if($f1>0 \, 1 \, 0); #X obj 915 302 expr ($f1+$f2)==2; #X obj 916 327 spigot; #X text 834 280 Toggle Performance Mode: user user 2 btn + Page > btn ; #X obj 32 -189 stripnote; #X obj 679 69 prepend sendtyped /tsseq/play/state/tog i; #X obj 914 348 prepend sendtyped /tsseq/mode/tog i; #X obj 610 365 prepend sendtyped /tsseq/edit/step/tog i; #X obj 477 -144 stripnote; #X obj 477 -107 pack f f; #X obj 478 -80 route 104 105 106 107; #X text 699 46 Play/Pause: Page > btn; #X obj 649 -19 s OSC; #X obj 610 389 s OSC; #X obj 8 330 s OSC; #X obj -15 465 s OSC; #X obj 914 369 s OSC; #X obj 679 91 s OSC; #X obj 682 284 loadbang; #X obj 318 397 s OSC; #X obj 318 509 s OSC; #X obj 615 245 s OSC; #X obj 28 203 s press; #X obj 610 319 r press; #X obj 316 441 r press; #X obj 318 343 r press; #X obj -13 377 r press; #X obj 8 267 r press; #X text 614 132 Right Side Buttons: Select *EDIT* Channel 1-8 (Hold Mixer button for 9-16), f 47; #X obj 149 58 noteout; #X obj 223 -98 s sidebtns; #X obj 615 164 r sidebtns; #X obj 198 -71 uzi 8; #X obj 198 -33 cup; #X msg 212 -52 0; #X obj 115 -43 f; #X obj 170 -97 t b b; #X obj 202 14 expr ($f1 + 1) * 16 - 8; #X obj 136 -69 delay 20; #X obj 202 36 makenote 12 1; #X obj 629 205 s edit_ch; #X obj 125 -18 r edit_ch; #X obj 77 38 pack f f; #X obj 730 -3 cnv 15 305 19 empty empty MIDI\ I/O\ Patch 4 6 0 14 -2112 -262144 0; #X obj 28 119 expr (int($f1/16)*8 + $f1 % 16); #X obj 680 442 print; #X obj 45 164 + 1; #X obj 615 228 prepend sendtyped /tsseq/edit/ch i; #X obj 615 181 expr if($f2 > 0 \, $f1 + 8 \, $f1) + 1; #X msg 648 -41 send /tsseq/play/reset, f 27; #X obj 8 309 prepend sendtyped /tsseq/play/step i; #X obj -13 444 prepend sendtyped /tsseq/play/len i; #X obj -13 399 f; #X obj 318 380 prepend sendtyped /tsseq/play/pat i; #X obj 319 486 prepend sendtyped /tsseq/edit/pat i; #X obj 45 12 expr if($f1 > 7 \, 15 \, 13); #X obj 847 -28 s OSC; #X msg 846 -50 send /tsseq/edit/step/rnd, f 27; #X connect 0 0 58 0; #X connect 0 1 58 1; #X connect 1 0 2 1; #X connect 2 0 98 0; #X connect 3 0 2 0; #X connect 3 1 1 0; #X connect 4 0 7 0; #X connect 5 0 4 0; #X connect 5 1 6 0; #X connect 6 0 4 1; #X connect 7 0 84 0; #X connect 7 0 90 0; #X connect 8 0 9 0; #X connect 8 1 9 1; #X connect 9 0 10 0; #X connect 9 0 62 0; #X connect 9 1 10 1; #X connect 9 1 62 1; #X connect 10 0 25 0; #X connect 11 0 61 0; #X connect 12 0 108 0; #X connect 25 3 43 0; #X connect 25 4 46 0; #X connect 25 5 31 0; #X connect 25 6 28 0; #X connect 25 7 42 0; #X connect 28 0 39 0; #X connect 28 0 53 0; #X connect 28 0 54 0; #X connect 30 0 107 0; #X connect 31 0 37 0; #X connect 31 0 53 0; #X connect 33 0 105 0; #X connect 37 0 33 1; #X connect 39 0 30 1; #X connect 40 0 12 1; #X connect 41 0 55 0; #X connect 42 0 40 0; #X connect 42 0 53 0; #X connect 42 0 102 1; #X connect 43 0 41 0; #X connect 44 0 104 0; #X connect 45 0 44 1; #X connect 46 0 45 0; #X connect 46 0 53 0; #X connect 53 0 11 1; #X connect 54 0 55 1; #X connect 55 0 56 1; #X connect 55 0 56 0; #X connect 56 0 60 0; #X connect 58 0 3 0; #X connect 58 0 5 0; #X connect 58 0 89 1; #X connect 59 0 71 0; #X connect 60 0 70 0; #X connect 61 0 67 0; #X connect 61 0 99 0; #X connect 62 0 63 0; #X connect 62 1 63 1; #X connect 63 0 64 0; #X connect 64 0 111 0; #X connect 64 2 103 0; #X connect 64 3 59 0; #X connect 72 0 53 0; #X connect 77 0 11 0; #X connect 78 0 12 0; #X connect 79 0 30 0; #X connect 80 0 106 0; #X connect 81 0 44 0; #X connect 85 0 102 0; #X connect 86 0 87 0; #X connect 86 1 88 0; #X connect 87 0 91 0; #X connect 88 0 87 0; #X connect 89 0 96 0; #X connect 90 0 92 0; #X connect 90 1 86 0; #X connect 91 0 93 0; #X connect 92 0 89 0; #X connect 93 0 83 0; #X connect 93 1 83 1; #X connect 95 0 109 0; #X connect 96 0 83 0; #X connect 98 0 100 0; #X connect 100 0 76 0; #X connect 101 0 75 0; #X connect 102 0 94 0; #X connect 102 0 101 0; #X connect 103 0 66 0; #X connect 104 0 68 0; #X connect 105 0 69 0; #X connect 106 0 33 0; #X connect 107 0 73 0; #X connect 108 0 74 0; #X connect 109 0 96 1; #X connect 111 0 110 0; #X coords 0 -1 1 1 307 21 2 729 -4; #X restore 6 125 pd MIDI_crap; #X text 17 4 Be sure to select your Launchpad as the first MIDI input and output device in PD preferences, f 49; #N canvas 174 528 450 417 play_color 0; #X obj 80 330 s color_play; #X msg 81 308 60; #X text 73 350 Color = (16 x Green) + Red + 12; #X obj 81 39 vsl 15 128 0 3 0 1 empty empty empty 0 -9 0 10 -262144 -1 -1 12700 1; #X text 72 173 green; #X obj 121 39 vsl 15 128 0 3 0 1 empty empty empty 0 -9 0 10 -262144 -1 -1 0 1; #X text 118 173 red; #X obj 81 229 expr (16 * int($f1)) + int($f2) + 12, f 37; #X obj 81 204 f; #X obj 178 167 t b f; #X obj 81 252 prepend set; #X obj 28 269 t b; #X obj 20 294 delay 1; #X connect 1 0 0 0; #X connect 3 0 8 0; #X connect 5 0 9 0; #X connect 7 0 10 0; #X connect 8 0 7 0; #X connect 9 0 8 0; #X connect 9 1 7 1; #X connect 10 0 1 0; #X connect 10 0 11 0; #X connect 11 0 12 0; #X connect 12 0 1 0; #X restore 8 159 pd play_color; #N canvas 673 512 450 463 step_color 0; #X msg 81 308 15; #X text 73 350 Color = (16 x Green) + Red + 12; #X obj 81 39 vsl 15 128 0 3 0 1 empty empty empty 0 -9 0 10 -262144 -1 -1 0 1; #X text 72 173 green; #X obj 121 39 vsl 15 128 0 3 0 1 empty empty empty 0 -9 0 10 -262144 -1 -1 12700 1; #X text 118 173 red; #X obj 81 229 expr (16 * int($f1)) + int($f2) + 12, f 37; #X obj 81 204 f; #X obj 178 167 t b f; #X obj 81 252 prepend set; #X obj 28 269 t b; #X obj 20 294 delay 1; #X obj 80 330 s color_step; #X connect 0 0 12 0; #X connect 2 0 7 0; #X connect 4 0 8 0; #X connect 6 0 9 0; #X connect 7 0 6 0; #X connect 8 0 7 0; #X connect 8 1 6 1; #X connect 9 0 0 0; #X connect 9 0 10 0; #X connect 10 0 11 0; #X connect 11 0 0 0; #X restore 98 158 pd step_color;