diff --git a/pd/extra/arraylistview.pd b/pd/extra/arraylistview.pd
new file mode 100644
index 0000000000000000000000000000000000000000..67d1e121a92acd9036ad992214c5282ddd737dc4
--- /dev/null
+++ b/pd/extra/arraylistview.pd
@@ -0,0 +1,287 @@
+#N canvas 193 119 576 554 10;
+#X obj 78 80 cnv 15 122 20 empty \$0-slot0 81.... 5 8 0 14 -233017
+-66577 0;
+#X floatatom 136 82 10 0 0 0 - #0-slot0-val #0-slot0-change, f 10
+;
+#X obj 78 100 cnv 15 122 20 empty \$0-slot1 82.... 5 8 0 14 -241339
+-66577 0;
+#X floatatom 136 102 10 0 0 0 - #0-slot1-val #0-slot1-change, f 10
+;
+#X obj 78 120 cnv 15 122 20 empty \$0-slot2 83.... 5 8 0 14 -233017
+-66577 0;
+#X floatatom 136 122 10 0 0 0 - #0-slot2-val #0-slot2-change, f 10
+;
+#X obj 78 140 cnv 15 122 20 empty \$0-slot3 84.... 5 8 0 14 -241339
+-66577 0;
+#X floatatom 136 142 10 0 0 0 - #0-slot3-val #0-slot3-change, f 10
+;
+#X obj 78 160 cnv 15 122 20 empty \$0-slot4 85.... 5 8 0 14 -233017
+-66577 0;
+#X floatatom 136 162 10 0 0 0 - #0-slot4-val #0-slot4-change, f 10
+;
+#X obj 78 180 cnv 15 122 20 empty \$0-slot5 86.... 5 8 0 14 -241339
+-66577 0;
+#X floatatom 136 182 10 0 0 0 - #0-slot5-val #0-slot5-change, f 10
+;
+#X obj 78 200 cnv 15 122 20 empty \$0-slot6 87.... 5 8 0 14 -233017
+-66577 0;
+#X floatatom 136 202 10 0 0 0 - #0-slot6-val #0-slot6-change, f 10
+;
+#X obj 78 220 cnv 15 122 20 empty \$0-slot7 88.... 5 8 0 14 -241339
+-66577 0;
+#X floatatom 136 222 10 0 0 0 - #0-slot7-val #0-slot7-change, f 10
+;
+#X obj 78 240 cnv 15 122 20 empty \$0-slot8 89.... 5 8 0 14 -233017
+-66577 0;
+#X floatatom 136 242 10 0 0 0 - #0-slot8-val #0-slot8-change, f 10
+;
+#X obj 78 260 cnv 15 122 20 empty \$0-slot9 90.... 5 8 0 14 -241339
+-66577 0;
+#X floatatom 136 262 10 0 0 0 - #0-slot9-val #0-slot9-change, f 10
+;
+#X obj 156 310 bng 20 250 50 0 empty empty next 25 7 0 12 -262144 -1
+-1;
+#X obj 68 310 bng 20 250 50 0 empty empty previous 25 7 0 12 -262144
+-1 -1;
+#X obj 345 113 expr size("$s1");
+#X obj 432 299 until;
+#X obj 432 338 f;
+#X obj 472 338 + 1;
+#N canvas 347 145 613 363 make_label 0;
+#X obj 19 73 moses 10;
+#X obj 19 20 inlet;
+#X obj 64 94 moses 100;
+#X obj 235 160 moses 100000;
+#X obj 115 116 moses 1000;
+#X obj 172 138 moses 10000;
+#X msg 64 119 \$1....;
+#X msg 115 137 \$1...;
+#X msg 172 159 \$1..;
+#X obj 235 181 makefilename %d.;
+#X obj 115 305 symbol;
+#X obj 346 180 makefilename %d;
+#X obj 115 326 outlet;
+#X obj 19 44 moses;
+#X obj 72 20 r \$0-size;
+#X msg 19 156 \$1.....;
+#X msg 459 179 ......;
+#X connect 0 0 15 0;
+#X connect 0 1 2 0;
+#X connect 1 0 13 0;
+#X connect 2 0 6 0;
+#X connect 2 1 4 0;
+#X connect 3 0 9 0;
+#X connect 3 1 11 0;
+#X connect 4 0 7 0;
+#X connect 4 1 5 0;
+#X connect 5 0 8 0;
+#X connect 5 1 3 0;
+#X connect 6 0 10 0;
+#X connect 7 0 10 0;
+#X connect 8 0 10 0;
+#X connect 9 0 10 0;
+#X connect 10 0 12 0;
+#X connect 11 0 10 0;
+#X connect 13 0 0 0;
+#X connect 13 1 16 0;
+#X connect 14 0 13 1;
+#X connect 15 0 10 0;
+#X connect 16 0 10 0;
+#X restore 482 453 pd make_label;
+#X obj 432 474 pack 0 0 s \$0;
+#N canvas 1 50 499 463 change 0;
+#X obj 87 4 r \$0-slot0-change;
+#X obj 107 24 r \$0-slot1-change;
+#X obj 127 44 r \$0-slot2-change;
+#X obj 147 64 r \$0-slot3-change;
+#X obj 167 84 r \$0-slot4-change;
+#X obj 187 104 r \$0-slot5-change;
+#X obj 197 124 r \$0-slot6-change;
+#X obj 217 144 r \$0-slot7-change;
+#X obj 237 164 r \$0-slot8-change;
+#X obj 257 184 r \$0-slot9-change;
+#X obj 328 425 outlet;
+#X msg 87 386 \$1 0;
+#X msg 107 365 \$1 1;
+#X msg 127 345 \$1 2;
+#X msg 147 325 \$1 3;
+#X msg 167 305 \$1 4;
+#X msg 187 285 \$1 5;
+#X msg 197 265 \$1 6;
+#X msg 217 245 \$1 7;
+#X msg 237 225 \$1 8;
+#X msg 257 205 \$1 9;
+#X connect 0 0 11 0;
+#X connect 1 0 12 0;
+#X connect 2 0 13 0;
+#X connect 3 0 14 0;
+#X connect 4 0 15 0;
+#X connect 5 0 16 0;
+#X connect 6 0 17 0;
+#X connect 7 0 18 0;
+#X connect 8 0 19 0;
+#X connect 9 0 20 0;
+#X connect 11 0 10 0;
+#X connect 12 0 10 0;
+#X connect 13 0 10 0;
+#X connect 14 0 10 0;
+#X connect 15 0 10 0;
+#X connect 16 0 10 0;
+#X connect 17 0 10 0;
+#X connect 18 0 10 0;
+#X connect 19 0 10 0;
+#X connect 20 0 10 0;
+#X restore 338 195 pd change;
+#X obj 338 216 unpack 0 0;
+#X obj 395 243 +;
+#X obj 134 402 +;
+#X obj 156 345 f 1;
+#X obj 68 345 f -1;
+#X obj 184 402 t a;
+#X obj 345 135 s \$0-size;
+#X obj 134 445 max 0;
+#X obj 134 524 s \$0-offset;
+#X obj 134 471 * 10;
+#X msg 432 221 10 \$1;
+#X obj 432 242 unpack;
+#X obj 432 195 r \$0-offset;
+#X obj 432 395 +;
+#X obj 432 416 t a a;
+#X obj 432 263 t a b;
+#X obj 516 327 t a;
+#X obj 469 299 f 0;
+#X msg 432 495 \; \$4-slot\$2 label \$3 \; \$4-slot\$2-val set \$1
+;
+#X text 346 171 Write;
+#X text 346 171 _____;
+#X text 446 171 Read;
+#X text 446 171 ____;
+#X obj 432 359 t a a;
+#X obj 218 64 t b a;
+#X obj 245 135 s \$0-array-name;
+#X obj 218 40 symbol \$1;
+#X obj 82 285 cnv 1 1 1 empty empty Jump... 5 8 0 14 -241339 -66577
+0;
+#X floatatom 148 287 8 0 0 0 - #0-jump-rcv #0-jump, f 8;
+#X obj 233 287 r \$0-jump;
+#N canvas 0 50 450 300 min 0;
+#X obj 185 8 r \$0-size;
+#X obj 185 59 div 10;
+#X obj 185 31 t a a;
+#X obj 235 58 mod 10;
+#X obj 235 79 sel 0;
+#X obj 235 100 f 0;
+#X msg 263 99 1;
+#X obj 185 132 +;
+#X obj 121 186 min;
+#X obj 121 27 inlet;
+#X obj 121 207 outlet;
+#X obj 185 153 - 1;
+#X connect 0 0 2 0;
+#X connect 1 0 7 0;
+#X connect 2 0 1 0;
+#X connect 2 1 3 0;
+#X connect 3 0 4 0;
+#X connect 4 0 5 0;
+#X connect 4 1 6 0;
+#X connect 5 0 7 1;
+#X connect 6 0 7 1;
+#X connect 7 0 11 0;
+#X connect 8 0 10 0;
+#X connect 9 0 8 0;
+#X connect 11 0 8 1;
+#X restore 134 424 pd min;
+#N canvas 0 0 450 300 min 0;
+#X obj 101 46 inlet;
+#X obj 116 77 r \$0-size;
+#X obj 116 98 - 1;
+#X obj 101 127 min;
+#X obj 101 148 outlet;
+#X connect 0 0 3 0;
+#X connect 1 0 2 0;
+#X connect 2 0 3 1;
+#X connect 3 0 4 0;
+#X restore 233 423 pd min;
+#X obj 233 444 max 0;
+#X obj 218 9 loadbang;
+#N canvas 0 0 450 300 tabwrite 0;
+#X obj 221 136 tabwrite;
+#X obj 123 84 r \$0-array-name;
+#X msg 123 105 set \$1;
+#X obj 221 65 inlet;
+#X obj 266 65 inlet;
+#X connect 1 0 2 0;
+#X connect 2 0 0 0;
+#X connect 3 0 0 0;
+#X connect 4 0 0 1;
+#X restore 338 266 pd tabwrite;
+#N canvas 0 0 450 300 tabread 0;
+#X obj 65 37 r \$0-array-name;
+#X msg 65 60 set \$1;
+#X obj 178 160 tabread;
+#X obj 178 98 moses;
+#X obj 231 37 r \$0-size;
+#X obj 178 37 inlet;
+#X obj 205 124 b;
+#X obj 239 160 f 0;
+#X obj 178 211 outlet;
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X connect 2 0 8 0;
+#X connect 3 0 2 0;
+#X connect 3 1 6 0;
+#X connect 4 0 3 1;
+#X connect 5 0 3 0;
+#X connect 6 0 7 0;
+#X connect 7 0 8 0;
+#X restore 388 446 pd tabread;
+#X obj 345 91 symbol;
+#X obj 345 39 metro 750;
+#X connect 20 0 32 0;
+#X connect 21 0 33 0;
+#X connect 22 0 35 0;
+#X connect 23 0 24 0;
+#X connect 24 0 25 0;
+#X connect 24 0 52 0;
+#X connect 25 0 24 1;
+#X connect 26 0 27 2;
+#X connect 27 0 47 0;
+#X connect 28 0 29 0;
+#X connect 29 0 63 0;
+#X connect 29 1 30 0;
+#X connect 30 0 63 1;
+#X connect 31 0 59 0;
+#X connect 32 0 31 0;
+#X connect 33 0 31 0;
+#X connect 34 0 31 1;
+#X connect 36 0 34 0;
+#X connect 36 0 38 0;
+#X connect 38 0 37 0;
+#X connect 39 0 40 0;
+#X connect 40 0 44 0;
+#X connect 40 1 45 0;
+#X connect 41 0 39 0;
+#X connect 41 0 30 1;
+#X connect 42 0 43 0;
+#X connect 43 0 64 0;
+#X connect 43 1 26 0;
+#X connect 44 0 23 0;
+#X connect 44 1 46 0;
+#X connect 45 0 42 1;
+#X connect 46 0 24 1;
+#X connect 52 0 42 0;
+#X connect 52 1 27 1;
+#X connect 53 0 31 0;
+#X connect 53 1 65 0;
+#X connect 53 1 54 0;
+#X connect 55 0 53 0;
+#X connect 58 0 60 0;
+#X connect 59 0 36 0;
+#X connect 60 0 61 0;
+#X connect 61 0 37 0;
+#X connect 62 0 55 0;
+#X connect 62 0 66 0;
+#X connect 64 0 27 0;
+#X connect 65 0 22 0;
+#X connect 66 0 65 0;
+#X coords 0 -1 1 1 153 274 1 62 61;