#N canvas 123 22 1027 762 12;
#N canvas 367 28 646 531 (subpatch) 0;
#X array array1 10 float 3;
#A 0 4 4.5666 7.03323 -0.0999908 6.8999 7.56656 3.69995 7.96655 0.899994
5.76659;
#X coords 0 10 10 -1 200 150 1;
#X restore 102 274 graph;
#X floatatom 566 575 0 0 0 0 - - -;
#X floatatom 77 666 0 0 0 0 - - -;
#X floatatom 77 613 0 0 0 0 - - -;
#X obj 603 523 + 1;
#X obj 566 490 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X text 237 637 =;
#X obj 277 664 *;
#X floatatom 277 694 5 0 0 0 - - -;
#X floatatom 254 595 5 0 0 0 - - -;
#X obj 308 578 loadbang;
#X msg 308 607 2;
#X obj 682 144 loadbang;
#X floatatom 559 222 0 0 0 0 - - -;
#X floatatom 559 169 0 0 0 0 - - -;
#X obj 559 196 expr $s2[$f1] * 12;
#X text 500 100 Leio um índice da tabela e multiplico por 12;
#X obj 774 539 mod 10;
#X obj 566 549 expr array1[($f1 % 10)];
#X floatatom 774 512 0 0 0 0 - - -;
#X obj 811 496 + 1;
#X obj 774 463 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 41 36 cnv 15 400 40 empty empty Arrays: 20 12 0 24 -262144 -66577
0;
#X text 744 547 =;
#X text 25 100 O [expr] \, além de variáveis float ($f1) e int ($i1)
\, também compreende variáveis de símbolos ($s1 \, $s2 \, etc). Mas
esses símbolos são interpretados como nomes de tabelas \, ou seja \,
o [expr] também faz operações matemáticas com valores de tabelas!;
#X text 27 182 Assim \, em vez de uma variável de símbolo ($s1) \,
também podemos colocar o nome direto da tabela. A sintaxe é a seguinte:
depois do nome da tabela \, entre colchetes \, colocamos o número do
índice da tabela.;
#X obj 77 637 expr $f1 * array1[2];
#X obj 308 633 tabread array1;
#X msg 253 465 2;
#X obj 253 491 tabread array1;
#X obj 253 443 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X floatatom 253 518 8 0 0 0 - - -;
#X floatatom 113 512 0 0 0 0 - - -;
#X obj 113 483 expr array1[2];
#X obj 113 457 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X text 226 481 =;
#X text 478 38 Obviamente \, entre colchetes \, podemos ter uma variável
float ou int. E no inlet que corresponde a uma variável de símbolo
($s1) não pode faltar o seletor symbol.;
#X msg 682 170 symbol array1;
#X text 491 275 Só é bom lembrar que os índices da tabela são números
inteiros \, portanto \, se você colocar 2.9 \, o que você tem como
índice é somente o número inteiro 2 Em suma \, o [expr] não lê uma
tabela com interpolação \, como o objeto [tabread4]. Ou seja \, ele
só pode substituir o objeto [tabread]!;
#X text 509 411 Exemplo: Lendo a tabela em loop \, como em um Sequencer!
;
#X obj 566 513 v;
#X obj 774 486 v;
#X obj 774 592 tabread array1;
#X floatatom 774 620 0 0 0 0 - - -;
#X floatatom 774 565 5 0 0 0 - - -;
#X floatatom 526 562 0 0 0 0 - - -;
#X text 548 699 O Objeto [value] \, nesses contadores \, permite que
um exemplo acompanhe o outro...;
#X connect 3 0 26 0;
#X connect 4 0 40 0;
#X connect 5 0 40 0;
#X connect 7 0 8 0;
#X connect 9 0 7 0;
#X connect 10 0 11 0;
#X connect 11 0 27 0;
#X connect 12 0 37 0;
#X connect 14 0 15 0;
#X connect 15 0 13 0;
#X connect 17 0 44 0;
#X connect 18 0 1 0;
#X connect 19 0 17 0;
#X connect 20 0 41 0;
#X connect 21 0 41 0;
#X connect 26 0 2 0;
#X connect 27 0 7 1;
#X connect 28 0 29 0;
#X connect 29 0 31 0;
#X connect 30 0 28 0;
#X connect 33 0 32 0;
#X connect 34 0 33 0;
#X connect 37 0 15 1;
#X connect 40 0 4 0;
#X connect 40 0 18 0;
#X connect 40 0 45 0;
#X connect 41 0 20 0;
#X connect 41 0 19 0;
#X connect 42 0 43 0;
#X connect 44 0 42 0;
