Designing Sound - Procedural Audio for Games and Film.

Code examples for “Designing Sound” textbook

Practical 4: Alarms

Pure Data

Simple one tone alarm

#N canvas 389 342 77 222 10;
#X obj 1 192 dac~;
#X obj 1 162 *~ 0.2;
#X obj 1 138 *~;
#X obj 17 114 osc~ 800;
#X obj 1 91 sig~;
#X obj 1 19 metro 300;
#X obj 1 45 f 0;
#X obj 33 45 + 1;
#X obj 1 -3 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1;
#X obj 1 68 mod 2;
#X connect 1 0 0 0;
#X connect 1 0 0 1;
#X connect 2 0 1 0;
#X connect 3 0 2 1;
#X connect 4 0 2 0;
#X connect 5 0 6 0;
#X connect 6 0 7 0;
#X connect 6 0 9 0;
#X connect 7 0 6 1;
#X connect 8 0 5 0;
#X connect 9 0 4 0;

Download alarm01.pd.

One tone alarm - signal domain

#N canvas 389 342 133 198 10;
#X obj 48 176 dac~;
#X obj 48 146 *~ 0.2;
#X obj 48 122 *~;
#X obj 64 23 *~ 1e+06;
#X obj 64 46 clip~ 0 1;
#X obj 64 69 lop~ 70;
#X obj 64 0 osc~ 2;
#X obj 1 70 osc~ 800;
#X connect 1 0 0 0;
#X connect 1 0 0 1;
#X connect 2 0 1 0;
#X connect 3 0 4 0;
#X connect 4 0 5 0;
#X connect 5 0 2 1;
#X connect 6 0 3 0;
#X connect 7 0 2 0;

Download alarm02.pd.

Two tone alternating alarm

#N canvas 368 189 154 232 10;
#X obj 0 212 dac~;
#X obj 0 182 *~ 0.2;
#X obj 0 151 *~;
#X obj 70 151 *~;
#X obj 16 73 sig~ 1;
#X obj 16 98 -~;
#X obj 86 22 *~ 1e+06;
#X obj 86 45 clip~ 0 1;
#X obj 86 68 lop~ 70;
#X obj 86 -1 osc~ 2;
#X obj 70 123 osc~ 800;
#X obj 0 123 osc~ 600;
#X connect 1 0 0 0;
#X connect 1 0 0 1;
#X connect 2 0 1 0;
#X connect 3 0 1 0;
#X connect 4 0 5 0;
#X connect 5 0 2 1;
#X connect 6 0 7 0;
#X connect 7 0 8 0;
#X connect 8 0 5 1;
#X connect 8 0 3 1;
#X connect 9 0 6 0;
#X connect 10 0 3 0;
#X connect 11 0 2 0;

Download alarm03.pd.

Three tone split phase alarm

#N canvas 225 332 234 271 10;
#X obj 78 252 dac~;
#X obj 78 193 *~;
#X obj 152 193 *~;
#X obj 16 51 clip~ 0 1;
#X obj 92 23 *~ 3;
#X obj 92 51 clip~ 1 2;
#X obj 168 51 clip~ 2 3;
#X obj 92 74 -~ 1;
#X obj 168 74 -~ 2;
#X obj 92 98 *~ 0.5;
#X obj 92 123 -~ 0.25;
#X obj 92 146 cos~;
#X obj 168 97 *~ 0.5;
#X obj 168 120 -~ 0.25;
#X obj 168 143 cos~;
#X obj 1 193 *~;
#X obj 16 98 *~ 0.5;
#X obj 16 123 -~ 0.25;
#X obj 16 146 cos~;
#X obj 1 170 osc~ 723;
#X obj 78 170 osc~ 932;
#X obj 152 170 osc~ 1012;
#X obj 92 1 phasor~ 4;
#X obj 78 223 *~ 0.25;
#X connect 1 0 23 0;
#X connect 2 0 23 0;
#X connect 3 0 16 0;
#X connect 4 0 3 0;
#X connect 4 0 5 0;
#X connect 4 0 6 0;
#X connect 5 0 7 0;
#X connect 6 0 8 0;
#X connect 7 0 9 0;
#X connect 8 0 12 0;
#X connect 9 0 10 0;
#X connect 10 0 11 0;
#X connect 11 0 1 1;
#X connect 12 0 13 0;
#X connect 13 0 14 0;
#X connect 14 0 2 1;
#X connect 15 0 23 0;
#X connect 16 0 17 0;
#X connect 17 0 18 0;
#X connect 18 0 15 1;
#X connect 19 0 15 0;
#X connect 20 0 1 0;
#X connect 21 0 2 0;
#X connect 22 0 4 0;
#X connect 23 0 0 0;
#X connect 23 0 0 1;

Download alarm04.pd.

Three tone message triggered alarm

#N canvas 225 332 197 287 10;
#X obj 64 258 dac~;
#X obj 63 201 *~;
#X obj 127 201 *~;
#X obj 0 201 *~;
#X obj 0 178 osc~ 723;
#X obj 63 178 osc~ 932;
#X obj 127 178 osc~ 1012;
#X obj 15 154 lop~ 70;
#X obj 78 153 lop~ 70;
#X obj 143 151 lop~ 70;
#X obj 143 128 sig~;
#X obj 78 131 sig~;
#X obj 15 131 sig~;
#X obj 15 37 f;
#X obj 45 37 + 1;
#X obj 15 14 metro 500;
#X obj 15 60 mod 3;
#X obj 58 102 == 1;
#X obj 15 80 trigger f f f;
#X obj 15 102 == 0;
#X obj 15 -9 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
;
#X obj 101 102 == 2;
#X obj 64 229 *~ 0.2;
#X connect 1 0 22 0;
#X connect 2 0 22 0;
#X connect 3 0 22 0;
#X connect 4 0 3 0;
#X connect 5 0 1 0;
#X connect 6 0 2 0;
#X connect 7 0 3 1;
#X connect 8 0 1 1;
#X connect 9 0 2 1;
#X connect 10 0 9 0;
#X connect 11 0 8 0;
#X connect 12 0 7 0;
#X connect 13 0 14 0;
#X connect 13 0 16 0;
#X connect 14 0 13 1;
#X connect 15 0 13 0;
#X connect 16 0 18 0;
#X connect 17 0 11 0;
#X connect 18 0 19 0;
#X connect 18 1 17 0;
#X connect 18 2 21 0;
#X connect 19 0 12 0;
#X connect 20 0 15 0;
#X connect 21 0 10 0;
#X connect 22 0 0 0;
#X connect 22 0 0 1;

Download alarm05.pd.

Four phase multi spectrum alarm

#N canvas 107 362 372 320 10;
#X obj 134 270 dac~;
#X obj 97 159 *~;
#X obj 187 160 *~;
#X obj 4 159 *~;
#X obj 166 -2 hsl 64 12 0 1 0 1 empty empty empty -2 -6 0 8 -262144
-1 -1 3400 1;
#N canvas 11 3 138 203 timebase 0;
#X msg 0 72 1 \$1;
#X msg 43 72 0 0;
#X obj 43 47 del;
#X obj 0 108 line~;
#X obj 0 1 inlet risetime;
#X obj 0 184 outlet~ linecontrol;
#X obj 16 134 inlet scale;
#X msg 86 71 0;
#X obj 0 23 trigger f f b;
#X obj 0 158 *~;
#X connect 0 0 3 0;
#X connect 1 0 3 0;
#X connect 2 0 1 0;
#X connect 3 0 9 0;
#X connect 4 0 8 0;
#X connect 6 0 9 1;
#X connect 7 0 3 0;
#X connect 8 0 0 0;
#X connect 8 1 2 0;
#X connect 8 2 7 0;
#X connect 9 0 5 0;
#X restore 106 93 pd timebase;
#X obj 134 240 *~ 0.2;
#X obj 134 194 *~ 0.25;
#X obj 7 26 hsl 64 12 0 1000 0 1 empty empty empty -2 -6 0 8 -262144
-1 -1 3500 1;
#N canvas 394 37 291 214 4phase-osc 0;
#X obj 0 80 clip~ 0 1;
#X obj 78 79 clip~ 1 2;
#X obj 152 78 clip~ 2 3;
#X obj 77 102 -~ 1;
#X obj 153 101 -~ 2;
#X obj 76 127 *~ 0.5;
#X obj 76 150 -~ 0.25;
#X obj 76 172 cos~;
#X obj 153 125 *~ 0.5;
#X obj 153 148 -~ 0.25;
#X obj 153 171 cos~;
#X obj 0 128 *~ 0.5;
#X obj 0 151 -~ 0.25;
#X obj 0 173 cos~;
#X obj -1 196 outlet~;
#X obj 77 196 outlet~;
#X obj 153 196 outlet~;
#X obj 121 0 inlet~ run;
#X obj 121 22 wrap~;
#X obj 223 125 *~ 0.5;
#X obj 223 148 -~ 0.25;
#X obj 223 171 cos~;
#X obj 223 196 outlet~;
#X obj 121 45 *~ 4;
#X obj 222 78 clip~ 3 4;
#X obj 223 101 -~ 3;
#X connect 0 0 11 0;
#X connect 1 0 3 0;
#X connect 2 0 4 0;
#X connect 3 0 5 0;
#X connect 4 0 8 0;
#X connect 5 0 6 0;
#X connect 6 0 7 0;
#X connect 7 0 15 0;
#X connect 8 0 9 0;
#X connect 9 0 10 0;
#X connect 10 0 16 0;
#X connect 11 0 12 0;
#X connect 12 0 13 0;
#X connect 13 0 14 0;
#X connect 17 0 18 0;
#X connect 18 0 23 0;
#X connect 19 0 20 0;
#X connect 20 0 21 0;
#X connect 21 0 22 0;
#X connect 23 0 0 0;
#X connect 23 0 1 0;
#X connect 23 0 2 0;
#X connect 23 0 24 0;
#X connect 24 0 25 0;
#X connect 25 0 19 0;
#X restore 107 121 pd 4phase-osc;
#X obj 272 160 *~;
#X obj 134 217 hip~ 50;
#X obj 100 26 hsl 64 12 0 1000 0 1 empty empty empty -2 -6 0 8 -262144
-1 -1 3200 1;
#X obj 205 26 hsl 64 12 0 1000 0 1 empty empty empty -2 -6 0 8 -262144
-1 -1 3900 1;
#X obj 290 26 hsl 64 12 0 1000 0 1 empty empty empty -2 -6 0 8 -262144
-1 -1 3900 1;
#N canvas 0 0 253 185 cosc 0;
#X obj 8 125 cos~;
#X obj 8 105 +~;
#X obj 103 54 * 0.25;
#X obj 8 148 outlet~;
#X obj 9 83 osc~;
#X obj 9 6 inlet pitch;
#X obj 103 7 inlet spectrum;
#X connect 0 0 3 0;
#X connect 1 0 0 0;
#X connect 2 0 1 1;
#X connect 4 0 1 0;
#X connect 5 0 4 0;
#X connect 6 0 2 0;
#X restore 97 45 pd cosc;
#N canvas 174 90 190 114 cosc 0;
#X obj 0 74 cos~;
#X obj 0 52 +~;
#X obj 88 22 * 0.25;
#X obj 0 96 outlet~;
#X obj 0 29 osc~;
#X obj 0 0 inlet pitch;
#X obj 88 0 inlet spectrum;
#X connect 0 0 3 0;
#X connect 1 0 0 0;
#X connect 2 0 1 1;
#X connect 4 0 1 0;
#X connect 5 0 4 0;
#X connect 6 0 2 0;
#X restore 4 45 pd cosc;
#N canvas 0 0 253 185 cosc 0;
#X obj 8 125 cos~;
#X obj 8 105 +~;
#X obj 103 54 * 0.25;
#X obj 8 148 outlet~;
#X obj 9 83 osc~;
#X obj 9 6 inlet pitch;
#X obj 103 7 inlet spectrum;
#X connect 0 0 3 0;
#X connect 1 0 0 0;
#X connect 2 0 1 1;
#X connect 4 0 1 0;
#X connect 5 0 4 0;
#X connect 6 0 2 0;
#X restore 202 45 pd cosc;
#N canvas 0 0 253 185 cosc 0;
#X obj 8 125 cos~;
#X obj 8 105 +~;
#X obj 103 54 * 0.25;
#X obj 8 148 outlet~;
#X obj 9 83 osc~;
#X obj 9 6 inlet pitch;
#X obj 103 7 inlet spectrum;
#X connect 0 0 3 0;
#X connect 1 0 0 0;
#X connect 2 0 1 1;
#X connect 4 0 1 0;
#X connect 5 0 4 0;
#X connect 6 0 2 0;
#X restore 287 45 pd cosc;
#X obj 180 73 nbx 5 14 1 50 0 1 empty empty empty 0 -8 0 10 -262144
-1 -1 2 256;
#X obj 106 73 nbx 5 14 1 500 0 1 empty \$0-startalarm empty 0 -8 0
10 -262144 -1 -1 471 256;
#X obj 10 -18 bng 20 250 50 0 \$0-startalarm empty empty 17 7 0 10
-262144 -1 -1;
#X connect 1 0 7 0;
#X connect 2 0 7 0;
#X connect 3 0 7 0;
#X connect 4 0 16 1;
#X connect 4 0 15 1;
#X connect 4 0 17 1;
#X connect 4 0 18 1;
#X connect 5 0 9 0;
#X connect 6 0 0 0;
#X connect 6 0 0 1;
#X connect 7 0 11 0;
#X connect 8 0 16 0;
#X connect 9 0 3 1;
#X connect 9 1 1 1;
#X connect 9 2 2 0;
#X connect 9 3 10 0;
#X connect 10 0 7 0;
#X connect 11 0 6 0;
#X connect 12 0 15 0;
#X connect 13 0 17 0;
#X connect 14 0 18 0;
#X connect 15 0 1 0;
#X connect 16 0 3 0;
#X connect 17 0 2 1;
#X connect 18 0 10 1;
#X connect 19 0 5 1;
#X connect 20 0 5 0;

Download alarm06.pd.

Programmable alarm with preset examples

#N canvas 129 112 621 322 10;
#X obj 100 43 hsl 64 12 0 1000 0 1 empty empty freq1 16 6 1 8 -262144
-1 -1 6300 1;
#X obj 80 29 hsl 64 12 0 100 0 1 empty empty speed 16 6 1 8 -262144
-1 -1 400 1;
#X obj 60 14 hsl 64 12 0 5000 0 1 empty empty time 17 6 1 8 -262144
-1 -1 900 1;
#X obj 120 58 hsl 64 12 0 1000 0 1 empty empty freq2 16 6 1 8 -262144
-1 -1 6300 1;
#N canvas 156 215 246 336 multi-tone-alarm 0;
#X obj 56 317 dac~;
#X obj 27 186 *~;
#X obj 56 207 *~;
#X obj -1 166 *~;
#N canvas 0 0 255 294 timebase 0;
#X msg 6 77 1 \$1;
#X msg 49 77 0 0;
#X obj 49 52 del;
#X obj 6 113 line~;
#X obj 6 6 inlet risetime;
#X obj 6 189 outlet~ linecontrol;
#X obj 22 139 inlet scale;
#X msg 92 76 0;
#X obj 6 28 trigger f f b;
#X obj 6 163 *~;
#X connect 0 0 3 0;
#X connect 1 0 3 0;
#X connect 2 0 1 0;
#X connect 3 0 9 0;
#X connect 4 0 8 0;
#X connect 6 0 9 1;
#X connect 7 0 3 0;
#X connect 8 0 0 0;
#X connect 8 1 2 0;
#X connect 8 2 7 0;
#X connect 9 0 5 0;
#X restore 15 59 pd timebase;
#X obj 56 252 *~ 0.25;
#N canvas 11 420 328 247 4phase-osc 0;
#X obj 4 85 clip~ 0 1;
#X obj 81 84 clip~ 1 2;
#X obj 155 83 clip~ 2 3;
#X obj 80 107 -~ 1;
#X obj 156 106 -~ 2;
#X obj 79 131 *~ 0.5;
#X obj 79 154 -~ 0.25;
#X obj 79 176 cos~;
#X obj 156 129 *~ 0.5;
#X obj 156 152 -~ 0.25;
#X obj 156 174 cos~;
#X obj 3 134 *~ 0.5;
#X obj 3 157 -~ 0.25;
#X obj 3 179 cos~;
#X obj 2 201 outlet~;
#X obj 80 199 outlet~;
#X obj 156 197 outlet~;
#X obj 124 5 inlet~ run;
#X obj 124 27 wrap~;
#X obj 226 129 *~ 0.5;
#X obj 226 152 -~ 0.25;
#X obj 226 174 cos~;
#X obj 226 197 outlet~;
#X obj 124 49 *~ 4;
#X obj 225 83 clip~ 3 4;
#X obj 226 106 -~ 3;
#X connect 0 0 11 0;
#X connect 1 0 3 0;
#X connect 2 0 4 0;
#X connect 3 0 5 0;
#X connect 4 0 8 0;
#X connect 5 0 6 0;
#X connect 6 0 7 0;
#X connect 7 0 15 0;
#X connect 8 0 9 0;
#X connect 9 0 10 0;
#X connect 10 0 16 0;
#X connect 11 0 12 0;
#X connect 12 0 13 0;
#X connect 13 0 14 0;
#X connect 17 0 18 0;
#X connect 18 0 23 0;
#X connect 19 0 20 0;
#X connect 20 0 21 0;
#X connect 21 0 22 0;
#X connect 23 0 0 0;
#X connect 23 0 1 0;
#X connect 23 0 2 0;
#X connect 23 0 24 0;
#X connect 24 0 25 0;
#X connect 25 0 19 0;
#X restore 15 80 pd 4phase-osc;
#X obj 85 217 *~;
#X obj 56 273 hip~ 50;
#X obj 65 24 unpack f f f f f f f;
#X obj 65 1 inlet;
#X obj 56 293 *~ 0.5;
#N canvas 0 0 218 139 cosc 0;
#X obj 8 91 cos~;
#X obj 8 71 +~;
#X obj 103 28 * 0.25;
#X obj 8 114 outlet~;
#X obj 9 49 osc~;
#X obj 9 6 inlet pitch;
#X obj 103 7 inlet spectrum;
#X connect 0 0 3 0;
#X connect 1 0 0 0;
#X connect 2 0 1 1;
#X connect 4 0 1 0;
#X connect 5 0 4 0;
#X connect 6 0 2 0;
#X restore 110 102 pd cosc;
#N canvas 0 0 253 185 cosc 0;
#X obj 8 125 cos~;
#X obj 8 105 +~;
#X obj 103 54 * 0.25;
#X obj 8 148 outlet~;
#X obj 9 83 osc~;
#X obj 9 6 inlet pitch;
#X obj 103 7 inlet spectrum;
#X connect 0 0 3 0;
#X connect 1 0 0 0;
#X connect 2 0 1 1;
#X connect 4 0 1 0;
#X connect 5 0 4 0;
#X connect 6 0 2 0;
#X restore 132 122 pd cosc;
#N canvas 0 0 253 185 cosc 0;
#X obj 8 125 cos~;
#X obj 8 105 +~;
#X obj 103 54 * 0.25;
#X obj 8 148 outlet~;
#X obj 9 83 osc~;
#X obj 9 6 inlet pitch;
#X obj 103 7 inlet spectrum;
#X connect 0 0 3 0;
#X connect 1 0 0 0;
#X connect 2 0 1 1;
#X connect 4 0 1 0;
#X connect 5 0 4 0;
#X connect 6 0 2 0;
#X restore 155 142 pd cosc;
#N canvas 0 0 253 185 cosc 0;
#X obj 8 125 cos~;
#X obj 8 105 +~;
#X obj 103 54 * 0.25;
#X obj 8 148 outlet~;
#X obj 9 83 osc~;
#X obj 9 6 inlet pitch;
#X obj 103 7 inlet spectrum;
#X connect 0 0 3 0;
#X connect 1 0 0 0;
#X connect 2 0 1 1;
#X connect 4 0 1 0;
#X connect 5 0 4 0;
#X connect 6 0 2 0;
#X restore 178 162 pd cosc;
#X connect 1 0 5 0;
#X connect 2 0 5 0;
#X connect 3 0 5 0;
#X connect 4 0 6 0;
#X connect 5 0 8 0;
#X connect 6 0 3 1;
#X connect 6 1 1 1;
#X connect 6 2 2 1;
#X connect 6 3 7 1;
#X connect 7 0 5 0;
#X connect 8 0 11 0;
#X connect 9 0 4 0;
#X connect 9 1 4 1;
#X connect 9 2 12 0;
#X connect 9 3 13 0;
#X connect 9 4 14 0;
#X connect 9 5 15 0;
#X connect 9 6 15 1;
#X connect 9 6 14 1;
#X connect 9 6 13 1;
#X connect 9 6 12 1;
#X connect 10 0 9 0;
#X connect 11 0 0 0;
#X connect 11 0 0 1;
#X connect 12 0 3 0;
#X connect 13 0 1 0;
#X connect 14 0 2 0;
#X connect 15 0 7 0;
#X restore 225 293 pd multi-tone-alarm;
#X obj 34 137 t;
#X obj 181 102 hsl 64 12 0 1 0 1 empty empty tone 16 6 1 8 -262144
-1 -1 6300 1;
#X obj 160 87 hsl 64 12 0 1000 0 1 empty empty freq4 16 6 1 8 -262144
-1 -1 6300 1;
#X obj 140 73 hsl 64 12 0 1000 0 1 empty empty freq3 16 6 1 8 -262144
-1 -1 6300 1;
#X obj 57 159 pack f f f f f f f;
#X msg 57 182 set \$1 \$2 \$3 \$4 \$5 \$6 \$7;
#X obj 77 135 int;
#X msg 403 117 317 7 300 125 0 0 1;
#X msg 403 137 1031 9 360 238 174 158 1;
#X msg 403 177 1428 3 619 571 365 206 1;
#X msg 403 197 450 1 365 571 619 206 0.5;
#X msg 403 217 714 74 1000 0 1000 0 1;
#X msg 57 206 714.286 6 1000 1000 0 1000 1;
#X msg 403 157 900 4 2000 2010 2000 2010 1;
#X msg 403 77 380 2 349 0 0 0 1;
#X msg 403 97 238 1 317 0 0 476 0;
#X msg 403 237 200 30 1000 476 159 0 1;
#X msg 403 257 634 61 1000 476 159 0 1;
#X connect 0 0 5 0;
#X connect 0 0 9 2;
#X connect 1 0 5 0;
#X connect 1 0 11 0;
#X connect 2 0 9 0;
#X connect 3 0 5 0;
#X connect 3 0 9 3;
#X connect 5 0 9 0;
#X connect 6 0 5 0;
#X connect 6 0 9 6;
#X connect 7 0 5 0;
#X connect 7 0 9 5;
#X connect 8 0 5 0;
#X connect 8 0 9 4;
#X connect 9 0 10 0;
#X connect 10 0 17 0;
#X connect 11 0 9 1;
#X connect 12 0 4 0;
#X connect 13 0 4 0;
#X connect 14 0 4 0;
#X connect 15 0 4 0;
#X connect 16 0 4 0;
#X connect 17 0 4 0;
#X connect 18 0 4 0;
#X connect 19 0 4 0;
#X connect 20 0 4 0;
#X connect 21 0 4 0;
#X connect 22 0 4 0;

Download alarm07.pd.

Audio

Multi tone alarms

Download alarms.wav.