#N canvas 2 95 956 984 10; #X declare -path bf-util; #X obj 1105 28 cnv 15 100 60 empty empty empty 20 12 0 14 -233017 -66577 0; #X text 535 275 meter; #X obj 504 220 tgl 30 0 \$0-onoff-s \$0-onoff-r empty 17 7 0 10 -262144 -1 -1 0 1; #X obj 663 262 bng 15 250 50 0 \$0-nudge--s \$0-nudge--r -- 2 -5 0 10 -261682 -1 -1; #X text 578 276 sub1; #X text 622 276 sub2; #X text 677 276 nudge; #X obj 542 240 hsl 128 10 0 300 0 0 \$0-ask-slider-s \$0-ask-slider-r empty -2 -8 0 10 -228856 -1 -1 7056 1; #X obj 682 262 bng 15 250 50 0 \$0-nudge-s \$0-nudge-r - 5 -5 0 10 -261682 -1 -1; #X obj 701 262 bng 15 250 50 0 \$0-nudge+s \$0-nudge+r + 5 -5 0 10 -261682 -1 -1; #X obj 720 262 bng 15 250 50 0 \$0-nudge++s \$0-nudge++r ++ 2 -5 0 10 -261682 -1 -1; #X obj 701 238 tgl 15 0 \$0-grant-s \$0-grant-r empty 17 7 0 10 -261234 -1 -1 0 1; #X obj 682 238 bng 15 250 50 0 \$0-1xgrant-s \$0-1xgrant-r empty 17 7 0 10 -204786 -1 -1; #X obj 286 673 phasor~; #X obj 286 650 line~; #X obj 286 696 +~; #X obj 286 719 wrap~; #X msg 418 505 0; #X text 447 505 reset; #X floatatom 579 259 5 1 1000 0 - #0-sub1-r #0-sub1-s; #X obj 286 601 expr $f1/60; #X obj 354 365 tgl 20 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1; #X text 377 366 on/off; #X msg 386 505 0; #X obj 286 568 float; #X msg 286 626 \$1 1; #X obj 161 820 wrap~; #X obj 161 847 threshold~ 0.5 0 1 0.1 1; #X obj 364 849 threshold~ 0.5 0 1 0.1 1; #X obj 364 799 +~ 0.5; #X obj 364 823 wrap~; #X obj 161 794 +~ 0.5; #X obj 386 454 t b b; #X text 391 649 reset phasor phase; #X obj 87 448 spigot; #X obj 542 219 hsl 128 15 0 300 0 0 \$0-bpmslider-s \$0-bpmslider-r empty -2 -8 0 10 -262144 -1 -1 7056 0; #X floatatom 682 218 5 0 1000 0 - #0-bpm-r #0-bpm-s; #X msg 1034 602 set \$1; #X obj 87 424 f; #N canvas 1266 776 896 554 nudgephase 0; #X obj 276 259 f 0.1; #X obj 248 102 t b b; #X obj 191 101 t b b; #X obj 426 98 t b b; #X obj 348 98 t b b; #X obj 332 259 + 0; #X msg 224 134 0.1; #X msg 458 129 -0.1; #X obj 187 61 inlet; #X obj 243 63 inlet; #X obj 348 65 inlet; #X obj 432 62 inlet; #X obj 275 299 outlet; #X text 430 39 nudge--; #X text 346 40 nudge-; #X text 239 41 nudge+; #X text 176 39 nudge++; #X obj 61 61 inlet; #X text 60 37 phase offset; #X msg 379 131 -0.02; #X msg 280 135 0.02; #X connect 0 0 5 0; #X connect 0 0 12 0; #X connect 1 0 0 0; #X connect 1 1 20 0; #X connect 2 0 0 0; #X connect 2 1 6 0; #X connect 3 0 0 0; #X connect 3 1 7 0; #X connect 4 0 0 0; #X connect 4 1 19 0; #X connect 5 0 0 1; #X connect 6 0 5 1; #X connect 7 0 5 1; #X connect 8 0 2 0; #X connect 9 0 1 0; #X connect 10 0 4 0; #X connect 11 0 3 0; #X connect 17 0 0 0; #X connect 19 0 5 1; #X connect 20 0 5 1; #X restore 418 601 pd nudgephase; #X obj 364 924 outlet; #X obj 161 923 outlet; #X text 217 924 beat; #X obj 581 850 threshold~ 0.5 0 1 0.1 1; #X obj 581 800 +~ 0.5; #X obj 581 824 wrap~; #X obj 581 924 outlet; #X obj 364 775 *~ 2; #X floatatom 621 259 5 1 1000 0 - #0-sub2-r #0-sub2-s; #X obj 22 756 f 0; #X obj 56 793 + 1; #X obj 22 843 sel 0; #X obj 581 776 *~ 3; #X obj 354 391 sel 1; #X msg 52 756 0; #X floatatom 537 259 5 1 1000 0 - #0-meter-r #0-meter-s; #X obj 22 819 mod 4; #X obj 22 925 outlet; #X text 73 925 downbeat; #X text 415 926 subdiv1; #X text 637 925 subdiv2; #X obj 439 49 inlet; #X obj 321 48 inlet; #X text 370 50 On/Off; #X obj 550 49 inlet; #X text 595 51 Meter; #X obj 667 49 inlet; #X text 712 51 Subdivision1; #X obj 822 50 inlet; #X text 867 52 Subdivision2; #X obj 810 922 outlet; #X obj 910 175 inlet; #X obj 913 344 loadbang; #X obj 1668 99 symbol \$1; #X text 1745 98 instrument name; #X obj 1667 147 symbol \$2; #X text 1749 146 clock name; #X symbolatom 1667 170 10 0 0 0 - - -; #X symbolatom 1668 122 10 0 0 0 - - -; #X obj 1637 66 loadbang; #X obj 86 224 spigot; #X obj 86 247 t b 0; #X msg 86 270 1; #X obj 86 200 spigot; #X obj 913 375 int \$3; #X obj 1016 375 int \$4; #X obj 1104 379 int \$5; #X obj 312 455 t b b b b; #X text 863 921 controls out; #X obj 763 205 vradio 15 1 0 7 \$0-tempomult-s \$0-tempomult-r empty 0 -8 0 10 -262144 -1 -1 3; #X text 779 218 x3; #X text 779 234 x2; #X text 779 265 /2; #X text 779 280 /3; #X text 779 203 x4; #X text 779 294 /4; #X text 786 249 1; #X text 82 358 tempo in BPM; #N canvas 0 23 762 502 tempoMult 0; #X msg 176 227 4; #X msg 208 226 3; #X msg 242 225 2; #X msg 274 225 1; #X msg 306 225 0.5; #X obj 429 176 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X obj 359 198 expr 1.0/3.0; #X obj 341 225 f; #X obj 359 173 loadbang; #X msg 371 225 0.25; #X obj 188 322 *; #X obj 198 291 t b f; #X obj 176 193 sel 0 1 2 3 4 5 6; #X obj 273 107 inlet; #X obj 60 65 inlet; #X text 323 108 the index from the tempo-multiply radio-button; #X text 112 65 the nominal tempo(in BPM); #X obj 188 345 outlet; #X connect 0 0 11 0; #X connect 1 0 11 0; #X connect 2 0 11 0; #X connect 3 0 11 0; #X connect 4 0 11 0; #X connect 5 0 6 0; #X connect 6 0 7 1; #X connect 7 0 11 0; #X connect 8 0 6 0; #X connect 9 0 11 0; #X connect 10 0 17 0; #X connect 11 0 10 0; #X connect 11 1 10 1; #X connect 12 0 0 0; #X connect 12 1 1 0; #X connect 12 2 2 0; #X connect 12 3 3 0; #X connect 12 4 4 0; #X connect 12 5 7 0; #X connect 12 6 9 0; #X connect 13 0 12 0; #X connect 14 0 10 0; #X restore 87 402 pd tempoMult; #X obj 913 430 loadbang; #X msg 913 501 3; #X obj 89 755 r \$0-meter-s; #X obj 913 398 s \$0-meter-r; #X obj 1016 399 s \$0-sub1-r; #X obj 389 751 r \$0-sub1-s; #X obj 606 753 r \$0-sub2-s; #X obj 1104 401 s \$0-sub2-r; #X obj 575 544 r \$0-nudge--s; #X obj 575 521 r \$0-nudge-s; #X obj 575 495 r \$0-nudge+s; #X obj 575 468 r \$0-nudge++s; #X obj 911 602 s \$0-bpm-r; #X obj 87 378 r \$0-bpm-s; #X obj 911 578 r \$0-bpmslider-s; #X obj 913 527 s \$0-tempomult-r; #X obj 320 71 s \$0-onoff-r; #X obj 354 340 r \$0-onoff-s; #X obj 168 378 r \$0-tempomult-s; #X text 981 344 initialize meter \, sub1 \, sub2; #X obj 439 72 s \$0-bpm-r; #X obj 570 296 bng 15 250 50 0 \$0-beat-bang-s \$0-beat-bang-r beat 17 7 1 10 -262144 -1 -1; #X obj 642 296 bng 15 250 50 0 \$0-sub1-bang-s \$0-sub1-bang-r sub1 17 7 1 10 -262144 -1 -1; #X obj 715 296 bng 15 250 50 0 \$0-sub2-bang-s \$0-sub2-bang-r sub2 17 7 1 10 -262144 -1 -1; #X obj 550 73 s \$0-meter-r; #X obj 667 74 s \$0-sub1-r; #X obj 822 75 s \$0-sub2-r; #X text 501 275 sync; #X obj 505 260 tgl 15 0 \$0-sync-s \$0-sync-r empty 17 7 0 10 -262144 -1 -1 0 1; #X obj 122 269 s \$0-sync-r; #X obj 139 200 r \$0-sync-s; #X text 717 236 <grant; #X text 722 218 bpm; #X obj 1034 578 r \$0-bpm-s; #X obj 1034 626 s \$0-bpmslider-r; #X text 914 553 BPM slider & number box interactions; #X text 482 51 BPM; #X obj 581 873 s \$0-sub2-bang-r; #X obj 581 899 r \$0-sub2-bang-s; #X obj 364 873 s \$0-sub1-bang-r; #X obj 364 899 r \$0-sub1-bang-s; #X obj 161 871 s \$0-beat-bang-r; #X obj 161 897 r \$0-beat-bang-s; #X obj 155 678 s \$0-down-bang-r; #X obj 21 903 r \$0-down-bang-s; #X obj 22 727 r \$0-beat-bang-s; #X text 904 130 A messaging system for receiving commands; #X text 910 311 Initializations from arguments; #X text 904 154 Controls inlet; #X msg 332 649 0.99999; #X text 117 425 actual beat tempo; #N canvas 237 598 1681 481 controlMessageHandler 0; #X obj 457 99 inlet; #X text 851 206 nudge; #X obj 852 226 route -- - + ++; #X obj 853 336 s \$0-nudge++r; #X obj 852 254 s \$0-nudge--r; #X obj 853 283 s \$0-nudge-r; #X obj 853 308 s \$0-nudge+r; #X obj 73 221 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1; #X obj 73 241 s \$0-onoff-r; #X text 77 192 on/off; #X floatatom 198 220 5 0 0 0 - - -; #X obj 198 243 s \$0-bpmslider-r; #X text 196 197 bpm; #X floatatom 320 221 5 0 0 0 - - -; #X text 318 198 meter; #X obj 320 244 s \$0-meter-r; #X floatatom 417 222 5 0 0 0 - - -; #X obj 417 245 s \$0-sub1-r; #X text 415 199 sub1; #X floatatom 506 223 5 0 0 0 - - -; #X text 504 200 sub2; #X obj 506 246 s \$0-sub2-r; #X text 607 200 tempoMult; #X obj 604 221 route /4 /3 /2 x1 x2 x3 x4; #X obj 604 287 s \$0-tempomult-r; #X msg 670 247 4; #X msg 704 247 3; #X msg 604 247 6; #X msg 637 247 5; #X msg 773 248 1; #X msg 808 249 0; #X msg 738 247 2; #X obj 980 228 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1; #X obj 980 248 s \$0-sync-r; #X text 978 206 sync; #X obj 1080 228 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1; #X text 1078 206 grant bpm; #X obj 1080 248 s \$0-grant-r; #X text 1182 208 grant bpm; #X obj 1184 250 s \$0-1xgrant-r; #X obj 1185 228 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X obj 457 156 route onOff bpm meter sub1 sub2 tempoMult nudge sync grant grant1x syncDownbeat, f 90; #X obj 1324 251 s \$0-syncDownbeat; #X text 1326 231 sync now; #X text 451 49 Route incoming control messages; #X connect 0 0 41 0; #X connect 2 0 4 0; #X connect 2 1 5 0; #X connect 2 2 6 0; #X connect 2 3 3 0; #X connect 7 0 8 0; #X connect 10 0 11 0; #X connect 13 0 15 0; #X connect 16 0 17 0; #X connect 19 0 21 0; #X connect 23 0 27 0; #X connect 23 1 28 0; #X connect 23 2 25 0; #X connect 23 3 26 0; #X connect 23 4 31 0; #X connect 23 5 29 0; #X connect 23 6 30 0; #X connect 25 0 24 0; #X connect 26 0 24 0; #X connect 27 0 24 0; #X connect 28 0 24 0; #X connect 29 0 24 0; #X connect 30 0 24 0; #X connect 31 0 24 0; #X connect 32 0 33 0; #X connect 35 0 37 0; #X connect 40 0 39 0; #X connect 41 0 7 0; #X connect 41 1 10 0; #X connect 41 2 13 0; #X connect 41 3 16 0; #X connect 41 4 19 0; #X connect 41 5 23 0; #X connect 41 6 2 0; #X connect 41 7 32 0; #X connect 41 8 35 0; #X connect 41 9 40 0; #X connect 41 10 42 0; #X restore 910 207 pd controlMessageHandler; #X text 909 241 ToDo: add downbeat sync incoming message; #X text 503 173 The GUI; #X text 1637 42 not used; #N canvas 336 399 1582 680 controlMessagesOut 0; #X obj 415 567 outlet; #X msg 628 165 nudge +; #X msg 627 109 nudge ++; #X msg 628 216 nudge -; #X msg 628 274 nudge --; #X msg 148 109 bpm \$1; #X text 468 566 controls out; #X obj 628 250 r \$0-nudge--s; #X obj 628 192 r \$0-nudge-s; #X obj 628 142 r \$0-nudge+s; #X obj 627 84 r \$0-nudge++s; #X obj 148 84 r \$0-bpm-s; #X msg 51 109 onOff \$1; #X obj 51 84 r \$0-onoff-s; #X msg 230 109 meter \$1; #X obj 230 84 r \$0-meter-s; #X msg 322 109 sub1 \$1; #X obj 322 84 r \$0-sub1-s; #X obj 408 84 r \$0-sub2-s; #X msg 408 109 sub2 \$1; #X obj 497 84 r \$0-tempomult-s; #N canvas 217 536 527 485 routeTempoMult 0; #X obj 177 45 inlet; #X obj 168 339 outlet; #X msg 265 196 tempoMult x1; #X msg 278 222 tempoMult /2; #X msg 255 167 tempoMult x2; #X msg 238 140 tempoMult x3; #X msg 224 112 tempoMult x4; #X msg 287 250 tempoMult /3; #X msg 282 280 tempoMult /4; #X obj 222 82 sel 0 1 2 3 4 5 6; #X connect 0 0 9 0; #X connect 2 0 1 0; #X connect 3 0 1 0; #X connect 4 0 1 0; #X connect 5 0 1 0; #X connect 6 0 1 0; #X connect 7 0 1 0; #X connect 8 0 1 0; #X connect 9 0 6 0; #X connect 9 1 5 0; #X connect 9 2 4 0; #X connect 9 3 2 0; #X connect 9 4 3 0; #X connect 9 5 7 0; #X connect 9 6 8 0; #X restore 497 113 pd routeTempoMult; #X text 53 60 on/off; #X text 144 55 bpm; #X text 624 61 nudge phase; #X text 229 58 meter; #X text 322 60 subdiv1; #X text 407 60 subdiv2; #X text 492 59 tempo mult; #X text 767 58 sync on downbeat; #X text 910 62 grantBpm; #X text 1032 68 1xGrantBpm; #X obj 769 104 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1; #X msg 769 124 sync \$1; #X obj 917 106 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1; #X msg 917 126 grant \$1; #X msg 1041 130 grant1x; #X obj 1041 111 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X obj 769 79 r \$0-sync-s; #X obj 917 82 r \$0-grant-s; #X obj 1040 89 r \$0-1xgrant-s; #X text 120 29 A system for sending commands out; #X obj 1163 91 r \$0-down-bang-s; #X obj 1163 116 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X msg 1163 136 syncDownbeat; #X text 496 141 Don't send; #X text 400 141 Don't send; #X text 310 140 Don't send; #X text 217 140 Don't send; #X text 755 146 Don't send; #X text 48 136 Don't send; #X text 904 150 Don't send; #X text 1033 153 Don't send; #X text 1157 165 Send every downbeat for syncing any follower clocks ; #X connect 5 0 0 0; #X connect 7 0 4 0; #X connect 8 0 3 0; #X connect 9 0 1 0; #X connect 10 0 2 0; #X connect 11 0 5 0; #X connect 13 0 12 0; #X connect 15 0 14 0; #X connect 17 0 16 0; #X connect 18 0 19 0; #X connect 20 0 21 0; #X connect 32 0 33 0; #X connect 34 0 35 0; #X connect 37 0 36 0; #X connect 38 0 32 0; #X connect 39 0 34 0; #X connect 40 0 37 0; #X connect 42 0 43 0; #X connect 43 0 44 0; #X connect 44 0 0 0; #X restore 810 883 pd controlMessagesOut; #X text 805 855 A messaging system for sending commands out; #X obj 86 170 r \$0-syncDownbeat; #N canvas 2 95 956 984 communicateWithCollabWin 1; #X obj 98 140 r bf-fromCollabWin-\$1-\$2-onoff; #X obj 98 163 s \$0-onoff-r; #X obj 97 116 s bf-toCollabWin-\$1-\$2-onoff; #X obj 97 94 r \$0-onoff-s; #X obj 103 233 r \$0-bpm-s; #X obj 103 301 s \$0-bpm-r; #X obj 103 255 s bf-toCollabWin-\$1-\$2-bpm; #X obj 103 278 r bf-fromCollabWin-\$1-\$2-bpm; #X text 97 72 On/Off; #X text 103 213 Tempo/BPM; #X text 448 19 Send & receive messages from the collab window; #X text 104 357 TempoMult; #X obj 104 535 s \$0-tempomult-r; #X obj 106 386 r \$0-tempomult-s; #X text 358 445 <-to collab window; #X text 354 482 <-from collab window; #N canvas 0 23 712 422 routeTempoMultMsgToIndx 0; #X obj 135 110 route /4 /3 /2 x1 x2 x3 x4; #X msg 201 136 4; #X msg 235 136 3; #X msg 135 136 6; #X msg 168 136 5; #X msg 269 136 2; #X obj 135 176 outlet; #X obj 135 58 inlet; #X msg 305 137 1; #X msg 343 137 0; #X text 132 39 map tempo multiplier message to radio-button index; #X obj 135 82 route tempoMult; #X connect 0 0 3 0; #X connect 0 1 4 0; #X connect 0 2 1 0; #X connect 0 3 2 0; #X connect 0 4 5 0; #X connect 0 5 8 0; #X connect 0 6 9 0; #X connect 1 0 6 0; #X connect 2 0 6 0; #X connect 3 0 6 0; #X connect 4 0 6 0; #X connect 5 0 6 0; #X connect 7 0 11 0; #X connect 8 0 6 0; #X connect 9 0 6 0; #X connect 11 0 0 0; #X restore 104 509 pd routeTempoMultMsgToIndx; #N canvas 217 536 527 485 routeIndxToTempoMultMsg 0; #X obj 177 45 inlet; #X obj 168 339 outlet; #X msg 265 196 tempoMult x1; #X msg 278 222 tempoMult /2; #X msg 255 167 tempoMult x2; #X msg 238 140 tempoMult x3; #X msg 224 112 tempoMult x4; #X msg 287 250 tempoMult /3; #X msg 282 280 tempoMult /4; #X obj 222 82 sel 0 1 2 3 4 5 6; #X connect 0 0 9 0; #X connect 2 0 1 0; #X connect 3 0 1 0; #X connect 4 0 1 0; #X connect 5 0 1 0; #X connect 6 0 1 0; #X connect 7 0 1 0; #X connect 8 0 1 0; #X connect 9 0 6 0; #X connect 9 1 5 0; #X connect 9 2 4 0; #X connect 9 3 2 0; #X connect 9 4 3 0; #X connect 9 5 7 0; #X connect 9 6 8 0; #X restore 106 415 pd routeIndxToTempoMultMsg; #X text 320 90 <-from bf-clock UI; #X text 323 141 <-from collabWindow; #X text 321 165 <- to the bf-clock UI; #X text 319 115 <-to collabWindow & bf-own-clock; #X text 230 387 <-from the bf-clock UI; #X obj 106 442 s bf-toCollabWin-\$1-\$2-tempomult; #X obj 104 481 r bf-fromCollabWin-\$1-\$2-tempomult; #X text 231 535 <-to the bf-clock UI; #X obj 671 114 r \$0-meter-s; #X text 671 88 Meter; #X obj 671 140 s bf-toCollabWin-\$1-\$2-meter; #X obj 671 169 r bf-fromCollabWin-\$1-\$2-meter; #X obj 671 192 s \$0-meter-r; #X text 895 139 <- to bf-own-clock; #X text 896 171 <- from bf-own-clock; #X text 895 110 <- from bf-clock UI; #X text 896 197 <- to bf-clock UI; #X text 895 282 <- to bf-own-clock; #X text 896 314 <- from bf-own-clock; #X text 895 253 <- from bf-clock UI; #X text 896 340 <- to bf-clock UI; #X text 671 231 Subdivision 1; #X obj 671 257 r \$0-sub1-s; #X obj 671 283 s bf-toCollabWin-\$1-\$2-sub1; #X obj 671 312 r bf-fromCollabWin-\$1-\$2-sub1; #X obj 671 335 s \$0-sub1-r; #X text 895 420 <- to bf-own-clock; #X text 896 452 <- from bf-own-clock; #X text 895 391 <- from bf-clock UI; #X text 896 478 <- to bf-clock UI; #X text 671 369 Subdivision 2; #X obj 671 395 r \$0-sub2-s; #X obj 671 421 s bf-toCollabWin-\$1-\$2-sub2; #X obj 671 450 r bf-fromCollabWin-\$1-\$2-sub2; #X obj 671 473 s \$0-sub2-r; #X text 1051 612 <- to bf-own-clock; #X text 1055 644 <- from bf-own-clock; #X text 1058 545 <- from bf-clock UI; #X text 1074 713 <- to bf-clock UI; #X msg 766 568 nudge +; #X msg 665 570 nudge ++; #X msg 860 569 nudge -; #X msg 953 569 nudge --; #X obj 953 545 r \$0-nudge--s; #X obj 860 545 r \$0-nudge-s; #X obj 766 545 r \$0-nudge+s; #X obj 665 545 r \$0-nudge++s; #X obj 664 603 s bf-toCollabWin-\$1-\$2-nudge; #X text 668 519 Nudge buttons; #X obj 664 686 route -- - + ++; #X obj 951 713 s \$0-nudge++r; #X obj 664 714 s \$0-nudge--r; #X obj 764 714 s \$0-nudge-r; #X obj 858 713 s \$0-nudge+r; #X obj 664 662 route nudge; #X obj 664 638 r bf-fromCollabWin-\$1-\$2-nudge; #X text 356 646 <-to collab window; #X text 360 680 <-from collab window; #X text 356 621 <-from the bf-clock UI; #X text 358 707 <-to the bf-clock UI; #X text 102 589 Grant; #X obj 104 618 r \$0-grant-s; #X obj 104 643 s bf-toCollabWin-\$1-\$2-grant; #X obj 105 680 r bf-fromCollabWin-\$1-\$2-grant; #X obj 105 706 s \$0-grant-r; #X text 359 804 <-to collab window; #X text 363 838 <-from collab window; #X text 359 779 <-from the bf-clock UI; #X text 361 865 <-to the bf-clock UI; #X text 105 747 1x grant; #X text 107 914 ToDo: Implement the logic of grant and 1x grant! Currently this code just sends messages between bf-clock and bf-own-clock; #X obj 107 776 r \$0-1xgrant-s; #X obj 108 864 s \$0-1xgrant-r; #X obj 107 801 s bf-toCollabWin-\$1-\$2-1xgrant; #X obj 108 838 r bf-fromCollabWin-\$1-\$2-1xgrant; #X text 663 774 The bangs (down \, beat \, sub1 \, sub2); #X obj 664 862 s bf-toCollabWin-\$1-\$2-bangs; #X obj 664 806 r \$0-down-bang-s; #X obj 788 806 r \$0-beat-bang-s; #X msg 664 830 downBang; #X msg 788 830 beatBang; #X obj 908 805 r \$0-sub1-bang-s; #X obj 1030 805 r \$0-sub2-bang-s; #X msg 908 829 sub1Bang; #X msg 1030 829 sub2Bang; #X obj 663 936 route downBang beatBang sub1Bang sub2Bang; #X obj 663 908 r bf-fromCollabWin-\$1-\$2-bangs; #X text 661 995 The bangs from bf-own-clock get sent directly to the bf-clock outputs. They do not trigger the bangs in the bf-clock UI \, because (I believe) this would make an infinite loop of bangs.; #X text 107 989 ToDo:; #X obj 663 968 s \$0-down-bang-r; #X obj 784 968 s \$0-beat-bang-r; #X obj 916 967 s \$0-sub1-bang-r; #X obj 1052 966 s \$0-sub2-bang-r; #X obj 208 71 r bf-toCollabWin-\$1-\$2-set; #X obj 208 95 route 0; #X obj 184 206 r bf-toCollabWin-\$1-\$2-set; #X obj 184 230 route 1; #X obj 414 257 r bf-toCollabWin-\$1-\$2-ask; #X obj 414 281 route 1; #X obj 415 305 s bf-toCollabWin-\$1-\$2-askslider; #X text 414 234 Ask; #X text 1289 85 Sync; #X obj 1291 110 r \$0-sync-s; #X obj 1291 132 s bf-toCollabWin-\$1-\$2-sync; #X obj 1292 156 r bf-fromCollabWin-\$1-\$2-sync; #X obj 1292 179 s \$0-sync-r; #X obj 771 84 r bf-toCollabWin-\$1-\$2-set; #X obj 771 108 route 4; #X obj 778 224 r bf-toCollabWin-\$1-\$2-set; #X obj 778 248 route 5; #X obj 775 368 r bf-toCollabWin-\$1-\$2-set; #X obj 775 392 route 6; #X obj 401 373 r bf-toCollabWin-\$1-\$2-set; #X obj 401 397 route 7; #X connect 0 0 1 0; #X connect 3 0 2 0; #X connect 4 0 6 0; #X connect 7 0 5 0; #X connect 13 0 17 0; #X connect 16 0 12 0; #X connect 17 0 23 0; #X connect 24 0 16 0; #X connect 26 0 28 0; #X connect 29 0 30 0; #X connect 40 0 41 0; #X connect 42 0 43 0; #X connect 49 0 50 0; #X connect 51 0 52 0; #X connect 57 0 65 0; #X connect 58 0 65 0; #X connect 59 0 65 0; #X connect 60 0 65 0; #X connect 61 0 60 0; #X connect 62 0 59 0; #X connect 63 0 57 0; #X connect 64 0 58 0; #X connect 67 0 69 0; #X connect 67 1 70 0; #X connect 67 2 71 0; #X connect 67 3 68 0; #X connect 72 0 67 0; #X connect 73 0 72 0; #X connect 79 0 80 0; #X connect 81 0 82 0; #X connect 89 0 91 0; #X connect 92 0 90 0; #X connect 95 0 97 0; #X connect 96 0 98 0; #X connect 97 0 94 0; #X connect 98 0 94 0; #X connect 99 0 101 0; #X connect 100 0 102 0; #X connect 101 0 94 0; #X connect 102 0 94 0; #X connect 103 0 107 0; #X connect 103 1 108 0; #X connect 103 2 109 0; #X connect 103 3 110 0; #X connect 104 0 103 0; #X connect 111 0 112 0; #X connect 112 0 2 0; #X connect 113 0 114 0; #X connect 114 0 6 0; #X connect 115 0 116 0; #X connect 116 0 117 0; #X connect 120 0 121 0; #X connect 122 0 123 0; #X connect 124 0 125 0; #X connect 125 0 28 0; #X connect 126 0 127 0; #X connect 127 0 41 0; #X connect 128 0 129 0; #X connect 129 0 50 0; #X connect 130 0 131 0; #X connect 131 0 17 0; #X restore 1313 161 pd communicateWithCollabWin; #X text 1308 133 Communication with CollabWin (bf-own-clock); #X text 983 431 Init tempoMult to 1; #X text 1314 218 Communication with boeuf; #N canvas 2 95 956 984 communicateWithBoeuf 0; #X obj 72 100 delay 0; #X obj 72 47 t b a b b; #X obj 85 73 random 1000; #X obj 72 29 r bf-declare; #X obj 173 33 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X obj 73 168 s bf-toBoeufDec; #X obj 198 69 delay 2000; #X obj 73 147 bf-util/bf-2osc \$1 clocks \$2 declare fsf; #X obj 112 864 r \$0-bpm-s; #X obj 518 230 route \$1; #X obj 518 272 route \$2, f 14; #X obj 518 295 route set ask watch_bus ask_bus grant grab; #X obj 518 209 r bf-fromBoeuf; #X msg 112 888 1 \$1; #X obj 17 863 r \$0-onoff-s; #X msg 17 887 0 \$1; #X obj 518 251 route clocks; #X obj 105 413 bf-util/bf-param-route \$1 clocks \$2 watch_bus; #X obj 76 386 r bf-watch_bus-\$1; #X obj 76 440 route; #X obj 79 611 t a b; #X obj 398 630 symbol \$1_watched; #X obj 985 862 route 0 1; #X obj 101 489 unpack f s; #X obj 108 563 *; #X msg 294 551 1; #X msg 188 543 120; #X msg 239 546 300; #X obj 190 520 select bang bool cont midi clck; #X msg 80 587 1 \$1; #X obj 985 837 r bf-toGui-\$1-\$2-set; #X obj 20 934 s bf-fromGui-\$1-\$2-set; #X obj 903 941 s \$0-onoff-r; #X obj 76 467 route 0 1 2; #X obj 400 528 s \$0-syncDownbeat; #X obj 400 498 t b; #X obj 208 863 r \$0-down-bang-s; #X msg 208 887 2 1; #X obj 627 467 route 1; #X obj 627 494 s \$0-ask-slider-r; #X obj 868 615 > 0; #X obj 817 640 spigot; #X obj 1614 644 s bf-toBoeufPar; #X obj 834 683 symbol \$1_asked; #X obj 802 660 t a b; #X obj 692 363 t a a; #X obj 881 568 r \$0-grant-s; #X obj 868 592 bf-util/bf-param-route \$1 clocks \$2 grant; #X obj 1315 623 bf-util/bf-param-route \$1 clocks \$2 ask_bus; #X msg 329 889 3 1; #X obj 329 865 r \$0-beat-bang-s; #X obj 449 864 r \$0-meter-s; #X msg 449 888 4 \$1; #X text 122 841 SEND VALUES TO BOEUF THROUGH THE SET MESSAGE; #X obj 542 863 r \$0-sub1-s; #X msg 542 887 5 \$1; #X msg 626 886 6 \$1; #X obj 626 862 r \$0-sub2-s; #X obj 711 861 r \$0-tempomult-s; #X msg 711 885 7 \$1; #X obj 72 126 list append 8 clck \$3; #X obj 1262 941 s bf-ask_bus-\$1; #X obj 1261 735 spigot; #X obj 1315 685 t f f; #X obj 1294 709 > 0; #X obj 1261 779 unpack f f; #X obj 1262 864 float 0; #X obj 1262 919 pack f f f s; #X obj 1371 784 t f b; #X obj 417 435 s bf-toBoeufPar; #X obj 398 702 s bf-toBoeufPar; #X obj 1152 623 s bf-toBoeufPar; #X obj 81 194 loadbang; #X obj 30 280 spigot 1; #X obj 81 217 symbol \$4; #X obj 81 240 select bang; #X msg 81 263 0; #X obj 30 302 s bf-request-\$1-\$2-set; #X obj 190 256 s bf-request-\$1-\$2-grant; #X obj 222 274 s bf-request-\$1-\$2-watch_bus; #X obj 242 292 s bf-request-\$1-\$2-ask_bus; #X obj 240 221 t b b b b; #X obj 1360 865 symbol clck; #X obj 1371 761 loadbang; #X obj 1328 849 / 300; #X obj 1430 772 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X obj 1261 815 select 1; #X obj 1262 841 t b b; #X msg 1293 892 1; #X obj 1400 109 bf-util/bf-param-route \$1 parameters \$2 grab; #X obj 1400 132 t b; #X obj 1400 156 s bf-fromQueryAll-\$1-\$2-ask; #X obj 1398 78 s bf-fromGui-\$1-\$2-grab; #X obj 1398 54 r \$0-1xgrant-s; #X obj 608 578 r bf-toQueryAll-\$1-\$2-ask; #X obj 1131 100 loadbang; #X obj 1101 173 unpack f f; #X obj 1101 214 swap; #X obj 1166 217 array define \$1-\$1/\$2-values; #X obj 1101 236 tabwrite \$1-\$1/\$2-values; #X obj 1131 146 value \$1-\$1/\$2-nbvalues; #X msg 1013 235 set \$1 \$2; #X obj 1159 198 / 1; #X obj 1013 174 unpack f f; #X obj 1177 179 r \$1-\$2-maxval; #X obj 1013 214 pack f f; #X obj 1011 149 r \$1-\$2-maxval; #X obj 1013 256 s to-\$1-\$1/\$2-connections; #X obj 1055 192 / 1; #X obj 1399 205 delay 200; #X obj 1399 184 r \$1-refreshOthersNames; #X obj 1399 228 s bf-request-\$1-\$2-set; #X text 1042 82 STORE ALL CLOCK VALUES; #X obj 1131 123 float 8; #X msg 1090 872 set \$1; #X obj 79 653 bf-util/bf-param-pair-route \$1 clocks \$2 set 8; #X obj 786 486 bf-util/bf-param-pair-route \$1 clocks \$2 ask 8; #X obj 627 443 r bf-toGui-\$1-\$2-ask; #X obj 904 971 s \$0-bpmslider-r; #X obj 1048 942 s \$0-bpm-r; #X obj 1014 909 t a a; #X text 906 997 LD edit: fixed problem following tempo from watch. (Hopefully didn't create other bugs.); #X connect 0 0 60 0; #X connect 1 0 0 0; #X connect 1 2 2 0; #X connect 1 3 6 0; #X connect 2 0 0 1; #X connect 3 0 1 0; #X connect 4 0 1 0; #X connect 6 0 81 0; #X connect 7 0 5 0; #X connect 8 0 13 0; #X connect 9 0 16 0; #X connect 10 0 11 0; #X connect 11 1 45 0; #X connect 11 2 17 1; #X connect 11 3 48 1; #X connect 11 4 47 1; #X connect 12 0 9 0; #X connect 13 0 31 0; #X connect 14 0 15 0; #X connect 15 0 31 0; #X connect 16 0 10 0; #X connect 17 0 19 1; #X connect 17 1 69 0; #X connect 18 0 19 0; #X connect 19 0 33 0; #X connect 20 0 115 0; #X connect 20 1 21 0; #X connect 21 0 115 2; #X connect 22 1 120 0; #X connect 23 0 24 0; #X connect 23 1 28 0; #X connect 24 0 29 0; #X connect 25 0 24 1; #X connect 26 0 24 1; #X connect 27 0 24 1; #X connect 28 1 26 0; #X connect 28 2 27 0; #X connect 28 3 27 0; #X connect 28 4 25 0; #X connect 29 0 20 0; #X connect 30 0 22 0; #X connect 33 1 23 0; #X connect 33 2 35 0; #X connect 35 0 34 0; #X connect 36 0 37 0; #X connect 37 0 31 0; #X connect 38 0 39 0; #X connect 40 0 41 1; #X connect 41 0 44 0; #X connect 44 0 115 0; #X connect 44 1 43 0; #X connect 45 1 116 1; #X connect 46 0 47 0; #X connect 47 0 40 0; #X connect 47 1 71 0; #X connect 48 0 63 0; #X connect 48 1 42 0; #X connect 49 0 31 0; #X connect 50 0 49 0; #X connect 51 0 52 0; #X connect 52 0 31 0; #X connect 54 0 55 0; #X connect 55 0 31 0; #X connect 56 0 31 0; #X connect 57 0 56 0; #X connect 58 0 59 0; #X connect 59 0 31 0; #X connect 60 0 7 0; #X connect 62 0 65 0; #X connect 63 0 64 0; #X connect 63 1 66 1; #X connect 64 0 62 1; #X connect 65 0 86 0; #X connect 65 1 84 0; #X connect 66 0 67 0; #X connect 67 0 61 0; #X connect 68 1 82 0; #X connect 72 0 74 0; #X connect 73 0 77 0; #X connect 74 0 75 0; #X connect 75 0 76 0; #X connect 76 0 73 1; #X connect 81 0 73 0; #X connect 81 1 78 0; #X connect 81 2 79 0; #X connect 81 3 80 0; #X connect 82 0 67 3; #X connect 83 0 68 0; #X connect 84 0 67 2; #X connect 85 0 68 0; #X connect 86 0 87 0; #X connect 87 0 66 0; #X connect 87 1 88 0; #X connect 88 0 67 1; #X connect 89 0 90 0; #X connect 90 0 91 0; #X connect 93 0 92 0; #X connect 94 0 44 0; #X connect 95 0 113 0; #X connect 96 0 97 0; #X connect 96 1 102 0; #X connect 97 0 99 0; #X connect 97 1 99 1; #X connect 101 0 107 0; #X connect 102 0 97 1; #X connect 103 0 105 0; #X connect 103 1 108 0; #X connect 104 0 102 1; #X connect 105 0 101 0; #X connect 106 0 108 1; #X connect 108 0 105 1; #X connect 109 0 111 0; #X connect 110 0 109 0; #X connect 113 0 100 0; #X connect 114 0 120 0; #X connect 115 0 62 0; #X connect 115 1 70 0; #X connect 116 0 41 0; #X connect 117 0 38 0; #X connect 120 1 119 0; #X restore 1316 240 pd communicateWithBoeuf; #X obj 52 56 declare -path bf-util; #X obj 505 296 bng 15 250 50 0 \$0-down-bang-s \$0-down-bang-r down 17 7 1 10 -262144 -1 -1; #X obj 22 865 s \$0-down-bang-r; #X obj 964 477 random 200; #X obj 913 477 delay; #X obj 913 454 t b b; #X obj 1321 346 r \$0-grant-s; #X obj 1321 372 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1; #X text 1343 372 test; #X text 1456 373 test; #X obj 1434 347 r \$0-1xgrant-s; #X obj 1434 374 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X text 1317 303 ToDo: Make logic to deal with grant and 1x grant \, and interaction between ask-slider and bpm; #X obj 1322 411 r \$0-ask-slider-s; #X floatatom 1322 435 5 0 0 0 - - -; #X obj 1477 440 s \$0-ask-slider-r; #X floatatom 1477 413 5 0 0 0 - - -; #X text 1522 415 test; #X text 1365 436 test; #X connect 13 0 15 0; #X connect 14 0 13 0; #X connect 15 0 16 0; #X connect 16 0 31 0; #X connect 16 0 47 0; #X connect 16 0 52 0; #X connect 17 0 39 0; #X connect 20 0 25 0; #X connect 21 0 34 1; #X connect 21 0 53 0; #X connect 21 0 83 1; #X connect 23 0 20 0; #X connect 24 0 20 0; #X connect 25 0 14 0; #X connect 26 0 27 0; #X connect 27 0 140 0; #X connect 28 0 138 0; #X connect 29 0 30 0; #X connect 30 0 28 0; #X connect 31 0 26 0; #X connect 32 0 23 0; #X connect 32 1 17 0; #X connect 34 0 24 0; #X connect 37 0 133 0; #X connect 38 0 24 1; #X connect 38 0 34 0; #X connect 39 0 15 1; #X connect 43 0 136 0; #X connect 44 0 45 0; #X connect 45 0 43 0; #X connect 47 0 29 0; #X connect 49 0 50 0; #X connect 49 0 56 0; #X connect 50 0 49 1; #X connect 51 0 164 0; #X connect 52 0 44 0; #X connect 53 0 87 0; #X connect 53 1 32 0; #X connect 54 0 49 1; #X connect 56 0 51 0; #X connect 61 0 119 0; #X connect 62 0 115 0; #X connect 64 0 123 0; #X connect 66 0 124 0; #X connect 68 0 125 0; #X connect 71 0 150 0; #X connect 72 0 84 0; #X connect 72 0 85 0; #X connect 72 0 86 0; #X connect 73 0 78 0; #X connect 75 0 77 0; #X connect 79 0 73 0; #X connect 79 0 75 0; #X connect 80 0 81 0; #X connect 81 0 82 0; #X connect 81 1 128 0; #X connect 82 0 21 0; #X connect 83 0 80 0; #X connect 84 0 102 0; #X connect 85 0 103 0; #X connect 86 0 106 0; #X connect 87 0 24 0; #X connect 87 1 148 0; #X connect 87 2 54 0; #X connect 87 3 17 0; #X connect 98 0 38 0; #X connect 99 0 167 0; #X connect 100 0 114 0; #X connect 101 0 56 1; #X connect 104 0 47 1; #X connect 105 0 52 1; #X connect 107 0 39 4; #X connect 108 0 39 3; #X connect 109 0 39 2; #X connect 110 0 39 1; #X connect 112 0 98 0; #X connect 113 0 111 0; #X connect 116 0 21 0; #X connect 117 0 98 1; #X connect 129 0 80 1; #X connect 132 0 37 0; #X connect 137 0 46 0; #X connect 139 0 40 0; #X connect 141 0 41 0; #X connect 143 0 57 0; #X connect 144 0 49 0; #X connect 148 0 13 1; #X connect 154 0 70 0; #X connect 156 0 83 0; #X connect 165 0 166 1; #X connect 166 0 100 0; #X connect 167 0 166 0; #X connect 167 1 165 0; #X connect 168 0 169 0; #X connect 172 0 173 0; #X connect 175 0 176 0; #X connect 178 0 177 0; #X coords 0 -1 1 1 300 115 1 500 200;