From be5376b35f5baa2604869a5f548009278f20ca79 Mon Sep 17 00:00:00 2001 From: Frank Barknecht Date: Mon, 20 Jun 2005 19:03:15 +0000 Subject: Lots of changes, first batch svn path=/trunk/externals/nusmuk/; revision=3225 --- editor/gem_links.pd | 48 +- editor/gem_masses.pd | 23 +- editor/morelinks.pd | 49 +- editor/msd-editor.pd | 2059 ++++++++++++++++++++++++++++++++++---------------- editor/msd_append.pd | 178 +++-- editor/structures.pd | 8 +- 6 files changed, 1577 insertions(+), 788 deletions(-) diff --git a/editor/gem_links.pd b/editor/gem_links.pd index 6c9f1b0..4690d56 100644 --- a/editor/gem_links.pd +++ b/editor/gem_links.pd @@ -4,7 +4,6 @@ #X obj 109 389 separator; #X obj 109 337 any; #X obj 147 166 t b f; -#X obj 156 432 curve 2; #X obj 178 210 pack 0 0 0; #X obj 269 213 pack 0 0 0; #X obj 141 97 unpack 0 0 0 0 0; @@ -37,28 +36,29 @@ #X restore 141 64 pd demux; #X obj 192 37 r MSD-TYPE; #X obj 280 97 unpack 0 0 0 0 0 0 0; -#X connect 0 0 13 0; +#X obj 156 432 curve2; +#X connect 0 0 12 0; #X connect 1 0 3 1; -#X connect 2 0 5 0; -#X connect 3 0 10 0; +#X connect 2 0 15 0; +#X connect 3 0 9 0; #X connect 4 0 3 0; -#X connect 4 1 6 0; -#X connect 6 0 5 1; -#X connect 7 0 5 2; -#X connect 8 1 4 0; -#X connect 8 2 6 1; -#X connect 8 3 7 0; -#X connect 8 4 7 1; -#X connect 9 0 10 1; -#X connect 10 0 2 0; -#X connect 11 0 10 1; -#X connect 12 0 11 0; -#X connect 13 0 8 0; -#X connect 13 1 15 0; -#X connect 14 0 13 1; -#X connect 15 1 4 0; -#X connect 15 2 6 1; -#X connect 15 3 6 2; -#X connect 15 4 7 0; -#X connect 15 5 7 1; -#X connect 15 6 7 2; +#X connect 4 1 5 0; +#X connect 5 0 15 1; +#X connect 6 0 15 2; +#X connect 7 1 4 0; +#X connect 7 2 5 1; +#X connect 7 3 6 0; +#X connect 7 4 6 1; +#X connect 8 0 9 1; +#X connect 9 0 2 0; +#X connect 10 0 9 1; +#X connect 11 0 10 0; +#X connect 12 0 7 0; +#X connect 12 1 14 0; +#X connect 13 0 12 1; +#X connect 14 1 4 0; +#X connect 14 2 5 1; +#X connect 14 3 5 2; +#X connect 14 4 6 0; +#X connect 14 5 6 1; +#X connect 14 6 6 2; diff --git a/editor/gem_masses.pd b/editor/gem_masses.pd index aab3547..e1bbad2 100644 --- a/editor/gem_masses.pd +++ b/editor/gem_masses.pd @@ -1,4 +1,4 @@ -#N canvas 308 314 667 612 10; +#N canvas 28 301 667 612 10; #X obj 141 31 inlet; #X obj 150 424 translateXYZ; #X obj 107 205 gemhead; @@ -37,15 +37,24 @@ #X restore 141 71 pd demux; #X obj 192 44 r MSD-TYPE; #X obj 238 104 unpack 0 0 0 0; -#X obj 150 453 sphere 0.05; +#X floatatom 308 400 5 0 0 0 - - -; +#X obj 126 479 square 0.025; +#X msg 259 469 text \$1; +#X obj 279 561 text3d; +#X obj 388 503 loadbang; +#X msg 385 528 2; +#X obj 391 395 inlet mass-id; +#X obj 211 516 spigot; #X connect 0 0 13 0; -#X connect 1 0 16 0; +#X connect 1 0 17 0; +#X connect 1 0 23 0; #X connect 2 0 4 1; #X connect 3 0 1 0; #X connect 4 0 10 0; #X connect 5 0 4 0; #X connect 5 1 1 1; #X connect 7 0 6 0; +#X connect 8 0 18 0; #X connect 8 1 5 0; #X connect 8 2 1 2; #X connect 9 0 10 1; @@ -55,6 +64,14 @@ #X connect 13 0 8 0; #X connect 13 1 15 0; #X connect 14 0 13 1; +#X connect 15 0 18 0; #X connect 15 1 5 0; #X connect 15 2 1 2; #X connect 15 3 1 3; +#X connect 16 0 17 1; +#X connect 18 0 19 0; +#X connect 20 0 21 0; +#X connect 21 0 19 1; +#X connect 22 0 23 1; +#X connect 22 0 19 1; +#X connect 23 0 19 0; diff --git a/editor/morelinks.pd b/editor/morelinks.pd index 826a2d7..60d7624 100644 --- a/editor/morelinks.pd +++ b/editor/morelinks.pd @@ -1,4 +1,4 @@ -#N canvas 225 469 135 205 10; +#N canvas 225 469 146 202 10; #N canvas 375 417 614 523 left-right-links 0; #X obj 192 225 pointer mass; #X obj 184 423 pack p p; @@ -43,10 +43,10 @@ to right and create links between two neighbor masses like:; #X connect 16 0 15 1; #X connect 18 0 20 1; #X connect 19 0 0 0; -#X restore 141 68 pd left-right-links; -#X obj 2 19 cnv 15 130 80 empty empty empty 20 12 0 14 -233017 -66577 +#X restore 141 67 pd left-right-links; +#X obj 2 18 cnv 15 140 80 empty empty empty 20 12 0 14 -233017 -66577 0; -#X obj 10 53 bng 15 250 50 0 empty empty left-to-right 20 8 0 8 -241291 +#X obj 10 52 bng 15 250 50 0 empty empty left-to-right 20 8 0 8 -241291 -1 -1; #N canvas 487 247 771 749 one-to-many 0; #X obj 203 173 pointer mass; @@ -85,22 +85,22 @@ to right and create links between two neighbor masses like:; #X connect 12 1 2 0; #X connect 13 0 15 1; #X connect 14 0 5 0; -#X restore 143 95 pd one-to-many; -#X obj 10 76 tgl 15 0 empty empty one2many-Start 20 8 0 8 -262131 -1 +#X restore 143 94 pd one-to-many; +#X obj 10 75 tgl 15 0 empty empty one2many-Start 20 8 0 8 -262131 -1 -1 0 1; -#X obj 10 31 bng 15 250 50 0 empty empty all_selected 20 8 0 8 -241291 +#X obj 10 30 bng 15 250 50 0 empty empty all_selected 20 8 0 8 -241291 -1 -1; -#X obj 109 30 tgl 15 0 empty empty Keys -3 -6 0 8 -24198 -1 -1 0 1 +#X obj 115 31 tgl 15 0 empty empty Keys -3 -6 0 8 -24198 -1 -1 0 1 ; -#X obj 211 6 keyup; -#X obj 211 27 spigot; -#X obj 2 101 cnv 15 130 100 empty empty Link_Params 10 10 0 10 -195568 +#X obj 211 5 keyup; +#X obj 211 26 spigot; +#X obj 2 100 cnv 15 140 100 empty empty Link_Params 10 10 0 10 -195568 -1 0; -#X obj 20 121 nbx 4 14 -1e+37 1e+37 0 0 \$0-K \$0-K K -12 8 0 10 -225271 +#X obj 20 120 nbx 4 14 -1e+37 1e+37 0 0 \$0-K \$0-K K -12 8 0 10 -225271 -1 -1 10 256; -#X obj 46 182 nbx 5 14 -1e+37 1e+37 0 0 \$0-lsid \$0-lsid SID -30 8 +#X obj 46 181 nbx 5 14 -1e+37 1e+37 0 0 \$0-lsid \$0-lsid SID -30 8 0 10 -261681 -1 -1 0 256; -#X obj 20 138 nbx 4 14 -1e+37 1e+37 0 0 \$0-D \$0-D D -12 8 0 10 -225271 +#X obj 20 142 nbx 4 14 -1e+37 1e+37 0 0 \$0-D \$0-D D -12 8 0 10 -225271 -1 -1 2.5 256; #N canvas 374 319 746 411 linkparam 0; #X obj 34 229 s \$0-link-param; @@ -138,6 +138,8 @@ to right and create links between two neighbor masses like:; #X obj 235 106 t b f; #X obj 195 53 r \$0-Lmin; #X obj 235 78 r \$0-Lmax; +#X obj 49 315 outlet; +#X obj 49 287 r \$0-link-param; #X connect 1 0 30 0; #X connect 1 1 30 1; #X connect 2 0 30 0; @@ -178,7 +180,8 @@ to right and create links between two neighbor masses like:; #X connect 32 1 30 5; #X connect 33 0 31 0; #X connect 34 0 32 0; -#X restore 145 127 pd linkparam; +#X connect 36 0 35 0; +#X restore 145 126 pd linkparam; #N canvas 0 0 483 507 ilinker 0; #X obj 195 306 pointer mass; #X obj 197 167 pointer mass; @@ -209,14 +212,15 @@ masses like iLink.; #X connect 8 0 11 1; #X connect 9 0 1 0; #X connect 10 0 0 0; -#X restore 137 46 pd ilinker; -#X obj 210 47 select 108 114; -#X obj 68 132 nbx 3 14 0 1e+37 0 0 \$0-Lmin \$0-Lmin Lmin 0 -8 0 10 +#X restore 137 45 pd ilinker; +#X obj 210 46 select 108 114; +#X obj 77 132 nbx 3 14 0 1e+37 0 0 \$0-Lmin \$0-Lmin Lmin 0 -8 0 10 -225271 -1 -1 0 256; -#X obj 20 155 nbx 3 14 -1e+37 1e+37 0 0 \$0-P \$0-P P -12 8 0 10 -225271 +#X obj 20 161 nbx 3 14 -1e+37 1e+37 0 0 \$0-P \$0-P P -12 8 0 10 -225271 -1 -1 1 256; -#X obj 67 162 nbx 6 14 0 1e+37 0 0 \$0-Lmax \$0-Lmax Lmax 0 -8 0 10 --225271 -1 -1 0 256; +#X obj 76 162 nbx 6 14 0 1e+37 0 0 \$0-Lmax \$0-Lmax Lmax 0 -8 0 10 +-225271 -1 -1 1e+10 256; +#X obj 145 156 outlet; #X connect 2 0 0 0; #X connect 3 0 4 0; #X connect 4 0 3 0; @@ -224,6 +228,7 @@ masses like iLink.; #X connect 6 0 8 1; #X connect 7 0 8 0; #X connect 8 0 15 0; +#X connect 13 0 19 0; #X connect 15 0 14 0; #X connect 15 1 0 0; -#X coords 0 0 1 1 132 200 1; +#X coords 0 0 1 1 142 200 1; diff --git a/editor/msd-editor.pd b/editor/msd-editor.pd index 31ad552..eb6b9ce 100644 --- a/editor/msd-editor.pd +++ b/editor/msd-editor.pd @@ -1,380 +1,112 @@ -#N canvas 416 29 415 616 10; -#X obj 9 50 cnv 15 400 200 empty empty EDIT 20 12 1 14 -233017 -66577 +#N struct liaison float x1 float y1 float x2 float y2 float mid1 float +mid2 float lid float K float D float P float Lmin float Lmax float +sid; +#N struct mass float x float y float mid float mob float M float sid +; +#N canvas 249 108 419 631 10; +#X obj 9 50 cnv 15 400 220 empty empty EDIT 20 12 1 14 -233017 -66577 0; -#X obj 9 256 cnv 15 400 60 empty empty CREATE 20 12 1 14 -195568 -66577 +#X obj 9 275 cnv 15 400 60 empty empty CREATE 20 12 1 14 -195568 -66577 0; -#X obj 10 321 cnv 15 400 140 empty empty CONTROL 20 12 1 14 -233017 +#X obj 10 340 cnv 15 400 140 empty empty CONTROL 20 12 1 14 -233017 -66577 0; -#N canvas 740 0 1022 952 data 0; -#X restore 323 192 pd data; -#X obj 221 276 bng 24 250 50 0 \$0-generate \$0-generate generate 0 +#X obj 211 295 bng 24 250 50 0 \$0-generate \$0-generate generate 0 -6 0 8 -24198 -1 -1; -#N canvas 366 103 781 748 generator 0; -#N canvas 311 93 877 551 getter 0; -#X obj 244 89 inlet; -#X obj 330 145 outlet; -#X text 91 57 First build masses \, then links!!; -#X obj 234 285 outlet; -#N canvas 629 18 551 784 fix-mass-ids 0; -#X obj 43 72 t b b b b b b b; -#X msg 79 168 traverse pd-data \, next; -#X obj 79 200 pointer mass; -#X obj 143 103 s \$0-reset-counter; -#N canvas 331 520 708 349 counter 0; -#X obj 156 125 f 0; -#X msg 172 102 0; -#X obj 172 74 r \$0-reset-counter; -#X obj 188 125 + 1; -#X obj 156 179 outlet; -#X obj 156 50 inlet; +#N canvas 392 0 718 819 activate 0; +#X obj 233 238 r \$0-msd; +#X obj 233 453 gem_masses; +#X obj 313 445 gem_links; +#X obj 177 113 gemhead; +#X obj 233 396 route massesPos linksPos; +#X obj 97 710 gemwin; +#X msg 97 683 0 \, destroy; +#X obj 249 354 s \$0-msd-out; +#X obj 97 597 select 1 0; +#X obj 97 569 tgl 24 0 empty empty GEM 0 -6 0 8 -262144 -1 -1 0 1; +#X obj 275 330 s \$0-msd-attr; +#X obj 211 541 s masspositions; +#X obj 313 515 s linkspositions; +#X obj 167 69 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 233 421 spigot; +#X obj 313 421 spigot; +#X text 238 559 sent to the data struct pointers; +#X obj 279 192 s pollpos; +#X obj 165 22 inlet data_only; +#X obj 39 488 inlet GEM; +#X obj 341 40 inlet speed; +#X obj 20 550 select 1; +#X msg 20 575 0; +#X obj 38 512 t f f; +#X obj 54 90 select 1; +#X msg 54 115 0; +#X obj 72 52 t f f; +#X msg 135 283 set \$1; +#X msg 14 639 set \$1; +#X obj 141 309 outlet; +#X obj 15 665 outlet; +#X obj 167 92 metro 20; +#X obj 413 395 r \$0-gem-masses-on; +#X obj 415 439 r \$0-gem-links-on; +#X obj 279 171 spigot 1; +#X obj 330 145 r \$0-poll-ds; +#X obj 346 469 r \$0-set-ds; +#X obj 233 516 spigot 1; +#X obj 313 496 spigot 1; +#X obj 297 238 r \$0-save-msd; +#X obj 257 286 s \$0-msd2save; +#X obj 255 261 spigot 0; +#N canvas 0 0 788 568 msd 0; +#N canvas 0 0 450 300 demux 0; +#X obj 91 69 inlet; +#X obj 255 73 inlet; +#X obj 223 106 select 0; +#X obj 73 213 spigot 1; +#X obj 165 219 spigot 0; +#X obj 141 188 unpack 1 0; +#X obj 96 255 outlet; +#X obj 173 257 outlet; +#X msg 174 140 1 0; +#X msg 216 140 0 1; #X connect 0 0 3 0; #X connect 0 0 4 0; -#X connect 1 0 0 1; -#X connect 2 0 1 0; -#X connect 3 0 0 1; -#X connect 5 0 0 0; -#X restore 96 298 pd counter; -#X obj 96 396 set mass mid; -#X text 176 200 At end: fix links!; -#X obj 186 300 get mass mid; -#X obj 79 247 t b b b b p p; -#X obj 211 375 pack 0 0; -#X obj 211 404 tabwrite \$0-mid2msdid; -#X text 125 434 Store a mapping mid => msdid for fixing links later -; -#X obj 43 24 inlet; -#X obj 158 221 outlet; -#X text 96 52 Avoid stack overflow lops; -#X obj 85 23 r \$0-stack-delay; -#X obj 16 228 ds-next; -#X obj 43 51 del 0; -#X text 122 470 This still is not prepared to handle symbolic IDs!!! -; -#X connect 0 5 1 0; -#X connect 0 6 3 0; #X connect 1 0 2 0; #X connect 2 0 8 0; -#X connect 2 1 16 0; -#X connect 2 2 13 0; -#X connect 4 0 9 0; -#X connect 4 0 5 0; -#X connect 7 0 9 1; -#X connect 8 0 16 0; -#X connect 8 1 4 0; -#X connect 8 4 7 0; -#X connect 8 5 5 1; -#X connect 9 0 10 0; -#X connect 12 0 17 0; -#X connect 15 0 17 1; -#X connect 16 0 2 0; -#X connect 17 0 0 0; -#X restore 244 173 pd fix-mass-ids; -#N canvas 403 15 685 826 fix-links 0; -#X obj 139 158 t b b b b b b b; -#X msg 175 254 traverse pd-data \, next; -#X obj 239 189 s \$0-reset-counter; -#X obj 175 284 pointer liaison; -#X text 293 285 At end: make links in msd*!; -#X obj 192 420 tabread \$0-mid2msdid; -#X obj 192 482 set liaison mid1 mid2; -#X obj 343 418 tabread \$0-mid2msdid; -#X obj 192 389 get liaison mid1 mid2; -#X obj 175 333 t b b b b p p; -#X obj 139 70 inlet; -#X obj 275 312 outlet; -#X text 192 106 Avoid stack overflow lops; -#X obj 188 68 r \$0-stack-delay; -#X obj 113 282 ds-next; -#X obj 139 105 del 0; -#X connect 0 5 1 0; -#X connect 1 0 3 0; -#X connect 3 0 9 0; -#X connect 3 1 14 0; -#X connect 3 2 11 0; -#X connect 5 0 6 0; -#X connect 7 0 6 1; +#X connect 2 1 9 0; +#X connect 3 0 6 0; +#X connect 4 0 7 0; +#X connect 5 0 3 1; +#X connect 5 1 4 1; #X connect 8 0 5 0; -#X connect 8 1 7 0; -#X connect 9 0 14 0; -#X connect 9 4 8 0; -#X connect 9 5 6 2; -#X connect 10 0 15 0; -#X connect 13 0 15 1; -#X connect 14 0 3 0; -#X connect 15 0 0 0; -#X restore 244 196 pd fix-links; -#N canvas 236 8 602 856 get-masses 0; -#X obj 148 80 t b b b b b b b; -#X msg 184 176 traverse pd-data \, next; -#X obj 184 206 pointer mass; -#X obj 325 385 select 0; -#X msg 365 410 0; -#X msg 324 409 1; -#X obj 248 111 s \$0-reset-counter; -#X msg 248 131 const 0; -#X obj 248 152 s \$0-mid; -#X obj 310 152 s \$0-msdid; -#X text 44 397 At end: start 2nd pass; -#X obj 148 31 inlet; -#X obj 214 494 outlet; -#X obj 81 435 outlet; -#X obj 184 255 t b p; -#X obj 214 402 scale-ds2msd; -#X obj 120 251 ds-next; -#X obj 214 362 get mass x y mid mob M sid; -#X obj 214 444 pack 0 0 0 0 0 0; -#X connect 0 5 1 0; -#X connect 0 6 6 0; -#X connect 0 6 7 0; +#X connect 9 0 5 0; +#X restore 195 170 pd demux; +#X obj 262 133 r MSD-TYPE; +#N canvas 0 0 450 300 demux 0; +#X obj 91 69 inlet; +#X obj 255 73 inlet; +#X obj 223 106 select 0; +#X obj 73 213 spigot 1; +#X obj 165 219 spigot 0; +#X obj 141 188 unpack 1 0; +#X obj 96 255 outlet; +#X obj 173 257 outlet; +#X msg 174 140 1 0; +#X msg 216 140 0 1; +#X connect 0 0 3 0; +#X connect 0 0 4 0; #X connect 1 0 2 0; -#X connect 2 0 14 0; -#X connect 2 1 16 0; -#X connect 2 2 13 0; -#X connect 3 0 5 0; -#X connect 3 1 4 0; -#X connect 4 0 18 3; -#X connect 5 0 18 3; -#X connect 7 0 8 0; -#X connect 7 0 9 0; -#X connect 11 0 0 0; -#X connect 14 0 16 0; -#X connect 14 1 17 0; -#X connect 15 0 18 0; -#X connect 15 1 18 1; -#X connect 16 0 2 0; -#X connect 17 0 15 0; -#X connect 17 1 15 1; -#X connect 17 2 18 2; -#X connect 17 3 3 0; -#X connect 17 4 18 4; -#X connect 17 5 18 5; -#X connect 18 0 12 0; -#X restore 244 115 pd get-masses; -#N canvas 0 0 768 708 make-links 0; -#X obj 316 252 pointer liaison; -#X msg 354 227 traverse pd-data \, bang; -#X obj 286 274 t b p; -#X obj 364 418 outlet; -#X obj 354 170 inlet; -#X obj 192 389 outlet; -#X text 142 412 Now set lid field of links.; -#X text 407 200 Avoid stack overflow lops; -#X obj 399 167 r \$0-stack-delay; -#X obj 286 226 ds-next; -#X obj 354 201 del 0; -#X obj 316 298 get liaison sid mid1 mid2 K D P Lmin Lmax; -#X obj 364 385 pack 0 0 0 0 0 0 0 0; -#X connect 0 0 2 0; -#X connect 0 1 9 0; -#X connect 0 2 5 0; -#X connect 1 0 0 0; -#X connect 2 0 9 0; -#X connect 2 1 11 0; -#X connect 4 0 10 0; -#X connect 8 0 10 1; -#X connect 9 0 0 0; -#X connect 10 0 1 0; -#X connect 11 0 12 0; -#X connect 11 1 12 1; -#X connect 11 2 12 2; -#X connect 11 3 12 3; -#X connect 11 4 12 4; -#X connect 11 5 12 5; -#X connect 11 6 12 6; -#X connect 11 7 12 7; -#X connect 12 0 3 0; -#X restore 148 257 pd make-links; -#X text 284 418 TABLES USED:; -#X text 364 174 Change DS mass ids to match msdIds \, store mid2msdid -mapping; -#X text 366 196 Fix mid1 and mid2 in links to match what msd2D thinks -is right.; -#X text 257 258 Create messages to msd2D to create links; -#X text 317 325 Correct lids to match what msd2D tells us; -#X obj 146 446 table \$0-mid2msdid 4000; -#X text 354 111 First get masses positions \, send to msd2D; -#X text 324 446 mass id as index \, msdid as value. Size 4000 taken -from the #define in msd sources.; -#N canvas 283 271 635 631 set-lid-alternative 0; -#X obj 43 72 t b b b b b b b; -#X msg 79 168 traverse pd-data \, next; -#N canvas 331 520 708 349 counter 0; -#X obj 156 125 f 0; -#X msg 172 102 0; -#X obj 172 74 r \$0-reset-counter; -#X obj 188 125 + 1; -#X obj 156 179 outlet; -#X obj 156 50 inlet; -#X connect 0 0 3 0; -#X connect 0 0 4 0; -#X connect 1 0 0 1; -#X connect 2 0 1 0; -#X connect 3 0 0 1; -#X connect 5 0 0 0; -#X restore 96 298 pd counter; -#X obj 79 247 t b b b b p p; -#X obj 43 24 inlet; -#X text 96 52 Avoid stack overflow lops; -#X obj 85 23 r \$0-stack-delay; -#X obj 16 228 ds-next; -#X obj 43 51 del 0; -#X obj 79 200 pointer liaison; -#X obj 96 396 set liaison lid; -#X connect 0 5 1 0; -#X connect 1 0 9 0; -#X connect 2 0 10 0; -#X connect 3 0 7 0; -#X connect 3 1 2 0; -#X connect 3 5 10 1; -#X connect 4 0 8 0; -#X connect 6 0 8 1; -#X connect 7 0 9 0; -#X connect 8 0 0 0; -#X connect 9 0 3 0; -#X connect 9 1 7 0; -#X restore 148 329 pd set-lid-alternative; -#X text 319 346 This is simpler and may work as well. It depends on -sorted data structures.; -#X connect 0 0 6 0; -#X connect 4 0 5 0; -#X connect 5 0 7 0; -#X connect 6 0 4 0; -#X connect 6 1 1 0; -#X connect 7 0 16 0; -#X connect 7 1 3 0; -#X restore 131 221 pd getter; -#X obj 131 369 s \$0-msd; -#X msg 170 107 reset; -#X obj 170 132 s \$0-msd; -#X obj 112 80 t b b b b; -#N canvas 338 182 781 563 make-setters 0; -#X obj 262 451 s pd-setter; -#X obj 136 109 t b b b b; -#X obj 262 337 get mass x y mid; -#X msg 262 404 obj \$1 \$2 mass-set \$3; -#X obj 262 360 pack 0 0 0; -#X obj 171 335 s mypointer; -#X msg 194 135 clear; -#X obj 194 160 s pd-setter; -#X obj 136 68 inlet; -#X obj 174 240 pointer mass liaison; -#X obj 506 373 pack 0 0 0; -#X obj 506 350 get liaison x1 y1 lid; -#X msg 506 417 obj \$1 \$2 link-set \$3; -#X obj 506 462 s pd-lsetter; -#X obj 194 186 s pd-lsetter; -#X obj 399 350 s myliapointer; -#X obj 136 487 outlet; -#X text 196 487 Post-Actions; -#X obj 401 270 t b p p; -#X obj 174 272 t b p p; -#N canvas 0 0 450 300 next 0; -#X obj 140 92 inlet; -#X obj 140 215 outlet; -#X msg 140 169 next; -#X obj 140 134 del 0; -#X connect 0 0 3 0; -#X connect 2 0 1 0; -#X connect 3 0 2 0; -#X restore 37 267 pd next; -#X msg 174 213 traverse pd-data; -#X obj 136 443 del 1; -#X connect 1 0 22 0; -#X connect 1 1 20 0; -#X connect 1 2 21 0; -#X connect 1 3 6 0; -#X connect 2 0 4 0; -#X connect 2 1 4 1; -#X connect 2 2 4 2; -#X connect 3 0 0 0; -#X connect 4 0 3 0; -#X connect 6 0 7 0; -#X connect 6 0 14 0; -#X connect 8 0 1 0; -#X connect 9 0 19 0; -#X connect 9 1 18 0; -#X connect 10 0 12 0; -#X connect 11 0 10 0; -#X connect 11 1 10 1; -#X connect 11 2 10 2; -#X connect 12 0 13 0; -#X connect 18 0 20 0; -#X connect 18 1 15 0; -#X connect 18 2 11 0; -#X connect 19 0 20 0; -#X connect 19 1 5 0; -#X connect 19 2 2 0; -#X connect 20 0 9 0; -#X connect 21 0 9 0; -#X connect 22 0 16 0; -#X restore 112 428 pd make-setters; -#X obj 181 344 r pointer2msd; -#N canvas 382 305 870 520 set-min-max 0; -#X obj 98 80 r \$0-min-DS; -#X obj 240 84 r \$0-max-DS; -#X obj 468 80 r \$0-min-MSD; -#X obj 605 108 r \$0-max-MSD; -#X obj 98 131 s DS-xmin; -#X obj 240 145 s DS-xmax; -#X obj 98 111 f; -#X obj 240 113 f; -#X obj 468 109 f; -#X obj 605 143 f; -#X obj 340 13 inlet; -#X obj 339 41 t b b; -#X text 252 195 reverse!; -#X text 95 177 reverse!; -#X obj 241 176 s DS-ymin; -#X obj 98 158 s DS-ymax; -#X obj 468 135 s MSD-xmin; -#X obj 605 174 s MSD-xmax; -#X obj 469 157 s MSD-ymin; -#X obj 605 198 s MSD-ymax; -#X obj 339 207 t b b; -#X obj 339 344 s \$0-msd; -#X obj 339 280 pack 0 0; -#X obj 339 239 f -3; -#X obj 376 245 f 3; -#X obj 745 82 f 0; -#X obj 761 54 r MSD-TYPE; -#X obj 746 109 s MSD-TYPE; -#X msg 339 306 Xmin \$1 \, Xmax \$2 \, Ymin \$1 \, Ymax \$2 \, Zmin -\$1 \, Zmax \$2; -#X connect 0 0 6 0; -#X connect 1 0 7 0; #X connect 2 0 8 0; -#X connect 3 0 9 0; -#X connect 6 0 4 0; -#X connect 6 0 15 0; -#X connect 7 0 5 0; -#X connect 7 0 14 0; -#X connect 8 0 16 0; -#X connect 8 0 18 0; -#X connect 8 0 23 1; -#X connect 9 0 17 0; -#X connect 9 0 19 0; -#X connect 9 0 24 1; -#X connect 10 0 11 0; -#X connect 11 0 20 0; -#X connect 11 1 6 0; -#X connect 11 1 7 0; -#X connect 11 1 8 0; -#X connect 11 1 9 0; -#X connect 11 1 25 0; -#X connect 20 0 23 0; -#X connect 20 1 24 0; -#X connect 22 0 28 0; -#X connect 23 0 22 0; -#X connect 24 0 22 1; -#X connect 25 0 27 0; -#X connect 26 0 25 1; -#X connect 28 0 21 0; -#X restore 112 468 pd set-min-max; -#X text 283 344 <== messages coming from the data structure setters -; -#X obj 112 399 del 200; -#X obj 172 399 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; +#X connect 2 1 9 0; +#X connect 3 0 6 0; +#X connect 4 0 7 0; +#X connect 5 0 3 1; +#X connect 5 1 4 1; +#X connect 8 0 5 0; +#X connect 9 0 5 0; +#X restore 198 305 pd demux; +#X obj 261 282 r MSD-TYPE; +#X obj 195 136 inlet; +#X obj 198 366 outlet; #N canvas 0 0 450 300 demux 0; #X obj 91 69 inlet; #X obj 255 73 inlet; @@ -397,242 +129,129 @@ sorted data structures.; #X connect 5 1 4 1; #X connect 8 0 5 0; #X connect 9 0 5 0; -#X restore 189 246 pd demux; -#X obj 240 219 r MSD-TYPE; -#X obj 112 41 r \$0-generate; -#X msg 189 275 mass \$6-m \$4 \$5 \$1 \$2; -#X msg 341 275 mass \$6-m \$4 \$5 \$1 \$2 0; -#X obj 150 187 s pd-data; -#X msg 150 159 sort; -#X msg 131 324 link \$1-l \$2 \$3 \$4 \$5 \$6 \$7 \$8; -#X connect 0 0 18 0; -#X connect 0 1 11 0; -#X connect 2 0 3 0; -#X connect 4 0 9 0; -#X connect 4 1 0 0; -#X connect 4 2 17 0; -#X connect 4 3 2 0; -#X connect 5 0 7 0; -#X connect 6 0 1 0; -#X connect 9 0 5 0; -#X connect 10 0 5 0; -#X connect 11 0 14 0; -#X connect 11 1 15 0; -#X connect 12 0 11 1; -#X connect 13 0 4 0; -#X connect 14 0 1 0; -#X connect 15 0 1 0; -#X connect 17 0 16 0; -#X connect 18 0 1 0; -#X restore 287 276 pd generator; -#N canvas 0 0 718 819 activate 0; -#X obj 233 238 r \$0-msd; -#X obj 233 453 gem_masses; -#X obj 313 445 gem_links; -#X msg 167 216 bang \, get massesPos \, get linksPos; -#X obj 177 125 gemhead; -#X obj 233 396 route massesPos linksPos; -#X obj 97 710 gemwin; -#X msg 97 683 0 \, destroy; -#X obj 249 354 s \$0-msd-out; -#X obj 97 597 select 1 0; -#X obj 97 569 tgl 24 0 empty empty GEM 0 -6 0 8 -262144 -1 -1 0 1; -#X obj 275 330 s \$0-msd-attr; -#X obj 211 541 s masspositions; -#X obj 313 515 s linkspositions; -#X obj 167 69 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +#X restore 377 303 pd demux; +#X obj 442 280 r MSD-TYPE; +#X obj 377 371 outlet; +#X obj 200 233 msd2D; +#X obj 350 233 msd3D; +#X connect 0 0 9 0; +#X connect 0 1 10 0; +#X connect 1 0 0 1; +#X connect 2 0 5 0; +#X connect 2 1 5 0; +#X connect 3 0 2 1; +#X connect 4 0 0 0; +#X connect 6 0 8 0; +#X connect 6 1 8 0; +#X connect 7 0 6 1; +#X connect 9 0 2 0; +#X connect 9 1 6 0; +#X connect 10 0 2 0; +#X connect 10 1 6 0; +#X restore 233 308 pd msd; +#X obj 357 676 gemhead; +#X obj 357 699 world_light; +#X obj 147 617 r \$0-fullscreen; +#X obj 97 634 f 0; +#X msg 97 659 reset \, lighting 1 \, fullscreen \$1 \, create \, 1 ; -#X obj 233 421 spigot; -#X obj 313 421 spigot; -#X text 238 559 sent to the data struct pointers; -#X obj 167 149 t b b; -#X obj 197 193 s pollpos; -#X obj 167 44 inlet data_only; -#X obj 39 488 inlet GEM; -#X obj 341 40 inlet speed; -#X obj 20 550 select 1; -#X msg 20 575 0; -#X obj 38 512 t f f; -#X obj 54 90 select 1; -#X msg 54 115 0; -#X obj 72 52 t f f; -#X msg 135 283 set \$1; -#X msg 14 639 set \$1; -#X obj 141 309 outlet; -#X obj 15 665 outlet; -#X obj 167 92 metro 20; -#X obj 413 395 r \$0-gem-masses-on; -#X obj 413 417 r \$0-gem-links-on; -#X obj 197 174 spigot 1; -#X obj 248 150 r \$0-poll-ds; -#X obj 346 469 r \$0-set-ds; -#X obj 233 516 spigot 1; -#X obj 313 496 spigot 1; -#X obj 297 238 r \$0-save-msd; -#X obj 257 286 s \$0-msd2save; -#X obj 255 261 spigot 0; -#N canvas 0 0 788 568 msd 0; -#N canvas 0 0 450 300 demux 0; -#X obj 91 69 inlet; -#X obj 255 73 inlet; -#X obj 223 106 select 0; -#X obj 73 213 spigot 1; -#X obj 165 219 spigot 0; -#X obj 141 188 unpack 1 0; -#X obj 96 255 outlet; -#X obj 173 257 outlet; -#X msg 174 140 1 0; -#X msg 216 140 0 1; -#X connect 0 0 3 0; -#X connect 0 0 4 0; -#X connect 1 0 2 0; -#X connect 2 0 8 0; -#X connect 2 1 9 0; -#X connect 3 0 6 0; -#X connect 4 0 7 0; -#X connect 5 0 3 1; -#X connect 5 1 4 1; -#X connect 8 0 5 0; -#X connect 9 0 5 0; -#X restore 195 170 pd demux; -#X obj 262 133 r MSD-TYPE; -#N canvas 0 0 450 300 demux 0; -#X obj 91 69 inlet; -#X obj 255 73 inlet; -#X obj 223 106 select 0; -#X obj 73 213 spigot 1; -#X obj 165 219 spigot 0; -#X obj 141 188 unpack 1 0; -#X obj 96 255 outlet; -#X obj 173 257 outlet; -#X msg 174 140 1 0; -#X msg 216 140 0 1; -#X connect 0 0 3 0; -#X connect 0 0 4 0; -#X connect 1 0 2 0; -#X connect 2 0 8 0; -#X connect 2 1 9 0; -#X connect 3 0 6 0; -#X connect 4 0 7 0; -#X connect 5 0 3 1; -#X connect 5 1 4 1; -#X connect 8 0 5 0; -#X connect 9 0 5 0; -#X restore 198 305 pd demux; -#X obj 261 282 r MSD-TYPE; -#X obj 195 136 inlet; -#X obj 198 366 outlet; -#N canvas 0 0 450 300 demux 0; -#X obj 91 69 inlet; -#X obj 255 73 inlet; -#X obj 223 106 select 0; -#X obj 73 213 spigot 1; -#X obj 165 219 spigot 0; -#X obj 141 188 unpack 1 0; -#X obj 96 255 outlet; -#X obj 173 257 outlet; -#X msg 174 140 1 0; -#X msg 216 140 0 1; -#X connect 0 0 3 0; -#X connect 0 0 4 0; -#X connect 1 0 2 0; -#X connect 2 0 8 0; -#X connect 2 1 9 0; -#X connect 3 0 6 0; -#X connect 4 0 7 0; -#X connect 5 0 3 1; -#X connect 5 1 4 1; -#X connect 8 0 5 0; -#X connect 9 0 5 0; -#X restore 377 303 pd demux; -#X obj 442 280 r MSD-TYPE; -#X obj 377 371 outlet; -#X obj 200 233 msd2D; -#X obj 350 233 msd3D; -#X connect 0 0 9 0; -#X connect 0 1 10 0; -#X connect 1 0 0 1; -#X connect 2 0 5 0; -#X connect 2 1 5 0; -#X connect 3 0 2 1; -#X connect 4 0 0 0; -#X connect 6 0 8 0; -#X connect 6 1 8 0; -#X connect 7 0 6 1; -#X connect 9 0 2 0; -#X connect 9 1 6 0; -#X connect 10 0 2 0; -#X connect 10 1 6 0; -#X restore 233 308 pd msd; -#X obj 357 676 gemhead; -#X obj 357 699 world_light; -#X obj 147 617 r \$0-fullscreen; -#X obj 97 634 f 0; -#X msg 97 659 reset \, lighting 1 \, fullscreen \$1 \, create \, 1 -; -#X connect 0 0 43 0; -#X connect 0 0 44 0; -#X connect 3 0 44 0; -#X connect 4 0 18 0; -#X connect 5 0 15 0; -#X connect 5 0 39 0; -#X connect 5 1 16 0; -#X connect 5 1 40 0; -#X connect 7 0 6 0; -#X connect 9 0 48 0; -#X connect 9 1 7 0; -#X connect 10 0 9 0; -#X connect 10 0 15 1; -#X connect 10 0 16 1; -#X connect 10 0 30 0; -#X connect 14 0 29 0; -#X connect 14 0 33 0; -#X connect 15 0 1 0; -#X connect 16 0 2 0; -#X connect 18 0 3 0; -#X connect 18 1 36 0; -#X connect 20 0 28 0; -#X connect 21 0 25 0; -#X connect 22 0 33 1; -#X connect 23 0 24 0; -#X connect 24 0 14 0; -#X connect 25 0 10 0; -#X connect 25 1 23 0; -#X connect 26 0 27 0; -#X connect 27 0 10 0; -#X connect 28 0 14 0; -#X connect 28 1 26 0; -#X connect 29 0 31 0; -#X connect 30 0 32 0; -#X connect 33 0 18 0; -#X connect 34 0 1 1; -#X connect 35 0 2 1; -#X connect 36 0 19 0; -#X connect 37 0 36 1; -#X connect 38 0 40 1; -#X connect 38 0 39 1; -#X connect 39 0 12 0; -#X connect 40 0 13 0; -#X connect 41 0 43 1; -#X connect 43 0 42 0; -#X connect 44 0 8 0; -#X connect 44 0 5 0; -#X connect 44 1 11 0; -#X connect 45 0 46 0; -#X connect 47 0 48 1; -#X connect 48 0 49 0; -#X connect 49 0 6 0; -#X restore 31 397 pd activate; -#X obj 31 362 tgl 24 0 empty empty GEM 0 -6 0 8 -195568 -1 -1 0 1; -#X obj 67 362 tgl 24 0 empty empty Datastructures 0 -6 0 8 -1 -262144 +#X obj 535 568 pack 0 0 0; +#X obj 540 699 s \$0-msd; +#X msg 537 594 grabMass \$1 \$2 \$3; +#X obj 602 540 t b f; +#X obj 535 540 - 4; +#X obj 572 539 + 4; +#X obj 538 506 gemmouse 8 -8; +#X obj 537 652 spigot 1; +#X obj 591 630 r \$0-gemgrab; +#X obj 353 175 s GEMBANG-GLOBAL; +#X msg 432 671 0.6 0.8 0.4; +#X obj 167 137 t b b b b; +#X msg 167 216 get massesPos \, get linksPos \, get massesSpeeds; +#X floatatom 265 121 5 0 0 0 - - -; +#X msg 293 85 frame \$1; +#X floatatom 331 67 5 0 0 0 - - -; +#X obj 547 394 r \$0-show-mids; +#X connect 0 0 41 0; +#X connect 0 0 42 0; +#X connect 3 0 59 0; +#X connect 4 0 14 0; +#X connect 4 0 37 0; +#X connect 4 1 15 0; +#X connect 4 1 38 0; +#X connect 6 0 5 0; +#X connect 8 0 46 0; +#X connect 8 1 6 0; +#X connect 9 0 8 0; +#X connect 9 0 14 1; +#X connect 9 0 15 1; +#X connect 9 0 28 0; +#X connect 13 0 27 0; +#X connect 13 0 31 0; +#X connect 14 0 1 0; +#X connect 15 0 2 0; +#X connect 18 0 26 0; +#X connect 19 0 23 0; +#X connect 20 0 31 1; +#X connect 21 0 22 0; +#X connect 22 0 13 0; +#X connect 23 0 9 0; +#X connect 23 1 21 0; +#X connect 24 0 25 0; +#X connect 25 0 9 0; +#X connect 26 0 13 0; +#X connect 26 1 24 0; +#X connect 27 0 29 0; +#X connect 28 0 30 0; +#X connect 31 0 59 0; +#X connect 32 0 1 1; +#X connect 33 0 2 1; +#X connect 34 0 17 0; +#X connect 35 0 34 1; +#X connect 36 0 38 1; +#X connect 36 0 37 1; +#X connect 37 0 11 0; +#X connect 38 0 12 0; +#X connect 39 0 41 1; +#X connect 41 0 40 0; +#X connect 42 0 7 0; +#X connect 42 0 4 0; +#X connect 42 1 10 0; +#X connect 43 0 44 0; +#X connect 45 0 46 1; +#X connect 46 0 47 0; +#X connect 47 0 5 0; +#X connect 48 0 50 0; +#X connect 50 0 55 0; +#X connect 51 0 48 0; +#X connect 51 1 48 2; +#X connect 52 0 48 0; +#X connect 53 0 48 1; +#X connect 54 0 52 0; +#X connect 54 1 53 0; +#X connect 54 2 51 0; +#X connect 55 0 49 0; +#X connect 56 0 55 1; +#X connect 58 0 44 1; +#X connect 59 0 60 0; +#X connect 59 1 42 0; +#X connect 59 2 34 0; +#X connect 59 3 57 0; +#X connect 60 0 42 0; +#X connect 62 0 3 0; +#X connect 63 0 62 0; +#X connect 64 0 1 2; +#X restore 31 416 pd activate; +#X obj 31 381 tgl 24 0 empty empty GEM 0 -6 0 8 -195568 -1 -1 0 1; +#X obj 67 381 tgl 24 0 empty empty Datastructures 0 -6 0 8 -1 -262144 -1 0 1; -#X floatatom 103 377 5 10 1000 2 frequency - -; -#N canvas 757 198 584 687 forces 0; +#X floatatom 103 396 5 10 1000 2 frequency - -; +#N canvas 602 189 584 687 forces 0; #X obj 295 415 s \$0-msd; #X obj 394 355 hsl 128 24 -5 5 0 1 empty empty empty -2 -6 0 8 -262144 --1 -1 6350 1; +-1 -1 4000 1; #X obj 295 230 vsl 24 128 -5 5 0 1 empty empty empty 0 -8 0 8 -262144 --1 -1 6350 1; +-1 -1 8496 1; #X obj 295 174 tgl 24 0 empty empty constant? 0 -6 0 8 -262144 -1 -1 0 1; #X obj 391 295 tgl 24 0 empty empty constant? 0 -6 0 8 -262144 -1 -1 @@ -711,7 +330,7 @@ sorted data structures.; #X connect 38 0 36 0; #X connect 39 0 35 0; #X connect 40 0 36 0; -#X restore 176 431 pd forces; +#X restore 176 450 pd forces; #N canvas 113 581 450 300 props 0; #X obj 121 232 s \$0-msd; #X text 244 59 Edit properties of Links.; @@ -737,60 +356,59 @@ sorted data structures.; #X connect 9 0 7 0; #X connect 10 0 8 0; #X connect 11 0 0 0; -#X restore 268 433 pd props; -#X obj 242 209 s pd-data; -#X msg 278 192 clear; -#X msg 242 192 sort; +#X restore 268 452 pd props; +#X obj 342 218 s pd-data; +#X msg 342 194 clear; #N canvas 702 626 136 139 minmax 0; #X obj 2 15 cnv 15 130 120 empty empty Min/Max 10 10 0 10 -195568 -1 0; #X obj 6 37 nbx 5 14 -1e+37 1e+37 0 0 \$0-min-DS \$0-min-DS Min-DS 60 8 0 10 -225271 -1 -1 0 256; #X obj 6 57 nbx 5 14 -1e+37 1e+37 0 0 \$0-max-DS \$0-max-DS Max-DS -60 8 0 10 -225271 -1 -1 1000 256; +60 8 0 10 -225271 -1 -1 800 256; #X obj 6 85 nbx 5 14 -1e+37 1e+37 0 0 \$0-min-MSD \$0-min-MSD Min-MSD -60 8 0 10 -262131 -1 -1 -3 256; +60 8 0 10 -262131 -1 -1 -4 256; #X obj 6 105 nbx 5 14 -1e+37 1e+37 0 0 \$0-max-MSD \$0-max-MSD Max-MSD -60 8 0 10 -262131 -1 -1 3 256; +60 8 0 10 -262131 -1 -1 4 256; #N canvas 0 0 450 300 l 0; #X msg 35 78 0; -#X msg 128 75 1000; #X obj 35 41 loadbang; #X obj 36 136 loadbang; -#X msg 129 170 3; -#X msg 36 173 -3; #X obj 35 100 s \$0-min-DS; #X obj 128 101 s \$0-max-DS; #X obj 36 195 s \$0-min-MSD; #X obj 129 196 s \$0-max-MSD; -#X connect 0 0 6 0; +#X msg 128 75 800; +#X msg 36 173 -4; +#X msg 129 170 4; +#X connect 0 0 3 0; +#X connect 1 0 0 0; #X connect 1 0 7 0; -#X connect 2 0 0 0; -#X connect 2 0 1 0; -#X connect 3 0 5 0; -#X connect 3 0 4 0; -#X connect 4 0 9 0; -#X connect 5 0 8 0; +#X connect 2 0 8 0; +#X connect 2 0 9 0; +#X connect 7 0 4 0; +#X connect 8 0 5 0; +#X connect 9 0 6 0; #X restore 82 19 pd l; #X coords 0 0 1 1 132 135 1; -#X restore 242 50 pd minmax; -#X obj 178 276 tgl 24 0 MSD-TYPE \$0-MSD-TYPE 2-D 0 -6 0 8 -233017 --1 -1 0 1; -#X obj 28 107 msd_append; -#X obj 10 547 cnv 15 400 60 empty empty DOC 20 12 1 14 -233017 -66577 +#X restore 252 50 pd minmax; +#X obj 177 295 tgl 24 0 MSD-TYPE \$0-MSD-TYPE 3-D 0 -6 0 8 -233017 +-1 -1 1 1; +#X obj 28 96 msd_append; +#X obj 10 566 cnv 15 400 60 empty empty DOC 20 12 1 14 -233017 -66577 0; -#X obj 182 362 tgl 15 0 \$0-gem-masses-on empty gem_m 0 -6 0 8 -225280 +#X obj 182 381 tgl 15 0 \$0-gem-masses-on empty gem_m 0 -6 0 8 -225280 -1 -1 0 1; -#X obj 218 362 tgl 15 0 \$0-gem-links-on empty gem_l 0 -6 0 8 -225271 +#X obj 218 381 tgl 15 0 \$0-gem-links-on empty gem_l 0 -6 0 8 -225271 -1 -1 0 1; -#X obj 182 397 tgl 15 0 \$0-poll-ds \$0-poll-ds poll-ds -10 -6 0 8 +#X obj 182 416 tgl 15 0 \$0-poll-ds \$0-poll-ds poll-ds -10 -6 0 8 -225280 -1 -1 0 1; -#X obj 218 397 tgl 15 0 \$0-set-ds \$0-set-ds set-ds 0 -6 0 8 -225271 +#X obj 218 416 tgl 15 0 \$0-set-ds \$0-set-ds set-ds 0 -6 0 8 -225271 -1 -1 0 1; -#X text 29 286 MSD-TYPE (2D or 3D):; +#X text 28 305 MSD-TYPE (2D or 3D):; #X obj 9 9 cnv 15 400 30 empty empty MSD-EDITOR 20 14 1 14 -128992 -262144 0; -#X obj 10 466 cnv 15 400 75 empty empty PERSIST 20 12 1 14 -195568 +#X obj 10 485 cnv 15 400 75 empty empty PERSIST 20 12 1 14 -195568 -66577 0; #N canvas 460 399 104 45 save 0; #X obj 2 3 cnv 15 100 40 empty empty empty 20 12 0 14 -233017 -66577 @@ -821,7 +439,7 @@ sorted data structures.; #X connect 10 0 11 0; #X connect 11 0 5 0; #X coords 0 0 1 1 102 44 1; -#X restore 124 470 pd save; +#X restore 116 489 pd save; #N canvas 0 0 84 49 save 0; #X obj 2 3 cnv 15 75 40 empty empty empty 20 12 0 14 -233017 -66577 0; @@ -876,30 +494,26 @@ sorted data structures.; #X connect 22 0 19 0; #X connect 22 1 2 0; #X coords 0 0 1 1 77 44 1; -#X restore 226 470 pd save; -#X text 114 520 Save DS to disk; -#X text 235 520 Save MSD messages; -#X obj 285 355 vsl 15 64 0 10 0 0 empty empty D 0 -8 0 8 -195568 -1 +#X restore 222 489 pd save; +#X obj 285 374 vsl 15 64 0 10 0 0 empty empty D 0 -8 0 8 -195568 -1 -1 0 1; -#X obj 302 355 vsl 15 64 0 10 0 0 empty empty L 0 -8 0 8 -195568 -1 +#X obj 302 374 vsl 15 64 0 1 0 0 empty empty L 0 -8 0 8 -195568 -1 -1 0 1; -#X obj 268 355 vsl 15 64 0 100 0 0 empty empty K 0 -8 0 8 -195568 -1 +#X obj 268 374 vsl 15 64 0 100 0 0 empty empty K 0 -8 0 8 -195568 -1 -1 0 1; #N canvas 504 489 531 315 TODO 0; #X text 146 11 TODO :: IDEAS; #X text 41 56 Oriented Links. It's best to create new data structures for this \, as the old link DS is quite loaded already.; -#X text 37 99 Lmin/Lmax for standard links should be settable as well. -The DS is already prepared. What are the defaults?; -#X restore 197 554 pd TODO; +#X restore 197 573 pd TODO; #N canvas 307 452 509 305 NEWS 0; #X text 32 24 RecentChanges; #X text 43 67 Links: D2 was killed \, L was born.; #X text 43 100 SID for Links and masses: Symbolic ids can now be set. You supply a number \, which will get transformed into a symbol id (sid) #-m for masses and #-l for standard Links.; -#X restore 146 554 pd NEWS; -#N canvas 334 329 751 433 ignore 0; +#X restore 146 573 pd NEWS; +#N canvas 387 277 751 433 ignore 0; #X obj 46 264 print ToMSD; #X obj 46 234 spigot; #X obj 83 181 tgl 15 0 empty empty debug_ToMSD 0 -6 0 8 -262144 -1 @@ -911,10 +525,20 @@ You supply a number \, which will get transformed into a symbol id #X obj 147 265 print FromMSD; #X obj 147 210 r \$0-msd-out; #N canvas 0 0 578 686 setter 0; -#X restore 521 67 pd setter; -#N canvas 0 0 822 675 lsetter 0; -#X restore 520 90 pd lsetter; -#X text 504 43 Automatic scripting targets; +#X obj 73 654 mass-set 0; +#X obj 109 596 mass-set 1; +#X obj 130 639 mass-set 2; +#X obj 188 434 mass-set 3; +#X restore 523 45 pd setter; +#N canvas 0 0 1257 922 lsetter 0; +#X obj 130 639 link-set 0; +#X obj 109 596 link-set 1; +#X obj 109 596 link-set 2; +#X obj 73 654 link-set 3; +#X obj 73 654 link-set 4; +#X obj 73 654 link-set 5; +#X restore 522 68 pd lsetter; +#X text 506 21 Automatic scripting targets; #X text 23 46 You can ignore this stuff here \, unless something goes wrong.; #X obj 269 233 spigot; @@ -949,9 +573,9 @@ wrong.; 1; #X floatatom 584 301 5 0 0 0 - - -; #X obj 531 394 s \$0-msd; -#X msg 625 70 clear; -#X obj 625 97 s pd-setter; -#X obj 625 117 s pd-lsetter; +#X msg 627 48 clear; +#X obj 627 75 s pd-setter; +#X obj 627 95 s pd-lsetter; #X msg 531 346 massesForcesL; #X msg 630 225 massesPosYL; #N canvas 0 0 450 300 msd-type 0; @@ -965,8 +589,8 @@ wrong.; #X connect 2 1 4 0; #X connect 3 0 1 0; #X connect 4 0 1 0; -#X restore 524 126 pd msd-type; -#N canvas 673 282 553 343 camera 0; +#X restore 415 123 pd msd-type; +#N canvas 6 378 553 343 camera 0; #X obj 161 31 gemhead; #X obj 162 82 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 ; @@ -1026,6 +650,35 @@ wrong.; #X connect 23 0 26 0; #X connect 24 0 23 0; #X restore 416 83 pd camera; +#N canvas 0 0 450 300 msynth 0; +#X restore 522 89 pd msynth; +#N canvas 0 0 1257 922 lsynth 0; +#X restore 521 109 pd lsynth; +#X obj 627 117 s pd-msynt; +#X obj 627 137 s pd-lsynth; +#X obj 63 101 tgl 16 0 \$0-gensynth \$0-gensynth l-synthesis 0 -6 0 +8 -262144 -1 -1 0 1; +#X symbolatom 96 105 10 0 0 1 link-synth - #0-lsynth-name; +#X symbolatom 99 138 10 0 0 1 masses-synth - #0-msynth-name; +#X obj 62 137 tgl 16 0 \$0-gensynth-m \$0-gensynth-m m-synthesis 0 +-6 0 8 -262144 -1 -1 0 1; +#X obj 420 381 netsend; +#X obj 420 354 prepend send; +#X msg 419 407 connect localhost 7777; +#N canvas 0 0 582 592 save-trans 0; +#X obj 28 53 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 28 72 savepanel; +#X obj 28 121 s \$0-mid2msdid; +#X msg 28 95 write \$1; +#X text 118 84 Save mis2msdid table to disk.; +#X obj 76 42 inlet; +#X connect 0 0 1 0; +#X connect 1 0 3 0; +#X connect 3 0 2 0; +#X connect 5 0 1 0; +#X restore 413 180 pd save-trans; +#X msg 413 157 bang; #X connect 1 0 0 0; #X connect 2 0 1 1; #X connect 3 0 1 0; @@ -1054,9 +707,14 @@ wrong.; #X connect 36 0 34 1; #X connect 38 0 39 0; #X connect 38 0 40 0; +#X connect 38 0 47 0; +#X connect 38 0 48 0; #X connect 41 0 37 0; #X connect 42 0 33 0; -#X restore 248 554 pd ignore this; +#X connect 54 0 53 0; +#X connect 55 0 53 0; +#X connect 57 0 56 0; +#X restore 248 573 pd ignore this; #N canvas 0 0 489 250 help 0; #N canvas 0 0 450 300 visualize? 0; #X text 18 91 Visualization is done using either a GEM OpenGL window @@ -1111,21 +769,1096 @@ default to a value of zero.; #X text 102 118 Coordinates in MSD-Editor:; #X text 109 146 Generate the MSD-Network:; #X text 17 170 Visualize the network using GEM or DS:; -#X restore 95 554 pd help; -#X obj 32 431 tgl 16 0 \$0-fullscreen \$0-fullscreen fullscreen 0 -6 +#X restore 95 573 pd help; +#X obj 32 450 tgl 16 0 \$0-fullscreen \$0-fullscreen fullscreen 0 -6 0 8 -195568 -1 -1 0 1; -#X obj 319 408 nbx 5 14 -1e+37 1e+37 0 0 empty empty link-sid 0 -6 +#X obj 319 427 nbx 5 14 -1e+37 1e+37 0 0 empty empty link-sid 0 -6 0 10 -195568 -1 -1 0 256; -#X obj 95 582 structures; +#X obj 95 601 structures; +#X obj 252 194 cnv 15 84 42 empty empty empty 2 8 1 10 -1 -66577 0 +; +#X obj 253 195 cnv 15 82 40 empty empty EDIT_AREA 2 8 1 10 -225271 +-66577 0; +#N canvas 0 35 1022 952 data 0; +#X scalar liaison 130.917 639.836 188 434 2 3 0 10 2.5 1 0 1e+10 0 +\;; +#X scalar liaison 109.715 596.152 188 434 1 3 1 10 2.5 1 0 1e+10 0 +\;; +#X scalar liaison 109.715 596.152 130.917 639.836 1 2 2 10 2.5 1 0 +1e+10 0 \;; +#X scalar liaison 73.418 654.69 188 434 0 3 3 10 2.5 1 0 1e+10 0 \; +; +#X scalar liaison 73.418 654.69 130.917 639.836 0 2 4 10 2.5 1 0 1e+10 +0 \;; +#X scalar liaison 73.418 654.69 109.715 596.152 0 1 5 10 2.5 1 0 1e+10 +0 \;; +#X scalar mass 73.418 654.69 0 0 100 0 \;; +#X scalar mass 109.715 596.152 1 0 100 0 \;; +#X scalar mass 130.917 639.836 2 0 100 0 \;; +#X scalar mass 188 434 3 900 100 0 \;; +#X restore 269 214 pd data; +#X obj 265 295 bng 24 250 50 0 \$0-set-from-ds \$0-set-from-ds set-from-ds +0 -6 0 8 -225271 -1 -1; +#N canvas 0 0 450 300 testing 0; +#N canvas 39 482 450 300 mass-lines 0; +#X text 26 19 Paint a line of masses between two masses. First select +two masses \, then press this bang:; +#X obj 41 86 bng 20 250 50 0 \$0-massline \$0-massline massline 0 -6 +0 8 -262144 -1 -1; +#N canvas 65 73 818 854 make-ml 0; +#X obj 254 188 pointer mass; +#X msg 254 156 traverse pd-data \, vnext 1; +#X obj 455 170 s pd-data; +#X msg 455 149 sort; +#X text 489 149 first sort left to right; +#X obj 254 132 t b b b; +#X obj 301 111 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 141 186 ds-vnext; +#X obj 380 390 get mass x y; +#X obj 252 394 get mass x y; +#X obj 341 531 -; +#X obj 265 529 -; +#X obj 344 585 / 5; +#X obj 263 588 / 5; +#X obj 48 368 - 1; +#X obj 33 271 inlet; +#X obj 28 393 f 4; +#X obj 185 722 pack 0 0 0; +#X obj 91 275 inlet; +#X obj 87 296 select 0 1; +#X msg 90 322 0; +#X msg 123 321 900; +#X obj 214 98 t b b; +#X obj 219 68 r \$0-massline; +#X obj 185 777 s \$0-newmass; +#X obj 276 271 f 0; +#X obj 306 271 + 1; +#X msg 289 244 0; +#X obj 280 332 route 1 0; +#X obj 254 211 t b b p; +#X obj 280 300 pack 0 p; +#X obj 322 70 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 31 483 countto; +#X obj 33 456 pack 1 0; +#X obj 30 420 t b f; +#X obj 91 572 f 0; +#X obj 147 591 *; +#X obj 109 621 +; +#X obj 193 641 f 0; +#X obj 243 646 *; +#X obj 211 674 +; +#X obj 107 647 t b f; +#X obj 124 693 f; +#X obj 30 751 print countto; +#X obj 607 632 inlet linkit; +#X obj 543 727 link2masses; +#X obj 615 677 r \$0-link-param; +#X obj 622 479 pointer; +#X obj 495 477 pointer; +#X text 548 479 first; +#X text 686 477 last mass; +#X obj 69 514 t f b b f; +#X obj 536 617 pack p p; +#X obj 526 513 r \$0-lastmass; +#X obj 482 545 pointer; +#X obj 413 488 t b b; +#X obj 225 355 t b a a; +#X obj 415 458 select 1; +#X obj 577 366 select 1; +#X obj 476 511 t b; +#X obj 525 592 t p p; +#X obj 610 426 t b b b; +#X obj 557 671 spigot; +#X connect 0 0 29 0; +#X connect 0 1 7 0; +#X connect 1 0 0 0; +#X connect 3 0 2 0; +#X connect 5 0 1 0; +#X connect 5 2 3 0; +#X connect 5 2 27 0; +#X connect 6 0 5 0; +#X connect 7 0 0 0; +#X connect 8 0 11 1; +#X connect 8 0 35 1; +#X connect 8 1 10 1; +#X connect 8 1 38 1; +#X connect 9 0 11 0; +#X connect 9 1 10 0; +#X connect 10 0 12 0; +#X connect 11 0 13 0; +#X connect 12 0 39 1; +#X connect 13 0 36 1; +#X connect 14 0 16 1; +#X connect 15 0 13 1; +#X connect 15 0 12 1; +#X connect 15 0 14 0; +#X connect 16 0 34 0; +#X connect 17 0 24 0; +#X connect 18 0 19 0; +#X connect 19 0 20 0; +#X connect 19 1 21 0; +#X connect 20 0 42 1; +#X connect 21 0 42 1; +#X connect 22 1 5 0; +#X connect 23 0 22 0; +#X connect 25 0 26 0; +#X connect 25 0 30 0; +#X connect 26 0 25 1; +#X connect 27 0 25 1; +#X connect 28 0 56 0; +#X connect 28 1 8 0; +#X connect 28 1 48 1; +#X connect 29 0 7 0; +#X connect 29 1 25 0; +#X connect 29 2 30 1; +#X connect 30 0 28 0; +#X connect 31 0 22 0; +#X connect 32 0 43 0; +#X connect 32 0 51 0; +#X connect 33 0 32 0; +#X connect 34 0 33 0; +#X connect 34 1 33 1; +#X connect 34 1 58 1; +#X connect 35 0 37 0; +#X connect 36 0 37 1; +#X connect 37 0 41 0; +#X connect 38 0 40 0; +#X connect 39 0 40 1; +#X connect 40 0 17 2; +#X connect 41 0 42 0; +#X connect 41 1 17 1; +#X connect 42 0 17 0; +#X connect 44 0 62 1; +#X connect 46 0 45 1; +#X connect 47 0 52 1; +#X connect 48 0 52 1; +#X connect 51 0 57 0; +#X connect 51 1 35 0; +#X connect 51 2 38 0; +#X connect 51 3 39 0; +#X connect 51 3 36 0; +#X connect 52 0 62 0; +#X connect 53 0 54 1; +#X connect 54 0 60 0; +#X connect 55 0 54 0; +#X connect 55 1 48 0; +#X connect 56 0 16 0; +#X connect 56 1 9 0; +#X connect 56 2 47 1; +#X connect 57 0 55 0; +#X connect 57 1 58 0; +#X connect 58 0 61 0; +#X connect 58 1 59 0; +#X connect 59 0 54 0; +#X connect 60 0 52 1; +#X connect 60 1 52 0; +#X connect 61 0 54 0; +#X connect 61 1 47 0; +#X connect 61 2 59 0; +#X connect 62 0 45 0; +#X restore 108 92 pd make-ml; +#X obj 173 69 tgl 15 0 empty empty fix/mob 0 -6 0 8 -262144 -1 -1 0 +1; +#X floatatom 108 71 5 0 0 2 howmany - -; +#X obj 73 89 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X connect 3 0 2 1; +#X connect 4 0 2 0; +#X connect 5 0 2 2; +#X restore 40 32 pd mass-lines; +#N canvas 14 85 865 862 mousepaint 0; +#X obj 45 97 tot data; +#X obj 99 136 route motion mouseup mouse key; +#X msg 45 69 capture \$1; +#X obj 45 46 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 106 258 pack 0 0 0; +#X obj 106 293 s \$0-newmass; +#X obj 455 410 link2masses; +#X obj 527 360 r \$0-link-param; +#X obj 457 192 r \$0-lastmass; +#X obj 407 190 t b; +#X obj 456 271 t p p; +#X obj 204 194 print mouse; +#X obj 592 194 r \$0-lastmass; +#X obj 548 226 pointer; +#X msg 134 232 \$1; +#X msg 160 232 \$2; +#X obj 455 318 pack p p; +#X obj 413 224 pointer; +#X msg 96 228 900; +#X obj 134 166 t b a a; +#X msg 49 183 \$3; +#X obj 51 205 select 1 2; +#X msg 41 229 0; +#X obj 100 33 inlet; +#X connect 0 2 1 0; +#X connect 1 2 11 0; +#X connect 1 2 19 0; +#X connect 2 0 0 0; +#X connect 3 0 2 0; +#X connect 4 0 5 0; +#X connect 7 0 6 1; +#X connect 8 0 17 1; +#X connect 9 0 17 0; +#X connect 10 0 16 1; +#X connect 10 1 16 0; +#X connect 12 0 13 1; +#X connect 14 0 4 1; +#X connect 15 0 4 2; +#X connect 16 0 6 0; +#X connect 17 0 10 0; +#X connect 18 0 4 0; +#X connect 19 0 17 0; +#X connect 19 1 20 0; +#X connect 19 2 14 0; +#X connect 19 2 15 0; +#X connect 20 0 21 0; +#X connect 21 0 22 0; +#X connect 21 1 18 0; +#X connect 22 0 4 0; +#X connect 23 0 2 0; +#X restore 31 97 pd mousepaint; +#X obj 31 74 tgl 15 0 empty empty capture 0 -6 0 8 -262144 -1 -1 0 +1; +#X connect 2 0 1 0; +#X restore 175 601 pd testing; +#X obj 24 79 r \$0-newmass; +#X obj 17 226 s \$0-lastmass; +#X obj 110 250 s \$0-link-param; #X obj 110 50 morelinks; -#X connect 6 0 7 0; -#X connect 6 1 8 0; -#X connect 7 0 6 0; -#X connect 8 0 6 1; -#X connect 9 0 6 2; -#X connect 13 0 12 0; -#X connect 14 0 12 0; -#X connect 30 0 11 1; -#X connect 31 0 11 2; -#X connect 32 0 11 0; -#X connect 38 0 11 3; +#N canvas 0 0 450 300 guts 0; +#N canvas 366 103 781 748 generator 0; +#N canvas 311 93 877 551 getter 0; +#X obj 244 89 inlet; +#X obj 330 145 outlet; +#X text 91 57 First build masses \, then links!!; +#X obj 234 285 outlet; +#N canvas 629 18 551 784 fix-mass-ids 0; +#X obj 43 72 t b b b b b b b; +#X msg 79 168 traverse pd-data \, next; +#X obj 79 200 pointer mass; +#X obj 143 103 s \$0-reset-counter; +#N canvas 331 520 708 349 counter 0; +#X obj 156 125 f 0; +#X msg 172 102 0; +#X obj 172 74 r \$0-reset-counter; +#X obj 188 125 + 1; +#X obj 156 179 outlet; +#X obj 156 50 inlet; +#X connect 0 0 3 0; +#X connect 0 0 4 0; +#X connect 1 0 0 1; +#X connect 2 0 1 0; +#X connect 3 0 0 1; +#X connect 5 0 0 0; +#X restore 96 298 pd counter; +#X obj 96 396 set mass mid; +#X text 176 200 At end: fix links!; +#X obj 186 300 get mass mid; +#X obj 79 247 t b b b b p p; +#X obj 211 375 pack 0 0; +#X obj 211 404 tabwrite \$0-mid2msdid; +#X text 125 434 Store a mapping mid => msdid for fixing links later +; +#X obj 43 24 inlet; +#X obj 158 221 outlet; +#X text 96 52 Avoid stack overflow lops; +#X obj 85 23 r \$0-stack-delay; +#X obj 16 228 ds-next; +#X obj 43 51 del 0; +#X text 122 470 This still is not prepared to handle symbolic IDs!!! +; +#X connect 0 5 1 0; +#X connect 0 6 3 0; +#X connect 1 0 2 0; +#X connect 2 0 8 0; +#X connect 2 1 16 0; +#X connect 2 2 13 0; +#X connect 4 0 9 0; +#X connect 4 0 5 0; +#X connect 7 0 9 1; +#X connect 8 0 16 0; +#X connect 8 1 4 0; +#X connect 8 4 7 0; +#X connect 8 5 5 1; +#X connect 9 0 10 0; +#X connect 12 0 17 0; +#X connect 15 0 17 1; +#X connect 16 0 2 0; +#X connect 17 0 0 0; +#X restore 244 173 pd fix-mass-ids; +#N canvas 403 15 685 826 fix-links 0; +#X obj 139 158 t b b b b b b b; +#X msg 175 254 traverse pd-data \, next; +#X obj 239 189 s \$0-reset-counter; +#X obj 175 284 pointer liaison; +#X text 293 285 At end: make links in msd*!; +#X obj 192 420 tabread \$0-mid2msdid; +#X obj 192 482 set liaison mid1 mid2; +#X obj 343 418 tabread \$0-mid2msdid; +#X obj 192 389 get liaison mid1 mid2; +#X obj 175 333 t b b b b p p; +#X obj 139 70 inlet; +#X obj 275 312 outlet; +#X text 192 106 Avoid stack overflow lops; +#X obj 188 68 r \$0-stack-delay; +#X obj 113 282 ds-next; +#X obj 139 105 del 0; +#X connect 0 5 1 0; +#X connect 1 0 3 0; +#X connect 3 0 9 0; +#X connect 3 1 14 0; +#X connect 3 2 11 0; +#X connect 5 0 6 0; +#X connect 7 0 6 1; +#X connect 8 0 5 0; +#X connect 8 1 7 0; +#X connect 9 0 14 0; +#X connect 9 4 8 0; +#X connect 9 5 6 2; +#X connect 10 0 15 0; +#X connect 13 0 15 1; +#X connect 14 0 3 0; +#X connect 15 0 0 0; +#X restore 244 196 pd fix-links; +#N canvas 236 8 602 856 get-masses 0; +#X obj 148 80 t b b b b b b b; +#X msg 184 176 traverse pd-data \, next; +#X obj 184 206 pointer mass; +#X obj 325 385 select 0; +#X msg 365 410 0; +#X msg 324 409 1; +#X obj 248 111 s \$0-reset-counter; +#X msg 248 131 const 0; +#X obj 248 152 s \$0-mid; +#X obj 310 152 s \$0-msdid; +#X text 44 397 At end: start 2nd pass; +#X obj 148 31 inlet; +#X obj 214 494 outlet; +#X obj 81 435 outlet; +#X obj 184 255 t b p; +#X obj 214 402 scale-ds2msd; +#X obj 120 251 ds-next; +#X obj 214 362 get mass x y mid mob M sid; +#X obj 214 444 pack 0 0 0 0 0 0; +#X connect 0 5 1 0; +#X connect 0 6 6 0; +#X connect 0 6 7 0; +#X connect 1 0 2 0; +#X connect 2 0 14 0; +#X connect 2 1 16 0; +#X connect 2 2 13 0; +#X connect 3 0 5 0; +#X connect 3 1 4 0; +#X connect 4 0 18 3; +#X connect 5 0 18 3; +#X connect 7 0 8 0; +#X connect 7 0 9 0; +#X connect 11 0 0 0; +#X connect 14 0 16 0; +#X connect 14 1 17 0; +#X connect 15 0 18 0; +#X connect 15 1 18 1; +#X connect 16 0 2 0; +#X connect 17 0 15 0; +#X connect 17 1 15 1; +#X connect 17 2 18 2; +#X connect 17 3 3 0; +#X connect 17 4 18 4; +#X connect 17 5 18 5; +#X connect 18 0 12 0; +#X restore 244 115 pd get-masses; +#N canvas 0 0 768 708 make-links 0; +#X obj 316 252 pointer liaison; +#X msg 354 227 traverse pd-data \, bang; +#X obj 286 274 t b p; +#X obj 364 418 outlet; +#X obj 354 170 inlet; +#X obj 192 389 outlet; +#X text 142 412 Now set lid field of links.; +#X text 407 200 Avoid stack overflow lops; +#X obj 399 167 r \$0-stack-delay; +#X obj 286 226 ds-next; +#X obj 354 201 del 0; +#X obj 316 298 get liaison sid mid1 mid2 K D P Lmin Lmax; +#X obj 364 385 pack 0 0 0 0 0 0 0 0; +#X connect 0 0 2 0; +#X connect 0 1 9 0; +#X connect 0 2 5 0; +#X connect 1 0 0 0; +#X connect 2 0 9 0; +#X connect 2 1 11 0; +#X connect 4 0 10 0; +#X connect 8 0 10 1; +#X connect 9 0 0 0; +#X connect 10 0 1 0; +#X connect 11 0 12 0; +#X connect 11 1 12 1; +#X connect 11 2 12 2; +#X connect 11 3 12 3; +#X connect 11 4 12 4; +#X connect 11 5 12 5; +#X connect 11 6 12 6; +#X connect 11 7 12 7; +#X connect 12 0 3 0; +#X restore 148 257 pd make-links; +#X text 284 418 TABLES USED:; +#X text 364 174 Change DS mass ids to match msdIds \, store mid2msdid +mapping; +#X text 366 196 Fix mid1 and mid2 in links to match what msd2D thinks +is right.; +#X text 257 258 Create messages to msd2D to create links; +#X text 317 325 Correct lids to match what msd2D tells us; +#X obj 146 446 table \$0-mid2msdid 4000; +#X text 354 111 First get masses positions \, send to msd2D; +#X text 324 446 mass id as index \, msdid as value. Size 4000 taken +from the #define in msd sources.; +#N canvas 283 271 635 631 set-lid-alternative 0; +#X obj 43 72 t b b b b b b b; +#X msg 79 168 traverse pd-data \, next; +#N canvas 331 520 708 349 counter 0; +#X obj 156 125 f 0; +#X msg 172 102 0; +#X obj 172 74 r \$0-reset-counter; +#X obj 188 125 + 1; +#X obj 156 179 outlet; +#X obj 156 50 inlet; +#X connect 0 0 3 0; +#X connect 0 0 4 0; +#X connect 1 0 0 1; +#X connect 2 0 1 0; +#X connect 3 0 0 1; +#X connect 5 0 0 0; +#X restore 96 298 pd counter; +#X obj 79 247 t b b b b p p; +#X obj 43 24 inlet; +#X text 96 52 Avoid stack overflow lops; +#X obj 85 23 r \$0-stack-delay; +#X obj 16 228 ds-next; +#X obj 43 51 del 0; +#X obj 79 200 pointer liaison; +#X obj 96 396 set liaison lid; +#X connect 0 5 1 0; +#X connect 1 0 9 0; +#X connect 2 0 10 0; +#X connect 3 0 7 0; +#X connect 3 1 2 0; +#X connect 3 5 10 1; +#X connect 4 0 8 0; +#X connect 6 0 8 1; +#X connect 7 0 9 0; +#X connect 8 0 0 0; +#X connect 9 0 3 0; +#X connect 9 1 7 0; +#X restore 148 329 pd set-lid-alternative; +#X text 319 346 This is simpler and may work as well. It depends on +sorted data structures.; +#X connect 0 0 6 0; +#X connect 4 0 5 0; +#X connect 5 0 7 0; +#X connect 6 0 4 0; +#X connect 6 1 1 0; +#X connect 7 0 16 0; +#X connect 7 1 3 0; +#X restore 131 221 pd getter; +#X obj 131 369 s \$0-msd; +#X msg 170 107 reset; +#X obj 170 132 s \$0-msd; +#X obj 112 80 t b b b b; +#N canvas 338 182 781 563 make-setters 0; +#X obj 262 451 s pd-setter; +#X obj 136 109 t b b b b; +#X obj 262 337 get mass x y mid; +#X msg 262 404 obj \$1 \$2 mass-set \$3; +#X obj 262 360 pack 0 0 0; +#X obj 171 335 s mypointer; +#X msg 194 135 clear; +#X obj 194 160 s pd-setter; +#X obj 136 68 inlet; +#X obj 174 240 pointer mass liaison; +#X obj 506 373 pack 0 0 0; +#X obj 506 350 get liaison x1 y1 lid; +#X msg 506 417 obj \$1 \$2 link-set \$3; +#X obj 506 462 s pd-lsetter; +#X obj 194 186 s pd-lsetter; +#X obj 399 350 s myliapointer; +#X obj 136 487 outlet; +#X text 196 487 Post-Actions; +#X obj 401 270 t b p p; +#X obj 174 272 t b p p; +#N canvas 0 0 450 300 next 0; +#X obj 140 92 inlet; +#X obj 140 215 outlet; +#X msg 140 169 next; +#X obj 140 134 del 0; +#X connect 0 0 3 0; +#X connect 2 0 1 0; +#X connect 3 0 2 0; +#X restore 37 267 pd next; +#X msg 174 213 traverse pd-data; +#X obj 136 443 del 1; +#N canvas 0 0 859 632 1002-make-lsynth 0; +#X obj 190 186 pack 0 0 0 s; +#X obj 190 121 spigot; +#X obj 283 149 r \$0-lsynth-name; +#X msg 190 209 obj \$1 \$2 \$4 \$3; +#X obj 190 77 inlet; +#X obj 190 153 unpack 0 0 0; +#X obj 234 66 r \$0-gensynth; +#X obj 190 234 s pd-lsynth; +#X connect 0 0 3 0; +#X connect 1 0 5 0; +#X connect 2 0 0 3; +#X connect 3 0 7 0; +#X connect 4 0 1 0; +#X connect 5 0 0 0; +#X connect 5 1 0 1; +#X connect 5 2 0 2; +#X connect 6 0 1 1; +#X restore 590 397 pd \$0-make-lsynth; +#N canvas 0 0 859 632 1002-make-msynth 0; +#X obj 190 186 pack 0 0 0 s; +#X msg 190 209 obj \$1 \$2 \$4 \$3; +#X obj 190 77 inlet; +#X obj 190 153 unpack 0 0 0; +#X obj 192 232 s pd-msynth; +#X obj 285 149 r \$0-msynth-name; +#X obj 236 66 r \$0-gensynth-m; +#X obj 190 121 spigot; +#X connect 0 0 1 0; +#X connect 1 0 4 0; +#X connect 2 0 7 0; +#X connect 3 0 0 0; +#X connect 3 1 0 1; +#X connect 3 2 0 2; +#X connect 5 0 0 3; +#X connect 6 0 7 1; +#X connect 7 0 3 0; +#X restore 290 383 pd \$0-make-msynth; +#X obj 328 126 spigot 0; +#X obj 329 167 s pd-msynth; +#X obj 419 167 s pd-lsynth; +#X msg 329 144 clear; +#X obj 418 126 spigot 0; +#X msg 419 144 clear; +#X obj 469 99 r \$0-gensynth; +#X obj 379 76 r \$0-gensynth-m; +#X connect 1 0 22 0; +#X connect 1 1 20 0; +#X connect 1 2 21 0; +#X connect 1 3 6 0; +#X connect 1 3 25 0; +#X connect 1 3 29 0; +#X connect 2 0 4 0; +#X connect 2 1 4 1; +#X connect 2 2 4 2; +#X connect 3 0 0 0; +#X connect 4 0 3 0; +#X connect 4 0 24 0; +#X connect 6 0 7 0; +#X connect 6 0 14 0; +#X connect 8 0 1 0; +#X connect 9 0 19 0; +#X connect 9 1 18 0; +#X connect 10 0 12 0; +#X connect 10 0 23 0; +#X connect 11 0 10 0; +#X connect 11 1 10 1; +#X connect 11 2 10 2; +#X connect 12 0 13 0; +#X connect 18 0 20 0; +#X connect 18 1 15 0; +#X connect 18 2 11 0; +#X connect 19 0 20 0; +#X connect 19 1 5 0; +#X connect 19 2 2 0; +#X connect 20 0 9 0; +#X connect 21 0 9 0; +#X connect 22 0 16 0; +#X connect 25 0 28 0; +#X connect 28 0 26 0; +#X connect 29 0 30 0; +#X connect 30 0 27 0; +#X connect 31 0 29 1; +#X connect 32 0 25 1; +#X restore 112 428 pd make-setters; +#X obj 181 344 r pointer2msd; +#N canvas 382 305 870 520 set-min-max 0; +#X obj 98 80 r \$0-min-DS; +#X obj 240 84 r \$0-max-DS; +#X obj 468 80 r \$0-min-MSD; +#X obj 605 108 r \$0-max-MSD; +#X obj 98 131 s DS-xmin; +#X obj 240 145 s DS-xmax; +#X obj 98 111 f; +#X obj 240 113 f; +#X obj 468 109 f; +#X obj 605 143 f; +#X obj 340 13 inlet; +#X obj 339 41 t b b; +#X text 252 195 reverse!; +#X text 95 177 reverse!; +#X obj 241 176 s DS-ymin; +#X obj 98 158 s DS-ymax; +#X obj 468 135 s MSD-xmin; +#X obj 605 174 s MSD-xmax; +#X obj 469 157 s MSD-ymin; +#X obj 605 198 s MSD-ymax; +#X obj 339 207 t b b; +#X obj 339 344 s \$0-msd; +#X obj 339 280 pack 0 0; +#X obj 339 239 f -3; +#X obj 376 245 f 3; +#X obj 745 82 f 0; +#X obj 761 54 r MSD-TYPE; +#X obj 746 109 s MSD-TYPE; +#X msg 339 306 Xmin \$1 \, Xmax \$2 \, Ymin \$1 \, Ymax \$2 \, Zmin +\$1 \, Zmax \$2; +#X connect 0 0 6 0; +#X connect 1 0 7 0; +#X connect 2 0 8 0; +#X connect 3 0 9 0; +#X connect 6 0 4 0; +#X connect 6 0 15 0; +#X connect 7 0 5 0; +#X connect 7 0 14 0; +#X connect 8 0 16 0; +#X connect 8 0 18 0; +#X connect 8 0 23 1; +#X connect 9 0 17 0; +#X connect 9 0 19 0; +#X connect 9 0 24 1; +#X connect 10 0 11 0; +#X connect 11 0 20 0; +#X connect 11 1 6 0; +#X connect 11 1 7 0; +#X connect 11 1 8 0; +#X connect 11 1 9 0; +#X connect 11 1 25 0; +#X connect 20 0 23 0; +#X connect 20 1 24 0; +#X connect 22 0 28 0; +#X connect 23 0 22 0; +#X connect 24 0 22 1; +#X connect 25 0 27 0; +#X connect 26 0 25 1; +#X connect 28 0 21 0; +#X restore 112 468 pd set-min-max; +#X text 283 344 <== messages coming from the data structure setters +; +#X obj 112 399 del 200; +#X obj 172 399 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#N canvas 0 0 450 300 demux 0; +#X obj 91 69 inlet; +#X obj 255 73 inlet; +#X obj 223 106 select 0; +#X obj 73 213 spigot 1; +#X obj 165 219 spigot 0; +#X obj 141 188 unpack 1 0; +#X obj 96 255 outlet; +#X obj 173 257 outlet; +#X msg 174 140 1 0; +#X msg 216 140 0 1; +#X connect 0 0 3 0; +#X connect 0 0 4 0; +#X connect 1 0 2 0; +#X connect 2 0 8 0; +#X connect 2 1 9 0; +#X connect 3 0 6 0; +#X connect 4 0 7 0; +#X connect 5 0 3 1; +#X connect 5 1 4 1; +#X connect 8 0 5 0; +#X connect 9 0 5 0; +#X restore 189 246 pd demux; +#X obj 240 219 r MSD-TYPE; +#X obj 112 41 r \$0-generate; +#X msg 189 275 mass \$6-m \$4 \$5 \$1 \$2; +#X msg 341 275 mass \$6-m \$4 \$5 \$1 \$2 0; +#X obj 150 187 s pd-data; +#X msg 150 159 sort; +#X msg 131 324 link \$1-l \$2 \$3 \$4 \$5 \$6 \$7 \$8; +#X connect 0 0 18 0; +#X connect 0 1 11 0; +#X connect 2 0 3 0; +#X connect 4 0 9 0; +#X connect 4 1 0 0; +#X connect 4 2 17 0; +#X connect 4 3 2 0; +#X connect 5 0 7 0; +#X connect 6 0 1 0; +#X connect 9 0 5 0; +#X connect 10 0 5 0; +#X connect 11 0 14 0; +#X connect 11 1 15 0; +#X connect 12 0 11 1; +#X connect 13 0 4 0; +#X connect 14 0 1 0; +#X connect 15 0 1 0; +#X connect 17 0 16 0; +#X connect 18 0 1 0; +#X restore 106 127 pd generator; +#N canvas 444 101 836 641 set 0; +#N canvas 311 93 877 551 getter 0; +#X obj 148 80 t b b b b b b b; +#X msg 184 176 traverse pd-data \, next; +#X obj 184 206 pointer mass; +#X obj 148 31 inlet; +#X obj 214 494 outlet; +#X obj 184 255 t b p; +#X obj 214 402 scale-ds2msd; +#X obj 120 251 ds-next; +#X obj 214 362 get mass x y mid; +#X obj 214 444 pack 0 0 0; +#X connect 0 5 1 0; +#X connect 1 0 2 0; +#X connect 2 0 5 0; +#X connect 2 1 7 0; +#X connect 3 0 0 0; +#X connect 5 0 7 0; +#X connect 5 1 8 0; +#X connect 6 0 9 0; +#X connect 6 1 9 1; +#X connect 7 0 2 0; +#X connect 8 0 6 0; +#X connect 8 1 6 1; +#X connect 8 2 9 2; +#X connect 9 0 4 0; +#X restore 228 102 pd getter; +#X obj 228 179 s \$0-msd; +#X msg 213 140 posX \$3 \$1; +#X msg 309 137 posY \$3 \$2; +#X obj 227 80 r \$0-set-from-ds; +#X connect 0 0 2 0; +#X connect 0 0 3 0; +#X connect 2 0 1 0; +#X connect 3 0 1 0; +#X connect 4 0 0 0; +#X restore 148 105 pd set; +#N canvas 410 39 529 725 edits 0; +#N canvas 203 212 450 300 1002-show 0; +#X obj 101 125 makefilename pd-%s; +#X obj 50 153 pack 0 s; +#X obj 50 63 t f b; +#X msg 50 202 \; \$2 vis \$1; +#X obj 50 33 inlet; +#X obj 101 95 symbol \$0-edit-mass; +#X connect 0 0 1 1; +#X connect 1 0 3 0; +#X connect 2 0 1 0; +#X connect 2 1 5 0; +#X connect 4 0 2 0; +#X connect 5 0 0 0; +#X restore 234 58 pd \$0-show; +#X obj 234 34 tgl 20 0 empty \$0-show-masseditor edit_mass 0 -6 0 8 +-262144 -1 -1 0 1; +#N canvas 786 268 360 441 1002-edit-mass 0; +#X obj 48 68 nbx 5 14 -1e+37 1e+37 0 0 \$0-mob-set \$0-mob-get mob_(900=fixed) +0 -8 1 10 -262144 -1 -1 0 256; +#X obj 48 31 nbx 5 15 -1e+37 1e+37 0 0 \$0-mid-set \$0-mid-get mass-id +0 -6 1 10 -1 -233017 -1 0 256; +#X obj 48 106 nbx 5 14 -1e+37 1e+37 0 0 \$0-M-set \$0-M-get Mass 0 +-6 1 10 -262144 -1 -1 0 256; +#X obj 48 146 nbx 5 14 -1e+37 1e+37 0 0 \$0-sid-set \$0-sid-get SymbolicID +0 -6 1 10 -262144 -1 -1 0 256; +#X obj 39 403 s \$0-edit-mass; +#X msg 39 379 vnext 1; +#X obj 48 174 nbx 5 14 -1e+37 1e+37 0 0 \$0-mx-set \$0-mx-get x 0 -6 +1 10 -262144 -1 -1 0 256; +#X obj 48 202 nbx 5 14 -1e+37 1e+37 0 0 \$0-my-set \$0-my-get y 0 -6 +1 10 -262144 -1 -1 0 256; +#X msg 40 356 traverse pd-data; +#X obj 218 29 nbx 5 15 -1e+37 1e+37 0 0 \$0-set-l-lid \$0-get-l-lid +link-id 0 -6 1 10 -1 -233017 -1 0 256; +#X msg 215 378 vnext 1; +#X obj 215 401 s \$0-edit-link; +#X obj 218 63 nbx 5 15 -1e+37 1e+37 0 0 \$0-set-l-mid1 \$0-get-l-mid1 +mass1 0 -6 1 10 -262144 -1 -1 0 256; +#X obj 218 95 nbx 5 15 -1e+37 1e+37 0 0 \$0-set-l-mid2 \$0-get-l-mid2 +mass2 0 -6 1 10 -262144 -1 -1 0 256; +#X obj 218 131 nbx 5 15 -1e+37 1e+37 0 0 \$0-set-l-sid \$0-get-l-sid +SymbolicID 0 -6 1 10 -262144 -1 -1 0 256; +#X obj 218 171 nbx 5 15 -1e+37 1e+37 0 0 \$0-set-l-K \$0-get-l-K K +0 -6 1 10 -262144 -1 -1 0 256; +#X obj 218 201 nbx 5 15 -1e+37 1e+37 0 0 \$0-set-l-D \$0-get-l-D D +0 -6 1 10 -262144 -1 -1 0 256; +#X obj 218 233 nbx 5 15 -1e+37 1e+37 0 0 \$0-set-l-P \$0-get-l-P P +0 -6 1 10 -262144 -1 -1 0 256; +#X obj 218 265 nbx 5 15 -1e+37 1e+37 0 0 \$0-set-l-Lmin \$0-get-l-Lmin +Lmin 0 -6 1 10 -262144 -1 -1 0 256; +#X obj 218 301 nbx 5 15 -1e+37 1e+37 0 0 \$0-set-l-Lmax \$0-get-l-Lmax +Lmax 0 -6 1 10 -262144 -1 -1 0 256; +#X msg 216 354 traverse pd-data; +#X text 39 331 Next mass:; +#X text 215 326 Next link:; +#X connect 5 0 4 0; +#X connect 8 0 4 0; +#X connect 10 0 11 0; +#X connect 20 0 11 0; +#X restore 42 33 pd \$0-edit-mass; +#N canvas 0 0 589 777 1002-editmass-guts 0; +#X obj 80 289 s \$0-mob-get; +#X obj 45 318 s \$0-mid-get; +#X obj 115 258 s \$0-M-get; +#X obj 151 230 s \$0-sid-get; +#X msg 84 175 vnext 1; +#X obj 20 63 r \$0-edit-mass; +#X obj 45 83 loadbang; +#X obj 45 148 pointer mass; +#X obj 79 382 r \$0-mob-set; +#X obj 41 411 r \$0-mid-set; +#X obj 153 323 r \$0-sid-set; +#X obj 115 351 r \$0-M-set; +#X obj 14 175 t p p; +#X obj 267 435 set mass M; +#X obj 350 435 set mass sid; +#X obj 170 436 set mass mob; +#X obj 41 439 set mass mid; +#X obj 252 322 pointer mass; +#X msg 45 110 traverse pd-data; +#X obj 45 201 get mass mid mob M sid x y; +#X obj 193 258 s \$0-mx-get; +#X obj 244 234 s \$0-my-get; +#X obj 99 515 set mass x; +#X obj 253 519 set mass y; +#X obj 99 487 r \$0-mx-set; +#X obj 252 495 r \$0-my-set; +#X connect 4 0 7 0; +#X connect 5 0 7 0; +#X connect 6 0 18 0; +#X connect 7 0 12 0; +#X connect 7 1 4 0; +#X connect 7 2 18 0; +#X connect 8 0 15 0; +#X connect 9 0 16 0; +#X connect 10 0 14 0; +#X connect 11 0 13 0; +#X connect 12 0 19 0; +#X connect 12 1 17 0; +#X connect 17 0 16 1; +#X connect 17 0 15 1; +#X connect 17 0 13 1; +#X connect 17 0 14 1; +#X connect 17 0 23 1; +#X connect 17 0 22 1; +#X connect 18 0 7 0; +#X connect 19 0 1 0; +#X connect 19 1 0 0; +#X connect 19 2 2 0; +#X connect 19 3 3 0; +#X connect 19 4 20 0; +#X connect 19 5 21 0; +#X connect 24 0 22 0; +#X connect 25 0 23 0; +#X restore 43 59 pd \$0-editmass-guts; +#N canvas 599 247 589 777 1002-editlinks-guts 0; +#X msg 84 175 vnext 1; +#X obj 45 83 loadbang; +#X obj 14 175 t p p; +#X msg 45 110 traverse pd-data; +#X obj 20 63 r \$0-edit-link; +#X obj 45 148 pointer liaison; +#X obj 325 279 s \$0-get-l-sid; +#X obj 289 308 s \$0-get-l-Lmax; +#X obj 249 338 s \$0-get-l-Lmin; +#X obj 211 370 s \$0-get-l-P; +#X obj 178 398 s \$0-get-l-D; +#X obj 130 419 s \$0-get-l-K; +#X obj 10 226 get liaison mid1 mid2 lid K D P Lmin Lmax sid; +#X obj 17 544 s \$0-get-l-mid1; +#X obj 52 493 s \$0-get-l-mid2; +#X obj 92 469 s \$0-get-l-lid; +#N canvas 266 70 710 834 1002-lset 0; +#X obj 31 44 inlet; +#X obj 41 65 s \$0-current-set-link; +#X obj 483 69 r \$0-current-set-link; +#X obj 372 38 r \$0-set-l-mid2; +#X obj 379 98 set liaison mid2; +#X obj 169 547 r \$0-current-set-link; +#X obj 64 550 r \$0-set-l-lid; +#X obj 65 576 set liaison lid; +#X obj 170 493 r \$0-current-set-link; +#X obj 65 496 r \$0-set-l-K; +#X obj 66 522 set liaison K; +#X obj 164 443 r \$0-current-set-link; +#X obj 67 440 r \$0-set-l-D; +#X obj 158 371 r \$0-current-set-link; +#X obj 68 468 set liaison D; +#X obj 64 398 set liaison P; +#X obj 61 368 r \$0-set-l-P; +#X obj 169 316 r \$0-current-set-link; +#X obj 56 311 r \$0-set-l-Lmin; +#X obj 59 339 set liaison Lmin; +#X obj 171 248 r \$0-current-set-link; +#X obj 59 271 set liaison Lmax; +#X obj 56 243 r \$0-set-l-Lmax; +#X obj 174 178 r \$0-current-set-link; +#X obj 69 181 r \$0-set-l-sid; +#X obj 70 207 set liaison sid; +#X obj 408 179 pointer mass; +#X msg 409 142 traverse pd-data \, next; +#X msg 362 180 next; +#X obj 408 226 get mass mid; +#X obj 399 273 select; +#X obj 406 202 t p p; +#X obj 402 298 pointer; +#X obj 402 337 get mass x y; +#X obj 374 67 t f b f; +#X obj 503 360 r \$0-current-set-link; +#X obj 397 386 set liaison x2 y2; +#X obj 504 449 r \$0-current-set-link; +#X obj 429 559 pointer mass; +#X msg 438 528 traverse pd-data \, next; +#X msg 383 560 next; +#X obj 429 606 get mass mid; +#X obj 420 653 select; +#X obj 427 582 t p p; +#X obj 423 678 pointer; +#X obj 423 717 get mass x y; +#X obj 395 447 t f b f; +#X obj 524 740 r \$0-current-set-link; +#X obj 391 418 r \$0-set-l-mid1; +#X obj 400 478 set liaison mid1; +#X obj 418 766 set liaison x1 y1; +#X obj 401 501 t b b; +#X obj 396 529 until; +#X obj 363 117 t b b; +#X obj 358 145 until; +#X connect 0 0 1 0; +#X connect 2 0 4 1; +#X connect 3 0 34 0; +#X connect 5 0 7 1; +#X connect 6 0 7 0; +#X connect 8 0 10 1; +#X connect 9 0 10 0; +#X connect 11 0 14 1; +#X connect 12 0 14 0; +#X connect 13 0 15 1; +#X connect 16 0 15 0; +#X connect 17 0 19 1; +#X connect 18 0 19 0; +#X connect 20 0 21 1; +#X connect 22 0 21 0; +#X connect 23 0 25 1; +#X connect 24 0 25 0; +#X connect 26 0 31 0; +#X connect 26 1 28 0; +#X connect 26 2 54 1; +#X connect 27 0 26 0; +#X connect 28 0 26 0; +#X connect 29 0 30 0; +#X connect 30 0 32 0; +#X connect 31 0 29 0; +#X connect 31 1 32 1; +#X connect 32 0 33 0; +#X connect 33 0 36 0; +#X connect 33 1 36 1; +#X connect 34 0 4 0; +#X connect 34 1 53 0; +#X connect 34 2 30 1; +#X connect 35 0 36 2; +#X connect 37 0 49 1; +#X connect 38 0 43 0; +#X connect 38 1 40 0; +#X connect 38 2 52 1; +#X connect 39 0 38 0; +#X connect 40 0 38 0; +#X connect 41 0 42 0; +#X connect 42 0 44 0; +#X connect 43 0 41 0; +#X connect 43 1 44 1; +#X connect 44 0 45 0; +#X connect 45 0 50 0; +#X connect 45 1 50 1; +#X connect 46 0 49 0; +#X connect 46 1 51 0; +#X connect 46 2 42 1; +#X connect 47 0 50 2; +#X connect 48 0 46 0; +#X connect 51 0 52 0; +#X connect 51 1 39 0; +#X connect 52 0 40 0; +#X connect 53 0 54 0; +#X connect 53 1 27 0; +#X connect 54 0 28 0; +#X restore 46 201 pd \$0-lset; +#X msg 19 521 set \$1; +#X msg 50 286 set \$1; +#X msg 84 314 set \$1; +#X msg 124 288 set \$1; +#X msg 168 320 set \$1; +#X msg 202 278 set \$1; +#X msg 242 302 set \$1; +#X msg 278 272 set \$1; +#X msg 321 251 set \$1; +#X connect 0 0 5 0; +#X connect 1 0 3 0; +#X connect 2 0 12 0; +#X connect 2 1 16 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 2 0; +#X connect 5 1 0 0; +#X connect 5 2 3 0; +#X connect 12 0 17 0; +#X connect 12 1 18 0; +#X connect 12 2 19 0; +#X connect 12 3 20 0; +#X connect 12 4 21 0; +#X connect 12 5 22 0; +#X connect 12 6 23 0; +#X connect 12 7 24 0; +#X connect 12 8 25 0; +#X connect 17 0 13 0; +#X connect 18 0 14 0; +#X connect 19 0 15 0; +#X connect 20 0 11 0; +#X connect 21 0 10 0; +#X connect 22 0 9 0; +#X connect 23 0 8 0; +#X connect 24 0 7 0; +#X connect 25 0 6 0; +#X restore 43 87 pd \$0-editlinks-guts; +#X connect 1 0 0 0; +#X restore 118 156 pd edits; +#X restore 348 573 pd guts; +#X obj 29 249 tgl 18 0 \$0-show-masseditor empty EditParam 22 9 0 8 +-1 -233017 -1 0 1; +#X obj 181 355 nbx 2 14 0 99 0 0 \$0-show-mids \$0-show-mids show-mids +0 -6 0 8 -225280 -1 -1 0 256; +#N canvas 0 0 106 49 obj 0; +#X obj 2 3 cnv 15 100 40 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 7 18 bng 20 250 50 0 empty empty load 0 -6 0 8 -258699 -1 -1 +; +#X obj 38 17 tgl 15 0 RENDER-PRIMTRI RENDER-PRIMTRI TRI 0 -6 0 8 -262131 +-1 -1 0 1; +#X obj 110 6 obj-render; +#X obj 62 17 tgl 15 0 \$0-gen-tri \$0-gen-tri Gen-TRI 0 -6 0 8 -261681 +-1 -1 0 1; +#X obj 111 26 s \$0-msd; +#X connect 1 0 3 0; +#X connect 3 0 5 0; +#X connect 4 0 3 1; +#X coords 0 0 1 1 102 44 1; +#X restore 304 489 pd obj; +#X text 229 537 Save MSD; +#X text 314 538 Load *.obj; +#X text 112 537 Save or Load DS; +#X connect 4 0 5 0; +#X connect 4 1 6 0; +#X connect 5 0 4 0; +#X connect 6 0 4 1; +#X connect 7 0 4 2; +#X connect 11 0 10 0; +#X connect 14 0 41 0; +#X connect 25 0 9 1; +#X connect 26 0 9 2; +#X connect 27 0 9 0; +#X connect 33 0 9 3; +#X connect 40 0 14 2; +#X connect 43 0 42 0; diff --git a/editor/msd_append.pd b/editor/msd_append.pd index d01906b..7c5a13e 100644 --- a/editor/msd_append.pd +++ b/editor/msd_append.pd @@ -5,88 +5,112 @@ ; #X obj 34 29 bng 15 250 50 0 empty empty fix 0 -6 0 8 -258699 -1 -1 ; -#N canvas 355 457 863 719 guts 0; -#X obj 252 139 pointer; -#X obj 66 179 random 100; -#X msg 252 102 traverse pd-data \, bang; -#X obj 105 126 random 100; -#X obj 70 24 inlet; -#X obj 177 24 inlet; -#X obj 385 351 + 1; -#X obj 355 291 r \$0-counter-bng; -#X obj 355 393 s \$0-nextmass; -#X obj 145 153 r \$0-nextmass; -#X obj 70 97 s \$0-counter-bng; -#X obj 70 71 t b b b b b f b; -#X msg 70 47 0; -#X text 111 24 mobile; -#X text 223 24 fixed mass; -#X msg 177 46 900; -#X obj 355 351 f 0; -#X obj 391 316 loadbang; -#X obj 255 294 r \$0-counter; -#X msg 296 384 set \$1; -#X obj 296 425 s \$0-counter-in; -#X obj 66 203 + 20; -#X obj 105 148 + 20; -#X obj 208 133 r \$0-M; +#N canvas 355 305 863 719 guts 0; +#X obj 289 340 pointer; +#X msg 289 303 traverse pd-data \, bang; +#X obj 107 89 inlet; +#X obj 214 89 inlet; +#X obj 679 378 + 1; +#X obj 649 318 r \$0-counter-bng; +#X obj 649 420 s \$0-nextmass; +#X obj 182 354 r \$0-nextmass; +#X obj 107 298 s \$0-counter-bng; +#X msg 107 112 0; +#X text 148 89 mobile; +#X text 260 89 fixed mass; +#X msg 214 111 900; +#X obj 649 378 f 0; +#X obj 685 343 loadbang; +#X obj 549 321 r \$0-counter; +#X msg 590 411 set \$1; +#X obj 590 452 s \$0-counter-in; +#X obj 245 334 r \$0-M; #X obj 553 175 f \$1; #X obj 553 199 select 0; #X obj 553 254 s \$0-M; #X msg 552 224 100; #X obj 558 152 loadbang; -#X obj 21 135 r \$0-geos; -#X obj 252 77 r \$0-start-traverse; -#X obj 179 204 f 0; -#X obj 21 158 t a b; -#X obj 195 173 r \$0-mfds; -#X obj 233 198 r \$0-msid; -#X obj 68 231 append mass x y mid mob M sid; +#X obj 40 316 r \$0-geos; +#X obj 289 278 r \$0-start-traverse; +#X obj 216 405 f 0; +#X obj 40 339 t a b; +#X obj 232 374 r \$0-mfds; +#X obj 270 399 r \$0-msid; +#X obj 105 432 append mass x y mid mob M sid; #X obj 678 195 loadbang; #X obj 678 249 s \$0-msid; #X msg 678 221 0; -#X connect 0 0 35 6; -#X connect 1 0 21 0; -#X connect 2 0 0 0; -#X connect 3 0 22 0; -#X connect 4 0 12 0; -#X connect 5 0 15 0; -#X connect 6 0 16 1; -#X connect 7 0 16 0; -#X connect 9 0 35 2; -#X connect 11 0 10 0; -#X connect 11 1 1 0; -#X connect 11 3 3 0; -#X connect 11 5 35 3; -#X connect 11 6 2 0; -#X connect 12 0 11 0; -#X connect 15 0 11 0; -#X connect 16 0 6 0; -#X connect 16 0 8 0; -#X connect 16 0 19 0; -#X connect 17 0 16 0; -#X connect 18 0 16 0; +#X msg 197 376 \$1; +#X obj 141 172 random 100; +#X obj 227 172 random 100; +#X obj 141 196 + 20; +#X obj 227 194 + 20; +#X obj 107 272 t b a b b b a b; +#X msg 123 356 \$2 \$3; +#X obj 128 150 t f b; +#X obj 107 230 pack 0 0 0; +#X obj 363 90 inlet; +#X text 410 91 another mass: list of "mob \, x \, y"; +#X obj 105 477 outlet; +#X text 159 480 last mass created; +#X obj 338 531 append hole x y; +#X obj 438 505 pointer; +#X msg 438 468 traverse pd-data \, bang; +#X obj 438 443 r \$0-start-traverse; +#X msg 338 479 10 10; +#X connect 0 0 30 6; +#X connect 1 0 0 0; +#X connect 2 0 9 0; +#X connect 3 0 12 0; +#X connect 4 0 13 1; +#X connect 5 0 13 0; +#X connect 7 0 30 2; +#X connect 9 0 41 0; +#X connect 12 0 41 0; +#X connect 13 0 4 0; +#X connect 13 0 6 0; +#X connect 13 0 16 0; +#X connect 14 0 13 0; +#X connect 15 0 13 0; +#X connect 16 0 17 0; +#X connect 18 0 30 4; #X connect 19 0 20 0; -#X connect 21 0 35 0; -#X connect 22 0 35 1; -#X connect 23 0 35 4; -#X connect 24 0 25 0; -#X connect 25 0 27 0; -#X connect 25 1 26 0; -#X connect 27 0 26 0; -#X connect 28 0 24 0; -#X connect 29 0 32 0; -#X connect 30 0 2 0; -#X connect 31 0 35 3; -#X connect 32 0 35 0; -#X connect 32 1 31 0; -#X connect 33 0 31 1; -#X connect 34 0 35 5; +#X connect 20 0 22 0; +#X connect 20 1 21 0; +#X connect 22 0 21 0; +#X connect 23 0 19 0; +#X connect 24 0 27 0; +#X connect 25 0 1 0; +#X connect 26 0 30 3; +#X connect 27 0 30 0; +#X connect 27 1 26 0; +#X connect 28 0 26 1; +#X connect 29 0 30 5; +#X connect 30 0 45 0; +#X connect 31 0 33 0; +#X connect 33 0 32 0; +#X connect 34 0 30 3; +#X connect 35 0 37 0; #X connect 36 0 38 0; -#X connect 38 0 37 0; +#X connect 37 0 42 1; +#X connect 38 0 42 2; +#X connect 39 0 8 0; +#X connect 39 1 40 0; +#X connect 39 5 34 0; +#X connect 39 6 1 0; +#X connect 40 0 30 0; +#X connect 41 0 42 0; +#X connect 41 1 35 0; +#X connect 41 1 36 0; +#X connect 42 0 39 0; +#X connect 43 0 42 0; +#X connect 48 0 47 2; +#X connect 49 0 48 0; +#X connect 50 0 49 0; +#X connect 51 0 47 0; #X restore 105 79 pd guts; -#X obj 126 6 inlet; -#X obj 169 5 inlet; +#X obj 105 6 inlet; +#X obj 148 5 inlet; #X obj 25 59 nbx 5 14 -1e+37 1e+37 0 0 \$0-counter \$0-counter-in id -22 8 0 10 -262144 -1 -1 0 256; #X obj 2 79 cnv 15 80 60 empty empty empty 10 10 0 10 -195568 -1 0 @@ -99,7 +123,7 @@ #X obj 93 188 s \$0-counter-bng; #X obj 48 33 r \$0-make-rect; #X msg 93 67 bang; -#N canvas 449 480 450 300 1024-geos 0; +#N canvas 449 480 450 300 1015-geos 0; #X obj 48 82 bng 24 250 50 0 \$0-make-rect empty make-rect 0 -6 0 8 -24198 -1 -1; #X floatatom 151 76 5 0 0 0 x0 - #0-x0; @@ -129,7 +153,7 @@ #X msg 516 22 bang; #X obj 48 66 t b b; #X obj 78 226 s \$0-start-traverse; -#N canvas 0 0 930 534 1024-sixpack 0; +#N canvas 0 0 930 534 1015-sixpack 0; #X obj 250 282 r \$0-x0; #X text 452 208 Args; #X obj 320 310 sixpack --------------------; @@ -150,7 +174,7 @@ #X obj 93 128 t b a; #X obj 524 45 r \$0-show-geos; #X obj 63 322 r \$0-make-circ; -#N canvas 0 0 930 534 1024-fourpack 0; +#N canvas 0 0 930 534 1015-fourpack 0; #X text 452 208 Args; #X obj 320 310 sixpack --------------------; #X obj 319 390 outlet; @@ -208,13 +232,17 @@ #X connect 27 0 23 0; #X connect 29 0 28 0; #X connect 30 0 28 0; -#X restore 113 41 pd geos; +#X restore 106 122 pd geos; #X obj 59 29 bng 15 250 50 0 \$0-show-geos \$0-show-geos geos 0 -6 0 8 -225271 -1 -1; #X obj 35 111 nbx 4 14 -1e+37 1e+37 0 0 \$0-msid \$0-msid SID -30 8 0 10 -261681 -1 -1 0 256; +#X obj 200 1 inlet; +#X obj 105 103 outlet; #X connect 1 0 3 0; #X connect 2 0 3 1; +#X connect 3 0 13 0; #X connect 4 0 3 0; #X connect 5 0 3 1; +#X connect 12 0 3 2; #X coords 0 0 1 1 82 130 1; diff --git a/editor/structures.pd b/editor/structures.pd index 22d4b38..80ca36c 100644 --- a/editor/structures.pd +++ b/editor/structures.pd @@ -1,5 +1,5 @@ #N canvas 752 10 450 300 10; -#N canvas 389 332 664 321 mass 0; +#N canvas 470 500 664 321 mass 0; #X obj 62 182 drawnumber mid 0 -18 0 m; #X obj 61 136 filledpolygon mob mob 1 -5 0 -4 4 0 5 4 4 5 0 4 -4 0 -5 -4 -4; @@ -12,3 +12,9 @@ M float sid; mid1 float mid2 float lid float K float D float P float Lmin float Lmax float sid; #X restore 132 147 pd liaison; +#N canvas 749 676 450 300 hole 0; +#X obj 79 73 struct hole float x float y; +#X text 93 162 Green cross; +#X obj 79 97 drawpolygon 50 2 -5 -5 5 5; +#X obj 79 122 drawpolygon 50 2 -5 5 5 -5; +#X restore 132 170 pd hole; -- cgit v1.2.1