#N canvas 213 92 975 674 12;
#X obj 38 -28 cnv 15 400 40 empty empty AtÃ©: 20 12 0 24 -262144 -66577
0;
#X obj 78 155 until;
#X obj 78 183 print;
#X msg 78 124 4;
#X msg 38 123 2;
#X msg 117 124 8;
#X obj 220 398 until;
#X obj 220 432 f;
#X obj 273 434 + 1;
#X obj 220 366 bng 15 250 50 0 empty empty empty 17 7 0 10 -4160 -1
-1;
#X floatatom 158 469 5 0 0 0 - - -;
#X obj 220 462 sel 9000;
#X msg 271 404 0;
#X obj 220 492 t b b;
#X obj 121 399 del 2000;
#X obj 659 203 bng 15 250 50 0 empty empty empty 17 7 0 10 -258113
-1 -1;
#X floatatom 691 256 5 0 0 0 - - -;
#X text 491 75 Como o [until] \, ele recebe um número "x" no inlet
esquerdo e envia "x" bangs.;
#X text 491 119 Ele cospe bangs no outlet esquerdo e um bang no outlet
do meio quando acaba de mandar no esquerdo. O outlet direito é um contador
de bangs.;
#X obj 659 229 Uzi 9;
#X obj 660 313 print Uzi;
#X obj 675 286 print BangFinal;
#X msg 691 201 3;
#X msg 620 200 5;
#X obj 630 450 repeat 10;
#X obj 630 427 bng 15 250 50 0 empty empty empty 17 7 0 10 -261682
-1 -1;
#X text 538 519 O objeto [repeat] repete qualquer mensagem e pode \,
claramente \, funcionar como um [until] ou [Uzi].;
#X obj 630 484 print;
#X text 519 565 Fato é que ele roda mais devagar... o que não importa
para poucas repetições.;
#X text 497 399 ============================================================
;
#X text 29 28 O [until] é um mecanismo de "Laço" \, ou "loop" \, que
é muito comum em linguagens de programação. Por exemplo \, é útil pedir
para que algo seja feito "x" vezes \, ou lidar de forma condicional
(enquanto x for < y continue fazendo alguma coisa).;
#X text 133 154 O [until] recebe um número X e manda X bangs.;
#X text 46 227 O [until] não tem argumentos e recebe apenas "bang"
no inlet direito.;
#X text 44 272 Quando o [until] recebe um bang no inlet esquerdo \,
ele manda bangs até receber um bang no inlet direito. Ou seja \, nesse
caso \, se ele não receber um bang no inlet direito \, há um loop infinito.
Você vai ter que fechar o Pd devido a uma bela travada.;
#X text 494 -9 O objeto [Uzi] vem de uma biblioteca externa e tem um
mecanismo similar.;
#X text 491 42 Detalhe importante: é [Uzi] com "U" maiúsculo!;
#X text 53 529 No exemplo acima \, com um bang \, o [until] envia bangs
a um contador. Quando o contador chega a 9 \, o select envia um bang
que corta o loop. Veja que o [until] envia bangs a uma velocidade máxima
e percebemos que o contador pula de 0 a 9000 imediatamente.;
#X text 500 337 O objeto [Uzi] recebe argumentos que é o número de
bangs. Seu inlet frio muda o argumento. Um bang dispara a "metralhadora".
;
#X msg 121 430 0;
#X connect 1 0 2 0;
#X connect 3 0 1 0;
#X connect 4 0 1 0;
#X connect 5 0 1 0;
#X connect 6 0 7 0;
#X connect 7 0 8 0;
#X connect 7 0 10 0;
#X connect 7 0 11 0;
#X connect 8 0 7 1;
#X connect 9 0 6 0;
#X connect 9 0 14 0;
#X connect 11 0 13 0;
#X connect 12 0 7 1;
#X connect 13 0 12 0;
#X connect 13 1 6 1;
#X connect 14 0 38 0;
#X connect 15 0 19 0;
#X connect 19 0 20 0;
#X connect 19 1 21 0;
#X connect 19 2 16 0;
#X connect 22 0 19 1;
#X connect 23 0 19 0;
#X connect 24 0 27 0;
#X connect 25 0 24 0;
#X connect 38 0 10 0;
