#N canvas 790 119 1041 863 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 580 556 0 0 0 0 - - -;
#X floatatom 77 666 0 0 0 0 - - -;
#X floatatom 77 613 0 0 0 0 - - -;
#X obj 617 504 + 1;
#X obj 580 471 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 646 125 loadbang;
#X floatatom 523 203 0 0 0 0 - - -;
#X floatatom 523 150 0 0 0 0 - - -;
#X obj 523 177 expr $s2[$f1] * 12;
#X obj 580 530 expr array1[($f1 % 10)];
#X floatatom 788 493 0 0 0 0 - - -;
#X obj 825 477 + 1;
#X obj 788 444 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 758 528 =;
#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 msg 646 151 symbol array1;
#X obj 580 494 v;
#X obj 788 467 v;
#X obj 788 573 tabread array1;
#X floatatom 788 601 0 0 0 0 - - -;
#X floatatom 788 546 5 0 0 0 - - -;
#X floatatom 539 534 0 0 0 0 - - -;
#X text 25 100 Besides float ($f1) & int ($i1) \, you can also load
symbols ($s1 \, $s2 \, etc). But they will be interpreted as array
names. So [expr] also deals with arrays! And it expects an index number
after the symbol in brackets.;
#X text 29 174 We don't need to always use "s\$1" \, since we can put
the array name in it ourselves.;
#X obj 808 156 tabread array1;
#X text 767 180 =;
#X floatatom 808 125 5 0 0 0 - - -;
#X floatatom 808 211 8 0 0 0 - - -;
#X obj 808 183 * 12;
#X text 478 38 Obviously \, inside the brackets \, we can have $f1
or $i1. Another reminder is that the "symbol" selector needs to be
there for the corresponding inlet.;
#X text 491 275 Note that table indexes are always integers \, so it'd
be better represented if we used "$i1" instead of "$f1". It's not possible
to read interpolated values in [expr] \, you need [tabread4] for that.
;
#X text 499 381 Another Examplo: reading an array in loop \, as in
a sequencer!;
#X text 548 661 [value] allows the example to be in sync either on
the left or the right...;
#X floatatom 371 798 5 0 0 0 - - -;
#X obj 371 735 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 371 757 expr size("array1") \; sum("array1");
#X floatatom 508 797 5 0 0 0 - - -;
#X text 558 760 [expr] can also give you the size of an array and the
sum of its values;
#X text 316 797 size;
#X text 468 799 sum;
#X obj 788 520 % 10;
#X connect 3 0 22 0;
#X connect 4 0 33 0;
#X connect 5 0 33 0;
#X connect 7 0 8 0;
#X connect 9 0 7 0;
#X connect 10 0 11 0;
#X connect 11 0 23 0;
#X connect 12 0 32 0;
#X connect 14 0 15 0;
#X connect 15 0 13 0;
#X connect 16 0 1 0;
#X connect 17 0 57 0;
#X connect 18 0 34 0;
#X connect 19 0 34 0;
#X connect 22 0 2 0;
#X connect 23 0 7 1;
#X connect 24 0 25 0;
#X connect 25 0 27 0;
#X connect 26 0 24 0;
#X connect 29 0 28 0;
#X connect 30 0 29 0;
#X connect 32 0 15 1;
#X connect 33 0 4 0;
#X connect 33 0 16 0;
#X connect 33 0 38 0;
#X connect 34 0 18 0;
#X connect 34 0 17 0;
#X connect 35 0 36 0;
#X connect 37 0 35 0;
#X connect 41 0 45 0;
#X connect 43 0 41 0;
#X connect 45 0 44 0;
#X connect 51 0 52 0;
#X connect 52 0 50 0;
#X connect 52 1 53 0;
#X connect 57 0 37 0;
