Designing Sound - Procedural Audio for Games and Film.

Code examples for “Designing Sound” textbook

Practical 19: Switches

Pure Data

Switches - simple filter based click

#N canvas 182 183 99 159 10;
#X obj 0 141 dac~;
#X obj 0 110 *~;
#X obj 0 22 vline~;
#X obj 0 44 *~;
#X msg 0 0 1 1 0 \, 0 20 2;
#X obj 16 66 noise~;
#X obj 16 88 bp~ 5000 12;
#X connect 1 0 0 0;
#X connect 1 0 0 1;
#X connect 2 0 3 0;
#X connect 2 0 3 1;
#X connect 3 0 1 0;
#X connect 4 0 2 0;
#X connect 5 0 6 0;
#X connect 6 0 1 1;

Download switch001.pd.

Switches - slide type switch

#N canvas 115 49 219 372 10;
#X obj 0 353 dac~;
#X obj 0 1 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1
;
#X obj 27 211 delwrite~ a 40;
#X obj 0 183 +~;
#X obj 1 305 +~;
#X obj 27 304 s~ fba;
#X obj 26 183 r~ fba;
#X obj 26 254 lop~ 400;
#X obj 27 232 delread~ a 25;
#X obj 27 279 *~ 0.3;
#X obj 0 328 *~ 0.3;
#X obj 75 123 shortping 10500 9453;
#X msg 22 82 4345 2480 4795;
#X msg 0 62 3345 2980 4790;
#X obj 0 42 del 200;
#X obj 0 123 slideclunk;
#X obj 0 144 *~ 0.2;
#X obj 0 20 t b b b;
#X obj 75 103 del 300;
#X connect 1 0 17 0;
#X connect 3 0 4 0;
#X connect 3 0 2 0;
#X connect 4 0 10 0;
#X connect 6 0 2 0;
#X connect 7 0 9 0;
#X connect 8 0 7 0;
#X connect 9 0 5 0;
#X connect 9 0 4 1;
#X connect 10 0 0 0;
#X connect 10 0 0 1;
#X connect 11 0 3 1;
#X connect 12 0 15 0;
#X connect 13 0 15 0;
#X connect 14 0 13 0;
#X connect 15 0 16 0;
#X connect 16 0 3 0;
#X connect 17 0 14 0;
#X connect 17 1 12 0;
#X connect 17 2 18 0;
#X connect 18 0 11 0;

Download slideswitch.pd.

Switches - push button type switch

#N canvas 177 238 343 262 10;
#X obj 0 0 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1
;
#X obj 222 235 dac~;
#X obj 0 19 t b b b b;
#X obj 38 81 del 30;
#X obj 19 182 throw~ body;
#X obj 0 244 throw~ body;
#X obj 38 121 throw~ body;
#X obj 58 60 throw~ body;
#X obj 221 55 catch~ body;
#X obj 239 76 r~ bodyfb;
#X obj 235 188 s~ bodyfb;
#X obj 221 98 delwrite~ body 50;
#X obj 221 118 delread~ body 50;
#X obj 235 168 bp~ 700 3;
#X obj 221 142 *~ 0.1;
#X obj 0 203 del 150;
#X obj 19 142 del 140;
#X obj 221 209 *~ 10;
#X obj 38 101 switchclick 1 50 3000;
#X obj 19 162 switchclick 1 20 4000;
#X obj 58 40 switchclick 1 20 4000;
#X obj 0 224 switchclick 1 20 7000;
#X connect 0 0 2 0;
#X connect 2 0 15 0;
#X connect 2 1 16 0;
#X connect 2 2 3 0;
#X connect 2 3 20 0;
#X connect 3 0 18 0;
#X connect 8 0 11 0;
#X connect 9 0 11 0;
#X connect 12 0 14 0;
#X connect 13 0 10 0;
#X connect 14 0 13 0;
#X connect 14 0 17 0;
#X connect 15 0 21 0;
#X connect 16 0 19 0;
#X connect 17 0 1 0;
#X connect 17 0 1 1;
#X connect 18 0 6 0;
#X connect 19 0 4 0;
#X connect 20 0 7 0;
#X connect 21 0 5 0;

Download switch3.pd.

Switches - click (abstraction used by above)

#N canvas 239 226 112 213 10;
#X obj -4 170 *~;
#X obj -4 82 vline~;
#X obj -4 104 *~;
#X obj 12 126 noise~;
#X obj -4 -4 inlet;
#X msg -4 60 1 \$1 0 \, 0 \$2 \$1;
#X obj -4 16 t b;
#X obj -4 39 pack \$1 \$2;
#X obj -4 191 outlet~;
#X obj 12 148 bp~ \$3 8;
#X connect 0 0 8 0;
#X connect 1 0 2 0;
#X connect 1 0 2 1;
#X connect 2 0 0 0;
#X connect 3 0 9 0;
#X connect 4 0 6 0;
#X connect 5 0 1 0;
#X connect 6 0 7 0;
#X connect 7 0 5 0;
#X connect 9 0 0 1;

Download switchclick.pd.

Switches - dense phasor noise (abstraction used by above)

#N canvas 80 59 226 251 10;
#X obj 89 125 +~;
#X obj 73 151 +~;
#X obj 58 172 +~;
#X obj 35 81 *~;
#X obj 58 212 hip~ 1000;
#X obj 58 106 *~;
#X obj 111 80 *~;
#X obj 58 192 cos~;
#X obj 50 22 unpack f f f;
#X obj 50 -1 inlet;
#X obj 58 232 outlet~;
#X obj -2 47 phasor~;
#X obj 89 46 phasor~;
#X obj 171 46 phasor~;
#X connect 0 0 1 1;
#X connect 1 0 2 1;
#X connect 2 0 7 0;
#X connect 3 0 5 0;
#X connect 4 0 10 0;
#X connect 5 0 2 0;
#X connect 6 0 5 1;
#X connect 7 0 4 0;
#X connect 8 0 11 0;
#X connect 8 1 12 0;
#X connect 8 2 13 0;
#X connect 9 0 8 0;
#X connect 11 0 3 0;
#X connect 11 0 1 0;
#X connect 12 0 3 1;
#X connect 12 0 6 0;
#X connect 12 0 0 0;
#X connect 13 0 6 1;
#X connect 13 0 0 1;

Download pnoise.pd.

Switches - ping sound (abstraction used by above)

#N canvas 0 0 115 150 10;
#X obj 48 83 +~;
#X obj 0 42 vline~;
#X obj 0 64 *~;
#X obj 0 87 *~;
#X obj 0 111 *~;
#X msg 0 21 1 0 0 \, 0 50 0;
#X obj 0 132 outlet~;
#X obj 49 42 osc~ \$1;
#X obj 63 62 osc~ \$2;
#X obj 0 0 inlet;
#X connect 0 0 4 1;
#X connect 1 0 2 0;
#X connect 1 0 2 1;
#X connect 2 0 3 0;
#X connect 2 0 3 1;
#X connect 3 0 4 0;
#X connect 4 0 6 0;
#X connect 5 0 1 0;
#X connect 7 0 0 0;
#X connect 8 0 0 1;
#X connect 9 0 5 0;

Download shortping.pd.

Switches - slide effect (abstraction used by above)

#N canvas 63 66 232 222 10;
#X obj 0 67 vline~;
#X obj 0 97 *~;
#X obj 0 120 *~;
#X obj 0 141 *~;
#X obj 0 162 rpole~ 0.65;
#X obj 0 183 rpole~ 0.62;
#X msg 0 45 0 \, 0.46 100 0 \, 1 0 100 \, 0 50 101;
#X obj 31 122 pnoise;
#X obj 0 22 t b a;
#X obj 0 0 inlet f1 f2 f3;
#X obj 0 204 outlet~;
#X connect 0 0 1 0;
#X connect 0 0 1 1;
#X connect 1 0 2 0;
#X connect 1 0 2 1;
#X connect 2 0 3 0;
#X connect 3 0 4 0;
#X connect 4 0 5 0;
#X connect 5 0 10 0;
#X connect 6 0 0 0;
#X connect 7 0 3 1;
#X connect 8 0 6 0;
#X connect 8 1 7 0;
#X connect 9 0 8 0;

Download slideclunk.pd.

Audio

Switch sounds

Three examples given here are; two clicks from a simple band-pass filter and noise source (low level of detail), a second switch sound using several sines added to give a modal "plastic" click, and a composite switch made using filtered noise and additive clicks.

Download switches.wav.