aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--msd.h6
-rw-r--r--msd2D/02_msd2Dadd.pd87
-rw-r--r--msd2D/help-msd2D.pd10
-rw-r--r--msd3D/02_msd3Dperf.pd140
-rw-r--r--msd3D/05_msd3Dvline.pd404
-rw-r--r--msd3D/partiel.pd16
6 files changed, 340 insertions, 323 deletions
diff --git a/msd.h b/msd.h
index 7c082bd..402b539 100644
--- a/msd.h
+++ b/msd.h
@@ -8,7 +8,7 @@
Signal processing and Computing Applied to Music (ATIAM, Paris 6)
at La Kitchen supervised by Cyrille Henry.
- ptimized by Thomas Grill for Flext
+ Optimized by Thomas Grill for Flext
Based on Pure Data by Miller Puckette and others
Based on pmpd by Cyrille Henry
@@ -742,7 +742,7 @@ protected:
typename IDMap<t_mass *>::iterator mit;
for(mit = massids.find(GetSymbol(argv[j])); mit; ++mit) {
SetSymbol(sortie[0],mit.data()->Id);
- for(int i = 0; i < N; ++i) SetFloat(sortie[1],mit.data()->pos[i]);
+ for(int i = 0; i < N; ++i) SetFloat(sortie[1+i],mit.data()->pos[i]);
ToOutAnything(0,S_massesPosId,1+N,sortie);
}
}
@@ -750,7 +750,7 @@ protected:
t_mass *m = mass.find(GetAInt(argv[j]));
if(m) {
SetInt(sortie[0],m->nbr);
- for(int i = 0; i < N; ++i) SetFloat(sortie[1],m->pos[i]);
+ for(int i = 0; i < N; ++i) SetFloat(sortie[1+i],m->pos[i]);
ToOutAnything(0,S_massesPosNo,1+N,sortie);
}
// else
diff --git a/msd2D/02_msd2Dadd.pd b/msd2D/02_msd2Dadd.pd
index 95c6173..0f498f7 100644
--- a/msd2D/02_msd2Dadd.pd
+++ b/msd2D/02_msd2Dadd.pd
@@ -219,45 +219,47 @@
#X connect 92 0 61 0;
#X connect 93 0 64 0;
#X restore 230 679 pd synthese;
-#X obj 295 454 gemhead;
+#X obj 10 698 gemhead;
#X msg 155 258 Xmax 100 \, Xmin 0 \, Ymax 100 \, Ymin 0;
#X msg 511 503 reset \, create \, lighting 1 \, 1;
#X obj 52 399 t b;
-#N canvas 643 123 605 590 massrender 0;
+#N canvas 643 123 605 590 massrender 1;
#X obj 127 22 inlet;
-#X obj 62 231 translateXYZ;
+#X obj 62 267 translateXYZ;
#X obj 141 87 / 12.5;
#X obj 141 110 - 4;
#X obj 206 88 / 12.5;
#X obj 206 111 - 4;
#X obj 78 115 gemhead;
-#X obj 62 205 separator;
+#X obj 62 241 separator;
#X obj 62 181 any;
#X obj 127 57 unpack f f f;
-#X obj 185 178 f;
-#X msg 185 241 \$1;
+#X obj 212 182 f;
+#X msg 212 241 \$1;
#X obj 141 137 t b b f;
-#X obj 185 221 / 99;
-#X obj 185 199 - 29;
-#X obj 62 322 sphere 0.1;
+#X obj 62 314 sphere 0.1;
+#X obj 62 219 colorRGB 1 1 1;
+#X obj 212 221 / 29;
#X connect 0 0 9 0;
-#X connect 1 0 15 0;
+#X connect 1 0 13 0;
#X connect 2 0 3 0;
#X connect 3 0 12 0;
#X connect 4 0 5 0;
#X connect 5 0 1 2;
#X connect 6 0 8 1;
#X connect 7 0 1 0;
-#X connect 8 0 7 0;
+#X connect 8 0 14 0;
#X connect 9 0 10 1;
#X connect 9 1 2 0;
#X connect 9 2 4 0;
-#X connect 10 0 14 0;
-#X connect 12 0 10 0;
+#X connect 10 0 15 0;
+#X connect 11 0 14 2;
+#X connect 11 0 14 3;
#X connect 12 1 8 0;
+#X connect 12 1 10 0;
#X connect 12 2 1 1;
-#X connect 13 0 11 0;
-#X connect 14 0 13 0;
+#X connect 14 0 7 0;
+#X connect 15 0 11 0;
#X restore 141 657 pd massrender;
#N canvas 284 227 587 558 linkrender 0;
#X obj 93 25 inlet;
@@ -324,15 +326,10 @@
#X obj 173 148 t b b b;
#X obj 52 358 gemhead;
#X obj 511 547 gemwin;
-#X obj 52 628 route linksPos massesPos massesSpeedsNo;
-#X msg 71 498 forceX mob -200;
-#X msg 52 420 bang \, get massesPos \, get linksPos \, get massesSpeeds
-1 5 9 13 17 21 25 29;
-#X msg 71 478 forceX mob 200;
#X text 175 41 Reset;
#X text 484 171 Random positions and masses;
-#X text 370 502 1 Create window -->;
-#X text 196 484 Add force;
+#X text 367 502 1 Create window -->;
+#X text 225 498 Add force;
#X msg 522 585 \; pd dsp 1;
#X text 396 591 2 SET DSP ON -->;
#N canvas 311 224 409 530 gemmouse2 0;
@@ -357,31 +354,39 @@
#X connect 7 0 6 0;
#X connect 8 0 9 0;
#X connect 9 0 1 0;
-#X restore 295 476 pd gemmouse2;
-#X msg 295 518 grabMass \$1 \$2 \$3;
+#X restore 10 720 pd gemmouse2;
+#X msg 10 762 grabMass \$1 \$2 \$3;
#X obj 173 126 repeat 30;
#X obj 79 187 repeat 29;
#X msg 129 348 link souple \$1 \$2 10 0.5 0.5;
+#X text 130 713 Move red masses for bass and white ones for high tones...
+!Index errors;
+#X obj 52 628 route linksPos massesPos massesSpeedsNo;
+#X msg 52 420 bang \, get massesPos \, get linksPos \, get massesSpeeds
+1 5 9 13 17 21 25 29;
+#X obj 334 684 print;
+#X msg 95 518 forceX mob -1000;
+#X msg 94 492 forceX mob 1000;
#X connect 0 0 6 0;
#X connect 1 0 4 0;
#X connect 2 0 0 0;
#X connect 3 0 4 0;
-#X connect 4 0 50 0;
+#X connect 4 0 46 0;
#X connect 4 1 12 0;
-#X connect 4 2 49 0;
+#X connect 4 2 45 0;
#X connect 4 4 2 0;
#X connect 4 4 31 0;
#X connect 4 4 23 0;
#X connect 4 4 19 0;
#X connect 4 4 22 0;
-#X connect 6 0 37 0;
+#X connect 6 0 49 0;
#X connect 6 1 5 0;
#X connect 7 0 36 0;
#X connect 8 0 9 0;
-#X connect 11 0 47 0;
+#X connect 11 0 43 0;
#X connect 12 0 0 0;
#X connect 13 0 36 0;
-#X connect 14 0 39 0;
+#X connect 14 0 50 0;
#X connect 17 0 0 0;
#X connect 18 0 25 2;
#X connect 19 0 18 0;
@@ -401,19 +406,19 @@
#X connect 30 1 28 0;
#X connect 31 0 32 1;
#X connect 32 0 27 0;
-#X connect 33 0 51 0;
+#X connect 33 0 47 0;
#X connect 34 0 21 0;
#X connect 34 1 20 0;
#X connect 34 2 18 0;
#X connect 35 0 14 0;
-#X connect 37 0 16 0;
-#X connect 37 1 15 0;
-#X connect 37 2 10 0;
-#X connect 38 0 6 0;
-#X connect 39 0 6 0;
-#X connect 40 0 6 0;
-#X connect 47 0 48 0;
-#X connect 48 0 6 0;
-#X connect 49 0 34 0;
-#X connect 50 0 26 0;
-#X connect 51 0 0 0;
+#X connect 43 0 44 0;
+#X connect 44 0 6 0;
+#X connect 45 0 34 0;
+#X connect 46 0 26 0;
+#X connect 47 0 0 0;
+#X connect 49 0 16 0;
+#X connect 49 1 15 0;
+#X connect 49 2 10 0;
+#X connect 50 0 6 0;
+#X connect 52 0 6 0;
+#X connect 53 0 6 0;
diff --git a/msd2D/help-msd2D.pd b/msd2D/help-msd2D.pd
index f40ee81..f4b3208 100644
--- a/msd2D/help-msd2D.pd
+++ b/msd2D/help-msd2D.pd
@@ -20,7 +20,7 @@
#X text 350 431 Set position of mass(es);
#X text 347 486 Add force on mass(es);
#X msg 85 485 forceX \$1 \$2;
-#X obj 61 617 cnv 15 610 230 empty empty GET_ATTRIBUTES 20 12 0 14
+#X obj 61 617 cnv 15 610 260 empty empty GET_ATTRIBUTES 20 12 0 14
-261689 -66577 0;
#X msg 147 644 massePosL;
#X msg 147 694 masseForcesL;
@@ -35,7 +35,7 @@
#X msg 79 290 deleteMass \$1;
#X text 248 292 Delete a mass and associated links;
#X text 338 309 \$1 : Creation No of mass;
-#X msg 144 815 infosL;
+#X msg 144 813 infosL;
#X text 247 815 Get infos on all masses and links on outlet No 2;
#X text 347 555 \$1 : Value;
#X text 73 22 MASSES :;
@@ -64,6 +64,10 @@ their;
#X msg 147 669 massePosYL;
#X text 248 669 output all masses x/y position in a list on outlet
No 1;
+#X msg 112 838 grabMass \$1 \$2 \$3;
+#X text 247 838 Get nearest mass and grab it;
+#X text 112 857 \$1 \, \$2 : X \, Y position of mouse;
+#X text 357 857 \$3 : grab or not (left click);
#X connect 1 0 44 0;
#X connect 8 0 44 0;
#X connect 13 0 44 0;
@@ -77,7 +81,7 @@ No 1;
#X connect 41 0 44 0;
#X connect 46 0 44 0;
#X connect 50 0 44 0;
-#X restore 222 312 pd masses;
+#X restore 221 312 pd masses;
#X text 75 312 HELP on masses --->;
#X text 74 343 HELP on links --->;
#X text 13 117 There are 4 types of messages for msd :;
diff --git a/msd3D/02_msd3Dperf.pd b/msd3D/02_msd3Dperf.pd
index 296d990..b3b2b63 100644
--- a/msd3D/02_msd3Dperf.pd
+++ b/msd3D/02_msd3Dperf.pd
@@ -44,10 +44,8 @@
#X connect 12 3 10 0;
#X restore 52 699 pd massrender;
#X obj 425 254 random 100;
-#X msg 425 233 seed 1;
#X obj 349 254 random 100;
#X obj 274 233 random 100;
-#X msg 349 233 seed 2;
#X msg 274 212 seed 3;
#X obj 274 254 + 100;
#X obj 586 145 t b;
@@ -90,78 +88,80 @@
#X msg 213 177 mass fix 0 100 50 50 0;
#X msg 177 293 mass mob 1 \$1 \$2 \$3 \$4;
#X obj 75 491 metro 10;
-#X obj 76 469 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1
+#X obj 76 469 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
;
#X floatatom 107 470 5 0 0 0 - - -;
#X text 74 453 instead of GEM;
-#X connect 0 0 30 0;
+#X msg 349 233 seed 20;
+#X msg 425 233 seed 10;
+#X connect 0 0 28 0;
#X connect 1 0 5 0;
#X connect 2 0 0 0;
#X connect 3 0 5 0;
-#X connect 5 0 38 0;
-#X connect 5 1 35 0;
-#X connect 5 2 37 0;
-#X connect 5 3 55 0;
+#X connect 5 0 36 0;
+#X connect 5 1 33 0;
+#X connect 5 2 35 0;
+#X connect 5 3 53 0;
#X connect 5 4 2 0;
-#X connect 5 4 24 0;
-#X connect 5 4 17 0;
-#X connect 5 4 13 0;
-#X connect 5 4 16 0;
-#X connect 5 4 33 0;
-#X connect 6 0 29 0;
-#X connect 7 0 47 0;
-#X connect 9 0 29 0;
-#X connect 9 0 40 0;
-#X connect 10 0 42 0;
-#X connect 12 0 34 2;
-#X connect 13 0 12 0;
-#X connect 14 0 34 1;
-#X connect 15 0 18 0;
-#X connect 16 0 14 0;
-#X connect 17 0 15 0;
-#X connect 18 0 34 0;
-#X connect 19 0 25 0;
-#X connect 20 0 22 0;
-#X connect 20 0 23 0;
-#X connect 20 0 25 1;
-#X connect 21 0 26 1;
-#X connect 22 0 21 1;
-#X connect 23 0 26 0;
-#X connect 23 1 21 0;
-#X connect 24 0 25 1;
-#X connect 25 0 20 0;
-#X connect 26 0 27 0;
-#X connect 27 0 0 0;
-#X connect 28 0 10 0;
-#X connect 30 0 41 0;
-#X connect 31 0 15 0;
-#X connect 31 1 14 0;
-#X connect 31 1 32 0;
-#X connect 31 2 12 0;
-#X connect 32 0 34 3;
-#X connect 33 0 32 0;
-#X connect 34 0 56 0;
-#X connect 35 0 0 0;
-#X connect 36 0 29 0;
-#X connect 37 0 31 0;
-#X connect 38 0 19 0;
-#X connect 40 0 36 0;
-#X connect 41 0 11 0;
-#X connect 42 0 30 0;
-#X connect 44 0 47 1;
-#X connect 45 0 47 2;
-#X connect 46 0 47 3;
-#X connect 47 0 8 0;
-#X connect 48 0 37 1;
-#X connect 48 0 38 1;
-#X connect 49 0 30 0;
-#X connect 50 0 30 0;
-#X connect 51 0 30 0;
-#X connect 52 0 30 0;
-#X connect 53 0 30 0;
-#X connect 54 0 30 0;
-#X connect 55 0 0 0;
-#X connect 56 0 0 0;
-#X connect 57 0 30 0;
-#X connect 58 0 57 0;
-#X connect 59 0 57 1;
+#X connect 5 4 22 0;
+#X connect 5 4 15 0;
+#X connect 5 4 60 0;
+#X connect 5 4 59 0;
+#X connect 5 4 31 0;
+#X connect 6 0 27 0;
+#X connect 7 0 45 0;
+#X connect 9 0 27 0;
+#X connect 9 0 38 0;
+#X connect 10 0 40 0;
+#X connect 12 0 32 2;
+#X connect 13 0 32 1;
+#X connect 14 0 16 0;
+#X connect 15 0 14 0;
+#X connect 16 0 32 0;
+#X connect 17 0 23 0;
+#X connect 18 0 20 0;
+#X connect 18 0 21 0;
+#X connect 18 0 23 1;
+#X connect 19 0 24 1;
+#X connect 20 0 19 1;
+#X connect 21 0 24 0;
+#X connect 21 1 19 0;
+#X connect 22 0 23 1;
+#X connect 23 0 18 0;
+#X connect 24 0 25 0;
+#X connect 25 0 0 0;
+#X connect 26 0 10 0;
+#X connect 28 0 39 0;
+#X connect 29 0 14 0;
+#X connect 29 1 13 0;
+#X connect 29 1 30 0;
+#X connect 29 2 12 0;
+#X connect 30 0 32 3;
+#X connect 31 0 30 0;
+#X connect 32 0 54 0;
+#X connect 33 0 0 0;
+#X connect 34 0 27 0;
+#X connect 35 0 29 0;
+#X connect 36 0 17 0;
+#X connect 38 0 34 0;
+#X connect 39 0 11 0;
+#X connect 40 0 28 0;
+#X connect 42 0 45 1;
+#X connect 43 0 45 2;
+#X connect 44 0 45 3;
+#X connect 45 0 8 0;
+#X connect 46 0 35 1;
+#X connect 46 0 36 1;
+#X connect 47 0 28 0;
+#X connect 48 0 28 0;
+#X connect 49 0 28 0;
+#X connect 50 0 28 0;
+#X connect 51 0 28 0;
+#X connect 52 0 28 0;
+#X connect 53 0 0 0;
+#X connect 54 0 0 0;
+#X connect 55 0 28 0;
+#X connect 56 0 55 0;
+#X connect 57 0 55 1;
+#X connect 59 0 13 0;
+#X connect 60 0 12 0;
diff --git a/msd3D/05_msd3Dvline.pd b/msd3D/05_msd3Dvline.pd
index 9300589..5387bee 100644
--- a/msd3D/05_msd3Dvline.pd
+++ b/msd3D/05_msd3Dvline.pd
@@ -1,4 +1,4 @@
-#N canvas 499 155 796 654 10;
+#N canvas 583 104 796 654 10;
#X obj 32 13 loadbang;
#X obj 457 430 gemwin;
#X msg 457 408 0 \, destroy;
@@ -11,7 +11,6 @@
#X obj 33 179 gemhead;
#X msg 204 88 symbol reset;
#X obj 33 497 msd3D --------------------------------;
-#X text 156 412 Ambient force;
#X obj 146 42 t b b b b;
#X msg 296 393 forceZ filet \$1;
#X obj 444 207 tgl 20 0 empty empty empty 0 -6 0 8 -262131 -1 -1 1
@@ -22,7 +21,7 @@
#X msg 457 327 reset \, dimen 800 800 \, create \, lighting 1 \, 1
;
#X obj 421 221 vsl 15 128 -1 1 0 0 empty empty empty 0 -8 0 8 -262131
--1 -1 11000 1;
+-1 -1 11600 1;
#X obj 206 315 sin;
#X obj 206 335 *;
#X obj 206 255 counter 0 360;
@@ -31,29 +30,29 @@
#X obj 206 275 / 3.6;
#X obj 206 295 * 6.28319;
#X obj 206 232 metro 35;
-#N canvas 0 0 504 533 getmmasses 0;
-#X obj 154 46 inlet;
-#X obj 175 226 outlet;
-#X obj 157 85 t b b;
+#N canvas 646 294 504 533 getmmasses 0;
+#X obj 154 13 inlet;
+#X obj 152 238 outlet;
+#X obj 154 45 t b b;
#X obj 264 43 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
-#X obj 174 165 f 0;
-#X obj 175 197 + 1;
-#X obj 130 128 repeat 30;
-#X msg 229 140 209;
+#X obj 156 162 f 0;
+#X obj 156 186 + 1;
+#X msg 242 154 0;
+#X obj 154 129 repeat 450;
#X connect 0 0 2 0;
-#X connect 2 0 6 0;
-#X connect 2 1 7 0;
+#X connect 2 0 7 0;
+#X connect 2 1 6 0;
#X connect 3 0 2 0;
#X connect 4 0 5 0;
+#X connect 4 0 1 0;
#X connect 5 0 4 1;
-#X connect 5 0 1 0;
-#X connect 6 0 4 0;
-#X connect 7 0 4 1;
-#X restore 33 359 pd getmmasses;
+#X connect 6 0 4 1;
+#X connect 7 0 4 0;
+#X restore 51 364 pd getmmasses;
#N canvas 224 164 901 724 synthese 0;
-#X obj 232 66 inlet;
-#X obj 232 176 pack f f f f;
+#X obj 284 40 inlet;
+#X obj 298 181 pack f f f f;
#X obj 231 316 partiel;
#N canvas 582 426 450 300 drone 0;
#X obj 178 51 inlet;
@@ -84,19 +83,14 @@
#X connect 12 0 11 0;
#X connect 13 0 5 0;
#X connect 13 1 8 0;
-#X restore 627 480 pd drone;
-#X obj 232 154 t f f;
-#X msg 143 113 reset;
-#X obj 87 64 loadbang;
-#X obj 173 49 r resban;
-#X obj 232 110 t b f;
+#X restore 270 489 pd drone;
#X obj 521 498 hip~ 20;
#X obj 401 501 hip~ 20;
#X obj 443 563 dac~;
-#X obj 232 132 counter 0 29;
#X obj 235 254 route 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
19 20 21 22 23 24 25 26 27 28 29;
-#X obj 232 88 unpack f f f f;
+#X obj 284 62 unpack f f f f;
+#X obj 286 127 % 30;
#X obj 288 385 partiel;
#X obj 250 339 partiel;
#X obj 269 362 partiel;
@@ -126,145 +120,153 @@
#X obj 708 383 partiel;
#X obj 710 313 partiel;
#X obj 729 336 partiel;
-#X connect 0 0 14 0;
-#X connect 1 0 13 0;
-#X connect 2 0 9 0;
-#X connect 3 0 10 0;
-#X connect 3 0 9 0;
-#X connect 4 0 1 0;
-#X connect 5 0 12 0;
-#X connect 6 0 5 0;
-#X connect 7 0 5 0;
-#X connect 8 0 12 0;
+#X text 7 465 If you're tired with the drone disconnect it :;
+#X connect 0 0 8 0;
+#X connect 1 0 7 0;
+#X connect 2 0 4 0;
+#X connect 3 0 5 0;
+#X connect 3 0 4 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 7 0 2 0;
+#X connect 7 1 11 0;
+#X connect 7 2 12 0;
+#X connect 7 3 10 0;
+#X connect 7 4 13 0;
+#X connect 7 5 14 0;
+#X connect 7 6 15 0;
+#X connect 7 7 16 0;
+#X connect 7 8 17 0;
+#X connect 7 9 18 0;
+#X connect 7 10 19 0;
+#X connect 7 11 20 0;
+#X connect 7 12 21 0;
+#X connect 7 12 3 0;
+#X connect 7 13 22 0;
+#X connect 7 14 23 0;
+#X connect 7 15 24 0;
+#X connect 7 16 25 0;
+#X connect 7 17 26 0;
+#X connect 7 18 27 0;
+#X connect 7 19 28 0;
+#X connect 7 20 29 0;
+#X connect 7 21 30 0;
+#X connect 7 22 31 0;
+#X connect 7 23 32 0;
+#X connect 7 24 33 0;
+#X connect 7 25 34 0;
+#X connect 7 26 35 0;
+#X connect 7 27 36 0;
+#X connect 7 28 37 0;
+#X connect 7 29 38 0;
+#X connect 8 0 9 0;
#X connect 8 1 1 1;
-#X connect 9 0 11 1;
-#X connect 10 0 11 0;
+#X connect 8 2 1 2;
+#X connect 8 3 1 3;
+#X connect 9 0 1 0;
+#X connect 10 0 5 0;
+#X connect 11 0 5 0;
#X connect 12 0 4 0;
-#X connect 13 0 2 0;
-#X connect 13 1 16 0;
-#X connect 13 2 17 0;
-#X connect 13 3 15 0;
-#X connect 13 4 18 0;
-#X connect 13 5 19 0;
-#X connect 13 6 20 0;
-#X connect 13 7 21 0;
-#X connect 13 8 22 0;
-#X connect 13 9 23 0;
-#X connect 13 10 24 0;
-#X connect 13 11 25 0;
-#X connect 13 12 26 0;
-#X connect 13 13 27 0;
-#X connect 13 14 28 0;
-#X connect 13 15 29 0;
-#X connect 13 16 30 0;
-#X connect 13 17 31 0;
-#X connect 13 18 32 0;
-#X connect 13 19 33 0;
-#X connect 13 20 34 0;
-#X connect 13 21 35 0;
-#X connect 13 22 36 0;
-#X connect 13 23 37 0;
-#X connect 13 24 38 0;
-#X connect 13 25 39 0;
-#X connect 13 26 40 0;
-#X connect 13 27 41 0;
-#X connect 13 28 42 0;
-#X connect 13 29 43 0;
-#X connect 14 1 8 0;
-#X connect 14 2 1 2;
-#X connect 14 3 1 3;
-#X connect 15 0 10 0;
-#X connect 16 0 10 0;
-#X connect 17 0 9 0;
-#X connect 18 0 9 0;
-#X connect 19 0 10 0;
-#X connect 20 0 9 0;
-#X connect 21 0 10 0;
-#X connect 22 0 9 0;
-#X connect 23 0 10 0;
-#X connect 24 0 9 0;
-#X connect 25 0 10 0;
-#X connect 26 0 9 0;
-#X connect 27 0 10 0;
-#X connect 28 0 9 0;
-#X connect 29 0 10 0;
-#X connect 30 0 9 0;
-#X connect 31 0 10 0;
-#X connect 32 0 9 0;
-#X connect 33 0 10 0;
-#X connect 34 0 9 0;
-#X connect 35 0 10 0;
-#X connect 36 0 9 0;
-#X connect 37 0 10 0;
-#X connect 38 0 9 0;
-#X connect 39 0 10 0;
-#X connect 40 0 9 0;
-#X connect 41 0 10 0;
-#X connect 42 0 9 0;
-#X connect 43 0 10 0;
-#X restore 33 572 pd synthese;
+#X connect 13 0 4 0;
+#X connect 14 0 5 0;
+#X connect 15 0 4 0;
+#X connect 16 0 5 0;
+#X connect 17 0 4 0;
+#X connect 18 0 5 0;
+#X connect 19 0 4 0;
+#X connect 20 0 5 0;
+#X connect 21 0 4 0;
+#X connect 22 0 5 0;
+#X connect 23 0 4 0;
+#X connect 24 0 5 0;
+#X connect 25 0 4 0;
+#X connect 26 0 5 0;
+#X connect 27 0 4 0;
+#X connect 28 0 5 0;
+#X connect 29 0 4 0;
+#X connect 30 0 5 0;
+#X connect 31 0 4 0;
+#X connect 32 0 5 0;
+#X connect 33 0 4 0;
+#X connect 34 0 5 0;
+#X connect 35 0 4 0;
+#X connect 36 0 5 0;
+#X connect 37 0 4 0;
+#X connect 38 0 5 0;
+#X restore 33 600 pd synthese;
#X obj 183 219 vsl 15 128 0 30 0 0 empty empty empty 0 -8 0 8 -262131
--1 -1 10100 1;
-#N canvas 571 334 938 386 massrender 0;
+-1 -1 11800 1;
+#N canvas 259 464 938 386 massrender 0;
#X obj 286 2 inlet;
-#X obj 35 134 gemhead;
-#X obj 44 192 any;
+#X obj 60 102 gemhead;
+#X obj 44 193 any;
#X obj 306 144 pack f f f f;
#X obj 306 99 % 30;
-#X obj 55 227 route 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
+#X obj 56 247 route 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
19 20 21 22 23 24 25 26 27 28 29;
-#X obj 306 119 sel 0;
#X obj 44 288 curve16 ---------------------------------------------
;
-#X obj 306 74 unpack f f f f;
-#X connect 0 0 8 0;
+#X obj 325 41 unpack f f f f;
+#X obj 261 125 sel 29;
+#X obj 559 210 pack f f f f;
+#X obj 430 147 moses 240;
+#X obj 432 177 moses 210;
+#X text 669 215 Get middle masses;
+#X obj 555 295 outlet;
+#X connect 0 0 7 0;
#X connect 1 0 2 1;
-#X connect 2 0 7 0;
+#X connect 2 0 6 0;
#X connect 3 0 5 0;
-#X connect 4 0 6 0;
#X connect 4 0 3 0;
-#X connect 5 0 7 1;
-#X connect 5 1 7 2;
-#X connect 5 2 7 3;
-#X connect 5 3 7 4;
-#X connect 5 4 7 5;
-#X connect 5 5 7 6;
-#X connect 5 6 7 7;
-#X connect 5 7 7 8;
-#X connect 5 8 7 9;
-#X connect 5 9 7 10;
-#X connect 5 10 7 11;
-#X connect 5 11 7 12;
-#X connect 5 12 7 13;
-#X connect 5 13 7 14;
-#X connect 5 14 7 15;
-#X connect 5 15 7 16;
-#X connect 5 16 7 17;
-#X connect 5 17 7 18;
-#X connect 5 18 7 19;
-#X connect 5 19 7 20;
-#X connect 5 20 7 21;
-#X connect 5 21 7 22;
-#X connect 5 22 7 23;
-#X connect 5 23 7 24;
-#X connect 5 24 7 25;
-#X connect 5 25 7 26;
-#X connect 5 26 7 27;
-#X connect 5 27 7 28;
-#X connect 5 28 7 29;
-#X connect 5 29 7 30;
-#X connect 6 0 2 0;
-#X connect 8 0 4 0;
-#X connect 8 1 3 1;
-#X connect 8 2 3 2;
-#X connect 8 3 3 3;
-#X restore 135 573 pd massrender;
-#X msg 165 140 setFixed 0 \, setFixed 29 \, setFixed 420 \, setFixed
+#X connect 4 0 8 0;
+#X connect 5 0 6 1;
+#X connect 5 1 6 2;
+#X connect 5 2 6 3;
+#X connect 5 3 6 4;
+#X connect 5 4 6 5;
+#X connect 5 5 6 6;
+#X connect 5 6 6 7;
+#X connect 5 7 6 8;
+#X connect 5 8 6 9;
+#X connect 5 9 6 10;
+#X connect 5 10 6 11;
+#X connect 5 11 6 12;
+#X connect 5 12 6 13;
+#X connect 5 13 6 14;
+#X connect 5 14 6 15;
+#X connect 5 15 6 16;
+#X connect 5 16 6 17;
+#X connect 5 17 6 18;
+#X connect 5 18 6 19;
+#X connect 5 19 6 20;
+#X connect 5 20 6 21;
+#X connect 5 21 6 22;
+#X connect 5 22 6 23;
+#X connect 5 23 6 24;
+#X connect 5 24 6 25;
+#X connect 5 25 6 26;
+#X connect 5 26 6 27;
+#X connect 5 27 6 28;
+#X connect 5 28 6 29;
+#X connect 5 29 6 30;
+#X connect 7 0 4 0;
+#X connect 7 0 10 0;
+#X connect 7 1 3 1;
+#X connect 7 1 9 1;
+#X connect 7 2 3 2;
+#X connect 7 2 9 2;
+#X connect 7 3 3 3;
+#X connect 7 3 9 3;
+#X connect 8 0 2 0;
+#X connect 9 0 13 0;
+#X connect 10 0 11 0;
+#X connect 11 1 9 0;
+#X restore 33 565 pd massrender;
+#X msg 165 139 setFixed 0 \, setFixed 29 \, setFixed 420 \, setFixed
449;
-#X text 459 114 Filet abstraction : x0 y0 stepx stepy ny nx;
+#X text 459 113 Filet abstraction : x0 y0 stepx stepy ny nx;
#X text 483 206 <-- Add constant force;
#X text 240 204 <-- Add sinus force;
-#X text 136 360 Get middles masses;
#X obj 457 348 t b;
#X text 179 18 Reset;
#X obj 184 115 filet -3.2 -3.2 0.22068 0.45714 15 30;
@@ -275,63 +277,65 @@
#X text 528 458 Change physical parameters of links;
#X msg 457 388 view 0 0 5 0 0 0 1 0 0;
#X text 624 390 <-- Zoom in;
-#X msg 33 412 forceZ filet 0;
-#X msg 33 379 get massesPos \$1;
+#X msg 51 388 get massesPos \$1;
#X msg 146 173 Xmax 4 \, Xmin -4 \, Ymax 4 \, Ymin -4 \, Zmax 9 \,
Zmin -6;
#X msg 457 369 view 0 0 11 0 0 0 1 0 0;
-#X msg 33 443 get massesPos;
#X obj 33 539 route massesPosNo massesPos;
#X obj 33 257 t b b;
-#X connect 0 0 12 0;
+#X obj 37 219 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X msg 29 323 bang;
+#X text 154 365 Get masses in order;
+#X obj 326 541 print;
+#X connect 0 0 11 0;
#X connect 2 0 1 0;
#X connect 3 0 4 0;
#X connect 5 0 10 0;
-#X connect 6 0 12 0;
+#X connect 6 0 11 0;
#X connect 7 0 5 0;
-#X connect 8 0 52 0;
-#X connect 9 0 38 1;
-#X connect 10 0 51 0;
-#X connect 12 0 48 0;
-#X connect 12 0 40 0;
-#X connect 12 1 31 0;
-#X connect 12 2 38 0;
-#X connect 12 3 7 0;
-#X connect 12 3 9 0;
-#X connect 13 0 10 0;
-#X connect 14 0 16 0;
-#X connect 15 0 13 0;
-#X connect 16 0 15 0;
-#X connect 17 0 10 0;
-#X connect 18 0 1 0;
-#X connect 18 0 36 0;
-#X connect 19 0 15 1;
-#X connect 20 0 21 0;
-#X connect 21 0 13 0;
-#X connect 22 0 24 0;
-#X connect 23 0 26 0;
-#X connect 24 0 25 0;
-#X connect 25 0 20 0;
-#X connect 26 0 22 0;
-#X connect 27 0 47 0;
-#X connect 29 0 21 1;
-#X connect 31 0 5 0;
-#X connect 36 0 49 0;
-#X connect 38 0 5 0;
+#X connect 8 0 48 0;
+#X connect 9 0 36 1;
+#X connect 10 0 47 0;
+#X connect 10 1 52 0;
+#X connect 11 0 45 0;
+#X connect 11 0 38 0;
+#X connect 11 1 30 0;
+#X connect 11 2 36 0;
+#X connect 11 3 7 0;
+#X connect 11 3 9 0;
+#X connect 12 0 10 0;
+#X connect 13 0 15 0;
+#X connect 14 0 12 0;
+#X connect 15 0 14 0;
+#X connect 16 0 10 0;
+#X connect 17 0 1 0;
+#X connect 17 0 34 0;
+#X connect 18 0 14 1;
+#X connect 19 0 20 0;
+#X connect 20 0 12 0;
+#X connect 21 0 23 0;
+#X connect 22 0 25 0;
+#X connect 23 0 24 0;
+#X connect 24 0 19 0;
+#X connect 25 0 21 0;
+#X connect 26 0 44 0;
+#X connect 28 0 20 1;
+#X connect 29 0 27 0;
+#X connect 30 0 5 0;
+#X connect 34 0 46 0;
+#X connect 36 0 5 0;
+#X connect 37 0 10 0;
#X connect 39 0 10 0;
-#X connect 41 0 10 0;
-#X connect 42 0 10 0;
-#X connect 44 0 1 0;
-#X connect 46 0 10 0;
-#X connect 47 0 10 0;
-#X connect 48 0 5 0;
-#X connect 49 0 1 0;
+#X connect 40 0 10 0;
+#X connect 42 0 1 0;
+#X connect 44 0 10 0;
+#X connect 45 0 5 0;
+#X connect 46 0 1 0;
+#X connect 47 0 29 0;
+#X connect 48 0 26 0;
+#X connect 48 0 50 0;
+#X connect 48 1 26 0;
+#X connect 48 1 50 0;
+#X connect 49 0 48 0;
#X connect 50 0 10 0;
-#X connect 51 0 28 0;
-#X connect 51 1 30 0;
-#X connect 52 0 10 0;
-#X connect 52 0 27 0;
-#X connect 52 0 50 0;
-#X connect 52 0 46 0;
-#X connect 52 1 27 0;
-#X connect 52 1 10 0;
diff --git a/msd3D/partiel.pd b/msd3D/partiel.pd
index 1ae82de..f7d89a0 100644
--- a/msd3D/partiel.pd
+++ b/msd3D/partiel.pd
@@ -8,9 +8,11 @@
#X obj 260 170 mtof;
#X msg 174 167 \$1 50;
#X msg 131 60 \$2;
-#X obj 131 83 / 10;
-#X obj 182 112 + 10;
-#X obj 172 84 * 5;
+#X obj 131 119 / 2;
+#X obj 131 88 abs;
+#X obj 174 86 abs;
+#X obj 177 108 * 5;
+#X obj 187 136 + 10;
#X connect 0 0 8 0;
#X connect 0 0 5 0;
#X connect 2 0 3 1;
@@ -19,7 +21,9 @@
#X connect 5 0 11 0;
#X connect 6 0 4 0;
#X connect 7 0 2 0;
-#X connect 8 0 9 0;
+#X connect 8 0 10 0;
#X connect 9 0 7 0;
-#X connect 10 0 6 0;
-#X connect 11 0 10 0;
+#X connect 10 0 9 0;
+#X connect 11 0 12 0;
+#X connect 12 0 13 0;
+#X connect 13 0 6 0;