#N canvas 746 112 610 518 10; #X text 286 78 align; #X text 287 148 USAGE:; #X text 287 99 automatically align objects by x- or y- axis; #X text 287 109 or distribute them with equal distances (beta); #X text 287 159 place align.pd in your search path; #X text 287 169 create an [align] object inside the patch where; #X text 287 179 you want to use it.; #X text 287 199 Keyboard commands; #X text 287 219 "x" for left-align or; #X text 287 229 "y" for top-align; #X text 287 209 for aligning press "|" (pipe) and; #X text 287 249 for equal distance distribution; #X text 287 259 press "#" (grid metaphor) and; #X text 287 269 "x" for horizontal or; #X text 287 279 "y" for vertical; #X text 287 339 undo function; #X text 287 349 hit "ESC" after one of this actions; #X text 287 299 object this means not space between.; #X text 287 289 ! since ther is no way to get the size of an; #X text 287 392 this is based on iem_guts; #X text 288 440 (cc) 2009 Georg Werner; #N canvas 248 449 450 300 align_x 0; #N canvas 1065 466 450 300 sortobjectsbyxy 0; #X obj 20 247 2list-sort; #X obj 69 18 inlet; #X obj 69 60 list-drip; #X obj 69 196 list; #X obj 108 196 list; #X obj -72 176 list; #X obj -33 176 list; #X msg -72 135 \$1; #X msg -41 135 \$2; #X obj -93 223 list; #X obj 120 138 t b b; #X obj 20 272 outlet; #X obj 77 272 outlet; #X obj 69 38 t l b; #X obj 69 80 t f b f; #X obj 48 223 list; #X obj -41 196 list; #X obj -2 196 list; #X obj 160 224 list; #X obj 160 247 2list-sort; #X obj 160 272 outlet; #X obj 217 272 outlet; #X obj -72 114 canvasobjectposition 3; #X connect 0 0 11 0; #X connect 0 1 12 0; #X connect 1 0 13 0; #X connect 2 0 14 0; #X connect 2 1 10 0; #X connect 3 0 4 0; #X connect 3 0 15 1; #X connect 4 0 3 1; #X connect 5 0 6 0; #X connect 5 0 9 1; #X connect 6 0 5 1; #X connect 7 0 5 0; #X connect 8 0 16 0; #X connect 9 0 0 0; #X connect 10 0 9 0; #X connect 10 0 18 0; #X connect 10 1 15 0; #X connect 13 0 2 0; #X connect 13 1 4 1; #X connect 13 1 3 1; #X connect 13 1 5 1; #X connect 13 1 6 1; #X connect 13 1 16 1; #X connect 13 1 17 1; #X connect 14 0 3 0; #X connect 14 1 22 0; #X connect 14 2 22 1; #X connect 15 0 0 1; #X connect 15 0 19 1; #X connect 16 0 17 0; #X connect 16 0 18 1; #X connect 17 0 16 1; #X connect 18 0 19 0; #X connect 19 0 20 0; #X connect 19 1 21 0; #X connect 22 0 7 0; #X connect 22 0 8 0; #X restore 83 86 pd sortobjectsbyxy; #X obj 83 64 inlet; #X obj 97 128 list-drip; #N canvas 0 0 450 300 once 0; #X obj 169 77 inlet; #X msg 214 171 0; #X obj 169 251 outlet; #X obj 169 121 t b a; #X obj 264 78 inlet; #X msg 264 169 1; #X obj 169 202 spigot 1; #X connect 0 0 3 0; #X connect 1 0 6 1; #X connect 3 0 1 0; #X connect 3 1 6 0; #X connect 4 0 5 0; #X connect 5 0 6 1; #X connect 6 0 2 0; #X restore 246 172 pd once; #X obj 97 149 t b f f; #X msg 97 233 \$2; #X obj 97 254 list prepend; #X obj 246 192 t b f; #X msg 246 233 \$1; #X obj 246 212 canvasobjectposition 2; #X obj 97 212 canvasobjectposition 2; #X obj 97 274 canvasobjectposition 2; #X connect 0 3 2 0; #X connect 1 0 0 0; #X connect 2 0 4 0; #X connect 2 1 3 1; #X connect 3 0 7 0; #X connect 4 0 10 0; #X connect 4 1 10 1; #X connect 4 1 11 1; #X connect 4 2 3 0; #X connect 5 0 6 0; #X connect 6 0 11 0; #X connect 7 0 9 0; #X connect 7 1 9 1; #X connect 8 0 6 1; #X connect 9 0 8 0; #X connect 10 0 5 0; #X restore 25 120 pd align_x; #N canvas 862 232 450 300 align_y 0; #N canvas 1065 466 450 300 sortobjectsbyxy 0; #X obj 20 247 2list-sort; #X obj 69 18 inlet; #X obj 69 60 list-drip; #X obj 69 196 list; #X obj 108 196 list; #X obj -72 176 list; #X obj -33 176 list; #X msg -72 135 \$1; #X msg -41 135 \$2; #X obj -93 223 list; #X obj 120 138 t b b; #X obj 20 272 outlet; #X obj 77 272 outlet; #X obj 69 38 t l b; #X obj 69 80 t f b f; #X obj 48 223 list; #X obj -41 196 list; #X obj -2 196 list; #X obj 160 224 list; #X obj 160 247 2list-sort; #X obj 160 272 outlet; #X obj 217 272 outlet; #X obj -72 114 canvasobjectposition 3; #X connect 0 0 11 0; #X connect 0 1 12 0; #X connect 1 0 13 0; #X connect 2 0 14 0; #X connect 2 1 10 0; #X connect 3 0 4 0; #X connect 3 0 15 1; #X connect 4 0 3 1; #X connect 5 0 6 0; #X connect 5 0 9 1; #X connect 6 0 5 1; #X connect 7 0 5 0; #X connect 8 0 16 0; #X connect 9 0 0 0; #X connect 10 0 9 0; #X connect 10 0 18 0; #X connect 10 1 15 0; #X connect 13 0 2 0; #X connect 13 1 4 1; #X connect 13 1 3 1; #X connect 13 1 5 1; #X connect 13 1 6 1; #X connect 13 1 16 1; #X connect 13 1 17 1; #X connect 14 0 3 0; #X connect 14 1 22 0; #X connect 14 2 22 1; #X connect 15 0 0 1; #X connect 15 0 19 1; #X connect 16 0 17 0; #X connect 16 0 18 1; #X connect 17 0 16 1; #X connect 18 0 19 0; #X connect 19 0 20 0; #X connect 19 1 21 0; #X connect 22 0 7 0; #X connect 22 0 8 0; #X restore 83 56 pd sortobjectsbyxy; #X obj 83 34 inlet; #X obj 109 84 list-drip; #N canvas 0 0 450 300 once 0; #X obj 169 77 inlet; #X msg 214 171 0; #X obj 169 251 outlet; #X obj 169 121 t b a; #X obj 264 78 inlet; #X msg 264 169 1; #X obj 169 202 spigot 1; #X connect 0 0 3 0; #X connect 1 0 6 1; #X connect 3 0 1 0; #X connect 3 1 6 0; #X connect 4 0 5 0; #X connect 5 0 6 1; #X connect 6 0 2 0; #X restore 258 128 pd once; #X obj 109 105 t b f f; #X obj 258 148 t b f; #X obj 258 168 canvasobjectposition 2; #X obj 109 168 canvasobjectposition 2; #X obj 109 260 canvasobjectposition 2; #X obj 109 240 list; #X msg 109 189 \$1; #X msg 258 189 \$2; #X obj 130 219 t f b; #X connect 0 1 2 0; #X connect 1 0 0 0; #X connect 2 0 4 0; #X connect 2 1 3 1; #X connect 3 0 5 0; #X connect 4 0 7 0; #X connect 4 1 7 1; #X connect 4 1 8 1; #X connect 4 2 3 0; #X connect 5 0 6 0; #X connect 5 1 6 1; #X connect 6 0 11 0; #X connect 7 0 10 0; #X connect 9 0 8 0; #X connect 10 0 9 0; #X connect 11 0 12 0; #X connect 12 0 9 1; #X restore 36 140 pd align_y; #N canvas 69 452 450 300 align_equal_x 0; #X obj 103 121 t b l; #N canvas 1065 466 450 300 sortobjectsbyxy 0; #X obj 20 247 2list-sort; #X obj 69 18 inlet; #X obj 69 60 list-drip; #X obj 69 196 list; #X obj 108 196 list; #X obj -72 176 list; #X obj -33 176 list; #X msg -72 135 \$1; #X msg -41 135 \$2; #X obj -93 223 list; #X obj 120 138 t b b; #X obj 20 272 outlet; #X obj 77 272 outlet; #X obj 69 38 t l b; #X obj 69 80 t f b f; #X obj 48 223 list; #X obj -41 196 list; #X obj -2 196 list; #X obj 160 224 list; #X obj 160 247 2list-sort; #X obj 160 272 outlet; #X obj 217 272 outlet; #X obj -72 114 canvasobjectposition 3; #X connect 0 0 11 0; #X connect 0 1 12 0; #X connect 1 0 13 0; #X connect 2 0 14 0; #X connect 2 1 10 0; #X connect 3 0 4 0; #X connect 3 0 15 1; #X connect 4 0 3 1; #X connect 5 0 6 0; #X connect 5 0 9 1; #X connect 6 0 5 1; #X connect 7 0 5 0; #X connect 8 0 16 0; #X connect 9 0 0 0; #X connect 10 0 9 0; #X connect 10 0 18 0; #X connect 10 1 15 0; #X connect 13 0 2 0; #X connect 13 1 4 1; #X connect 13 1 3 1; #X connect 13 1 5 1; #X connect 13 1 6 1; #X connect 13 1 16 1; #X connect 13 1 17 1; #X connect 14 0 3 0; #X connect 14 1 22 0; #X connect 14 2 22 1; #X connect 15 0 0 1; #X connect 15 0 19 1; #X connect 16 0 17 0; #X connect 16 0 18 1; #X connect 17 0 16 1; #X connect 18 0 19 0; #X connect 19 0 20 0; #X connect 19 1 21 0; #X connect 22 0 7 0; #X connect 22 0 8 0; #X restore 103 98 pd sortobjectsbyxy; #N canvas 613 140 310 300 avg-dist 0; #X obj 19 96 list-minmax; #X obj 96 97 list-len; #X obj 43 153 -; #X obj 43 181 / 1; #X obj 43 201 int; #X obj 57 25 inlet; #X obj 43 249 outlet; #X obj 96 151 - 1; #X obj 41 122 swap; #X obj 57 71 t l l; #X connect 0 0 8 0; #X connect 0 1 8 1; #X connect 1 0 7 0; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 6 0; #X connect 5 0 9 0; #X connect 7 0 3 1; #X connect 8 0 2 0; #X connect 8 1 2 1; #X connect 9 0 0 0; #X connect 9 1 1 0; #X restore 130 204 pd avg-dist; #X obj 117 171 list; #X obj 103 31 inlet; #N canvas 9 373 450 300 algneq 0; #X obj 17 8 inlet; #X obj 17 69 list-drip; #N canvas 0 0 450 300 once 0; #X obj 169 77 inlet; #X msg 214 171 0; #X obj 169 251 outlet; #X obj 169 121 t b a; #X obj 264 78 inlet; #X msg 264 169 1; #X obj 169 202 spigot 1; #X connect 0 0 3 0; #X connect 1 0 6 1; #X connect 3 0 1 0; #X connect 3 1 6 0; #X connect 4 0 5 0; #X connect 5 0 6 1; #X connect 6 0 2 0; #X restore 166 113 pd once; #X obj 17 90 t b f f; #X obj 166 133 t b f; #X obj 310 20 inlet; #X obj 86 204 f; #X obj 113 204 + 0; #X msg 128 184 0; #X obj 17 250 t l b; #X obj 166 153 canvasobjectposition 3; #X obj 17 153 canvasobjectposition 3; #X obj 17 275 canvasobjectposition 3; #X msg 166 174 \$1; #X msg 17 174 \$2; #X obj 17 225 list prepend; #X connect 0 0 1 0; #X connect 1 0 3 0; #X connect 1 1 2 1; #X connect 1 1 8 0; #X connect 2 0 4 0; #X connect 3 0 11 0; #X connect 3 1 11 1; #X connect 3 1 12 1; #X connect 3 2 2 0; #X connect 4 0 10 0; #X connect 4 1 10 1; #X connect 5 0 7 1; #X connect 6 0 7 0; #X connect 6 0 15 1; #X connect 7 0 6 1; #X connect 8 0 7 1; #X connect 9 0 12 0; #X connect 9 1 6 0; #X connect 10 0 13 0; #X connect 11 0 14 0; #X connect 13 0 6 0; #X connect 14 0 15 0; #X connect 15 0 9 0; #X restore 67 233 pd algneq x; #X obj 103 143 delay 20; #X obj 103 59 t l b; #X connect 0 0 6 0; #X connect 0 1 2 0; #X connect 1 0 0 0; #X connect 1 1 3 1; #X connect 2 0 5 1; #X connect 3 0 5 0; #X connect 4 0 7 0; #X connect 6 0 3 0; #X connect 7 0 1 0; #X connect 7 1 3 1; #X restore 48 160 pd align_equal_x; #N canvas 856 668 450 300 align_equal_y 0; #X obj 173 121 t b l; #N canvas 1065 466 450 300 sortobjectsbyxy 0; #X obj 20 247 2list-sort; #X obj 69 18 inlet; #X obj 69 60 list-drip; #X obj 69 196 list; #X obj 108 196 list; #X obj -72 176 list; #X obj -33 176 list; #X msg -72 135 \$1; #X msg -41 135 \$2; #X obj -93 223 list; #X obj 120 138 t b b; #X obj 20 272 outlet; #X obj 77 272 outlet; #X obj 69 38 t l b; #X obj 69 80 t f b f; #X obj 48 223 list; #X obj -41 196 list; #X obj -2 196 list; #X obj 160 224 list; #X obj 160 247 2list-sort; #X obj 160 272 outlet; #X obj 217 272 outlet; #X obj -72 114 canvasobjectposition 3; #X connect 0 0 11 0; #X connect 0 1 12 0; #X connect 1 0 13 0; #X connect 2 0 14 0; #X connect 2 1 10 0; #X connect 3 0 4 0; #X connect 3 0 15 1; #X connect 4 0 3 1; #X connect 5 0 6 0; #X connect 5 0 9 1; #X connect 6 0 5 1; #X connect 7 0 5 0; #X connect 8 0 16 0; #X connect 9 0 0 0; #X connect 10 0 9 0; #X connect 10 0 18 0; #X connect 10 1 15 0; #X connect 13 0 2 0; #X connect 13 1 4 1; #X connect 13 1 3 1; #X connect 13 1 5 1; #X connect 13 1 6 1; #X connect 13 1 16 1; #X connect 13 1 17 1; #X connect 14 0 3 0; #X connect 14 1 22 0; #X connect 14 2 22 1; #X connect 15 0 0 1; #X connect 15 0 19 1; #X connect 16 0 17 0; #X connect 16 0 18 1; #X connect 17 0 16 1; #X connect 18 0 19 0; #X connect 19 0 20 0; #X connect 19 1 21 0; #X connect 22 0 7 0; #X connect 22 0 8 0; #X restore 103 98 pd sortobjectsbyxy; #N canvas 279 411 450 300 avg-dist 0; #X obj 19 96 list-minmax; #X obj 96 97 list-len; #X obj 43 153 -; #X obj 43 181 / 1; #X obj 43 201 int; #X obj 57 25 inlet; #X obj 43 249 outlet; #X obj 96 151 - 1; #X obj 41 122 swap; #X obj 57 71 t l l; #X connect 0 0 8 0; #X connect 0 1 8 1; #X connect 1 0 7 0; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 6 0; #X connect 5 0 9 0; #X connect 7 0 3 1; #X connect 8 0 2 0; #X connect 8 1 2 1; #X connect 9 0 0 0; #X connect 9 1 1 0; #X restore 200 204 pd avg-dist; #X obj 187 171 list; #X obj 103 31 inlet; #N canvas 9 373 450 300 algneq 0; #X obj 17 8 inlet; #X obj 17 69 list-drip; #N canvas 0 0 450 300 once 0; #X obj 169 77 inlet; #X msg 214 171 0; #X obj 169 251 outlet; #X obj 169 121 t b a; #X obj 264 78 inlet; #X msg 264 169 1; #X obj 169 202 spigot 1; #X connect 0 0 3 0; #X connect 1 0 6 1; #X connect 3 0 1 0; #X connect 3 1 6 0; #X connect 4 0 5 0; #X connect 5 0 6 1; #X connect 6 0 2 0; #X restore 166 113 pd once; #X obj 17 90 t b f f; #X obj 166 133 t b f; #X obj 310 20 inlet; #X obj 86 204 f; #X obj 113 204 + 0; #X msg 128 184 0; #X obj 17 250 t l b; #X obj 166 153 canvasobjectposition 3; #X obj 17 153 canvasobjectposition 3; #X obj 17 275 canvasobjectposition 3; #X msg 166 174 \$2; #X msg 17 174 \$1; #X obj 17 225 list; #X connect 0 0 1 0; #X connect 1 0 3 0; #X connect 1 1 2 1; #X connect 1 1 8 0; #X connect 2 0 4 0; #X connect 3 0 11 0; #X connect 3 1 11 1; #X connect 3 1 12 1; #X connect 3 2 2 0; #X connect 4 0 10 0; #X connect 4 1 10 1; #X connect 5 0 7 1; #X connect 6 0 7 0; #X connect 6 0 15 1; #X connect 7 0 6 1; #X connect 8 0 7 1; #X connect 9 0 12 0; #X connect 9 1 6 0; #X connect 10 0 13 0; #X connect 11 0 14 0; #X connect 13 0 6 0; #X connect 14 0 15 0; #X connect 15 0 9 0; #X restore 137 233 pd algneq y; #X obj 173 141 delay 20; #X obj 103 69 t l b; #X connect 0 0 6 0; #X connect 0 1 2 0; #X connect 1 2 0 0; #X connect 1 3 3 1; #X connect 2 0 5 1; #X connect 3 0 5 0; #X connect 4 0 7 0; #X connect 6 0 3 0; #X connect 7 0 1 0; #X connect 7 1 3 1; #X restore 59 180 pd align_equal_y; #N canvas 0 0 450 300 align_equal_x 0; #X obj 103 121 t b l; #N canvas 1065 466 450 300 sortobjectsbyxy 0; #X obj 20 247 2list-sort; #X obj 69 18 inlet; #X obj 69 60 list-drip; #X obj 69 196 list; #X obj 108 196 list; #X obj -72 176 list; #X obj -33 176 list; #X msg -72 135 \$1; #X msg -41 135 \$2; #X obj -93 223 list; #X obj 20 272 outlet; #X obj 77 272 outlet; #X obj 69 38 t l b; #X obj 69 80 t f b f; #X obj 48 223 list; #X obj -41 196 list; #X obj -2 196 list; #X obj 160 224 list; #X obj 160 247 2list-sort; #X obj 160 272 outlet; #X obj 217 272 outlet; #X obj -72 114 canvasobjectposition 3; #X obj 120 138 t b b b; #X connect 0 0 10 0; #X connect 0 1 11 0; #X connect 1 0 12 0; #X connect 2 0 13 0; #X connect 2 1 22 0; #X connect 3 0 4 0; #X connect 3 0 14 1; #X connect 4 0 3 1; #X connect 5 0 6 0; #X connect 5 0 9 1; #X connect 6 0 5 1; #X connect 7 0 5 0; #X connect 8 0 15 0; #X connect 9 0 0 0; #X connect 12 0 2 0; #X connect 12 1 4 1; #X connect 12 1 3 1; #X connect 12 1 5 1; #X connect 12 1 6 1; #X connect 12 1 15 1; #X connect 12 1 16 1; #X connect 13 0 3 0; #X connect 13 1 21 0; #X connect 13 2 21 1; #X connect 14 0 0 1; #X connect 14 0 18 1; #X connect 15 0 16 0; #X connect 15 0 17 1; #X connect 16 0 15 1; #X connect 17 0 18 0; #X connect 18 0 19 0; #X connect 18 1 20 0; #X connect 21 0 7 0; #X connect 21 0 8 0; #X connect 22 0 9 0; #X connect 22 1 17 0; #X connect 22 2 14 0; #X restore 103 98 pd sortobjectsbyxy; #N canvas 0 0 450 300 avg-dist 0; #X obj 19 96 list-minmax; #X obj 96 97 list-len; #X obj 43 153 -; #X obj 43 181 / 1; #X obj 43 201 int; #X obj 57 25 inlet; #X obj 43 249 outlet; #X obj 96 151 - 1; #X obj 41 122 swap; #X obj 57 71 t l l; #X obj 43 226 max 5; #X connect 0 0 8 0; #X connect 0 1 8 1; #X connect 1 0 7 0; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 10 0; #X connect 5 0 9 0; #X connect 7 0 3 1; #X connect 8 0 2 0; #X connect 8 1 2 1; #X connect 9 0 0 0; #X connect 9 1 1 0; #X connect 10 0 6 0; #X restore 130 204 pd avg-dist; #X obj 103 179 list; #X obj 103 31 inlet; #N canvas 9 373 450 300 algneq 0; #X obj 17 8 inlet; #X obj 17 69 list-drip; #N canvas 0 0 450 300 once 0; #X obj 169 77 inlet; #X msg 214 171 0; #X obj 169 251 outlet; #X obj 169 121 t b a; #X obj 264 78 inlet; #X msg 264 169 1; #X obj 169 202 spigot 1; #X connect 0 0 3 0; #X connect 1 0 6 1; #X connect 3 0 1 0; #X connect 3 1 6 0; #X connect 4 0 5 0; #X connect 5 0 6 1; #X connect 6 0 2 0; #X restore 166 113 pd once; #X obj 17 90 t b f f; #X obj 166 133 t b f; #X obj 310 20 inlet; #X obj 86 204 f; #X obj 113 204 + 0; #X msg 128 184 0; #X obj 17 250 t l b; #X obj 166 153 canvasobjectposition 3; #X obj 17 153 canvasobjectposition 3; #X obj 17 275 canvasobjectposition 3; #X msg 166 174 \$1; #X msg 17 174 \$2; #X obj 17 225 list prepend; #X connect 0 0 1 0; #X connect 1 0 3 0; #X connect 1 1 2 1; #X connect 1 1 8 0; #X connect 2 0 4 0; #X connect 3 0 11 0; #X connect 3 1 11 1; #X connect 3 1 12 1; #X connect 3 2 2 0; #X connect 4 0 10 0; #X connect 4 1 10 1; #X connect 5 0 7 1; #X connect 6 0 7 0; #X connect 6 0 15 1; #X connect 7 0 6 1; #X connect 8 0 7 1; #X connect 9 0 12 0; #X connect 9 1 6 0; #X connect 10 0 13 0; #X connect 11 0 14 0; #X connect 13 0 6 0; #X connect 14 0 15 0; #X connect 15 0 9 0; #X restore 67 233 pd algneq x; #X obj 103 69 t l b; #X connect 0 0 3 0; #X connect 0 1 2 0; #X connect 1 0 0 0; #X connect 1 3 3 1; #X connect 2 0 5 1; #X connect 3 0 5 0; #X connect 4 0 6 0; #X connect 6 0 1 0; #X connect 6 1 3 1; #X restore 82 242 pd align_equal_x; #N canvas 0 0 450 300 align_equal_y 0; #N canvas 1065 466 450 300 sortobjectsbyxy 1; #X obj 20 247 2list-sort; #X obj 69 18 inlet; #X obj 69 60 list-drip; #X obj 69 196 list; #X obj 108 196 list; #X obj -72 176 list; #X obj -33 176 list; #X msg -72 135 \$1; #X msg -41 135 \$2; #X obj -93 223 list; #X obj 20 272 outlet; #X obj 77 272 outlet; #X obj 69 38 t l b; #X obj 69 80 t f b f; #X obj 48 223 list; #X obj -41 196 list; #X obj -2 196 list; #X obj 160 224 list; #X obj 160 247 2list-sort; #X obj 160 272 outlet; #X obj 217 272 outlet; #X obj -72 114 canvasobjectposition 3; #X obj 120 138 t b b b; #X connect 0 0 10 0; #X connect 0 1 11 0; #X connect 1 0 12 0; #X connect 2 0 13 0; #X connect 2 1 22 0; #X connect 3 0 4 0; #X connect 3 0 14 1; #X connect 4 0 3 1; #X connect 5 0 6 0; #X connect 5 0 9 1; #X connect 6 0 5 1; #X connect 7 0 5 0; #X connect 8 0 15 0; #X connect 9 0 0 0; #X connect 12 0 2 0; #X connect 12 1 4 1; #X connect 12 1 3 1; #X connect 12 1 5 1; #X connect 12 1 6 1; #X connect 12 1 15 1; #X connect 12 1 16 1; #X connect 13 0 3 0; #X connect 13 1 21 0; #X connect 13 2 21 1; #X connect 14 0 0 1; #X connect 14 0 18 1; #X connect 15 0 16 0; #X connect 15 0 17 1; #X connect 16 0 15 1; #X connect 17 0 18 0; #X connect 18 0 19 0; #X connect 18 1 20 0; #X connect 21 0 7 0; #X connect 21 0 8 0; #X connect 22 0 9 0; #X connect 22 1 17 0; #X connect 22 2 14 0; #X restore 103 98 pd sortobjectsbyxy; #N canvas 0 0 450 300 avg-dist 0; #X obj 19 96 list-minmax; #X obj 96 97 list-len; #X obj 43 153 -; #X obj 43 181 / 1; #X obj 43 201 int; #X obj 57 25 inlet; #X obj 43 249 outlet; #X obj 96 151 - 1; #X obj 41 122 swap; #X obj 57 71 t l l; #X obj 43 228 max 5; #X connect 0 0 8 0; #X connect 0 1 8 1; #X connect 1 0 7 0; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 10 0; #X connect 5 0 9 0; #X connect 7 0 3 1; #X connect 8 0 2 0; #X connect 8 1 2 1; #X connect 9 0 0 0; #X connect 9 1 1 0; #X connect 10 0 6 0; #X restore 180 204 pd avg-dist; #X obj 117 179 list; #X obj 103 31 inlet; #N canvas 9 373 450 300 algneq 0; #X obj 17 8 inlet; #X obj 17 69 list-drip; #N canvas 0 0 450 300 once 0; #X obj 169 77 inlet; #X msg 214 171 0; #X obj 169 251 outlet; #X obj 169 121 t b a; #X obj 264 78 inlet; #X msg 264 169 1; #X obj 169 202 spigot 1; #X connect 0 0 3 0; #X connect 1 0 6 1; #X connect 3 0 1 0; #X connect 3 1 6 0; #X connect 4 0 5 0; #X connect 5 0 6 1; #X connect 6 0 2 0; #X restore 166 113 pd once; #X obj 17 90 t b f f; #X obj 166 133 t b f; #X obj 310 20 inlet; #X obj 86 204 f; #X obj 113 204 + 0; #X msg 128 184 0; #X obj 17 250 t l b; #X obj 166 153 canvasobjectposition 3; #X obj 17 153 canvasobjectposition 3; #X obj 17 275 canvasobjectposition 3; #X msg 166 174 \$2; #X msg 17 174 \$1; #X obj 17 225 list; #X connect 0 0 1 0; #X connect 1 0 3 0; #X connect 1 1 2 1; #X connect 1 1 8 0; #X connect 2 0 4 0; #X connect 3 0 11 0; #X connect 3 1 11 1; #X connect 3 1 12 1; #X connect 3 2 2 0; #X connect 4 0 10 0; #X connect 4 1 10 1; #X connect 5 0 7 1; #X connect 6 0 7 0; #X connect 6 0 15 1; #X connect 7 0 6 1; #X connect 8 0 7 1; #X connect 9 0 12 0; #X connect 9 1 6 0; #X connect 10 0 13 0; #X connect 11 0 14 0; #X connect 13 0 6 0; #X connect 14 0 15 0; #X connect 15 0 9 0; #X restore 117 233 pd algneq y; #X obj 103 66 t l b; #X obj 180 178 list; #X obj 117 148 t b l b; #X connect 0 1 7 0; #X connect 0 2 6 1; #X connect 1 0 4 1; #X connect 2 0 4 0; #X connect 3 0 5 0; #X connect 5 0 0 0; #X connect 5 1 2 1; #X connect 6 0 1 0; #X connect 7 0 2 0; #X connect 7 1 2 1; #X connect 7 2 6 0; #X restore 102 302 pd align_equal_y; #X obj 102 282 list; #X obj 82 222 t l b l; #X obj 102 262 delay 100; #N canvas 0 0 450 300 align_grid 0; #X obj -131 81 list-drip; #X obj -131 22 inlet; #X obj 47 63 loadbang; #N canvas 0 22 399 321 quantize 0; #X obj 200 172 / 2; #X obj 168 200 >; #X obj 57 219 +; #X obj 57 246 *; #X obj 237 202 t a; #X obj 57 119 t a a; #X obj 162 172 fmod; #X obj 57 172 /; #X obj 57 195 int; #X obj 166 120 t a a a a; #X obj 166 49 inlet; #X obj 24 49 inlet; #X obj 36 295 outlet; #X text 233 159 if remainder is > 1/2 \,; #X text 234 173 quantize to next snappoint; #X text 222 167 <; #X obj 7 219 +; #X obj 7 246 *; #X obj 7 119 t a a; #X obj 7 172 /; #X obj 7 195 int; #X obj 36 270 pack; #X obj 24 82 unpack; #X obj 122 172 fmod; #X obj 130 201 >; #X connect 0 0 1 1; #X connect 0 0 24 1; #X connect 1 0 2 1; #X connect 2 0 3 0; #X connect 3 0 21 1; #X connect 4 0 3 1; #X connect 4 0 17 1; #X connect 5 0 7 0; #X connect 5 1 6 0; #X connect 6 0 1 0; #X connect 7 0 8 0; #X connect 8 0 2 0; #X connect 9 0 7 1; #X connect 9 0 19 1; #X connect 9 1 6 1; #X connect 9 1 23 1; #X connect 9 2 0 0; #X connect 9 3 4 0; #X connect 10 0 9 0; #X connect 11 0 22 0; #X connect 16 0 17 0; #X connect 17 0 21 0; #X connect 18 0 19 0; #X connect 18 1 23 0; #X connect 19 0 20 0; #X connect 20 0 16 0; #X connect 21 0 12 0; #X connect 22 0 18 0; #X connect 22 1 5 0; #X connect 23 0 24 0; #X connect 24 0 16 1; #X restore -131 166 pd quantize; #X obj -131 107 t b a a; #X obj 47 145 t a; #X obj -131 137 canvasobjectposition 2; #X obj -131 195 canvasobjectposition 2; #X msg 47 123 15; #X text 92 172 by Luke Iannini; #X connect 0 0 4 0; #X connect 1 0 0 0; #X connect 2 0 8 0; #X connect 3 0 7 0; #X connect 4 0 6 0; #X connect 4 1 6 1; #X connect 4 2 7 1; #X connect 5 0 3 1; #X connect 6 0 3 0; #X connect 8 0 5 0; #X restore 72 200 pd align_grid; #X text 287 402 thanks to IOhannes m zmoelnig & Luke Iannini; #N canvas 278 583 986 415 core 1; #N canvas 0 0 450 466 undo 0; #X obj 51 24 inlet; #X obj 51 47 t l b; #X obj 49 150 list; #X obj 88 150 list; #X obj 28 177 list; #X obj 149 150 list; #X obj 188 150 list; #X obj 183 179 list; #X obj 51 68 list-drip; #X obj 51 89 t b f; #X obj 261 19 inlet; #X obj 28 222 list split 2; #X obj 183 222 list split 1; #X obj 28 245 list; #X obj 67 243 list; #X obj 183 246 t b b b f; #X obj 248 246 list; #X obj 256 69 t b b; #X obj 207 44 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X obj 183 199 t l b; #X obj 28 199 t l b; #X obj 28 283 canvasobjectposition 3; #X obj -51 110 canvasobjectposition 3; #X connect 0 0 1 0; #X connect 1 0 8 0; #X connect 1 1 2 1; #X connect 1 1 3 1; #X connect 1 1 5 1; #X connect 1 1 6 1; #X connect 2 0 3 0; #X connect 2 0 4 1; #X connect 3 0 2 1; #X connect 4 0 20 0; #X connect 5 0 6 0; #X connect 5 0 7 1; #X connect 6 0 5 1; #X connect 7 0 19 0; #X connect 8 0 9 0; #X connect 9 0 22 0; #X connect 9 1 5 0; #X connect 9 1 22 1; #X connect 10 0 17 0; #X connect 11 0 13 1; #X connect 11 1 14 1; #X connect 12 0 15 0; #X connect 12 1 16 1; #X connect 13 0 21 0; #X connect 14 0 4 0; #X connect 15 0 16 0; #X connect 15 1 14 0; #X connect 15 2 13 0; #X connect 15 3 21 1; #X connect 16 0 7 0; #X connect 17 0 7 0; #X connect 17 1 4 0; #X connect 18 0 17 0; #X connect 19 0 12 0; #X connect 19 1 7 1; #X connect 20 0 11 0; #X connect 20 1 4 1; #X connect 22 0 2 0; #X restore 52 261 pd undo; #X obj 103 211 t l l; #X msg 348 117 0; #X msg 185 118 0; #X obj 91 22 route key; #X obj 91 41 route 1; #X msg 91 60 \$1; #N canvas 0 0 301 300 r_once| 0; #X obj 29 25 inlet; #X msg 62 153 0; #X obj 29 251 outlet; #X obj 29 51 t b a; #X obj 118 23 inlet; #X obj 29 202 spigot; #X msg 191 171 1; #X obj 164 81 sel 0; #X obj 118 49 route bang float; #X msg 92 171 0; #X msg 221 181 1; #X obj 221 80 r active_|; #X obj 221 212 s active_|; #X obj 92 212 s inactive_|; #X obj 92 152 r inactive_|; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 13 0; #X connect 3 0 1 0; #X connect 3 1 5 0; #X connect 4 0 8 0; #X connect 5 0 2 0; #X connect 6 0 5 1; #X connect 6 0 12 0; #X connect 7 0 1 0; #X connect 7 1 6 0; #X connect 8 0 6 0; #X connect 8 1 7 0; #X connect 8 2 6 0; #X connect 9 0 5 1; #X connect 10 0 5 1; #X connect 11 0 10 0; #X connect 14 0 9 0; #X restore 150 158 pd r_once|; #N canvas 0 0 301 300 r_once| 0; #X obj 29 25 inlet; #X msg 62 153 0; #X obj 29 251 outlet; #X obj 29 51 t b a; #X obj 118 23 inlet; #X obj 29 202 spigot; #X msg 191 171 1; #X obj 164 81 sel 0; #X obj 118 49 route bang float; #X msg 92 171 0; #X msg 221 181 1; #X obj 92 212 s inactive_|; #X obj 92 152 r inactive_|; #X obj 221 212 s active_|; #X obj 221 80 r active_|; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 11 0; #X connect 3 0 1 0; #X connect 3 1 5 0; #X connect 4 0 8 0; #X connect 5 0 2 0; #X connect 6 0 5 1; #X connect 6 0 13 0; #X connect 7 0 1 0; #X connect 7 1 6 0; #X connect 8 0 6 0; #X connect 8 1 7 0; #X connect 8 2 6 0; #X connect 9 0 5 1; #X connect 10 0 5 1; #X connect 12 0 9 0; #X connect 14 0 10 0; #X restore 221 157 pd r_once|; #N canvas 0 0 301 300 r_once# 0; #X obj 29 25 inlet; #X msg 62 153 0; #X obj 29 251 outlet; #X obj 29 51 t b a; #X obj 118 23 inlet; #X obj 29 202 spigot; #X msg 191 171 1; #X obj 164 81 sel 0; #X obj 118 49 route bang float; #X msg 92 171 0; #X msg 221 181 1; #X obj 221 80 r active_#; #X obj 221 212 s active_#; #X obj 92 212 s inactive_#; #X obj 92 152 r inactive_#; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 13 0; #X connect 3 0 1 0; #X connect 3 1 5 0; #X connect 4 0 8 0; #X connect 5 0 2 0; #X connect 6 0 5 1; #X connect 6 0 12 0; #X connect 7 0 1 0; #X connect 7 1 6 0; #X connect 8 0 6 0; #X connect 8 1 7 0; #X connect 8 2 6 0; #X connect 9 0 5 1; #X connect 10 0 5 1; #X connect 11 0 10 0; #X connect 14 0 9 0; #X restore 291 157 pd r_once#; #N canvas 0 0 301 300 r_once# 0; #X obj 29 25 inlet; #X msg 62 153 0; #X obj 29 251 outlet; #X obj 29 51 t b a; #X obj 118 23 inlet; #X obj 29 202 spigot; #X msg 191 171 1; #X obj 164 81 sel 0; #X obj 118 49 route bang float; #X msg 92 171 0; #X msg 221 181 1; #X obj 221 80 r active_#; #X obj 222 212 s active_#; #X obj 92 212 s inactive_#; #X obj 92 152 r inactive_#; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 13 0; #X connect 3 0 1 0; #X connect 3 1 5 0; #X connect 4 0 8 0; #X connect 5 0 2 0; #X connect 6 0 5 1; #X connect 6 0 12 0; #X connect 7 0 1 0; #X connect 7 1 6 0; #X connect 8 0 6 0; #X connect 8 1 7 0; #X connect 8 2 6 0; #X connect 9 0 5 1; #X connect 10 0 5 1; #X connect 11 0 10 0; #X connect 14 0 9 0; #X restore 362 157 pd r_once#; #X obj 91 3 receivecanvas 2; #X obj 103 191 canvasselect 2; #X obj 150 281 list; #X obj 180 281 list; #X obj 210 281 list; #X obj 270 281 list; #X obj 240 281 list; #N canvas 1028 673 301 300 r_once# 0; #X obj 29 25 inlet; #X msg 62 153 0; #X obj 29 251 outlet; #X obj 29 51 t b a; #X obj 118 23 inlet; #X obj 29 202 spigot; #X msg 191 171 1; #X obj 164 81 sel 0; #X obj 118 49 route bang float; #X msg 92 171 0; #X msg 221 181 1; #X obj 221 80 r active_#; #X obj 222 212 s active_#; #X obj 92 212 s inactive_#; #X obj 92 152 r inactive_#; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 13 0; #X connect 3 0 1 0; #X connect 3 1 5 0; #X connect 4 0 8 0; #X connect 5 0 2 0; #X connect 6 0 5 1; #X connect 6 0 12 0; #X connect 7 0 1 0; #X connect 7 1 6 0; #X connect 8 0 6 0; #X connect 8 1 7 0; #X connect 8 2 6 0; #X connect 9 0 5 1; #X connect 10 0 5 1; #X connect 11 0 10 0; #X connect 14 0 9 0; #X restore 432 157 pd r_once#; #X obj 147 362 outlet; #X obj 197 362 outlet; #X obj 247 362 outlet; #X obj 297 362 outlet; #X obj 347 362 outlet; #X obj 300 281 list; #N canvas 0 0 301 300 r_once# 0; #X obj 29 25 inlet; #X msg 62 153 0; #X obj 29 251 outlet; #X obj 29 51 t b a; #X obj 118 23 inlet; #X obj 29 202 spigot; #X msg 191 171 1; #X obj 164 81 sel 0; #X obj 118 49 route bang float; #X msg 92 171 0; #X msg 221 181 1; #X obj 221 80 r active_#; #X obj 222 212 s active_#; #X obj 92 212 s inactive_#; #X obj 92 152 r inactive_#; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 13 0; #X connect 3 0 1 0; #X connect 3 1 5 0; #X connect 4 0 8 0; #X connect 5 0 2 0; #X connect 6 0 5 1; #X connect 6 0 12 0; #X connect 7 0 1 0; #X connect 7 1 6 0; #X connect 8 0 6 0; #X connect 8 1 7 0; #X connect 8 2 6 0; #X connect 9 0 5 1; #X connect 10 0 5 1; #X connect 11 0 10 0; #X connect 14 0 9 0; #X restore 502 157 pd r_once#; #X obj 397 362 outlet; #X obj 91 79 sel 27 124 35 120 121 115 103 91; #N canvas 0 0 301 300 r_once[ 0; #X obj 29 25 inlet; #X msg 62 153 0; #X obj 29 251 outlet; #X obj 29 51 t b a; #X obj 118 23 inlet; #X obj 29 202 spigot; #X msg 191 171 1; #X obj 164 81 sel 0; #X obj 118 49 route bang float; #X msg 92 171 0; #X msg 221 181 1; #X obj 221 80 r active_[; #X obj 222 212 s active_[; #X obj 92 212 s inactive_[; #X obj 92 152 r inactive_[; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 13 0; #X connect 3 0 1 0; #X connect 3 1 5 0; #X connect 4 0 8 0; #X connect 5 0 2 0; #X connect 6 0 5 1; #X connect 6 0 12 0; #X connect 7 0 1 0; #X connect 7 1 6 0; #X connect 8 0 6 0; #X connect 8 1 7 0; #X connect 8 2 6 0; #X connect 9 0 5 1; #X connect 10 0 5 1; #X connect 11 0 10 0; #X connect 14 0 9 0; #X restore 572 157 pd r_once[; #X obj 330 281 list; #X obj 447 362 outlet; #X msg 572 118 0; #X text 579 189 this is a preparation for connection funtionality "[x" ; #X text 579 179 ^; #X connect 1 0 13 1; #X connect 1 0 14 1; #X connect 1 0 15 1; #X connect 1 0 17 1; #X connect 1 0 16 1; #X connect 1 0 24 1; #X connect 1 0 29 1; #X connect 1 1 0 0; #X connect 2 0 9 1; #X connect 3 0 7 1; #X connect 4 0 5 0; #X connect 5 0 6 0; #X connect 6 0 27 0; #X connect 7 0 13 0; #X connect 8 0 14 0; #X connect 9 0 15 0; #X connect 10 0 17 0; #X connect 11 0 4 0; #X connect 12 0 1 0; #X connect 13 0 19 0; #X connect 14 0 20 0; #X connect 15 0 21 0; #X connect 16 0 23 0; #X connect 17 0 22 0; #X connect 18 0 16 0; #X connect 24 0 26 0; #X connect 25 0 24 0; #X connect 27 0 0 1; #X connect 27 1 3 0; #X connect 27 1 12 0; #X connect 27 1 7 1; #X connect 27 1 31 0; #X connect 27 1 2 0; #X connect 27 2 12 0; #X connect 27 2 9 1; #X connect 27 2 31 0; #X connect 27 3 7 0; #X connect 27 3 9 0; #X connect 27 3 28 0; #X connect 27 4 10 0; #X connect 27 4 8 0; #X connect 27 5 25 0; #X connect 27 6 18 0; #X connect 27 7 28 1; #X connect 27 7 2 0; #X connect 27 7 3 0; #X connect 28 0 29 0; #X connect 29 0 30 0; #X connect 31 0 28 0; #X restore 25 89 pd core ----; #X text 287 309 "g" place objects on a grid (by Luke Iannini); #X text 287 319 "s" place objects like a staircase; #X connect 27 0 26 0; #X connect 28 0 25 0; #X connect 28 1 29 0; #X connect 28 2 27 1; #X connect 29 0 27 0; #X connect 32 0 21 0; #X connect 32 1 22 0; #X connect 32 2 23 0; #X connect 32 3 24 0; #X connect 32 4 30 0; #X connect 32 5 28 0;