#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;