Designing Sound - Procedural Audio for Games and Film.

Code examples for “Designing Sound” textbook

Practical 16: Electricity

Pure Data

Electricity - humming effect

#N canvas 84 20 182 283 10;
#X obj -1 265 dac~;
#X obj 93 67 noise~;
#X obj 87 20 phasor~ 100.2;
#X obj 79 0 phasor~ 99.8;
#X obj 78 211 *~;
#X obj 93 134 *~;
#X obj 93 108 lop~ 2;
#X obj 93 87 lop~ 2;
#X obj 94 178 *~ 500;
#X obj 78 45 -~ 1;
#X obj -1 238 comb1 80 0.2;
#X obj -1 212 +~ 20;
#X obj 78 156 clip~ -0.5 0.5;
#X connect 1 0 7 0;
#X connect 2 0 9 0;
#X connect 3 0 9 0;
#X connect 4 0 10 1;
#X connect 5 0 8 0;
#X connect 6 0 5 0;
#X connect 6 0 5 1;
#X connect 7 0 6 0;
#X connect 8 0 4 1;
#X connect 8 0 11 0;
#X connect 9 0 12 0;
#X connect 10 0 0 0;
#X connect 10 0 0 1;
#X connect 11 0 10 0;
#X connect 12 0 4 0;

Download hum1.pd.

Electricity - hum and sparking

#N canvas 104 42 331 538 10;
#X obj 60 511 dac~;
#X obj 217 22 noise~;
#X obj 217 89 *~;
#X obj 217 63 lop~ 2;
#X obj 217 42 lop~ 2;
#X obj 217 111 *~ 500;
#X obj 138 74 -~ 1;
#X obj 59 486 comb1 80 0.2;
#X obj 217 135 +~ 20;
#X obj 0 206 randgate 3 0.0008;
#X obj 0 181 chplz;
#X obj 29 59 noise~;
#X obj 29 119 max~ 0;
#X obj 29 99 lop~ 0.1;
#X obj 29 79 lop~ 0.1;
#X obj 29 139 *~ 700;
#X obj 138 153 *~;
#X obj 138 179 clip~ -0.9 0.1;
#X obj 0 441 *~ 0.6;
#X obj 138 0 phasor~ 100.2;
#X obj 0 419 *~;
#X obj 72 358 clip~ 0 1;
#X obj 72 337 *~ 1e+09;
#X obj 72 379 lop~ 30;
#X obj 72 295 max~ 0.1;
#X obj 72 316 -~ 0.1;
#X obj 72 232 lop~ 15;
#X obj 72 253 lop~ 15;
#X obj 72 274 *~ 500;
#X obj 29 159 +~ 3;
#X obj 175 360 *~ 0.05;
#X obj 175 313 threshold~ 0.03 0 0 0;
#X obj 175 336 snap 1.8;
#X obj 0 24 phasor~ -99.8;
#X connect 1 0 4 0;
#X connect 2 0 5 0;
#X connect 3 0 2 0;
#X connect 3 0 2 1;
#X connect 4 0 3 0;
#X connect 5 0 8 0;
#X connect 5 0 16 1;
#X connect 6 0 16 0;
#X connect 7 0 0 0;
#X connect 7 0 0 1;
#X connect 8 0 7 0;
#X connect 9 0 20 0;
#X connect 10 0 9 0;
#X connect 11 0 14 0;
#X connect 12 0 15 0;
#X connect 13 0 12 0;
#X connect 14 0 13 0;
#X connect 15 0 29 0;
#X connect 16 0 17 0;
#X connect 17 0 26 0;
#X connect 17 0 31 0;
#X connect 17 0 7 1;
#X connect 18 0 7 1;
#X connect 19 0 6 0;
#X connect 20 0 18 0;
#X connect 21 0 23 0;
#X connect 22 0 21 0;
#X connect 23 0 20 1;
#X connect 24 0 25 0;
#X connect 25 0 22 0;
#X connect 26 0 27 0;
#X connect 27 0 28 0;
#X connect 28 0 24 0;
#X connect 29 0 10 1;
#X connect 30 0 7 1;
#X connect 31 0 32 0;
#X connect 32 0 30 0;
#X connect 33 0 10 0;
#X connect 33 0 6 0;

Download humandsparks.pd.

Electricity - chirp impulse (abstraction needed by above)

#N canvas 239 204 308 436 10;
#X obj 19 262 cos~;
#X obj 19 283 *~;
#X obj 19 329 outlet~;
#X obj 50 0 inlet~;
#X obj 19 306 hip~ 300;
#X obj 2 59 min~ 1;
#X obj 51 59 max~ 1;
#X obj 51 82 -~ 1;
#X obj 51 104 *~ 1e+09;
#X obj 51 126 min~ 1;
#X obj 35 149 -~;
#X obj 7 211 *~;
#X obj 7 186 +~ 0.1;
#X obj 19 239 *~ 12;
#X obj 103 0 inlet~;
#X obj 51 24 *~;
#N canvas 0 0 450 300 grapha 0;
#X obj 100 100 cnv 15 100 100 empty empty empty 20 12 0 14 -262144
-66577 0;
#N canvas 0 0 450 300 graph3 0;
#X array A 100 float 0;
#X coords 0 1 99 -1 100 100 1;
#X restore 100 100 graph;
#X obj 210 209 tabwrite~ A;
#X obj 289 155 inlet~;
#X obj 210 130 loadbang;
#X obj 278 131 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 217 178 s b;
#X obj 210 155 metro 200;
#X connect 3 0 2 0;
#X connect 4 0 7 0;
#X connect 5 0 7 0;
#X connect 7 0 2 0;
#X connect 7 0 6 0;
#X coords 0 -1 1 1 100 100 1 100 100;
#X restore 140 92 pd grapha;
#N canvas 0 0 450 300 grapha 0;
#X obj 100 100 cnv 15 100 100 empty empty empty 20 12 0 14 -262144
-66577 0;
#N canvas 0 0 450 300 graph3 0;
#X array B 100 float 0;
#X coords 0 1 99 -1 100 100 1;
#X restore 100 100 graph;
#X obj 289 155 inlet~;
#X obj 210 182 tabwrite~ B;
#X obj 210 156 r b;
#X connect 2 0 3 0;
#X connect 4 0 3 0;
#X coords 0 -1 1 1 100 100 1 100 100;
#X restore 141 209 pd grapha;
#N canvas 0 0 450 300 grapha 0;
#X obj 100 100 cnv 15 100 100 empty empty empty 20 12 0 14 -262144
-66577 0;
#N canvas 0 0 450 300 graph3 0;
#X array C 100 float 0;
#X coords 0 1 99 -1 100 100 1;
#X restore 100 100 graph;
#X obj 289 155 inlet~;
#X obj 210 156 r b;
#X obj 210 182 tabwrite~ C;
#X connect 2 0 4 0;
#X connect 3 0 4 0;
#X coords 0 -1 1 1 100 100 1 100 100;
#X restore 143 325 pd grapha;
#X connect 0 0 1 0;
#X connect 1 0 4 0;
#X connect 1 0 18 0;
#X connect 3 0 15 0;
#X connect 3 0 16 0;
#X connect 4 0 2 0;
#X connect 5 0 10 0;
#X connect 6 0 7 0;
#X connect 7 0 8 0;
#X connect 8 0 9 0;
#X connect 9 0 10 1;
#X connect 10 0 1 1;
#X connect 10 0 12 0;
#X connect 10 0 17 0;
#X connect 11 0 13 0;
#X connect 12 0 11 1;
#X connect 12 0 11 0;
#X connect 13 0 0 0;
#X connect 14 0 15 1;
#X connect 15 0 5 0;
#X connect 15 0 6 0;

Download chplz.pd.

Electricity - combe filter (abstraction needed by above)

#N canvas 141 79 214 171 10;
#X obj 27 80 inlet~;
#X obj 0 153 outlet~;
#X obj 62 153 delwrite~ \$0-comb 100;
#X obj 62 129 +~;
#X obj 78 79 lop~ 3000;
#X obj 78 56 *~ \$2;
#X obj 0 25 vd~ \$0-comb \$1;
#X obj 0 0 inlet~;
#X connect 0 0 3 0;
#X connect 3 0 2 0;
#X connect 4 0 3 1;
#X connect 5 0 4 0;
#X connect 6 0 1 0;
#X connect 6 0 5 0;
#X connect 7 0 6 0;

Download comb1.pd.

Electricity - random gate (abstraction needed by above)

#N canvas 216 199 82 219 10;
#X obj 15 20 noise~;
#X obj 15 140 clip~ 0 1;
#X obj 15 120 *~ 1e+09;
#X obj 15 160 lop~ 30;
#X obj 0 201 outlet~;
#X obj 0 0 inlet~;
#X obj 0 181 *~;
#X obj 15 40 lop~ \$1;
#X obj 15 60 lop~ \$1;
#X obj 15 80 max~ \$2;
#X obj 15 100 -~ \$2;
#X connect 0 0 7 0;
#X connect 1 0 3 0;
#X connect 2 0 1 0;
#X connect 3 0 6 1;
#X connect 5 0 6 0;
#X connect 6 0 4 0;
#X connect 7 0 8 0;
#X connect 8 0 9 0;
#X connect 9 0 10 0;
#X connect 10 0 2 0;

Download randgate.pd.

Electricity - spark effect (abstraction needed by above)

#N canvas 29 130 205 230 10;
#X obj -2 123 *~;
#X obj 51 48 vline~;
#X obj 131 114 osc~;
#X obj 131 48 vline~;
#X obj 115 139 *~;
#X obj 131 92 +~ 20;
#X obj 131 70 *~ 7000;
#X msg 131 25 1 \, 0 10 0;
#X obj 51 73 *~;
#X obj 51 97 *~;
#X obj -2 144 *~ 0.5;
#X obj -2 75 noise~;
#X msg 51 25 1 \, 0 500 0;
#X obj 97 -6 inlet;
#X obj 49 206 outlet~;
#X obj 49 181 spark6formant \$1;
#X connect 0 0 10 0;
#X connect 1 0 8 0;
#X connect 1 0 8 1;
#X connect 2 0 4 1;
#X connect 3 0 4 0;
#X connect 3 0 6 0;
#X connect 4 0 15 0;
#X connect 5 0 2 0;
#X connect 6 0 5 0;
#X connect 7 0 3 0;
#X connect 8 0 9 0;
#X connect 8 0 9 1;
#X connect 9 0 0 1;
#X connect 10 0 15 0;
#X connect 11 0 0 0;
#X connect 12 0 1 0;
#X connect 13 0 7 0;
#X connect 13 0 12 0;
#X connect 15 0 14 0;

Download snap.pd.

Audio

Electric sparks effect

The effect combines humming, phase shifting and synchronised crackles (chirp impulses) for a 50Hz arcing sound.

Download electricity.wav.