Designing Sound - Procedural Audio for Games and Film.

Code examples for “Designing Sound” textbook

Practical 34: R2D2

Pure Data

R2D2 - robotic chatter

#N canvas 275 17 498 842 10;
#X obj 147 821 dac~;
#X obj 163 626 +~;
#X obj 163 648 cos~;
#X obj 179 469 phasor~;
#X obj 242 577 osc~;
#X obj 179 238 random 1000;
#X obj 179 260 / 1000;
#X obj 179 404 line~;
#X obj 179 381 pack f f;
#X obj 179 283 t f b;
#X obj 230 313 random 2;
#X obj 230 359 *;
#X obj 147 674 *~;
#X obj 147 699 lop~ 10000;
#X obj 147 721 lop~ 10000;
#X obj 147 743 hip~ 100;
#X obj 147 765 hip~ 100;
#X obj 242 551 *~;
#X obj 242 600 *~;
#X obj 163 506 *~;
#X obj 130 470 +~ 100;
#X obj 45 174 s period;
#X obj 246 337 r period;
#X obj 47 381 line~;
#X obj 47 359 pack f f;
#X obj 98 291 random 2;
#X obj 98 337 *;
#X obj 114 315 r period;
#X obj 116 237 s change;
#X obj 47 218 r change;
#X obj 12 290 random 9000;
#X obj 47 239 random 3;
#X obj 47 261 sel 0;
#X obj 36 635 line~;
#X obj 36 613 pack f f;
#X obj 87 524 random 2;
#X obj 87 570 *;
#X obj 103 548 r period;
#X obj 36 451 r change;
#X obj 36 494 sel 0;
#X obj 1 523 random 2;
#X obj 36 472 random 2;
#X obj 279 553 line~;
#X obj 279 531 pack f f;
#X obj 330 463 random 2;
#X obj 330 509 *;
#X obj 346 487 r period;
#X obj 279 390 r change;
#X obj 279 433 sel 0;
#X obj 279 576 +~ 0.2;
#X obj 244 462 random 100;
#X obj 244 485 / 200;
#X obj 279 411 random 4;
#X obj 369 406 line~;
#X obj 369 384 pack f f;
#X obj 420 319 random 2;
#X obj 420 362 *;
#X obj 436 340 r period;
#X obj 369 249 r change;
#X obj 369 292 sel 0;
#X obj 334 318 random 800;
#X obj 369 428 +~ 20;
#X obj 369 270 random 4;
#X obj 179 440 *~ 0.6;
#X obj 147 788 *~ 0.06;
#X obj 144 89 r period;
#X obj 179 216 metro;
#X obj 209 2 r change;
#X obj 209 23 random 3;
#X obj 209 45 sel 0;
#X obj 209 66 random 2;
#X obj 209 87 + 1;
#X obj 209 131 /;
#X obj 209 108 t b f;
#X obj 179 154 loadbang;
#X obj 179 174 del 100;
#X msg 179 195 1;
#X obj 87 591 + 3;
#X obj 48 115 hsl 64 12 0 1 0 1 empty empty talk-speed 8 6 1 8 -262144
-1 -1 400 1;
#X obj 45 132 * 600;
#X obj 45 152 + 100;
#X connect 1 0 2 0;
#X connect 2 0 12 1;
#X connect 3 0 19 1;
#X connect 4 0 18 0;
#X connect 5 0 6 0;
#X connect 6 0 9 0;
#X connect 7 0 63 0;
#X connect 8 0 7 0;
#X connect 9 0 8 0;
#X connect 9 1 10 0;
#X connect 10 0 11 0;
#X connect 11 0 8 1;
#X connect 12 0 13 0;
#X connect 13 0 14 0;
#X connect 14 0 15 0;
#X connect 15 0 16 0;
#X connect 16 0 64 0;
#X connect 17 0 4 0;
#X connect 18 0 1 1;
#X connect 19 0 1 0;
#X connect 20 0 19 0;
#X connect 22 0 11 1;
#X connect 23 0 20 0;
#X connect 24 0 23 0;
#X connect 25 0 26 0;
#X connect 26 0 24 1;
#X connect 27 0 26 1;
#X connect 29 0 31 0;
#X connect 30 0 24 0;
#X connect 31 0 32 0;
#X connect 32 0 30 0;
#X connect 32 0 25 0;
#X connect 33 0 12 0;
#X connect 34 0 33 0;
#X connect 35 0 36 0;
#X connect 36 0 77 0;
#X connect 37 0 36 1;
#X connect 38 0 41 0;
#X connect 39 0 35 0;
#X connect 39 0 40 0;
#X connect 40 0 34 0;
#X connect 41 0 39 0;
#X connect 42 0 49 0;
#X connect 43 0 42 0;
#X connect 44 0 45 0;
#X connect 45 0 43 1;
#X connect 46 0 45 1;
#X connect 47 0 52 0;
#X connect 48 0 44 0;
#X connect 48 0 50 0;
#X connect 49 0 18 1;
#X connect 50 0 51 0;
#X connect 51 0 43 0;
#X connect 52 0 48 0;
#X connect 53 0 61 0;
#X connect 54 0 53 0;
#X connect 55 0 56 0;
#X connect 56 0 54 1;
#X connect 57 0 56 1;
#X connect 58 0 62 0;
#X connect 59 0 55 0;
#X connect 59 0 60 0;
#X connect 60 0 54 0;
#X connect 61 0 17 1;
#X connect 62 0 59 0;
#X connect 63 0 3 0;
#X connect 63 0 17 0;
#X connect 64 0 0 0;
#X connect 64 0 0 1;
#X connect 65 0 72 0;
#X connect 66 0 5 0;
#X connect 66 0 28 0;
#X connect 67 0 68 0;
#X connect 68 0 69 0;
#X connect 69 0 70 0;
#X connect 70 0 71 0;
#X connect 71 0 73 0;
#X connect 72 0 66 1;
#X connect 73 0 72 0;
#X connect 73 1 72 1;
#X connect 74 0 75 0;
#X connect 75 0 76 0;
#X connect 76 0 66 0;
#X connect 77 0 34 1;
#X connect 78 0 79 0;
#X connect 79 0 80 0;
#X connect 80 0 21 0;

Download R2D2.pd.

R2D2 - demo of random slider

#N canvas 61 214 172 305 10;
#X obj 33 207 line~;
#X obj 33 185 pack f f;
#X obj 84 94 random 2;
#X obj 84 163 *;
#X obj 33 45 sel 0;
#X obj 4 94 random 800;
#X obj 33 229 +~ 20;
#X obj 33 23 random 4;
#X obj 33 280 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10
-262144 -1 -1 154.202 256;
#X obj 33 251 env~;
#X obj 33 2 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1
;
#X obj 103 125 hsl 64 12 0 1 0 1 empty empty slide-time 10 6 1 8 -262144
-1 -1 0 1;
#X obj 100 143 * 5000;
#X obj 33 67 t b b;
#X connect 0 0 6 0;
#X connect 1 0 0 0;
#X connect 2 0 3 0;
#X connect 3 0 1 1;
#X connect 4 0 13 0;
#X connect 5 0 1 0;
#X connect 6 0 9 0;
#X connect 7 0 4 0;
#X connect 9 0 8 0;
#X connect 10 0 7 0;
#X connect 11 0 12 0;
#X connect 12 0 3 1;
#X connect 13 0 5 0;
#X connect 13 1 2 0;

Download demo_random_slide.pd.

R2D2 - demo of simple FM synth

#N canvas 316 30 725 552 10;
#X obj 249 526 dac~;
#X obj 265 417 +~;
#X obj 265 439 cos~;
#X obj 281 298 phasor~;
#X obj 299 358 osc~;
#X obj 249 465 *~;
#X obj 299 335 *~;
#X obj 299 384 *~;
#X obj 265 335 *~;
#X obj 249 493 *~ 0.06;
#X obj 281 167 r~ carrier-frequency;
#X obj 158 167 r~ carrier-level;
#X obj 439 167 r~ modulator-ratio;
#X obj 574 166 r~ modulator-index;
#X obj 14 167 r~ output-amplitude;
#X text 408 392 the simple FM core;
#X obj 11 94 s~ output-amplitude;
#X obj 155 94 s~ carrier-level;
#X obj 278 94 s~ carrier-frequency;
#X obj 430 94 s~ modulator-ratio;
#X obj 569 93 s~ modulator-index;
#X text 7 129 ------------------------------------ parametric interface
;
#X text 413 129 ------------------------------------;
#X text 57 282 ------------------------------------;
#X text 310 282 ------------------------------------;
#X text 61 479 ------------------------------------;
#X text 314 479 ------------------------------------;
#X msg 12 46 \$1 1000;
#X obj 12 67 line~;
#X obj 155 65 line~;
#X obj 278 65 line~;
#X obj 430 66 line~;
#X obj 570 65 line~;
#X msg 155 44 \$1 1000;
#X msg 278 44 \$1 1000;
#X msg 430 45 \$1 1000;
#X msg 570 44 \$1 1000;
#X obj 15 8 hsl 64 12 0 1 0 1 empty empty amp 10 6 1 8 -262144 -1 -1
0 1;
#X obj 12 25 * 0.5;
#X obj 158 8 hsl 64 12 0 1 0 1 empty empty carrier 10 6 1 8 -262144
-1 -1 0 1;
#X obj 155 24 * 1;
#X obj 281 8 hsl 64 12 0 1 0 1 empty empty cf 10 6 1 8 -262144 -1 -1
0 1;
#X obj 278 23 * 1000;
#X obj 433 8 hsl 64 12 0 1 0 1 empty empty mf 10 6 1 8 -262144 -1 -1
0 1;
#X obj 430 24 * 32;
#X obj 573 8 hsl 64 12 0 1 0 1 empty empty index 10 6 1 8 -262144 -1
-1 0 1;
#X obj 570 24 * 2;
#X connect 1 0 2 0;
#X connect 2 0 5 1;
#X connect 3 0 8 1;
#X connect 4 0 7 0;
#X connect 5 0 9 0;
#X connect 6 0 4 0;
#X connect 7 0 1 1;
#X connect 8 0 1 0;
#X connect 9 0 0 0;
#X connect 9 0 0 1;
#X connect 10 0 6 0;
#X connect 10 0 3 0;
#X connect 11 0 8 0;
#X connect 12 0 6 1;
#X connect 13 0 7 1;
#X connect 14 0 5 0;
#X connect 27 0 28 0;
#X connect 28 0 16 0;
#X connect 29 0 17 0;
#X connect 30 0 18 0;
#X connect 31 0 19 0;
#X connect 32 0 20 0;
#X connect 33 0 29 0;
#X connect 34 0 30 0;
#X connect 35 0 31 0;
#X connect 36 0 32 0;
#X connect 37 0 38 0;
#X connect 38 0 27 0;
#X connect 39 0 40 0;
#X connect 40 0 33 0;
#X connect 41 0 42 0;
#X connect 42 0 34 0;
#X connect 43 0 44 0;
#X connect 44 0 35 0;
#X connect 45 0 46 0;
#X connect 46 0 36 0;

Download demo_fm_synth.pd.

Audio

Robot chatter sounds

Cheeky tin can astromech droid.

Download robochatter.wav.