Designing Sound - Procedural Audio for Games and Film.

Code examples for “Designing Sound” textbook

Practical 32: Rocket Launcher

Pure Data

Rocket Launcher - complete rocket launcher object

#N canvas 162 222 208 214 10;
#X obj 31 171 dac~;
#X obj -34 58 bng 15 250 50 0 firebutton empty fire 0 -6 1 8 -262144
-1 -1;
#X obj 30 147 catch~ rlout;
#X obj -34 23 bng 15 250 50 0 reloadbutton empty reload 0 -6 1 8 -262144
-1 -1;
#N canvas 738 51 279 568 rocket 0;
#X obj 52 220 noise~;
#N canvas 0 0 237 320 comb 0;
#X obj 119 222 +~;
#X obj 71 185 +~;
#X obj 4 7 inlet~;
#X obj 71 300 outlet~;
#X obj 119 6 inlet;
#X obj 135 157 *~;
#X obj 71 158 +~ 10;
#X obj 151 132 inlet width;
#X obj 71 53 sig~ 1;
#X obj 71 84 -~;
#X obj 71 105 *~ 4;
#X obj 71 126 +~ 1e-04;
#X obj 119 53 sig~;
#X obj 71 278 *~ 0.3;
#X obj 119 248 vd~ zz;
#X obj 71 248 vd~ zz;
#X obj 24 248 vd~ zz;
#X obj 4 29 delwrite~ zz 120;
#X connect 0 0 14 0;
#X connect 1 0 0 0;
#X connect 1 0 15 0;
#X connect 2 0 17 0;
#X connect 4 0 12 0;
#X connect 5 0 1 1;
#X connect 5 0 0 1;
#X connect 6 0 1 0;
#X connect 6 0 16 0;
#X connect 7 0 5 1;
#X connect 8 0 9 0;
#X connect 9 0 10 0;
#X connect 10 0 11 0;
#X connect 11 0 6 0;
#X connect 11 0 5 0;
#X connect 12 0 9 1;
#X connect 13 0 3 0;
#X connect 14 0 13 0;
#X connect 15 0 13 0;
#X connect 16 0 13 0;
#X restore 52 322 pd comb;
#X obj 51 368 clip~ -1 1;
#N canvas 620 209 192 191 pipe 0;
#X obj 86 50 * 3;
#X obj 119 50 * 5;
#X obj 153 50 * 7;
#X obj 53 50 * 1;
#X obj 3 4 inlet~;
#X obj 3 170 outlet~;
#X obj 53 4 inlet length;
#X obj 53 26 trigger f f f f;
#X obj 3 75 bp~ 1 4;
#X obj 14 94 bp~ 1 4;
#X obj 24 114 bp~ 1 4;
#X obj 37 134 bp~ 1 4;
#X connect 0 0 9 1;
#X connect 1 0 10 1;
#X connect 2 0 11 1;
#X connect 3 0 8 1;
#X connect 4 0 8 0;
#X connect 4 0 9 0;
#X connect 4 0 10 0;
#X connect 4 0 11 0;
#X connect 6 0 7 0;
#X connect 7 0 3 0;
#X connect 7 1 0 0;
#X connect 7 2 1 0;
#X connect 7 3 2 0;
#X connect 8 0 5 0;
#X connect 9 0 5 0;
#X connect 10 0 5 0;
#X connect 11 0 5 0;
#X restore 51 391 pd pipe;
#X obj 48 98 line;
#X obj 74 263 + 0.001;
#X obj 5 32 t b b;
#X obj 36 413 *~;
#X obj 200 258 + 40;
#X obj 35 148 sqrt;
#X obj 35 172 sig~;
#X obj 35 195 lop~ 1;
#X msg 5 73 1 90;
#X obj 47 53 del 90;
#X obj 36 523 *~ 0.4;
#X obj 52 344 *~ 10;
#X msg 47 77 0 8000;
#X obj 138 221 pow 145;
#X obj 200 220 +;
#X obj 186 148 t f f;
#X obj 233 176 pow 4;
#X obj 234 198 * 0.3;
#X obj 200 239 * 800;
#X obj 186 197 * 1;
#X obj 186 175 pow 30;
#N canvas 0 0 164 254 exhaust 0;
#X obj 33 59 noise~;
#X obj 32 84 lop~ 9;
#X obj 32 105 lop~ 9;
#N canvas 0 0 450 300 xfade 0;
#X obj 144 93 -~;
#X obj 137 59 sig~ 1;
#X obj 158 29 inlet~;
#X obj 41 35 inlet~;
#X obj 95 218 outlet~;
#X obj 79 184 *~;
#X obj 127 184 *~;
#X obj 96 36 inlet~;
#X connect 0 0 6 1;
#X connect 1 0 0 0;
#X connect 2 0 0 1;
#X connect 2 0 5 1;
#X connect 3 0 5 0;
#X connect 5 0 4 0;
#X connect 6 0 4 0;
#X connect 7 0 6 0;
#X restore 31 178 pd xfade;
#X obj 16 201 *~;
#X obj 31 128 *~ 30;
#X obj 81 57 line;
#X msg 81 32 0 \, 0.8 8000;
#X obj 56 150 sig~ 1;
#X obj 82 79 pow 0.25;
#X obj 16 16 inlet~;
#X obj 81 11 inlet trig;
#X obj 15 224 outlet~;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 2 0 5 0;
#X connect 3 0 4 1;
#X connect 4 0 12 0;
#X connect 5 0 3 0;
#X connect 6 0 9 0;
#X connect 7 0 6 0;
#X connect 8 0 3 1;
#X connect 9 0 3 2;
#X connect 10 0 4 0;
#X connect 11 0 7 0;
#X restore 36 435 pd exhaust jitter;
#N canvas 194 138 144 151 notchbands 0;
#X obj 44 80 lop~;
#X obj 0 101 hip~;
#X obj 44 102 lop~;
#X obj 0 80 hip~;
#X obj 85 50 - 230;
#X obj 85 27 * 900;
#X obj 21 7 inlet~;
#X obj 21 131 outlet~;
#X obj 85 7 inlet f;
#X connect 0 0 2 0;
#X connect 1 0 7 0;
#X connect 2 0 7 0;
#X connect 3 0 1 0;
#X connect 4 0 0 1;
#X connect 4 0 2 1;
#X connect 5 0 1 1;
#X connect 5 0 3 1;
#X connect 5 0 4 0;
#X connect 6 0 3 0;
#X connect 6 0 0 0;
#X connect 8 0 5 0;
#X restore 52 243 pd notchbands;
#X obj 36 544 throw~ rlout;
#X obj 5 4 r fire;
#X msg 96 302 0.2;
#X obj 95 283 loadbang;
#X obj 36 502 *~;
#X msg 52 479 0;
#X obj 52 459 r target-hit;
#X obj 143 459 r fire;
#X msg 143 480 1;
#X connect 0 0 26 0;
#X connect 1 0 15 0;
#X connect 2 0 3 0;
#X connect 3 0 7 1;
#X connect 4 0 9 0;
#X connect 4 0 5 0;
#X connect 4 0 17 0;
#X connect 4 0 19 0;
#X connect 5 0 1 1;
#X connect 6 0 12 0;
#X connect 6 1 13 0;
#X connect 7 0 25 0;
#X connect 8 0 3 1;
#X connect 9 0 10 0;
#X connect 10 0 11 0;
#X connect 11 0 7 0;
#X connect 12 0 4 0;
#X connect 13 0 16 0;
#X connect 14 0 27 0;
#X connect 15 0 2 0;
#X connect 16 0 4 0;
#X connect 17 0 26 1;
#X connect 18 0 22 0;
#X connect 19 0 24 0;
#X connect 19 1 20 0;
#X connect 20 0 21 0;
#X connect 21 0 18 1;
#X connect 22 0 8 0;
#X connect 23 0 18 0;
#X connect 24 0 23 0;
#X connect 25 0 31 0;
#X connect 26 0 1 0;
#X connect 28 0 6 0;
#X connect 28 0 25 1;
#X connect 29 0 1 2;
#X connect 30 0 29 0;
#X connect 31 0 14 0;
#X connect 32 0 31 1;
#X connect 33 0 32 0;
#X connect 34 0 35 0;
#X connect 35 0 31 1;
#X restore 30 126 pd rocket;
#N canvas 93 211 355 335 chamber 0;
#X obj 53 303 throw~ rlout;
#X obj 136 144 * 3;
#X obj 103 102 trigger f f f f;
#X obj 53 188 bp~ 1 4;
#X obj 64 207 bp~ 1 4;
#X obj 74 227 bp~ 1 4;
#X obj 87 247 bp~ 1 4;
#X obj 103 144 * 2;
#X obj 169 144 * 4;
#X obj 203 144 * 5;
#X obj 2 191 *~ 0.1;
#X msg 288 75 2 3 4 5;
#X msg 225 74 1 3 5 7;
#X obj 225 101 unpack f f f f;
#X obj 276 43 sel 0 1;
#X obj 103 72 f;
#X obj 246 17 t b f;
#X obj 2 -5 catch~ rlchamber;
#X obj 103 30 r chamberf;
#X obj 169 210 r chamberres;
#X obj 246 -5 r chamberclosed;
#X obj 53 283 *~ 2;
#X connect 1 0 4 1;
#X connect 2 0 7 0;
#X connect 2 1 1 0;
#X connect 2 2 8 0;
#X connect 2 3 9 0;
#X connect 3 0 21 0;
#X connect 4 0 21 0;
#X connect 5 0 21 0;
#X connect 6 0 21 0;
#X connect 7 0 3 1;
#X connect 8 0 5 1;
#X connect 9 0 6 1;
#X connect 10 0 21 0;
#X connect 11 0 13 0;
#X connect 12 0 13 0;
#X connect 13 0 7 1;
#X connect 13 1 1 1;
#X connect 13 2 8 1;
#X connect 13 3 9 1;
#X connect 14 0 12 0;
#X connect 14 1 11 0;
#X connect 15 0 2 0;
#X connect 16 0 15 0;
#X connect 16 1 14 0;
#X connect 17 0 10 0;
#X connect 17 0 3 0;
#X connect 17 0 4 0;
#X connect 17 0 5 0;
#X connect 17 0 6 0;
#X connect 18 0 15 0;
#X connect 19 0 3 2;
#X connect 19 0 4 2;
#X connect 19 0 5 2;
#X connect 19 0 6 2;
#X connect 20 0 16 0;
#X connect 21 0 0 0;
#X restore 30 24 pd chamber;
#N canvas 46 71 232 351 firestate 0;
#X msg 102 233 20;
#X obj 36 67 moses 1;
#X obj 36 41 f;
#X msg 166 99 1;
#X obj 80 108 s click;
#X obj 52 20 r reloaded;
#X obj 102 253 s chamberres;
#X obj 84 292 s fire;
#X obj 66 331 s bpres;
#X obj 120 213 s chamberclosed;
#X obj 66 150 t b b b b b;
#X msg 120 193 0;
#X obj 80 88 del 10;
#X obj 66 130 del 10;
#X obj 36 104 t b b;
#X obj 3 156 s click;
#X obj 120 173 del 90;
#X obj 166 76 loadbang;
#X obj 36 0 r firebutton;
#X obj 66 312 del 120;
#X obj 84 273 del 140;
#X connect 0 0 6 0;
#X connect 1 0 14 0;
#X connect 1 1 12 0;
#X connect 2 0 1 0;
#X connect 3 0 2 1;
#X connect 5 0 2 1;
#X connect 10 0 19 0;
#X connect 10 1 20 0;
#X connect 10 2 0 0;
#X connect 10 3 16 0;
#X connect 10 4 3 0;
#X connect 11 0 9 0;
#X connect 12 0 4 0;
#X connect 13 0 10 0;
#X connect 14 0 15 0;
#X connect 14 1 13 0;
#X connect 16 0 11 0;
#X connect 17 0 3 0;
#X connect 18 0 2 0;
#X connect 19 0 8 0;
#X connect 20 0 7 0;
#X restore 30 4 pd firestate;
#X obj -34 91 bng 15 250 50 0 target-hit empty target-hit 0 -6 1 8
-262144 -1 -1;
#X obj -34 124 bng 15 250 50 0 drop1 empty drop 0 -6 1 8 -262144 -1
-1;
#N canvas 448 329 259 202 exit 0;
#X obj 3 64 + 227;
#X obj 3 26 line;
#X obj 3 -41 t b b;
#X obj 3 45 * 300;
#X obj 3 83 s chamberf;
#X obj 70 -69 r fire;
#X obj 88 43 noise~;
#X obj 143 -26 vline~;
#X obj 89 92 *~;
#X obj 88 63 bp~ 1700 1;
#X obj 90 113 throw~ rlchamber;
#X msg 33 -1 0 500;
#X msg -7 -2 1 90;
#X obj 33 -20 del 20;
#X obj 142 -2 *~;
#X obj 143 18 *~;
#X obj 144 40 *~;
#X msg 143 -46 1 50 \, 0 860 80;
#X connect 0 0 4 0;
#X connect 1 0 3 0;
#X connect 2 0 12 0;
#X connect 2 1 13 0;
#X connect 3 0 0 0;
#X connect 5 0 2 0;
#X connect 5 0 17 0;
#X connect 6 0 9 0;
#X connect 7 0 14 0;
#X connect 7 0 14 1;
#X connect 8 0 10 0;
#X connect 9 0 8 0;
#X connect 11 0 1 0;
#X connect 12 0 1 0;
#X connect 13 0 11 0;
#X connect 14 0 15 0;
#X connect 14 0 15 1;
#X connect 15 0 16 0;
#X connect 15 0 16 1;
#X connect 16 0 8 1;
#X connect 17 0 7 0;
#X restore 30 105 pd exit;
#N canvas 54 23 144 250 backpressure 0;
#X obj 2 -7 noise~;
#X obj 18 76 vline~;
#X obj 2 162 *~;
#X obj 2 202 clip~ -1 1;
#X msg 18 55 1 100 \, 0 320 120;
#X obj 2 182 *~ 12;
#X obj 2 13 bp~ 100 2;
#X obj 2 221 throw~ rlchamber;
#X obj 18 35 r bpres;
#X obj 18 97 *~;
#X obj 18 118 *~;
#X obj 18 139 *~;
#X connect 0 0 6 0;
#X connect 1 0 9 0;
#X connect 1 0 9 1;
#X connect 2 0 5 0;
#X connect 3 0 7 0;
#X connect 4 0 1 0;
#X connect 5 0 3 0;
#X connect 6 0 2 0;
#X connect 8 0 4 0;
#X connect 9 0 10 0;
#X connect 9 0 10 1;
#X connect 10 0 11 0;
#X connect 10 0 11 1;
#X connect 11 0 2 1;
#X restore 30 84 pd backpressure;
#N canvas 453 68 556 531 reload 0;
#X obj 5 309 noise~;
#X obj 77 481 *~;
#X obj 5 437 *~;
#X obj 91 303 line;
#X msg 153 262 0;
#X obj 20 412 sig~;
#X obj 5 458 hip~ 1500;
#X obj 78 458 vline~;
#X msg 78 438 1 \, 0 60;
#X obj 91 346 + 223;
#X obj 91 327 * 60;
#X obj 5 480 clip~ 0 1;
#X msg 129 130 123;
#X msg 91 263 1 600;
#X obj 153 178 del 600;
#X obj 191 289 t b b;
#X obj 221 316 del 180;
#X obj 191 266 del 160;
#X msg 211 221 0;
#X obj 153 197 t b b b b;
#X obj 34 509 throw~ rlchamber;
#X obj 191 339 s click;
#X obj 91 370 s chamberf;
#X obj 129 150 s chamberres;
#X obj 211 241 s reloaded;
#X obj 5 329 max~ 0.79;
#X obj 5 349 -~ 0.79;
#X obj 5 389 bp~ 6512 45;
#X obj 5 369 *~ 20;
#X obj 91 66 t b b b b;
#X obj 149 107 s chamberclosed;
#X msg 149 87 1;
#X obj 90 25 t b b b b;
#X obj 148 46 s handle1;
#X obj 91 45 del 300;
#X obj 351 246 loadbang;
#X msg 351 269 223;
#X obj 351 291 s chamberf;
#X msg 351 312 123;
#X obj 351 332 s chamberres;
#X obj 90 3 r reloadbutton;
#X obj 417 139 *~;
#X obj 417 51 vline~;
#X obj 417 73 *~;
#X msg 417 29 1 1 0 \, 0 20 2;
#X obj 433 95 noise~;
#X obj 433 117 bp~ 5000 12;
#X obj 416 161 *~ 0.2;
#X obj 414 183 throw~ rlout;
#X obj 294 183 throw~ rlchamber;
#X obj 417 8 r click;
#X connect 0 0 25 0;
#X connect 1 0 20 0;
#X connect 2 0 6 0;
#X connect 3 0 5 0;
#X connect 3 0 10 0;
#X connect 4 0 3 0;
#X connect 5 0 2 1;
#X connect 6 0 11 0;
#X connect 7 0 1 0;
#X connect 7 0 1 1;
#X connect 8 0 7 0;
#X connect 9 0 22 0;
#X connect 10 0 9 0;
#X connect 11 0 20 0;
#X connect 12 0 23 0;
#X connect 13 0 3 0;
#X connect 14 0 19 0;
#X connect 15 0 21 0;
#X connect 15 1 16 0;
#X connect 16 0 21 0;
#X connect 17 0 15 0;
#X connect 18 0 24 0;
#X connect 19 0 4 0;
#X connect 19 1 8 0;
#X connect 19 2 17 0;
#X connect 19 3 18 0;
#X connect 25 0 26 0;
#X connect 26 0 28 0;
#X connect 27 0 2 0;
#X connect 28 0 27 0;
#X connect 29 0 13 0;
#X connect 29 1 14 0;
#X connect 29 2 12 0;
#X connect 29 3 31 0;
#X connect 31 0 30 0;
#X connect 32 0 34 0;
#X connect 32 3 33 0;
#X connect 34 0 29 0;
#X connect 35 0 36 0;
#X connect 35 0 38 0;
#X connect 36 0 37 0;
#X connect 38 0 39 0;
#X connect 40 0 32 0;
#X connect 41 0 47 0;
#X connect 41 0 49 0;
#X connect 42 0 43 0;
#X connect 42 0 43 1;
#X connect 43 0 41 0;
#X connect 44 0 42 0;
#X connect 45 0 46 0;
#X connect 46 0 41 1;
#X connect 47 0 48 0;
#X connect 50 0 44 0;
#X restore 30 44 pd reload;
#N canvas 44 416 207 180 handling 0;
#N canvas 283 150 412 328 vibrational 0;
#X obj 1 107 osc~ 300;
#X obj 129 107 osc~ 3100;
#X obj 66 107 osc~ 826;
#X obj 26 135 +~;
#X obj 30 199 *~;
#X obj 171 49 vline~;
#X obj 140 78 *~;
#X obj 129 190 *~;
#X obj 30 222 *~;
#X obj 49 253 *~;
#X obj 69 279 +~;
#X obj 69 303 outlet~;
#X obj 94 -2 inlet hit1;
#X obj 171 -2 inlet hit2;
#X obj 257 -2 inlet hit3;
#X obj 93 43 vline~;
#X obj 92 67 *~;
#X msg 94 23 0.5 \, 0 300;
#X msg 171 22 0.45 \, 0 200;
#X msg 257 22 0.35 \, 0 30;
#X obj 334 41 vline~;
#X obj 333 65 *~;
#X obj 335 -2 inlet hit4;
#X obj 332 88 *~;
#X msg 335 21 1 \, 0 100;
#X connect 0 0 4 0;
#X connect 0 0 3 0;
#X connect 1 0 7 0;
#X connect 2 0 4 1;
#X connect 2 0 3 1;
#X connect 3 0 8 1;
#X connect 4 0 8 0;
#X connect 5 0 6 0;
#X connect 5 0 6 1;
#X connect 5 0 7 1;
#X connect 6 0 9 1;
#X connect 7 0 10 1;
#X connect 8 0 9 0;
#X connect 9 0 10 0;
#X connect 10 0 11 0;
#X connect 12 0 17 0;
#X connect 13 0 18 0;
#X connect 14 0 19 0;
#X connect 15 0 16 0;
#X connect 15 0 16 1;
#X connect 16 0 9 1;
#X connect 17 0 15 0;
#X connect 18 0 5 0;
#X connect 19 0 5 0;
#X connect 20 0 21 0;
#X connect 20 0 21 1;
#X connect 21 0 23 0;
#X connect 21 0 23 1;
#X connect 22 0 24 0;
#X connect 23 0 7 1;
#X connect 24 0 20 0;
#X restore 14 133 pd vibrational modes;
#X obj 137 -5 r handle1;
#X obj 137 16 t b b;
#X obj 14 154 throw~ rlchamber;
#X obj 2 -4 r drop1;
#X obj 137 36 del 90;
#X obj 2 99 del 20;
#X obj 38 78 del 110;
#X obj 2 17 t b b b b b;
#X obj 56 58 del 241;
#X obj 74 39 del 351;
#X connect 0 0 3 0;
#X connect 1 0 2 0;
#X connect 2 0 5 0;
#X connect 2 1 0 2;
#X connect 4 0 8 0;
#X connect 5 0 0 1;
#X connect 6 0 0 0;
#X connect 7 0 0 3;
#X connect 8 0 6 0;
#X connect 8 1 0 1;
#X connect 8 2 7 0;
#X connect 8 3 9 0;
#X connect 8 4 10 0;
#X connect 9 0 0 2;
#X connect 10 0 0 2;
#X restore 30 64 pd handling;
#X connect 2 0 0 1;
#X connect 2 0 0 0;

Download rocket.pd.

Audio

Rocket launcher effect

A satisfying tube reload and RPG effect with distanced explosion.

Download rocket_launcher.wav.