Designing Sound - Procedural Audio for Games and Film.

Code examples for “Designing Sound” textbook

Practical

Pure Data

Footsteps - splitting phase test

#N canvas 90 121 317 510 10;
#X obj 84 82 phasor~;
#X obj 97 0 hsl 128 15 0 1 0 1 empty empty walkspeed 32 7 1 8 -262144
-1 -1 0 1;
#X obj 0 72 > 0;
#X obj 102 471 dac~;
#X obj 85 161 min~;
#X obj 86 277 wrap~;
#X obj 101 184 sig~ 1;
#X obj 101 209 /~;
#X obj 86 232 *~;
#X obj 191 210 min~;
#X obj 191 325 wrap~;
#X obj 206 233 sig~ 1;
#X obj 206 258 /~;
#X obj 191 281 *~;
#X obj 190 155 wrap~;
#X obj 70 417 *~;
#X obj 159 416 *~;
#X obj 70 393 osc~ 456;
#X obj 159 392 osc~ 600;
#X obj 94 24 sig~;
#X obj 190 133 +~ 0.5;
#X obj 141 60 sig~ 1;
#X obj 142 83 -~;
#X obj 85 60 *~ 6;
#X obj 86 255 +~ 1e-05;
#X obj 191 303 +~ 1e-05;
#X obj 8 94 s active;
#X obj 102 309 r active;
#X obj 175 349 *~;
#X obj 86 351 *~;
#X obj 0 138 sel 1;
#X msg 0 159 0;
#X obj 0 180 s bashphase;
#X obj 128 36 r bashphase;
#X obj 0 117 change;
#X text 33 367 ---------------------------------;
#X text 193 418 test oscils;
#X obj 159 440 *~ 0.1;
#X obj 70 439 *~ 0.1;
#X connect 0 0 4 0;
#X connect 0 0 20 0;
#X connect 1 0 2 0;
#X connect 1 0 19 0;
#X connect 2 0 26 0;
#X connect 2 0 34 0;
#X connect 4 0 8 0;
#X connect 5 0 29 0;
#X connect 6 0 7 0;
#X connect 7 0 8 1;
#X connect 8 0 24 0;
#X connect 9 0 13 0;
#X connect 10 0 28 1;
#X connect 11 0 12 0;
#X connect 12 0 13 1;
#X connect 13 0 25 0;
#X connect 14 0 9 0;
#X connect 15 0 38 0;
#X connect 16 0 37 0;
#X connect 17 0 15 0;
#X connect 18 0 16 0;
#X connect 19 0 22 1;
#X connect 19 0 23 0;
#X connect 20 0 14 0;
#X connect 21 0 22 0;
#X connect 22 0 4 1;
#X connect 22 0 7 1;
#X connect 22 0 9 1;
#X connect 22 0 12 1;
#X connect 23 0 0 0;
#X connect 24 0 5 0;
#X connect 25 0 10 0;
#X connect 27 0 29 1;
#X connect 27 0 28 0;
#X connect 28 0 16 1;
#X connect 29 0 15 1;
#X connect 30 0 31 0;
#X connect 31 0 32 0;
#X connect 33 0 0 1;
#X connect 34 0 30 0;
#X connect 37 0 3 1;
#X connect 38 0 3 0;

Download foot1.pd.

Footsteps - gravel texture with acceleration control

#N canvas 103 540 630 253 10;
#X obj 1 92 splitphase;
#X obj 220 156 * 3;
#X obj 261 157 * 3;
#X obj 302 156 * 3;
#X obj 26 226 dac~;
#N canvas 0 0 470 305 texturesource 0;
#X obj 125 83 inlet~;
#X obj 128 243 outlet~;
#N canvas 0 0 855 637 8demux~ 0;
#X obj 223 17 inlet;
#X obj 223 47 route snow grass dirt gravel wood concrete metal;
#X obj 372 445 *~;
#X obj 398 445 *~;
#X obj 425 445 *~;
#X obj 451 445 *~;
#X obj 478 445 *~;
#X obj 504 445 *~;
#X obj 531 445 *~;
#X obj 557 445 *~;
#X msg 214 101 1;
#X msg 244 101 0;
#X obj 223 72 t b;
#X msg 268 129 1;
#X msg 298 129 0;
#X obj 277 100 t b;
#X msg 322 157 1;
#X msg 352 157 0;
#X obj 331 128 t b;
#X msg 377 186 1;
#X msg 407 186 0;
#X obj 386 157 t b;
#X msg 429 215 1;
#X msg 459 215 0;
#X obj 438 186 t b;
#X msg 481 244 1;
#X msg 511 244 0;
#X obj 490 215 t b;
#X msg 531 273 1;
#X msg 561 273 0;
#X obj 540 244 t b;
#X msg 581 302 1;
#X msg 611 302 0;
#X obj 590 273 t b;
#X text 586 384 why can I never think of a better way to do this?;
#X obj 204 202 inlet~;
#X obj 372 477 outlet~;
#X obj 398 502 outlet~;
#X obj 426 526 outlet~;
#X obj 452 551 outlet~;
#X obj 479 574 outlet~;
#X obj 505 599 outlet~;
#X obj 530 623 outlet~;
#X obj 556 648 outlet~;
#X connect 0 0 1 0;
#X connect 1 0 12 0;
#X connect 1 1 15 0;
#X connect 1 2 18 0;
#X connect 1 3 21 0;
#X connect 1 4 24 0;
#X connect 1 5 27 0;
#X connect 1 6 30 0;
#X connect 1 7 33 0;
#X connect 2 0 36 0;
#X connect 3 0 37 0;
#X connect 4 0 38 0;
#X connect 5 0 39 0;
#X connect 6 0 40 0;
#X connect 7 0 41 0;
#X connect 8 0 42 0;
#X connect 9 0 43 0;
#X connect 10 0 2 1;
#X connect 11 0 3 1;
#X connect 11 0 4 1;
#X connect 11 0 5 1;
#X connect 11 0 6 1;
#X connect 11 0 7 1;
#X connect 11 0 8 1;
#X connect 11 0 9 1;
#X connect 12 0 10 0;
#X connect 12 0 11 0;
#X connect 13 0 3 1;
#X connect 14 0 2 1;
#X connect 14 0 4 1;
#X connect 14 0 5 1;
#X connect 14 0 6 1;
#X connect 14 0 7 1;
#X connect 14 0 8 1;
#X connect 14 0 9 1;
#X connect 15 0 13 0;
#X connect 15 0 14 0;
#X connect 16 0 4 1;
#X connect 17 0 2 1;
#X connect 17 0 3 1;
#X connect 17 0 5 1;
#X connect 17 0 6 1;
#X connect 17 0 7 1;
#X connect 17 0 8 1;
#X connect 17 0 9 1;
#X connect 18 0 16 0;
#X connect 18 0 17 0;
#X connect 19 0 5 1;
#X connect 20 0 2 1;
#X connect 20 0 3 1;
#X connect 20 0 4 1;
#X connect 20 0 6 1;
#X connect 20 0 7 1;
#X connect 20 0 8 1;
#X connect 20 0 9 1;
#X connect 21 0 19 0;
#X connect 21 0 20 0;
#X connect 22 0 6 1;
#X connect 23 0 2 1;
#X connect 23 0 3 1;
#X connect 23 0 4 1;
#X connect 23 0 5 1;
#X connect 23 0 7 1;
#X connect 23 0 8 1;
#X connect 23 0 9 1;
#X connect 24 0 22 0;
#X connect 24 0 23 0;
#X connect 25 0 7 1;
#X connect 26 0 2 1;
#X connect 26 0 3 1;
#X connect 26 0 4 1;
#X connect 26 0 5 1;
#X connect 26 0 6 1;
#X connect 26 0 8 1;
#X connect 26 0 9 1;
#X connect 27 0 25 0;
#X connect 27 0 26 0;
#X connect 28 0 8 1;
#X connect 29 0 2 1;
#X connect 29 0 3 1;
#X connect 29 0 4 1;
#X connect 29 0 5 1;
#X connect 29 0 6 1;
#X connect 29 0 7 1;
#X connect 29 0 9 1;
#X connect 30 0 28 0;
#X connect 30 0 29 0;
#X connect 31 0 9 1;
#X connect 32 0 2 1;
#X connect 32 0 3 1;
#X connect 32 0 4 1;
#X connect 32 0 5 1;
#X connect 32 0 6 1;
#X connect 32 0 7 1;
#X connect 32 0 8 1;
#X connect 33 0 31 0;
#X connect 33 0 32 0;
#X connect 35 0 2 0;
#X connect 35 0 3 0;
#X connect 35 0 4 0;
#X connect 35 0 5 0;
#X connect 35 0 6 0;
#X connect 35 0 7 0;
#X connect 35 0 8 0;
#X connect 35 0 9 0;
#X restore 125 109 pd 8demux~;
#X obj 190 82 inlet;
#N canvas 0 0 726 641 snowtex 0;
#N canvas 0 0 776 658 snow 0;
#X obj 161 453 *~;
#X obj 109 225 noise~;
#X obj 146 412 vcf~ 200 3;
#X obj 241 366 loadbang;
#X obj 102 270 /~;
#X obj 103 343 clip~ -1 1;
#X obj 60 247 lop~ 110;
#X obj 121 246 lop~ 900;
#X obj 166 169 noise~;
#X obj 165 219 /~;
#X obj 123 196 lop~ 50;
#X obj 184 195 lop~ 70;
#X obj 103 290 *~;
#X obj 192 220 lop~ 10;
#X obj 191 241 *~ 17;
#X obj 190 264 *~;
#X obj 103 313 *~;
#X obj 189 286 +~ 0.5;
#X obj 181 142 inlet~;
#X obj 160 507 outlet~;
#X obj 247 154 switch~;
#X obj 247 128 inlet;
#X obj 102 365 hip~ 300;
#X obj 185 389 +~ 700;
#X obj 185 365 *~ 9000;
#X msg 241 386 0.5;
#X obj 162 476 *~ 0.2;
#X connect 0 0 26 0;
#X connect 1 0 6 0;
#X connect 1 0 7 0;
#X connect 2 0 0 0;
#X connect 3 0 25 0;
#X connect 4 0 12 0;
#X connect 5 0 22 0;
#X connect 6 0 4 0;
#X connect 7 0 4 1;
#X connect 8 0 10 0;
#X connect 8 0 11 0;
#X connect 8 0 13 0;
#X connect 9 0 12 1;
#X connect 10 0 9 0;
#X connect 11 0 9 1;
#X connect 12 0 16 0;
#X connect 13 0 14 0;
#X connect 14 0 15 0;
#X connect 14 0 15 1;
#X connect 15 0 17 0;
#X connect 16 0 5 0;
#X connect 17 0 16 1;
#X connect 18 0 0 1;
#X connect 18 0 24 0;
#X connect 21 0 20 0;
#X connect 22 0 2 0;
#X connect 23 0 2 1;
#X connect 24 0 23 0;
#X connect 25 0 2 2;
#X connect 26 0 19 0;
#X restore 158 117 pd snow;
#X obj 202 75 env~;
#X obj 202 96 > 0.5;
#X obj 180 38 inlet~;
#X obj 158 139 outlet~;
#X connect 0 0 4 0;
#X connect 1 0 2 0;
#X connect 2 0 0 1;
#X connect 3 0 1 0;
#X connect 3 0 0 0;
#X restore 8 170 pd snowtex;
#N canvas 0 0 726 641 dirttex 0;
#X obj 202 75 env~;
#X obj 202 96 > 0.5;
#X obj 180 38 inlet~;
#X obj 158 139 outlet~;
#N canvas 0 0 294 514 dirt 0;
#X obj 54 309 *~;
#X obj 72 47 inlet~;
#X obj 76 443 outlet~;
#X obj 138 59 switch~;
#X obj 138 33 inlet;
#X obj 128 221 osc~;
#X obj 127 157 *~;
#X obj 150 82 noise~;
#X obj 150 127 *~ 70;
#X obj 150 104 lop~ 80;
#X obj 100 127 +~ 0.3;
#X obj 128 242 hip~ 200;
#X obj 71 126 *~;
#X obj 70 148 *~;
#X obj 18 250 osc~ 80;
#X obj 18 228 +~ 40;
#X obj 19 202 *~ 500;
#X obj 77 394 +~;
#X obj 127 264 clip~ -1 1;
#X obj 128 179 *~ 70;
#X obj 126 330 *~ 0.04;
#X obj 55 332 *~ 0.5;
#X obj 128 200 +~ 70;
#X connect 0 0 21 0;
#X connect 1 0 10 0;
#X connect 1 0 12 0;
#X connect 1 0 12 1;
#X connect 4 0 3 0;
#X connect 5 0 11 0;
#X connect 6 0 19 0;
#X connect 7 0 9 0;
#X connect 8 0 6 1;
#X connect 9 0 8 0;
#X connect 10 0 6 0;
#X connect 11 0 18 0;
#X connect 12 0 13 0;
#X connect 12 0 13 1;
#X connect 13 0 0 1;
#X connect 13 0 16 0;
#X connect 14 0 0 0;
#X connect 15 0 14 0;
#X connect 16 0 15 0;
#X connect 17 0 2 0;
#X connect 18 0 20 0;
#X connect 19 0 22 0;
#X connect 20 0 17 1;
#X connect 21 0 17 0;
#X connect 22 0 5 0;
#X restore 158 117 pd dirt;
#X connect 0 0 1 0;
#X connect 1 0 4 1;
#X connect 2 0 0 0;
#X connect 2 0 4 0;
#X connect 4 0 3 0;
#X restore 173 169 pd dirttex;
#N canvas 0 0 726 641 grasstex 0;
#X obj 202 75 env~;
#X obj 202 96 > 0.5;
#X obj 180 38 inlet~;
#X obj 158 139 outlet~;
#N canvas 0 0 888 667 grass 0;
#X obj 163 404 *~;
#X obj 181 142 inlet~;
#X obj 401 564 outlet~;
#X obj 238 140 inlet;
#X obj 180 221 *~;
#X obj 179 243 *~;
#X obj 127 345 osc~ 80;
#X obj 401 527 +~;
#X obj 164 427 *~ 0.8;
#X obj 127 323 +~ 30;
#X obj 127 297 *~ 600;
#X obj 127 369 clip~ 0 0.5;
#X obj 238 166 switch~;
#X obj 725 115 noise~;
#X obj 732 286 lop~ 16;
#X obj 627 405 vcf~ 3333 30;
#X obj 627 248 *~;
#X obj 627 272 *~;
#X obj 733 312 *~ 23800;
#X obj 626 176 /~;
#X obj 655 149 lop~ 2000;
#X obj 593 149 lop~ 300;
#X obj 626 315 clip~ -0.9 0.9;
#X obj 733 334 +~ 3400;
#X obj 626 293 *~ 1e-05;
#X obj 626 213 hip~ 2500;
#X obj 611 489 *~;
#X obj 733 359 clip~ 2000 10000;
#X msg 723 386 1;
#X obj 718 405 init 1;
#X obj 627 435 hip~ 900;
#X obj 627 467 *~ 0.3;
#X connect 0 0 8 0;
#X connect 1 0 4 0;
#X connect 1 0 4 1;
#X connect 1 0 26 0;
#X connect 3 0 12 0;
#X connect 4 0 5 0;
#X connect 4 0 5 1;
#X connect 5 0 0 1;
#X connect 5 0 10 0;
#X connect 6 0 11 0;
#X connect 7 0 2 0;
#X connect 8 0 7 0;
#X connect 9 0 6 0;
#X connect 10 0 9 0;
#X connect 11 0 0 0;
#X connect 13 0 14 0;
#X connect 13 0 20 0;
#X connect 13 0 21 0;
#X connect 14 0 18 0;
#X connect 15 0 30 0;
#X connect 16 0 17 0;
#X connect 16 0 17 1;
#X connect 17 0 24 0;
#X connect 18 0 23 0;
#X connect 19 0 25 0;
#X connect 20 0 19 1;
#X connect 21 0 19 0;
#X connect 22 0 15 0;
#X connect 23 0 27 0;
#X connect 24 0 22 0;
#X connect 25 0 16 0;
#X connect 25 0 16 1;
#X connect 26 0 7 1;
#X connect 27 0 15 1;
#X connect 28 0 15 2;
#X connect 29 0 15 2;
#X connect 30 0 31 0;
#X connect 31 0 26 1;
#X restore 158 117 pd grass;
#X connect 0 0 1 0;
#X connect 1 0 4 1;
#X connect 2 0 0 0;
#X connect 2 0 4 0;
#X connect 4 0 3 0;
#X restore 87 170 pd grasstex;
#N canvas 0 0 726 641 gravtex 0;
#X obj 202 75 env~;
#X obj 202 96 > 0.5;
#X obj 180 38 inlet~;
#X obj 158 139 outlet~;
#N canvas 0 0 492 597 gravel 0;
#X obj 123 19 inlet~;
#X obj 123 499 outlet~;
#X obj 293 69 inlet;
#X obj 293 95 switch~;
#X obj 252 14 noise~;
#X obj 136 160 *~;
#X obj 136 107 /~;
#X obj 166 70 lop~ 2000;
#X obj 104 70 lop~ 300;
#X obj 137 241 clip~ -0.9 0.9;
#X obj 122 475 *~;
#X obj 156 380 clip~ 500 10000;
#X obj 154 271 lop~ 50;
#X obj 137 134 hip~ 400;
#X obj 137 219 *~ 0.01;
#X obj 155 297 *~ 50000;
#X obj 138 430 hip~ 200;
#X obj 138 453 *~ 2;
#X obj 156 355 +~;
#X obj 173 330 *~ 1000;
#X obj 138 406 vcf~ 3;
#X connect 0 0 10 0;
#X connect 0 0 19 0;
#X connect 2 0 3 0;
#X connect 4 0 7 0;
#X connect 4 0 8 0;
#X connect 4 0 12 0;
#X connect 5 0 14 0;
#X connect 6 0 13 0;
#X connect 7 0 6 1;
#X connect 8 0 6 0;
#X connect 9 0 20 0;
#X connect 10 0 1 0;
#X connect 11 0 20 1;
#X connect 12 0 15 0;
#X connect 13 0 5 0;
#X connect 13 0 5 1;
#X connect 14 0 9 0;
#X connect 15 0 18 0;
#X connect 16 0 17 0;
#X connect 17 0 10 1;
#X connect 18 0 11 0;
#X connect 19 0 18 1;
#X connect 20 0 16 0;
#X restore 158 117 pd gravel;
#X connect 0 0 1 0;
#X connect 1 0 4 1;
#X connect 2 0 0 0;
#X connect 2 0 4 0;
#X connect 4 0 3 0;
#X restore 250 168 pd gravtex;
#N canvas 0 0 726 641 woodtex 0;
#X obj 202 75 env~;
#X obj 202 96 > 0.5;
#X obj 180 38 inlet~;
#X obj 158 139 outlet~;
#N canvas 0 0 1177 818 wood 0;
#X obj 470 445 *~;
#X obj 181 142 inlet~;
#X obj 401 564 outlet~;
#X obj 238 140 inlet;
#X obj 180 221 *~;
#X obj 401 527 +~;
#X obj 237 163 switch~;
#X obj 466 255 noise~;
#X obj 419 322 *~ 6;
#X obj 801 262 noise~;
#X obj 355 423 *~;
#X obj 737 287 bp~ 123 20;
#X obj 180 251 *~ 2;
#X obj 336 293 bp~ 95 90;
#X obj 411 291 bp~ 134 90;
#X obj 489 290 bp~ 139 90;
#X obj 567 290 bp~ 154 90;
#X obj 815 286 bp~ 156 90;
#X obj 893 286 bp~ 189 90;
#X obj 745 318 *~ 8;
#X obj 662 289 bp~ 201 70;
#X obj 243 258 sqrt~;
#X obj 356 449 *~ 0.5;
#X obj 469 469 *~ 0.6;
#X connect 0 0 23 0;
#X connect 1 0 4 0;
#X connect 1 0 4 1;
#X connect 1 0 21 0;
#X connect 3 0 6 0;
#X connect 4 0 12 0;
#X connect 5 0 2 0;
#X connect 7 0 13 0;
#X connect 7 0 14 0;
#X connect 7 0 15 0;
#X connect 7 0 16 0;
#X connect 8 0 10 1;
#X connect 9 0 11 0;
#X connect 9 0 17 0;
#X connect 9 0 18 0;
#X connect 9 0 20 0;
#X connect 10 0 22 0;
#X connect 11 0 19 0;
#X connect 12 0 0 0;
#X connect 13 0 8 0;
#X connect 14 0 8 0;
#X connect 15 0 8 0;
#X connect 16 0 8 0;
#X connect 17 0 19 0;
#X connect 18 0 19 0;
#X connect 19 0 0 1;
#X connect 20 0 19 0;
#X connect 21 0 10 0;
#X connect 22 0 5 0;
#X connect 23 0 5 0;
#X restore 158 117 pd wood;
#X connect 0 0 1 0;
#X connect 1 0 4 1;
#X connect 2 0 0 0;
#X connect 2 0 4 0;
#X connect 4 0 3 0;
#X restore 332 167 pd woodtex;
#X text 233 81 surface select;
#X text 9 83 control envelope;
#X connect 0 0 2 0;
#X connect 2 0 4 0;
#X connect 2 1 6 0;
#X connect 2 2 5 0;
#X connect 2 3 7 0;
#X connect 2 4 8 0;
#X connect 3 0 2 1;
#X connect 4 0 1 0;
#X connect 5 0 1 0;
#X connect 6 0 1 0;
#X connect 7 0 1 0;
#X connect 8 0 1 0;
#X restore 1 166 pd texturesource;
#X msg 147 118 gravel;
#X obj 222 1 hsl 128 15 0 1 0 1 walkspeed empty walkspeed 38 7 1 8
-262144 -1 -1 4300 1;
#X obj 346 156 * 1;
#X obj 220 204 s~ n1;
#X obj 261 204 s~ n2;
#X obj 302 204 s~ n3;
#X obj 346 204 s~ a1;
#X obj 222 22 hsl 128 15 0 1 0 1 \$0-heel \$0-heelf heel 38 7 1 8 -262144
-1 -1 6349 1;
#X obj 220 134 r \$0-heel;
#X obj 261 113 r \$0-roll;
#X obj 302 134 r \$0-ball;
#X obj 345 112 r \$0-amp;
#X obj 222 42 hsl 128 15 0 1 0 1 \$0-roll empty roll 38 7 1 8 -262144
-1 -1 2200 1;
#X obj 222 62 hsl 128 15 0 1 0 1 \$0-ball \$0-ballf ball 38 7 1 8 -262144
-1 -1 6351 1;
#X obj 220 178 sig~;
#X obj 261 180 sig~;
#X obj 302 179 sig~;
#X obj 345 180 sig~;
#N canvas 43 30 386 285 foot 0;
#X obj 0 96 clip~ 0 0.33333;
#X obj 265 96 clip~ 0.666666 1;
#X obj 0 144 *~ 3;
#X obj 265 144 *~ 3;
#X obj 265 122 -~ 0.666666;
#X obj 132 96 clip~ 0.125 0.875;
#X obj 132 122 -~ 0.125;
#X obj 132 144 *~ 1.33333;
#N canvas 512 249 114 240 polycurve 0;
#X obj 0 67 *~;
#X obj 0 91 *~;
#X obj 63 42 sig~ 1;
#X obj 37 151 -~;
#X obj 47 177 *~;
#X obj 0 32 *~ 1;
#X obj 47 200 *~ -1.5;
#X obj 63 66 -~;
#X obj 37 127 *~;
#X obj 54 22 inlet~ N;
#X obj 28 67 *~;
#X obj 0 0 inlet~ X;
#X obj 47 222 outlet~ P;
#X connect 0 0 1 0;
#X connect 1 0 8 0;
#X connect 2 0 7 0;
#X connect 3 0 4 0;
#X connect 4 0 6 0;
#X connect 5 0 0 0;
#X connect 5 0 0 1;
#X connect 5 0 1 1;
#X connect 5 0 7 1;
#X connect 5 0 10 0;
#X connect 6 0 12 0;
#X connect 7 0 4 1;
#X connect 8 0 3 0;
#X connect 9 0 10 1;
#X connect 9 0 8 1;
#X connect 10 0 3 1;
#X connect 11 0 5 0;
#X restore 0 195 pd polycurve;
#N canvas 0 0 566 419 polycurve 0;
#X obj 173 193 *~;
#X obj 174 217 *~;
#X obj 237 168 sig~ 1;
#X obj 211 277 -~;
#X obj 220 303 *~;
#X obj 173 158 *~ 1;
#X obj 219 326 *~ -1.5;
#X obj 237 192 -~;
#X obj 210 253 *~;
#X obj 227 148 inlet~ N;
#X obj 201 193 *~;
#X obj 173 126 inlet~ X;
#X obj 218 351 outlet~ P;
#X connect 0 0 1 0;
#X connect 1 0 8 0;
#X connect 2 0 7 0;
#X connect 3 0 4 0;
#X connect 4 0 6 0;
#X connect 5 0 0 0;
#X connect 5 0 0 1;
#X connect 5 0 1 1;
#X connect 5 0 7 1;
#X connect 5 0 10 0;
#X connect 6 0 12 0;
#X connect 7 0 4 1;
#X connect 8 0 3 0;
#X connect 9 0 10 1;
#X connect 9 0 8 1;
#X connect 10 0 3 1;
#X connect 11 0 5 0;
#X restore 132 196 pd polycurve;
#N canvas 0 0 566 419 polycurve 0;
#X obj 173 193 *~;
#X obj 174 217 *~;
#X obj 237 168 sig~ 1;
#X obj 211 277 -~;
#X obj 220 303 *~;
#X obj 173 158 *~ 1;
#X obj 219 326 *~ -1.5;
#X obj 237 192 -~;
#X obj 210 253 *~;
#X obj 227 148 inlet~ N;
#X obj 201 193 *~;
#X obj 173 126 inlet~ X;
#X obj 218 351 outlet~ P;
#X connect 0 0 1 0;
#X connect 1 0 8 0;
#X connect 2 0 7 0;
#X connect 3 0 4 0;
#X connect 4 0 6 0;
#X connect 5 0 0 0;
#X connect 5 0 0 1;
#X connect 5 0 1 1;
#X connect 5 0 7 1;
#X connect 5 0 10 0;
#X connect 6 0 12 0;
#X connect 7 0 4 1;
#X connect 8 0 3 0;
#X connect 9 0 10 1;
#X connect 9 0 8 1;
#X connect 10 0 3 1;
#X connect 11 0 5 0;
#X restore 265 195 pd polycurve;
#X obj 80 170 r~ n1;
#X obj 210 170 r~ n2;
#X obj 344 170 r~ n3;
#X obj 132 0 inlet~;
#X obj 132 267 outlet~;
#X obj 132 26 clip~ 0 0.75;
#X obj 132 54 *~ 1.33333;
#X connect 0 0 2 0;
#X connect 1 0 4 0;
#X connect 2 0 8 0;
#X connect 3 0 10 0;
#X connect 4 0 3 0;
#X connect 5 0 6 0;
#X connect 6 0 7 0;
#X connect 7 0 9 0;
#X connect 8 0 15 0;
#X connect 9 0 15 0;
#X connect 10 0 15 0;
#X connect 11 0 8 1;
#X connect 12 0 9 1;
#X connect 13 0 10 1;
#X connect 14 0 16 0;
#X connect 16 0 17 0;
#X connect 17 0 0 0;
#X connect 17 0 5 0;
#X connect 17 0 1 0;
#X restore 1 120 pd foot;
#N canvas 0 0 470 305 texturesource 0;
#X obj 125 83 inlet~;
#X obj 128 243 outlet~;
#N canvas 0 0 855 637 8demux~ 0;
#X obj 223 17 inlet;
#X obj 223 47 route snow grass dirt gravel wood concrete metal;
#X obj 372 445 *~;
#X obj 398 445 *~;
#X obj 425 445 *~;
#X obj 451 445 *~;
#X obj 478 445 *~;
#X obj 504 445 *~;
#X obj 531 445 *~;
#X obj 557 445 *~;
#X msg 214 101 1;
#X msg 244 101 0;
#X obj 223 72 t b;
#X msg 268 129 1;
#X msg 298 129 0;
#X obj 277 100 t b;
#X msg 322 157 1;
#X msg 352 157 0;
#X obj 331 128 t b;
#X msg 377 186 1;
#X msg 407 186 0;
#X obj 386 157 t b;
#X msg 429 215 1;
#X msg 459 215 0;
#X obj 438 186 t b;
#X msg 481 244 1;
#X msg 511 244 0;
#X obj 490 215 t b;
#X msg 531 273 1;
#X msg 561 273 0;
#X obj 540 244 t b;
#X msg 581 302 1;
#X msg 611 302 0;
#X obj 590 273 t b;
#X text 586 384 why can I never think of a better way to do this?;
#X obj 204 202 inlet~;
#X obj 372 477 outlet~;
#X obj 398 502 outlet~;
#X obj 426 526 outlet~;
#X obj 452 551 outlet~;
#X obj 479 574 outlet~;
#X obj 505 599 outlet~;
#X obj 530 623 outlet~;
#X obj 556 648 outlet~;
#X connect 0 0 1 0;
#X connect 1 0 12 0;
#X connect 1 1 15 0;
#X connect 1 2 18 0;
#X connect 1 3 21 0;
#X connect 1 4 24 0;
#X connect 1 5 27 0;
#X connect 1 6 30 0;
#X connect 1 7 33 0;
#X connect 2 0 36 0;
#X connect 3 0 37 0;
#X connect 4 0 38 0;
#X connect 5 0 39 0;
#X connect 6 0 40 0;
#X connect 7 0 41 0;
#X connect 8 0 42 0;
#X connect 9 0 43 0;
#X connect 10 0 2 1;
#X connect 11 0 3 1;
#X connect 11 0 4 1;
#X connect 11 0 5 1;
#X connect 11 0 6 1;
#X connect 11 0 7 1;
#X connect 11 0 8 1;
#X connect 11 0 9 1;
#X connect 12 0 10 0;
#X connect 12 0 11 0;
#X connect 13 0 3 1;
#X connect 14 0 2 1;
#X connect 14 0 4 1;
#X connect 14 0 5 1;
#X connect 14 0 6 1;
#X connect 14 0 7 1;
#X connect 14 0 8 1;
#X connect 14 0 9 1;
#X connect 15 0 13 0;
#X connect 15 0 14 0;
#X connect 16 0 4 1;
#X connect 17 0 2 1;
#X connect 17 0 3 1;
#X connect 17 0 5 1;
#X connect 17 0 6 1;
#X connect 17 0 7 1;
#X connect 17 0 8 1;
#X connect 17 0 9 1;
#X connect 18 0 16 0;
#X connect 18 0 17 0;
#X connect 19 0 5 1;
#X connect 20 0 2 1;
#X connect 20 0 3 1;
#X connect 20 0 4 1;
#X connect 20 0 6 1;
#X connect 20 0 7 1;
#X connect 20 0 8 1;
#X connect 20 0 9 1;
#X connect 21 0 19 0;
#X connect 21 0 20 0;
#X connect 22 0 6 1;
#X connect 23 0 2 1;
#X connect 23 0 3 1;
#X connect 23 0 4 1;
#X connect 23 0 5 1;
#X connect 23 0 7 1;
#X connect 23 0 8 1;
#X connect 23 0 9 1;
#X connect 24 0 22 0;
#X connect 24 0 23 0;
#X connect 25 0 7 1;
#X connect 26 0 2 1;
#X connect 26 0 3 1;
#X connect 26 0 4 1;
#X connect 26 0 5 1;
#X connect 26 0 6 1;
#X connect 26 0 8 1;
#X connect 26 0 9 1;
#X connect 27 0 25 0;
#X connect 27 0 26 0;
#X connect 28 0 8 1;
#X connect 29 0 2 1;
#X connect 29 0 3 1;
#X connect 29 0 4 1;
#X connect 29 0 5 1;
#X connect 29 0 6 1;
#X connect 29 0 7 1;
#X connect 29 0 9 1;
#X connect 30 0 28 0;
#X connect 30 0 29 0;
#X connect 31 0 9 1;
#X connect 32 0 2 1;
#X connect 32 0 3 1;
#X connect 32 0 4 1;
#X connect 32 0 5 1;
#X connect 32 0 6 1;
#X connect 32 0 7 1;
#X connect 32 0 8 1;
#X connect 33 0 31 0;
#X connect 33 0 32 0;
#X connect 35 0 2 0;
#X connect 35 0 3 0;
#X connect 35 0 4 0;
#X connect 35 0 5 0;
#X connect 35 0 6 0;
#X connect 35 0 7 0;
#X connect 35 0 8 0;
#X connect 35 0 9 0;
#X restore 125 109 pd 8demux~;
#X obj 190 82 inlet;
#N canvas 0 0 726 641 snowtex 0;
#N canvas 0 0 776 658 snow 0;
#X obj 161 453 *~;
#X obj 109 225 noise~;
#X obj 146 412 vcf~ 200 3;
#X obj 241 366 loadbang;
#X obj 102 270 /~;
#X obj 103 343 clip~ -1 1;
#X obj 60 247 lop~ 110;
#X obj 121 246 lop~ 900;
#X obj 166 169 noise~;
#X obj 165 219 /~;
#X obj 123 196 lop~ 50;
#X obj 184 195 lop~ 70;
#X obj 103 290 *~;
#X obj 192 220 lop~ 10;
#X obj 191 241 *~ 17;
#X obj 190 264 *~;
#X obj 103 313 *~;
#X obj 189 286 +~ 0.5;
#X obj 181 142 inlet~;
#X obj 160 507 outlet~;
#X obj 247 154 switch~;
#X obj 247 128 inlet;
#X obj 102 365 hip~ 300;
#X obj 185 389 +~ 700;
#X obj 185 365 *~ 9000;
#X msg 241 386 0.5;
#X obj 162 476 *~ 0.2;
#X connect 0 0 26 0;
#X connect 1 0 6 0;
#X connect 1 0 7 0;
#X connect 2 0 0 0;
#X connect 3 0 25 0;
#X connect 4 0 12 0;
#X connect 5 0 22 0;
#X connect 6 0 4 0;
#X connect 7 0 4 1;
#X connect 8 0 10 0;
#X connect 8 0 11 0;
#X connect 8 0 13 0;
#X connect 9 0 12 1;
#X connect 10 0 9 0;
#X connect 11 0 9 1;
#X connect 12 0 16 0;
#X connect 13 0 14 0;
#X connect 14 0 15 0;
#X connect 14 0 15 1;
#X connect 15 0 17 0;
#X connect 16 0 5 0;
#X connect 17 0 16 1;
#X connect 18 0 0 1;
#X connect 18 0 24 0;
#X connect 21 0 20 0;
#X connect 22 0 2 0;
#X connect 23 0 2 1;
#X connect 24 0 23 0;
#X connect 25 0 2 2;
#X connect 26 0 19 0;
#X restore 158 117 pd snow;
#X obj 202 75 env~;
#X obj 202 96 > 0.5;
#X obj 180 38 inlet~;
#X obj 158 139 outlet~;
#X connect 0 0 4 0;
#X connect 1 0 2 0;
#X connect 2 0 0 1;
#X connect 3 0 1 0;
#X connect 3 0 0 0;
#X restore 8 170 pd snowtex;
#N canvas 0 0 726 641 dirttex 0;
#X obj 202 75 env~;
#X obj 202 96 > 0.5;
#X obj 180 38 inlet~;
#X obj 158 139 outlet~;
#N canvas 0 0 294 514 dirt 0;
#X obj 54 309 *~;
#X obj 72 47 inlet~;
#X obj 76 443 outlet~;
#X obj 138 59 switch~;
#X obj 138 33 inlet;
#X obj 128 221 osc~;
#X obj 127 157 *~;
#X obj 150 82 noise~;
#X obj 150 127 *~ 70;
#X obj 150 104 lop~ 80;
#X obj 100 127 +~ 0.3;
#X obj 128 242 hip~ 200;
#X obj 71 126 *~;
#X obj 70 148 *~;
#X obj 18 250 osc~ 80;
#X obj 18 228 +~ 40;
#X obj 19 202 *~ 500;
#X obj 77 394 +~;
#X obj 127 264 clip~ -1 1;
#X obj 128 179 *~ 70;
#X obj 126 330 *~ 0.04;
#X obj 55 332 *~ 0.5;
#X obj 128 200 +~ 70;
#X connect 0 0 21 0;
#X connect 1 0 10 0;
#X connect 1 0 12 0;
#X connect 1 0 12 1;
#X connect 4 0 3 0;
#X connect 5 0 11 0;
#X connect 6 0 19 0;
#X connect 7 0 9 0;
#X connect 8 0 6 1;
#X connect 9 0 8 0;
#X connect 10 0 6 0;
#X connect 11 0 18 0;
#X connect 12 0 13 0;
#X connect 12 0 13 1;
#X connect 13 0 0 1;
#X connect 13 0 16 0;
#X connect 14 0 0 0;
#X connect 15 0 14 0;
#X connect 16 0 15 0;
#X connect 17 0 2 0;
#X connect 18 0 20 0;
#X connect 19 0 22 0;
#X connect 20 0 17 1;
#X connect 21 0 17 0;
#X connect 22 0 5 0;
#X restore 158 117 pd dirt;
#X connect 0 0 1 0;
#X connect 1 0 4 1;
#X connect 2 0 0 0;
#X connect 2 0 4 0;
#X connect 4 0 3 0;
#X restore 173 169 pd dirttex;
#N canvas 0 0 726 641 grasstex 0;
#X obj 202 75 env~;
#X obj 202 96 > 0.5;
#X obj 180 38 inlet~;
#X obj 158 139 outlet~;
#N canvas 0 0 888 667 grass 0;
#X obj 163 404 *~;
#X obj 181 142 inlet~;
#X obj 401 564 outlet~;
#X obj 238 140 inlet;
#X obj 180 221 *~;
#X obj 179 243 *~;
#X obj 127 345 osc~ 80;
#X obj 401 527 +~;
#X obj 164 427 *~ 0.8;
#X obj 127 323 +~ 30;
#X obj 127 297 *~ 600;
#X obj 127 369 clip~ 0 0.5;
#X obj 238 166 switch~;
#X obj 725 115 noise~;
#X obj 732 286 lop~ 16;
#X obj 627 405 vcf~ 3333 30;
#X obj 627 248 *~;
#X obj 627 272 *~;
#X obj 733 312 *~ 23800;
#X obj 626 176 /~;
#X obj 655 149 lop~ 2000;
#X obj 593 149 lop~ 300;
#X obj 626 315 clip~ -0.9 0.9;
#X obj 733 334 +~ 3400;
#X obj 626 293 *~ 1e-05;
#X obj 626 213 hip~ 2500;
#X obj 611 489 *~;
#X obj 733 359 clip~ 2000 10000;
#X msg 723 386 1;
#X obj 718 405 init 1;
#X obj 627 435 hip~ 900;
#X obj 627 467 *~ 0.3;
#X connect 0 0 8 0;
#X connect 1 0 4 0;
#X connect 1 0 4 1;
#X connect 1 0 26 0;
#X connect 3 0 12 0;
#X connect 4 0 5 0;
#X connect 4 0 5 1;
#X connect 5 0 0 1;
#X connect 5 0 10 0;
#X connect 6 0 11 0;
#X connect 7 0 2 0;
#X connect 8 0 7 0;
#X connect 9 0 6 0;
#X connect 10 0 9 0;
#X connect 11 0 0 0;
#X connect 13 0 14 0;
#X connect 13 0 20 0;
#X connect 13 0 21 0;
#X connect 14 0 18 0;
#X connect 15 0 30 0;
#X connect 16 0 17 0;
#X connect 16 0 17 1;
#X connect 17 0 24 0;
#X connect 18 0 23 0;
#X connect 19 0 25 0;
#X connect 20 0 19 1;
#X connect 21 0 19 0;
#X connect 22 0 15 0;
#X connect 23 0 27 0;
#X connect 24 0 22 0;
#X connect 25 0 16 0;
#X connect 25 0 16 1;
#X connect 26 0 7 1;
#X connect 27 0 15 1;
#X connect 28 0 15 2;
#X connect 29 0 15 2;
#X connect 30 0 31 0;
#X connect 31 0 26 1;
#X restore 158 117 pd grass;
#X connect 0 0 1 0;
#X connect 1 0 4 1;
#X connect 2 0 0 0;
#X connect 2 0 4 0;
#X connect 4 0 3 0;
#X restore 87 170 pd grasstex;
#N canvas 119 44 726 641 gravtex 0;
#X obj 44 26 env~;
#X obj 44 47 > 0.5;
#X obj 20 -2 inlet~;
#X obj 0 90 outlet~;
#N canvas 126 61 245 451 gravel 0;
#X obj 1 151 inlet~;
#X obj 40 431 outlet~;
#X obj 189 0 inlet;
#X obj 189 26 switch~;
#X obj 108 0 noise~;
#X obj 55 128 *~;
#X obj 56 79 /~;
#X obj 86 42 lop~ 2000;
#X obj 24 42 lop~ 300;
#X obj 55 173 clip~ -0.9 0.9;
#X obj 39 407 *~;
#X obj 73 312 clip~ 500 10000;
#X obj 73 195 lop~ 50;
#X obj 56 102 hip~ 400;
#X obj 55 151 *~ 0.01;
#X obj 73 215 *~ 50000;
#X obj 55 362 hip~ 200;
#X obj 55 385 *~ 2;
#X obj 73 287 +~;
#X obj 89 262 *~ 1000;
#X obj 55 338 vcf~ 3;
#X connect 0 0 10 0;
#X connect 0 0 19 0;
#X connect 2 0 3 0;
#X connect 4 0 7 0;
#X connect 4 0 8 0;
#X connect 4 0 12 0;
#X connect 5 0 14 0;
#X connect 6 0 13 0;
#X connect 7 0 6 1;
#X connect 8 0 6 0;
#X connect 9 0 20 0;
#X connect 10 0 1 0;
#X connect 11 0 20 1;
#X connect 12 0 15 0;
#X connect 13 0 5 0;
#X connect 13 0 5 1;
#X connect 14 0 9 0;
#X connect 15 0 18 0;
#X connect 16 0 17 0;
#X connect 17 0 10 1;
#X connect 18 0 11 0;
#X connect 19 0 18 1;
#X connect 20 0 16 0;
#X restore 0 68 pd gravel;
#X connect 0 0 1 0;
#X connect 1 0 4 1;
#X connect 2 0 0 0;
#X connect 2 0 4 0;
#X connect 4 0 3 0;
#X restore 250 168 pd gravtex;
#N canvas 0 0 726 641 woodtex 0;
#X obj 202 75 env~;
#X obj 202 96 > 0.5;
#X obj 180 38 inlet~;
#X obj 158 139 outlet~;
#N canvas 0 0 1177 818 wood 0;
#X obj 470 445 *~;
#X obj 181 142 inlet~;
#X obj 401 564 outlet~;
#X obj 238 140 inlet;
#X obj 180 221 *~;
#X obj 401 527 +~;
#X obj 237 163 switch~;
#X obj 466 255 noise~;
#X obj 419 322 *~ 6;
#X obj 801 262 noise~;
#X obj 355 423 *~;
#X obj 737 287 bp~ 123 20;
#X obj 180 251 *~ 2;
#X obj 336 293 bp~ 95 90;
#X obj 411 291 bp~ 134 90;
#X obj 489 290 bp~ 139 90;
#X obj 567 290 bp~ 154 90;
#X obj 815 286 bp~ 156 90;
#X obj 893 286 bp~ 189 90;
#X obj 745 318 *~ 8;
#X obj 662 289 bp~ 201 70;
#X obj 243 258 sqrt~;
#X obj 356 449 *~ 0.5;
#X obj 469 469 *~ 0.6;
#X connect 0 0 23 0;
#X connect 1 0 4 0;
#X connect 1 0 4 1;
#X connect 1 0 21 0;
#X connect 3 0 6 0;
#X connect 4 0 12 0;
#X connect 5 0 2 0;
#X connect 7 0 13 0;
#X connect 7 0 14 0;
#X connect 7 0 15 0;
#X connect 7 0 16 0;
#X connect 8 0 10 1;
#X connect 9 0 11 0;
#X connect 9 0 17 0;
#X connect 9 0 18 0;
#X connect 9 0 20 0;
#X connect 10 0 22 0;
#X connect 11 0 19 0;
#X connect 12 0 0 0;
#X connect 13 0 8 0;
#X connect 14 0 8 0;
#X connect 15 0 8 0;
#X connect 16 0 8 0;
#X connect 17 0 19 0;
#X connect 18 0 19 0;
#X connect 19 0 0 1;
#X connect 20 0 19 0;
#X connect 21 0 10 0;
#X connect 22 0 5 0;
#X connect 23 0 5 0;
#X restore 158 117 pd wood;
#X connect 0 0 1 0;
#X connect 1 0 4 1;
#X connect 2 0 0 0;
#X connect 2 0 4 0;
#X connect 4 0 3 0;
#X restore 332 167 pd woodtex;
#X text 233 81 surface select;
#X text 9 83 control envelope;
#X connect 0 0 2 0;
#X connect 2 0 4 0;
#X connect 2 1 6 0;
#X connect 2 2 5 0;
#X connect 2 3 7 0;
#X connect 2 4 8 0;
#X connect 3 0 2 1;
#X connect 4 0 1 0;
#X connect 5 0 1 0;
#X connect 6 0 1 0;
#X connect 7 0 1 0;
#X connect 8 0 1 0;
#X restore 66 144 pd texturesource;
#X obj 26 196 +~;
#X obj 1 71 r walkspeed;
#N canvas 43 30 514 361 foot 0;
#X obj 20 130 clip~ 0 0.33333;
#X obj 283 130 clip~ 0.666666 1;
#X obj 20 178 *~ 3;
#X obj 285 178 *~ 3;
#X obj 284 156 -~ 0.666666;
#X obj 154 130 clip~ 0.125 0.875;
#X obj 153 156 -~ 0.125;
#X obj 152 178 *~ 1.33333;
#N canvas 512 249 566 419 polycurve 0;
#X obj 173 193 *~;
#X obj 174 217 *~;
#X obj 237 168 sig~ 1;
#X obj 211 277 -~;
#X obj 220 303 *~;
#X obj 173 158 *~ 1;
#X obj 219 326 *~ -1.5;
#X obj 237 192 -~;
#X obj 210 253 *~;
#X obj 227 148 inlet~ N;
#X obj 201 193 *~;
#X obj 173 126 inlet~ X;
#X obj 218 351 outlet~ P;
#X connect 0 0 1 0;
#X connect 1 0 8 0;
#X connect 2 0 7 0;
#X connect 3 0 4 0;
#X connect 4 0 6 0;
#X connect 5 0 0 0;
#X connect 5 0 0 1;
#X connect 5 0 1 1;
#X connect 5 0 7 1;
#X connect 5 0 10 0;
#X connect 6 0 12 0;
#X connect 7 0 4 1;
#X connect 8 0 3 0;
#X connect 9 0 10 1;
#X connect 9 0 8 1;
#X connect 10 0 3 1;
#X connect 11 0 5 0;
#X restore 21 229 pd polycurve;
#N canvas 0 0 566 419 polycurve 0;
#X obj 173 193 *~;
#X obj 174 217 *~;
#X obj 237 168 sig~ 1;
#X obj 211 277 -~;
#X obj 220 303 *~;
#X obj 173 158 *~ 1;
#X obj 219 326 *~ -1.5;
#X obj 237 192 -~;
#X obj 210 253 *~;
#X obj 227 148 inlet~ N;
#X obj 201 193 *~;
#X obj 173 126 inlet~ X;
#X obj 218 351 outlet~ P;
#X connect 0 0 1 0;
#X connect 1 0 8 0;
#X connect 2 0 7 0;
#X connect 3 0 4 0;
#X connect 4 0 6 0;
#X connect 5 0 0 0;
#X connect 5 0 0 1;
#X connect 5 0 1 1;
#X connect 5 0 7 1;
#X connect 5 0 10 0;
#X connect 6 0 12 0;
#X connect 7 0 4 1;
#X connect 8 0 3 0;
#X connect 9 0 10 1;
#X connect 9 0 8 1;
#X connect 10 0 3 1;
#X connect 11 0 5 0;
#X restore 152 230 pd polycurve;
#N canvas 0 0 566 419 polycurve 0;
#X obj 173 193 *~;
#X obj 174 217 *~;
#X obj 237 168 sig~ 1;
#X obj 211 277 -~;
#X obj 220 303 *~;
#X obj 173 158 *~ 1;
#X obj 219 326 *~ -1.5;
#X obj 237 192 -~;
#X obj 210 253 *~;
#X obj 227 148 inlet~ N;
#X obj 201 193 *~;
#X obj 173 126 inlet~ X;
#X obj 218 351 outlet~ P;
#X connect 0 0 1 0;
#X connect 1 0 8 0;
#X connect 2 0 7 0;
#X connect 3 0 4 0;
#X connect 4 0 6 0;
#X connect 5 0 0 0;
#X connect 5 0 0 1;
#X connect 5 0 1 1;
#X connect 5 0 7 1;
#X connect 5 0 10 0;
#X connect 6 0 12 0;
#X connect 7 0 4 1;
#X connect 8 0 3 0;
#X connect 9 0 10 1;
#X connect 9 0 8 1;
#X connect 10 0 3 1;
#X connect 11 0 5 0;
#X restore 284 229 pd polycurve;
#X obj 101 204 r~ n1;
#X obj 230 204 r~ n2;
#X obj 363 204 r~ n3;
#X obj 154 34 inlet~;
#X obj 152 301 outlet~;
#X obj 153 60 clip~ 0 0.75;
#X obj 154 88 *~ 1.33333;
#X connect 0 0 2 0;
#X connect 1 0 4 0;
#X connect 2 0 8 0;
#X connect 3 0 10 0;
#X connect 4 0 3 0;
#X connect 5 0 6 0;
#X connect 6 0 7 0;
#X connect 7 0 9 0;
#X connect 8 0 15 0;
#X connect 9 0 15 0;
#X connect 10 0 15 0;
#X connect 11 0 8 1;
#X connect 12 0 9 1;
#X connect 13 0 10 1;
#X connect 14 0 16 0;
#X connect 16 0 17 0;
#X connect 17 0 0 0;
#X connect 17 0 5 0;
#X connect 17 0 1 0;
#X restore 66 119 pd foot;
#X obj 542 2 r walkspeed;
#X obj 542 23 sig~;
#X obj 542 77 -~;
#X obj 557 52 lop~ 0.5;
#X obj 518 109 snapshot~;
#X obj 465 80 metro 100;
#X obj 518 149 + 0.5;
#X obj 518 231 s \$0-ballf;
#X obj 518 129 * 1.7;
#X obj 440 231 s \$0-heelf;
#X obj 440 184 swap 1;
#X obj 440 209 -;
#X obj 465 57 loadbang;
#X obj 147 93 loadbang;
#X connect 0 0 24 0;
#X connect 0 1 28 0;
#X connect 1 0 20 0;
#X connect 2 0 21 0;
#X connect 3 0 22 0;
#X connect 5 0 26 0;
#X connect 6 0 5 1;
#X connect 6 0 25 1;
#X connect 8 0 23 0;
#X connect 14 0 1 0;
#X connect 15 0 2 0;
#X connect 16 0 3 0;
#X connect 17 0 8 0;
#X connect 20 0 9 0;
#X connect 21 0 10 0;
#X connect 22 0 11 0;
#X connect 23 0 12 0;
#X connect 24 0 5 0;
#X connect 25 0 26 1;
#X connect 26 0 4 0;
#X connect 26 0 4 1;
#X connect 27 0 0 0;
#X connect 28 0 25 0;
#X connect 29 0 30 0;
#X connect 30 0 31 0;
#X connect 30 0 32 0;
#X connect 31 0 33 0;
#X connect 32 0 31 1;
#X connect 33 0 37 0;
#X connect 34 0 33 0;
#X connect 35 0 36 0;
#X connect 35 0 39 0;
#X connect 37 0 35 0;
#X connect 39 0 40 0;
#X connect 39 1 40 1;
#X connect 40 0 38 0;
#X connect 41 0 34 0;
#X connect 42 0 6 0;

Download foot2.pd.

Footsteps - phase splitter (abstraction used by above patches)

#N canvas 52 286 339 524 10;
#X obj 97 164 phasor~;
#X obj 13 154 > 0;
#X obj 98 243 min~;
#X obj 99 359 wrap~;
#X obj 114 266 sig~ 1;
#X obj 114 291 /~;
#X obj 99 314 *~;
#X obj 228 287 min~;
#X obj 228 402 wrap~;
#X obj 243 310 sig~ 1;
#X obj 243 335 /~;
#X obj 228 358 *~;
#X obj 227 232 wrap~;
#X obj 99 43 sig~;
#X obj 154 119 sig~ 1;
#X obj 155 165 -~;
#X obj 99 337 +~ 1e-05;
#X obj 228 380 +~ 1e-05;
#X obj 21 176 s active;
#X obj 162 336 r active;
#X obj 212 429 *~;
#X obj 99 433 *~;
#X obj 13 220 sel 1;
#X msg 13 241 0;
#X obj 13 262 s bashphase;
#X obj 141 98 r bashphase;
#X obj 13 199 change;
#X obj 99 19 inlet;
#X obj 98 455 outlet~ l;
#X obj 211 454 outlet~ r;
#X obj 98 68 lop~ 1;
#X obj 227 210 +~ 0.5;
#X obj 98 142 *~ 3;
#X obj 171 142 +~ 0.02;
#X obj 98 122 +~ 0.2;
#X obj 162 381 line~;
#X msg 162 359 \$1 500;
#X connect 0 0 2 0;
#X connect 0 0 31 0;
#X connect 1 0 18 0;
#X connect 1 0 26 0;
#X connect 2 0 6 0;
#X connect 3 0 21 0;
#X connect 4 0 5 0;
#X connect 5 0 6 1;
#X connect 6 0 16 0;
#X connect 7 0 11 0;
#X connect 8 0 20 1;
#X connect 9 0 10 0;
#X connect 10 0 11 1;
#X connect 11 0 17 0;
#X connect 12 0 7 0;
#X connect 13 0 30 0;
#X connect 14 0 15 0;
#X connect 15 0 2 1;
#X connect 15 0 5 1;
#X connect 15 0 7 1;
#X connect 15 0 10 1;
#X connect 16 0 3 0;
#X connect 17 0 8 0;
#X connect 19 0 36 0;
#X connect 20 0 29 0;
#X connect 21 0 28 0;
#X connect 22 0 23 0;
#X connect 23 0 24 0;
#X connect 25 0 0 1;
#X connect 26 0 22 0;
#X connect 27 0 13 0;
#X connect 27 0 1 0;
#X connect 30 0 33 0;
#X connect 30 0 34 0;
#X connect 31 0 12 0;
#X connect 32 0 0 0;
#X connect 33 0 15 1;
#X connect 34 0 32 0;
#X connect 35 0 21 1;
#X connect 35 0 20 0;
#X connect 36 0 35 0;

Download splitphase.pd.

Audio

Running and walking effects

Initially we hear only the test sine, left and right feet panned either side. This shows the variation in GRF curve, phase and overlap for human walking and running signature. Next the dynamic GRF is applied to a gravel-like texture with a differential to shift weight between heel and ball phases when speeding up or slowing down.

Download footsteps.wav.