#N canvas 499 81 572 530 10; #X obj 0 750 cnv 15 552 21 empty empty empty 20 12 0 14 -233017 -33289 0; #X obj 0 441 cnv 3 550 3 empty empty inlets 8 12 0 13 -228856 -1 0 ; #N canvas 622 171 367 336 META 1; #X text 1 20 LICENSE SIBSD; #X text 1 153 LIBRARY cyclone; #X text 1 0 KEYWORDS swiss army knife multi purpose list processing ; #X text 1 40 DESCRIPTION multi purpose list processing object a.k.a. swiss army knife; #X text 1 73 INLET_0 list message; #X text 1 93 INLET_1 list float; #X text 1 113 OUTLET_0 list; #X text 1 133 OUTLET_1 float; #X text 0 172 VERSION 0.1-alpha57; #X text 0 190 AUTHOR Krzysztof Czaja; #X text 1 208 RELEASE_DATE 2002; #X text 2 227 WEBSITE http://suita.chopin.edu.pl/~czaja/miXed/externs/cyclone.html ; #X text 2 259 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 752 pd META; #X obj 0 553 cnv 3 550 3 empty empty outlets 8 12 0 13 -228856 -1 0 ; #X obj 0 627 cnv 3 550 3 empty empty arguments 8 12 0 13 -228856 -1 0; #X obj 0 699 cnv 3 550 3 empty empty more_info 8 12 0 13 -228856 -1 0; #N canvas 315 328 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 restore 199 752 pd Related_objects; #X obj 80 452 cnv 17 3 35 empty empty 0 5 9 0 16 -228856 -162280 0 ; #X obj 80 564 cnv 17 3 17 empty empty 0 5 9 0 16 -228856 -162280 0 ; #X obj 0 0 cnv 15 552 40 empty empty zl 3 12 0 18 -204280 -1 0; #X obj 515 11 zl; #X text 12 23 multi purpose list processing object a.k.a. swiss army knife; #X text 114 449 list; #X obj 80 502 cnv 17 3 35 empty empty 1 5 9 0 16 -228856 -162280 0 ; #X text 114 523 float; #X text 205 521 - change number of elements per group; #X text 205 473 - change to and number of elements per group; #X text 114 563 list; #X text 205 563 - the processed list based on mode and number of elements ; #X text 98 637 1) mode; #X text 205 637 - mode can be group \, iter \, join \, len \, reg \, rev \, rotate \, sect \, nth \, slice \, ecils \, or union; #X text 98 670 2) float; #X text 205 670 - intial number of elements per group; #X text 30 54 zl supports multiple modes that perform various useful tasks; #X text 93 717 modes can be set as an arg or with a; #X msg 329 717 mode mode_name [n]; #X msg 31 165 list a b; #X msg 45 190 list c d e f; #X obj 31 364 print group; #X text 455 717 message.; #X text 14 125 in group mode messages are grouped; #X text 14 137 in numbers of elements:; #X text 150 329 arg sets mode and optionally the; #X text 151 340 number of elements to group; #X msg 136 222 3; #X msg 178 277 list a b c d e; #X msg 178 298 list f g; #X text 250 299 <- click again; #X text 170 245 remaining items are stored and; #X text 170 257 used for the next group:; #X text 163 224 change nr of elements per group; #X msg 381 187 1 2 3 4; #X msg 369 165 1 2 3 4 5 6; #X floatatom 468 269 5 0 0 0 - - -; #X text 327 128 iter is similar to group but always; #X msg 395 209 1; #X text 327 140 sends out all available elements:; #X msg 468 247 mode iter 4; #X text 465 229 change nr here; #X text 507 269 or here; #X obj 369 319 print iter; #N canvas 506 261 500 513 trivial 0; #X obj 14 150 print len; #X msg 14 52 this produces 3; #X msg 25 74 and this should be five; #X text 8 30 len outputs the nr. of elements:; #X text 269 25 rev reverses:; #X obj 271 152 print rev; #X msg 280 68 10 9 8 7 6 5 4 3 2 1 0; #X msg 271 45 way this something means this; #X text 11 175 reg can be used to store lists:; #X msg 12 198 this is sent out immediately; #X obj 12 331 print reg; #X msg 18 258 bang; #X msg 93 230 this is just stored; #X obj 261 336 print rotate; #X msg 261 215 sometimes my grammar is all messed up; #X text 260 195 master yoda says:; #X msg 333 262 1 2 3 4 5 6 7 8; #X floatatom 354 237 5 0 0 0 - - -; #X text 249 215 1; #X text 338 236 2; #X text 318 263 3; #X text 55 258 output last stored list; #X text 258 175 rot rotates:; #X text 13 365 nth sends out the nth element:; #X obj 18 493 print nth; #X floatatom 111 415 5 0 0 0 - - -; #X msg 18 393 1 10 11 100 101 110 111 1000; #X text 153 416 change 'n'; #X obj 2 4 cnv 15 425 20 empty empty empty 3 12 0 14 -204280 -1 0; #X obj 14 114 cyclone/zl len; #X obj 12 296 cyclone/zl reg; #X obj 18 457 cyclone/zl nth 3; #X obj 261 303 cyclone/zl rot 3; #X obj 271 107 cyclone/zl rev; #X text 4 5 len \, rev \, reg \, rot and nth modes; #X connect 1 0 29 0; #X connect 2 0 29 0; #X connect 6 0 33 0; #X connect 7 0 33 0; #X connect 9 0 30 0; #X connect 11 0 30 0; #X connect 12 0 30 1; #X connect 14 0 32 0; #X connect 16 0 32 0; #X connect 17 0 32 1; #X connect 25 0 31 1; #X connect 26 0 31 0; #X connect 29 0 0 0; #X connect 30 0 10 0; #X connect 31 0 24 0; #X connect 32 0 13 0; #X connect 33 0 5 0; #X restore 461 410 pd trivial ones; #X text 226 409 look here for rev \, len \, reg \, rot[ate]:; #X text 30 65 on lists. the modes are group \, iter \, join \, len \, reg \, rev \,; #X text 30 76 rotate \, sect \, nth \, slice \, ecils or union.; #X text 114 501 list; #X text 205 499 - list to process; #X text 205 449 - list to process; #X obj 80 592 cnv 17 3 17 empty empty 1 5 9 0 16 -228856 -162280 0 ; #X text 114 591 list; #X text 205 589 - the processed list based on where split is (slice and ecils only); #X text 114 472 message; #X obj 31 336 cyclone/zl group 2; #X msg 63 282 bang; #X text 60 239 get the; #X text 59 252 remainder; #X text 61 263 out; #X text 15 164 1; #X text 20 187 2; #X text 116 221 3; #X text 158 275 4; #X text 159 296 5; #X text 46 282 6; #X obj 369 294 cyclone/zl iter 3; #X text 313 113 iter mode; #X text 7 108 group mode; #N canvas 461 403 432 300 sect 0; #X msg 106 106 this is a list; #X msg 193 128 this is another list; #X text 103 42 are common to both input lists:; #X obj 106 82 t b b; #X obj 106 63 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X obj 106 248 print sect; #X text 103 32 sect outputs the elements that; #X obj 106 194 cyclone/zl sect; #X obj 2 3 cnv 15 425 20 empty empty empty 3 12 0 14 -204280 -1 0; #X text 6 4 sect mode; #X connect 0 0 7 0; #X connect 1 0 7 1; #X connect 3 0 0 0; #X connect 3 1 1 0; #X connect 4 0 3 0; #X connect 7 0 5 0; #X restore 461 330 pd sect mode; #N canvas 485 491 450 300 slice 0; #X msg 80 103 1 2 3 4 5 6 7; #X obj 80 256 print slice1; #X obj 185 256 print slice2; #X floatatom 185 154 5 0 0 0 - - -; #X msg 92 127 a b c d e f g i; #X text 78 35 slice is the only mode to use the 2nd; #X text 79 48 outlet \, it divides the list into two; #X text 79 61 lists at the specified element nr:; #X text 221 152 change nr; #X obj 80 202 cyclone/zl slice 3; #X obj 3 2 cnv 15 425 20 empty empty empty 3 12 0 14 -204280 -1 0; #X text 6 3 slice mode; #X connect 0 0 9 0; #X connect 3 0 9 1; #X connect 4 0 9 0; #X connect 9 0 1 0; #X connect 9 1 2 0; #X restore 461 350 pd slice mode; #N canvas 428 531 431 300 ecils 0; #X msg 150 67 1 2 3 4 5 6 7; #X floatatom 255 118 5 0 0 0 - - -; #X msg 162 91 a b c d e f g i; #X obj 150 250 print ecils1; #X obj 255 251 print ecils2; #X obj 150 177 cyclone/zl ecils 3; #X text 116 47 ecils is the reverse of slice; #X obj 2 3 cnv 15 425 20 empty empty empty 3 12 0 14 -204280 -1 0; #X text 5 4 ecils mode; #X connect 0 0 5 0; #X connect 1 0 5 1; #X connect 2 0 5 0; #X connect 5 0 3 0; #X connect 5 1 4 0; #X restore 461 370 pd ecils mode; #N canvas 508 547 433 300 join 0; #X obj 2 2 cnv 15 425 20 empty empty empty 3 12 0 14 -204280 -1 0; #X msg 82 57 mode join; #X obj 173 258 print join; #X msg 230 119 joined together; #X obj 173 57 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X obj 173 81 t b b; #X text 67 57 1; #X text 158 56 2; #X msg 173 141 these are; #X text 5 3 join mode; #X text 56 32 here lists are \, well joined:; #X obj 173 205 cyclone/zl; #X connect 1 0 11 0; #X connect 3 0 11 1; #X connect 4 0 5 0; #X connect 5 0 8 0; #X connect 5 1 3 0; #X connect 8 0 11 0; #X connect 11 0 2 0; #X restore 461 390 pd join mode; #X connect 26 0 62 0; #X connect 27 0 62 0; #X connect 34 0 62 1; #X connect 35 0 62 0; #X connect 36 0 62 0; #X connect 41 0 73 0; #X connect 42 0 73 0; #X connect 43 0 73 1; #X connect 45 0 73 0; #X connect 47 0 73 0; #X connect 62 0 28 0; #X connect 63 0 62 0; #X connect 73 0 50 0;