#N canvas 497 81 571 530 10;
#X obj 0 891 cnv 15 552 21 empty empty empty 20 12 0 14 -233017 -33289
0;
#X obj 0 500 cnv 3 550 3 empty empty inlets 8 12 0 13 -228856 -1 0
;
#N canvas 474 390 418 288 META 0;
#X text 1 18 LICENSE SIBSD;
#X text 1 144 LIBRARY cyclone;
#X text 1 36 DESCRIPTION store and edit collections of messages;
#X text 1 54 INLET_0 message;
#X text 1 90 OUTLET_1 float;
#X text 1 108 OUTLET_2 bang;
#X text 1 126 OUTLET_3 bang;
#X text 1 72 OUTLET_0 message;
#X text 1 0 KEYWORDS store edit message index;
#X text 0 162 VERSION 0.1-alpha57;
#X text 0 180 AUTHOR Krzysztof Czaja;
#X text 1 198 RELEASE_DATE 2002;
#X text 2 217 WEBSITE http://suita.chopin.edu.pl/~czaja/miXed/externs/cyclone.html
;
#X text 2 249 HELP_PATCH_AUTHORS Christoph Kummerer. Revised by Jonathan
Wilkes for Pd-extended 0.42 to conform to the PDDP template. Alex Cleveland
updated this patch for Pd-l2ork version 2013.05.28. Fred Jan Kraan
adapted the patch to pd-extended 2015-02-02;
#X restore 501 893 pd META;
#X obj 0 633 cnv 3 550 3 empty empty outlets 8 12 0 13 -228856 -1 0
;
#X obj 0 741 cnv 3 550 3 empty empty arguments 8 12 0 13 -228856 -1
0;
#N canvas 224 574 428 109 Related_objects 0;
#X obj 0 0 cnv 15 425 20 empty empty empty 3 12 0 14 -204280 -1 0;
#X text 6 1 Related Objects;
#X obj 131 29 textfile;
#X obj 10 53 cyclone/buddy;
#X obj 10 30 cyclone/funbuff;
#C restore;
#X restore 197 893 pd Related_objects;
#X obj 82 671 cnv 17 3 17 empty empty 1 5 9 0 16 -228856 -162280 0
;
#X obj 0 0 cnv 15 552 40 empty empty coll 3 12 0 18 -204280 -1 0;
#X text 12 23 store and edit collections of messages;
#X text 112 508 message;
#X obj 82 693 cnv 17 3 17 empty empty 2 5 9 0 16 -228856 -162280 0
;
#X obj 82 715 cnv 17 3 17 empty empty 3 5 9 0 16 -228856 -162280 0
;
#X obj 82 649 cnv 17 3 17 empty empty 0 5 9 0 16 -228856 -162280 0
;
#X text 112 692 bang;
#X text 112 648 message;
#X text 112 715 bang;
#X text 89 756 1) /path/to/file;
#X obj 496 3 coll;
#C restore;
#X obj 82 510 cnv 17 3 110 empty empty 0 5 9 0 16 -228856 -162280 0
;
#X obj 0 786 cnv 3 550 3 empty empty more_info 8 12 0 13 -228856 -1
0;
#N canvas 29 103 559 936 allMessages 0;
#X text 0 43 clear;
#X text 169 43 - erases the whole collection;
#X text 0 103 dump;
#X text 0 133 end;
#X text -1 148 filetype fileType|extension;
#X text 169 148 - sets the file type (Mac) or file extension (others)
;
#X text 0 164 flags "1 0"|"0 0";
#X text 169 236 - (not in cyclone);
#X text 0 251 length;
#X text 169 251 - number of stored values to outlet 1;
#X text 0 266 max;
#X text 0 341 next;
#X text 0 428 open;
#X text 169 428 - opens the text window containing the collection;
#X text 0 443 prev;
#X text 0 473 read fileName;
#X text 0 503 readagain;
#X text 0 533 refer objectName;
#X text 169 533 - connect a coll object to the storage of another (named)
coll object;
#X text 169 618 - (not in cyclone);
#X text 0 839 wclose;
#X text 169 836 - closes the text window containing the collection
;
#X text 0 884 writeagain;
#X text 169 341 - sends the next index value to outlet 2 \, and the
index to 1 Sets the pointer to this index.;
#X text 169 473 - without argument read opens the Open File dialog
box. With argument \, attempt to open it as a file.;
#X text 0 746 start;
#X text 0 854 write fileName;
#X text 170 854 - without argument write opens the Save As dialog box.
With argument \, attempt to save it as a file. \;;
#X text 169 311 - finds and sends the lowest numerical value in the
collection to outlet 1 (ignores lists and symbols);
#X text 169 266 - finds and sends the highest numerical value in the
collection to outlet 1 (ignores lists and symbols);
#X obj 2 2 cnv 15 425 20 empty empty empty 3 12 0 14 -204280 -1 0;
#X text 8 3 all messages;
#X text 0 371 nth address subaddress;
#X text 169 371 - selects and sends the nth element (subaddress) in
the value addressed with address (starts at 1);
#X text 0 28 assoc alias address;
#X text 169 28 - defines an alias for an existing address number;
#X text 0 58 deassoc alias address;
#X text 169 58 - removes the alias for the numberic address;
#X text 0 73 delete address;
#X text 169 73 - removes a value \, and shifts higher values one address
value down;
#X text 169 103 - outputs all addressess at outlet 2 and all values
at outlet 1 Bangs outlet 4 when completed;
#X text 169 133 - sets the address pointer to the last address;
#X text 169 164 - persist "1 0" or do not persist "0 0" collection
on patch save;
#X text 0 191 goto address;
#X text 169 191 - sets the address pointer to the specified address
;
#X text 0 206 insert address data;
#X text 169 206 - inserts a new value at address position and if neccesary
\, shifts up the address of other values;
#X text 0 236 insert2 address data;
#X text 0 296 merge address data;
#X text 169 296 - appends the data to the current value at address
;
#X text 0 311 min;
#X text 0 401 nstore address alias data;
#X text 169 401 - stores the data at the address and associates the
alias. The format 'nstore alias address data' is also possible;
#X text 169 443 - sends the previous address value to outlet 2 \, and
the address to outlet 1 Sets the pointer to this address.;
#X text 0 563 remove address;
#X text 169 563 - removes the value at address. Does not alter the
address of other values.;
#X text 0 588 renumber address;
#X text 169 588 - makes the list of numeric addresses consecutive.
The optional address is the start address.;
#X text 0 618 renumber2 address;
#X text 0 633 separate address;
#X text 169 633 - makes the value of the specified address empty by
shifting the current value to a higher address. Higher values are also
shifted if needed (not in cyclone);
#X text 0 678 sort flag subaddress;
#X text 168 678 - sorts the collection. The flag defines the order:
-1 is ascending \, 1 is ascending. The subaddress decides the item
on which is sorted: -1 is the address \, 0 (or absend) is the first
item in the list \, 1 and higher select that item in the list;
#X text 169 746 - sets the address pointer to the first value \;;
#X text 0 822 swap address address;
#X text 169 822 - exchange the values for two addresses;
#X text 0 779 sub address subaddress value;
#X text 169 884 - if a write was saved before \, save the contents
again. Otherwise open a Save As dialog box.;
#X text 169 503 - if a file was opened before \, restore the coll contents
to its contents. Otherwise open an Open File dialog box.;
#X text 0 761 store address value;
#X text 169 761 - stores the value at address \, it can also be an
symbol;
#X text 169 779 - replaces in the list at address the element at subaddress
by value and output immediately;
#X text 0 808 subsym newaddress oldAddress;
#X text 169 808 - substitutes one symbol address for another;
#X restore 452 507 pd allMessages;
#X text 112 541 float;
#X text 217 648 - value \, either float or symbol;
#X text 112 670 message;
#X text 217 693 - when finishing load or save operation;
#X text 217 716 - when finished with a dump operation;
#X text 217 755 - option arg loads a file into coll. Also the name.
;
#X msg 112 180 1;
#X msg 113 202 2;
#X symbolatom 89 428 10 0 0 0 - - -;
#X floatatom 81 450 5 0 0 0 - - -;
#X obj 81 329 cyclone/coll;
#C restore;
#X msg 113 275 delete 2;
#X msg 113 249 4;
#X text 143 246 does not exist \, no response;
#X msg 81 153 1 foo \, 2 bar \, 3 42;
#X msg 114 224 3;
#X text 52 127 and symbol or float values;
#X floatatom 104 397 5 0 0 0 - - -;
#X text 111 569 symbol;
#X text 216 582 the value at outlet 1;
#X text 110 595 list;
#N canvas 108 244 550 689 almost 0;
#X obj 0 26 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1
;
#X msg 7 79 next;
#X obj 0 645 print coll;
#X msg 99 443 clear;
#X floatatom 53 622 5 0 0 0 - - -;
#X obj 106 602 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 159 584 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X msg 26 125 dump;
#X msg 29 149 read /tmp/foo;
#X msg 36 175 read;
#X msg 53 246 length;
#X text 127 600 bang when we finished a load or save operation;
#X text 178 582 bang when finished with a dump operation;
#X text 93 620 index of the message sent out;
#X text 173 554 optional arg loads a file into coll;
#N canvas 186 81 430 260 loadsomeitems 0;
#X obj 73 58 inlet;
#X obj 104 225 outlet;
#X obj 73 80 t b b;
#X msg 123 115 4 this is a message;
#X msg 124 182 1 10;
#X msg 124 138 3 and another one with 12345 in it;
#X msg 124 160 2 some_symbol;
#X obj 2 3 cnv 15 425 20 empty empty empty 3 12 0 14 -204280 -1 0;
#X text 8 4 messages prefixed with an index are stored;
#X connect 0 0 2 0;
#X connect 2 1 3 0;
#X connect 2 1 5 0;
#X connect 2 1 6 0;
#X connect 2 1 4 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 restore 0 50 pd loadsomeitems;
#X text 18 25 load stuff;
#X text 57 124 dump them all;
#X text 114 148 read a file;
#X text 66 174 opens a dialog;
#X msg 42 199 write /tmp/foo;
#X text 134 197 write a file;
#X text 86 221 open a dialog;
#X msg 49 222 write;
#X floatatom 90 422 5 0 0 0 - - -;
#X text 97 245 output nr. of messages stored;
#X text 40 78 output next =;
#X msg 127 78 bang;
#X msg 58 268 delete 2;
#X msg 68 312 goto 2;
#X text 111 310 goto item nr;
#X msg 73 334 end;
#X text 99 332 goto last item;
#X msg 77 356 filetype;
#X text 135 355 useless on unix it's a dummy function;
#X msg 82 378 flags 1 0;
#X text 144 377 save coll's contents with the patch;
#X msg 85 400 flags 0 0;
#X text 148 398 don't save (default);
#X msg 105 466 open;
#X msg 193 149 readagain;
#X msg 64 290 remove 3;
#X msg 214 199 writeagain;
#X msg 109 488 wclose;
#X msg 18 102 prev;
#X text 50 100 previous;
#X text 126 420 output by index;
#X text 138 441 clear contents;
#X text 138 465 open editor;
#X text 153 487 close & save;
#X text 103 49 look inside;
#X obj 0 556 cyclone/coll /tmp/test.coll;
#C restore;
#X text 256 148 reopens last file read;
#X text 283 198 rewrite last file written;
#X obj 0 -3 cnv 15 425 20 empty empty empty 3 12 0 14 -204280 -1 0
;
#X text 111 268 delete message \, and decrement larger addressess;
#X text 119 289 delete message \, leave address alone;
#X text 5 -3 Almost all messages;
#X connect 0 0 15 0;
#X connect 1 0 51 0;
#X connect 3 0 51 0;
#X connect 7 0 51 0;
#X connect 8 0 51 0;
#X connect 9 0 51 0;
#X connect 10 0 51 0;
#X connect 15 0 51 0;
#X connect 20 0 51 0;
#X connect 23 0 51 0;
#X connect 24 0 51 0;
#X connect 28 0 51 0;
#X connect 29 0 51 0;
#X connect 31 0 51 0;
#X connect 33 0 51 0;
#X connect 35 0 51 0;
#X connect 37 0 51 0;
#X connect 39 0 51 0;
#X connect 41 0 51 0;
#X connect 43 0 51 0;
#X connect 44 0 51 0;
#X connect 51 0 2 0;
#X connect 51 1 4 0;
#X connect 51 2 5 0;
#X connect 51 3 6 0;
#X restore 315 458 pd almost the whole christmas tree;
#X text 198 151 store address/values;
#X text 217 541 - address of the value sent out. The address at;
#X text 216 554 outlet 2 \, the value at outlet 1;
#X text 215 569 - address of value sent out. The address at outlet
2 \,;
#X text 215 595 - first element is interpreted as the address \, the
;
#X text 214 608 others as the list to store;
#X text 217 670 - address \, either float or symbol;
#X text 52 114 Store \, recall and delete with float addresses;
#X text 217 507 - for a complete list of messages see:;
#N canvas 579 403 450 676 orderByFunction 0;
#X text 28 29 Messages ordered by function;
#X text 28 51 operates on complete collection;
#X text 28 58 -------------------------------;
#X text 28 70 clear;
#X text 28 82 dump;
#X text 28 94 end;
#X text 28 106 filetype extension;
#X text 28 118 flags persist 0;
#X text 28 130 length;
#X text 28 142 next;
#X text 28 154 open;
#X text 28 166 prev;
#X text 28 178 read;
#X text 28 190 readagain;
#X text 28 202 refer objectName;
#X text 28 214 start;
#X text 28 226 wclose;
#X text 28 238 write filename;
#X text 28 250 writeagain;
#X text 28 275 operates on all address types;
#X text 28 282 -----------------------------;
#X text 28 296 goto address;
#X text 28 308 merge address value;
#X text 28 320 nth address subaddress;
#X text 28 332 remove address;
#X text 28 344 renumber address;
#X text 28 356 separate address;
#X text 28 368 sort flag subaddress;
#X text 28 380 store address value;
#X text 28 393 swap address address;
#X text 28 406 sub address subaddress value;
#X text 28 418 subsym address address;
#X text 28 445 operates on numeric address;
#X text 28 452 ---------------------------;
#X text 28 466 assoc alias address;
#X text 28 478 deassoc alias address;
#X text 28 490 delete address;
#X text 28 502 insert address value;
#X text 28 514 nstore address alias value (or nstore alias address
value);
#X text 28 526 renumber startAddress;
#X text 28 555 operates on symbol address;
#X text 28 562 --------------------------;
#X text 28 576 subsym address address;
#X text 28 605 operates on numeric values;
#X text 28 612 --------------------------;
#X text 28 627 max;
#X text 28 639 min;
#X obj 2 1 cnv 15 425 20 empty empty empty 3 12 0 14 -204280 -1 0;
#X restore 399 525 pd orderByFunction;
#X text 219 523 messages ordered by function:;
#X text 88 804 The coll object implements an associative array of items.
The Pd types float \, symbol and list can be stored. The elements have
a float or symbol as 'address'. The float address however should not
be interpreted as an index of an array \, but merely as a directive
for the order of the numeric elements.;
#X obj 142 396 print addr;
#X obj 117 449 print val;
#X text 31 44 The coll objects implements a collection or 'associative'
array \, which means the address can be both a float and a symbol and
the value can be a float \, symbol or list.;
#N canvas 430 407 434 300 find 0;
#X obj 144 174 cyclone/coll;
#C restore;
#X msg 175 99 max;
#X msg 209 100 min;
#X msg 144 70 3 four \, 5 6 \, 7 8;
#X msg 129 45 store symbol one 2;
#X obj 167 235 print k;
#X obj 144 259 print v;
#X obj 3 2 cnv 15 425 20 empty empty empty 3 12 0 14 -204280 -1 0;
#X text 18 23 comment;
#X text 9 3 Find minimum and maximum values - only numeric;
#X connect 0 0 6 0;
#X connect 0 1 5 0;
#X connect 1 0 0 0;
#X connect 2 0 0 0;
#X connect 3 0 0 0;
#X connect 4 0 0 0;
#X restore 429 346 pd find min max;
#N canvas 491 507 505 383 associate 0;
#X obj 16 -12699 cyclone/coll;
#C restore;
#X symbolatom 27 -12630 10 0 0 0 - - -;
#X msg 48 -12892 1;
#X floatatom 16 -12607 5 0 0 0 - - -;
#X msg 82 -12893 2;
#X msg 55 -12860 assoc dofoo 1;
#X msg 121 -12764 dofoo;
#X msg 167 -12763 dobar;
#X msg 55 -12834 deassoc dofoo 1;
#X msg 16 -12919 1 foo \, 2 bar \, 3 boo;
#X msg 113 -12893 3;
#X text 151 -12921 insert data;
#X msg 160 -12860 assoc dobar 2;
#X msg 159 -12834 deassoc dobar 2;
#X text 256 -12765 try associated aliasses;
#X msg 212 -12762 dofar;
#X msg 135 -12798 subsym dofar dofoo;
#X symbolatom 129 -12629 10 0 0 0 - - -;
#X floatatom 122 -12606 5 0 0 0 - - -;
#X obj 52 -12607 print v;
#X obj 159 -12606 print k;
#X text 261 -12799 substitute one alias for another;
#X text 141 -12895 recall by address;
#X text 265 -12864 associate an alias to an address value;
#X text 266 -12835 remove an alias to an address value;
#X obj 1 -12954 cnv 15 425 20 empty empty empty 3 12 0 14 -204280 -1
0;
#X text 6 -12954 Associate and disassociate an alias to an address
value;
#X connect 0 0 1 0;
#X connect 0 0 3 0;
#X connect 0 0 19 0;
#X connect 0 1 17 0;
#X connect 0 1 18 0;
#X connect 0 1 20 0;
#X connect 2 0 0 0;
#X connect 4 0 0 0;
#X connect 5 0 0 0;
#X connect 6 0 0 0;
#X connect 7 0 0 0;
#X connect 8 0 0 0;
#X connect 9 0 0 0;
#X connect 10 0 0 0;
#X connect 12 0 0 0;
#X connect 13 0 0 0;
#X connect 15 0 0 0;
#X connect 16 0 0 0;
#X restore 368 368 pd associate disassociate;
#N canvas 570 448 432 393 changing 0;
#X msg 119 212 dump;
#X msg 87 50 1 foo \, 2 bar \, 3 boo \, 4 42;
#X msg 103 95 store triad 0 4 7;
#X msg 93 73 store 333 3 6 9;
#X msg 112 166 swap 333 triad;
#X msg 109 143 nsub 333 2 7;
#X text 251 75 insert some data;
#X text 215 152 change some data;
#X text 157 211 print contents;
#X obj 87 281 cyclone/coll foo;
#C restore;
#X obj 118 335 print k;
#X obj 87 357 print v;
#X obj 2 3 cnv 15 425 20 empty empty empty 3 12 0 14 -204280 -1 0;
#X text 6 4 Changing and modifying elements;
#X connect 0 0 9 0;
#X connect 1 0 9 0;
#X connect 2 0 9 0;
#X connect 3 0 9 0;
#X connect 4 0 9 0;
#X connect 5 0 9 0;
#X connect 9 0 11 0;
#X connect 9 1 10 0;
#X restore 410 391 pd changing values;
#N canvas 565 556 432 321 refer 0;
#X obj 2 2 cnv 15 425 20 empty empty empty 3 12 0 14 -204280 -1 0;
#X obj 126 125 cyclone/coll bar;
#C restore;
#X msg 126 49 refer foo;
#X msg 141 80 1;
#X msg 91 81 dump;
#X obj 157 162 print k;
#X obj 126 184 print v;
#X obj 127 268 cyclone/coll foo;
#C restore;
#X msg 127 245 1 foo \, 2 bar \, 3 anything;
#X obj 127 222 loadbang;
#X text 103 77 comment;
#X text 8 2 Refer: connect to another collection;
#X msg 193 50 refer bar;
#X msg 236 85 clear;
#X connect 1 0 6 0;
#X connect 1 1 5 0;
#X connect 2 0 1 0;
#X connect 3 0 1 0;
#X connect 4 0 1 0;
#X connect 8 0 7 0;
#X connect 9 0 8 0;
#X connect 12 0 1 0;
#X connect 13 0 1 0;
#X restore 404 414 pd refer other coll;
#N canvas 681 387 450 485 symbol 0;
#X obj 73 265 cyclone/coll;
#C restore;
#X symbolatom 103 368 10 0 0 0 - - -;
#X floatatom 73 448 5 0 0 0 - - -;
#X symbolatom 79 423 10 0 0 0 - - -;
#X msg 73 91 symbol one;
#X msg 13 43 store one foo \, store two bar \, store three 42;
#X msg 79 114 symbol two;
#X msg 84 137 symbol three;
#X msg 113 208 delete two;
#X text 289 41 store key/values;
#X text 164 110 recall by key;
#X text 181 181 does not exist \, no response;
#X msg 97 182 symbol four;
#X floatatom 96 391 5 0 0 0 - - -;
#X text 185 206 remove one;
#X obj 3 2 cnv 15 425 20 empty empty empty 3 12 0 14 -204280 -1 0;
#X obj 133 391 print k;
#X obj 108 448 print v;
#X msg 30 69 nstore 5 foobar stored and associated;
#X msg 93 160 symbol foobar;
#X text 263 71 store and associate at once;
#X text 8 3 Store \, recall and delete with symbol addresses;
#X connect 0 0 2 0;
#X connect 0 0 3 0;
#X connect 0 0 17 0;
#X connect 0 1 1 0;
#X connect 0 1 13 0;
#X connect 0 1 16 0;
#X connect 4 0 0 0;
#X connect 5 0 0 0;
#X connect 6 0 0 0;
#X connect 7 0 0 0;
#X connect 8 0 0 0;
#X connect 12 0 0 0;
#X connect 18 0 0 0;
#X connect 19 0 0 0;
#X restore 404 303 pd symbol addresses;
#N canvas 447 424 471 315 swap 0;
#X text 121 63 load ...;
#X msg 37 86 dump;
#X msg 76 155 dump;
#X msg 55 109 swap 1 2;
#X msg 20 63 1 100 \, 2 200;
#X text 123 110 swap 1 & 2;
#X msg 223 38 2 2 3 4 \, 1 1 2 3 \, 3 3 4 5;
#X msg 240 68 sort 1;
#X msg 247 94 dump;
#X msg 334 68 sort -1;
#X text 386 67 up;
#X text 284 68 down;
#X msg 316 115 sort 1 3;
#X msg 392 115 sort -1 3;
#X text 321 97 sort by 3rd element:;
#X msg 375 147 dump;
#X msg 4 38 clear;
#X msg 65 133 renumber 1;
#X obj 89 262 print -;
#X obj 292 294 print -;
#X obj 1 2 cnv 15 425 20 empty empty empty 3 12 0 14 -204280 -1 0;
#X text 5 3 Swap \, sort and renumber;
#X obj 20 194 cyclone/coll;
#C restore;
#X obj 20 262 print v;
#X obj 43 240 print a;
#X obj 223 294 print v;
#X obj 246 273 print a;
#X obj 223 225 cyclone/coll;
#C restore;
#X connect 1 0 22 0;
#X connect 2 0 22 0;
#X connect 3 0 22 0;
#X connect 4 0 22 0;
#X connect 6 0 27 0;
#X connect 7 0 27 0;
#X connect 8 0 27 0;
#X connect 9 0 27 0;
#X connect 12 0 27 0;
#X connect 13 0 27 0;
#X connect 15 0 27 0;
#X connect 16 0 22 0;
#X connect 17 0 22 0;
#X connect 22 0 23 0;
#X connect 22 1 24 0;
#X connect 22 3 18 0;
#X connect 27 0 25 0;
#X connect 27 1 26 0;
#X connect 27 3 19 0;
#X restore 392 324 pd swap sort renumber;
#N canvas 470 296 440 409 insert 0;
#X msg 45 66 merge 2 and this was appended;
#X msg 70 92 2;
#X text 41 33 merge appends a message to an;
#X text 41 46 already stored one:;
#X msg 110 126 insert 2 a new two;
#X text 107 106 and increments all indexes >=;
#X floatatom 132 156 5 0 0 0 - - -;
#X text 166 155 check it out ...;
#X text 159 221 or send it out immediately:;
#X text 146 177 replace an item (silently):;
#X msg 147 198 nsub 2 3 one;
#X msg 162 239 sub 2 2 newer;
#X obj 2 4 cnv 15 425 20 empty empty empty 3 12 0 14 -204280 -1 0;
#X text 7 5 Insert \, merge \, nsub \, nth \, sub;
#X obj 45 323 cyclone/coll;
#C restore;
#X msg 163 281 nth 2 3;
#X obj 45 380 print v;
#X obj 68 360 print a;
#X text 161 262 retrieve 3rd element of message at address 2;
#X text 106 95 inserts new message at address;
#X connect 0 0 14 0;
#X connect 1 0 14 0;
#X connect 4 0 14 0;
#X connect 6 0 14 0;
#X connect 10 0 14 0;
#X connect 11 0 14 0;
#X connect 14 0 16 0;
#X connect 14 1 17 0;
#X connect 15 0 14 0;
#X restore 350 437 pd insert merge nsub nth sub;
#X text 417 283 More examples:;
#X connect 27 0 31 0;
#X connect 28 0 31 0;
#X connect 31 0 29 0;
#X connect 31 0 30 0;
#X connect 31 0 56 0;
#X connect 31 1 38 0;
#X connect 31 1 55 0;
#X connect 32 0 31 0;
#X connect 33 0 31 0;
#X connect 35 0 31 0;
#X connect 36 0 31 0;
