Designing Sound - Procedural Audio for Games and Film.

Code examples for “Designing Sound” textbook

Practical 6: Telephone Bell

Pure Data

Telephone bell - requires following abstractions

#N canvas 146 223 571 205 10;
#X obj 305 182 dac~;
#X obj 438 71 catch~ \$0-striker;
#X obj 305 113 +~;
#X obj 422 109 +~;
#X obj 305 157 +~;
#X obj 62 11 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
;
#N canvas 68 56 127 196 striker 0;
#X obj -1 -1 noise~;
#X obj 16 61 vline~;
#X obj 15 85 *~;
#X obj 15 109 *~;
#X obj -1 132 *~;
#X obj -1 175 throw~ \$0-striker;
#X obj 16 19 r striker;
#X msg 16 40 1 \, 0 10 0;
#X obj -1 153 *~ 0.1;
#X connect 0 0 4 0;
#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 1;
#X connect 4 0 8 0;
#X connect 6 0 7 0;
#X connect 7 0 1 0;
#X connect 8 0 5 0;
#X restore 210 54 pd striker;
#N canvas 89 58 396 220 casing 0;
#X obj 168 39 r~ \$0-casefb1;
#X obj 14 76 s~ \$0-casefb1;
#X obj 60 141 bp~ 1243 12;
#X obj 144 141 bp~ 287 12;
#X obj 221 141 bp~ 431 12;
#X obj 144 171 clip~ -0.3 0.3;
#X obj 143 86 delwrite~ \$0-a 10;
#X obj 268 39 delwrite~ \$0-b 10;
#X obj -3 50 delread~ \$0-b 0.88;
#X obj 143 106 delread~ \$0-a 0.77;
#X obj 168 60 *~ 0.7;
#X obj 145 198 s~ \$0-casefb2;
#X obj 267 14 r~ \$0-casefb2;
#X obj 143 -4 r~ \$0-casein;
#X obj -3 97 s~ \$0-caseout;
#X connect 0 0 10 0;
#X connect 2 0 5 0;
#X connect 3 0 5 0;
#X connect 4 0 5 0;
#X connect 5 0 11 0;
#X connect 8 0 1 0;
#X connect 8 0 14 0;
#X connect 9 0 2 0;
#X connect 9 0 3 0;
#X connect 9 0 4 0;
#X connect 10 0 6 0;
#X connect 12 0 7 0;
#X connect 13 0 6 0;
#X connect 13 0 7 0;
#X restore 210 76 pd casing;
#X obj 422 134 s~ \$0-casein;
#X obj 321 134 r~ \$0-caseout;
#X obj 304 75 +~;
#X obj 320 52 catch~ \$0-bell2;
#X obj 304 31 catch~ \$0-bell1;
#N canvas 0 0 1058 738 bell1 0;
#X obj 335 221 partialgroup;
#X obj 335 80 t f f f;
#X obj 335 152 * 2.002;
#X obj 357 130 * 3;
#X obj 379 106 * 9.6;
#X obj 527 82 * 0.9;
#X obj 435 80 t f f f;
#X obj 435 152 * 0.008;
#X obj 457 130 * 0.02;
#X obj 479 106 * 0.004;
#X obj 335 191 pack f f f f f f f;
#X obj 335 242 throw~ \$0-bell1;
#X obj 583 221 partialgroup;
#X obj 583 80 t f f f;
#X obj 683 80 t f f f;
#X obj 583 191 pack f f f f f f f;
#X obj 583 242 throw~ \$0-bell1;
#X obj 583 152 * 2.49;
#X obj 627 106 * 2.571;
#X obj 605 130 * 11;
#X obj 683 152 * 0.02;
#X obj 705 130 * 0.04;
#X obj 727 106 * 0.02;
#X obj 775 82 * 0.25;
#X obj 85 452 partialgroup;
#X obj 85 311 t f f f;
#X obj 185 311 t f f f;
#X obj 85 422 pack f f f f f f f;
#X obj 85 473 throw~ \$0-bell1;
#X obj 85 383 * 3.05;
#X obj 185 383 * 0.005;
#X obj 107 361 * 6.242;
#X obj 207 360 * 0.05;
#X obj 129 337 * 12.49;
#X obj 229 337 * 0.05;
#X obj 277 313 * 0.14;
#X obj 85 221 partialgroup;
#X obj 85 80 t f f f;
#X obj 185 80 t f f f;
#X obj 207 130 * 0.02;
#X obj 85 191 pack f f f f f f f;
#X obj 85 242 throw~ \$0-bell1;
#X obj 85 150 * 0.501;
#X obj 107 130 * 1;
#X obj 129 106 * 0.7;
#X obj 185 152 * 0.002;
#X obj 229 106 * 0.001;
#X obj 277 82 * 1.2;
#X obj 336 451 partialgroup;
#X obj 336 310 t f f f;
#X obj 436 310 t f f f;
#X obj 336 421 pack f f f f f f f;
#X obj 336 472 throw~ \$0-bell1;
#X obj 336 382 * 13;
#X obj 358 360 * 16;
#X obj 380 336 * 24;
#X obj 436 382 * 0.02;
#X obj 458 359 * 0.03;
#X obj 480 336 * 0.04;
#X obj 528 312 * 0.07;
#X text 84 31 fundamental \, sub \, inharmonic prime;
#X text 396 31 primary modes;
#X text 626 31 secondary modes;
#X text 128 269 circular modes;
#X text 404 267 striker;
#X obj 85 57 r fundamental1;
#X obj 185 57 r strength1;
#X obj 277 57 r decay1;
#X obj 335 57 r fundamental1;
#X obj 435 57 r strength1;
#X obj 527 57 r decay1;
#X obj 583 57 r fundamental1;
#X obj 683 57 r strength1;
#X obj 775 57 r decay1;
#X obj 85 288 r fundamental1;
#X obj 185 288 r strength1;
#X obj 277 288 r decay1;
#X obj 336 287 r fundamental1;
#X obj 436 288 r strength1;
#X obj 528 287 r decay1;
#X connect 0 0 11 0;
#X connect 1 0 2 0;
#X connect 1 1 3 0;
#X connect 1 2 4 0;
#X connect 2 0 10 0;
#X connect 3 0 10 2;
#X connect 4 0 10 4;
#X connect 5 0 10 6;
#X connect 6 0 7 0;
#X connect 6 1 8 0;
#X connect 6 2 9 0;
#X connect 7 0 10 1;
#X connect 8 0 10 3;
#X connect 9 0 10 5;
#X connect 10 0 0 0;
#X connect 12 0 16 0;
#X connect 13 0 17 0;
#X connect 13 1 19 0;
#X connect 13 2 18 0;
#X connect 14 0 20 0;
#X connect 14 1 21 0;
#X connect 14 2 22 0;
#X connect 15 0 12 0;
#X connect 17 0 15 0;
#X connect 18 0 15 4;
#X connect 19 0 15 2;
#X connect 20 0 15 1;
#X connect 21 0 15 3;
#X connect 22 0 15 5;
#X connect 23 0 15 6;
#X connect 24 0 28 0;
#X connect 25 0 29 0;
#X connect 25 1 31 0;
#X connect 25 2 33 0;
#X connect 26 0 30 0;
#X connect 26 1 32 0;
#X connect 26 2 34 0;
#X connect 27 0 24 0;
#X connect 29 0 27 0;
#X connect 30 0 27 1;
#X connect 31 0 27 2;
#X connect 32 0 27 3;
#X connect 33 0 27 4;
#X connect 34 0 27 5;
#X connect 35 0 27 6;
#X connect 36 0 41 0;
#X connect 37 0 42 0;
#X connect 37 1 43 0;
#X connect 37 2 44 0;
#X connect 38 0 45 0;
#X connect 38 1 39 0;
#X connect 38 2 46 0;
#X connect 39 0 40 3;
#X connect 40 0 36 0;
#X connect 42 0 40 0;
#X connect 43 0 40 2;
#X connect 44 0 40 4;
#X connect 45 0 40 1;
#X connect 46 0 40 5;
#X connect 47 0 40 6;
#X connect 48 0 52 0;
#X connect 49 0 53 0;
#X connect 49 1 54 0;
#X connect 49 2 55 0;
#X connect 50 0 56 0;
#X connect 50 1 57 0;
#X connect 50 2 58 0;
#X connect 51 0 48 0;
#X connect 53 0 51 0;
#X connect 54 0 51 2;
#X connect 55 0 51 4;
#X connect 56 0 51 1;
#X connect 57 0 51 3;
#X connect 58 0 51 5;
#X connect 59 0 51 6;
#X connect 65 0 37 0;
#X connect 66 0 38 0;
#X connect 67 0 47 0;
#X connect 68 0 1 0;
#X connect 69 0 6 0;
#X connect 70 0 5 0;
#X connect 71 0 13 0;
#X connect 72 0 14 0;
#X connect 73 0 23 0;
#X connect 74 0 25 0;
#X connect 75 0 26 0;
#X connect 76 0 35 0;
#X connect 77 0 49 0;
#X connect 78 0 50 0;
#X connect 79 0 59 0;
#X restore 210 10 pd bell1;
#N canvas 0 0 1058 738 bell2 0;
#X obj 335 221 partialgroup;
#X obj 335 80 t f f f;
#X obj 335 152 * 2.002;
#X obj 357 130 * 3;
#X obj 379 106 * 9.6;
#X obj 527 82 * 0.9;
#X obj 435 80 t f f f;
#X obj 435 152 * 0.008;
#X obj 457 130 * 0.02;
#X obj 479 106 * 0.004;
#X obj 335 191 pack f f f f f f f;
#X obj 583 221 partialgroup;
#X obj 583 80 t f f f;
#X obj 683 80 t f f f;
#X obj 583 191 pack f f f f f f f;
#X obj 583 152 * 2.49;
#X obj 627 106 * 2.571;
#X obj 605 130 * 11;
#X obj 683 152 * 0.02;
#X obj 705 130 * 0.04;
#X obj 727 106 * 0.02;
#X obj 775 82 * 0.25;
#X obj 85 452 partialgroup;
#X obj 85 311 t f f f;
#X obj 185 311 t f f f;
#X obj 85 422 pack f f f f f f f;
#X obj 85 383 * 3.05;
#X obj 185 383 * 0.005;
#X obj 107 361 * 6.242;
#X obj 207 360 * 0.05;
#X obj 129 337 * 12.49;
#X obj 229 337 * 0.05;
#X obj 277 313 * 0.14;
#X obj 85 221 partialgroup;
#X obj 85 80 t f f f;
#X obj 185 80 t f f f;
#X obj 207 130 * 0.02;
#X obj 85 191 pack f f f f f f f;
#X obj 85 150 * 0.501;
#X obj 107 130 * 1;
#X obj 129 106 * 0.7;
#X obj 185 152 * 0.002;
#X obj 229 106 * 0.001;
#X obj 277 82 * 1.2;
#X obj 336 451 partialgroup;
#X obj 336 310 t f f f;
#X obj 436 310 t f f f;
#X obj 336 421 pack f f f f f f f;
#X obj 336 382 * 13;
#X obj 358 360 * 16;
#X obj 380 336 * 24;
#X obj 436 382 * 0.02;
#X obj 458 359 * 0.03;
#X obj 480 336 * 0.04;
#X obj 528 312 * 0.07;
#X text 84 31 fundamental \, sub \, inharmonic prime;
#X text 396 31 primary modes;
#X text 626 31 secondary modes;
#X text 128 269 circular modes;
#X text 404 267 striker;
#X obj 85 57 r fundamental2;
#X obj 185 57 r strength2;
#X obj 277 57 r decay2;
#X obj 335 57 r fundamental2;
#X obj 435 57 r strength2;
#X obj 527 57 r decay2;
#X obj 583 57 r fundamental2;
#X obj 683 57 r strength2;
#X obj 775 57 r decay2;
#X obj 85 288 r fundamental2;
#X obj 185 288 r strength2;
#X obj 277 288 r decay2;
#X obj 336 287 r fundamental2;
#X obj 436 287 r strength2;
#X obj 528 287 r decay2;
#X obj 85 242 throw~ \$0-bell2;
#X obj 335 242 throw~ \$0-bell2;
#X obj 583 242 throw~ \$0-bell2;
#X obj 85 473 throw~ \$0-bell2;
#X obj 336 472 throw~ \$0-bell2;
#X connect 0 0 76 0;
#X connect 1 0 2 0;
#X connect 1 1 3 0;
#X connect 1 2 4 0;
#X connect 2 0 10 0;
#X connect 3 0 10 2;
#X connect 4 0 10 4;
#X connect 5 0 10 6;
#X connect 6 0 7 0;
#X connect 6 1 8 0;
#X connect 6 2 9 0;
#X connect 7 0 10 1;
#X connect 8 0 10 3;
#X connect 9 0 10 5;
#X connect 10 0 0 0;
#X connect 11 0 77 0;
#X connect 12 0 15 0;
#X connect 12 1 17 0;
#X connect 12 2 16 0;
#X connect 13 0 18 0;
#X connect 13 1 19 0;
#X connect 13 2 20 0;
#X connect 14 0 11 0;
#X connect 15 0 14 0;
#X connect 16 0 14 4;
#X connect 17 0 14 2;
#X connect 18 0 14 1;
#X connect 19 0 14 3;
#X connect 20 0 14 5;
#X connect 21 0 14 6;
#X connect 22 0 78 0;
#X connect 23 0 26 0;
#X connect 23 1 28 0;
#X connect 23 2 30 0;
#X connect 24 0 27 0;
#X connect 24 1 29 0;
#X connect 24 2 31 0;
#X connect 25 0 22 0;
#X connect 26 0 25 0;
#X connect 27 0 25 1;
#X connect 28 0 25 2;
#X connect 29 0 25 3;
#X connect 30 0 25 4;
#X connect 31 0 25 5;
#X connect 32 0 25 6;
#X connect 33 0 75 0;
#X connect 34 0 38 0;
#X connect 34 1 39 0;
#X connect 34 2 40 0;
#X connect 35 0 41 0;
#X connect 35 1 36 0;
#X connect 35 2 42 0;
#X connect 36 0 37 3;
#X connect 37 0 33 0;
#X connect 38 0 37 0;
#X connect 39 0 37 2;
#X connect 40 0 37 4;
#X connect 41 0 37 1;
#X connect 42 0 37 5;
#X connect 43 0 37 6;
#X connect 44 0 79 0;
#X connect 45 0 48 0;
#X connect 45 1 49 0;
#X connect 45 2 50 0;
#X connect 46 0 51 0;
#X connect 46 1 52 0;
#X connect 46 2 53 0;
#X connect 47 0 44 0;
#X connect 48 0 47 0;
#X connect 49 0 47 2;
#X connect 50 0 47 4;
#X connect 51 0 47 1;
#X connect 52 0 47 3;
#X connect 53 0 47 5;
#X connect 54 0 47 6;
#X connect 60 0 34 0;
#X connect 61 0 35 0;
#X connect 62 0 43 0;
#X connect 63 0 1 0;
#X connect 64 0 6 0;
#X connect 65 0 5 0;
#X connect 66 0 12 0;
#X connect 67 0 13 0;
#X connect 68 0 21 0;
#X connect 69 0 23 0;
#X connect 70 0 24 0;
#X connect 71 0 32 0;
#X connect 72 0 45 0;
#X connect 73 0 46 0;
#X connect 74 0 54 0;
#X restore 210 32 pd bell2;
#X obj 62 78 mod 2;
#X obj 62 98 sel 0 1;
#X obj 62 57 f;
#X obj 95 57 + 1;
#X obj 62 36 metro 60;
#X msg 11 130 \; striker bang \; strength1 1 \; decay1 2000 \; fundamental1
650;
#X msg 137 130 \; striker bang \; strength2 1 \; decay2 2000 \; fundamental2
653;
#X connect 1 0 2 1;
#X connect 1 0 3 1;
#X connect 2 0 4 0;
#X connect 3 0 8 0;
#X connect 4 0 0 0;
#X connect 4 0 0 1;
#X connect 5 0 19 0;
#X connect 9 0 4 1;
#X connect 10 0 2 0;
#X connect 10 0 3 0;
#X connect 11 0 10 1;
#X connect 12 0 10 0;
#X connect 15 0 16 0;
#X connect 16 0 20 0;
#X connect 16 1 21 0;
#X connect 17 0 15 0;
#X connect 17 0 18 0;
#X connect 18 0 17 1;
#X connect 19 0 17 0;

Download telephonebell.pd.

Telephone bell oscillator - abstraction for above patch

#N canvas 0 0 450 300 10;
#X obj 132 206 outlet~;
#X obj 132 89 inlet pitch;
#X obj 131 173 *~;
#X obj 220 87 inlet amp;
#X obj 132 115 osc~;
#X connect 1 0 4 0;
#X connect 2 0 0 0;
#X connect 3 0 2 1;
#X connect 4 0 2 0;

Download bellosc.pd.

Telephone bell envelope - abstraction for above patch

#N canvas 111 400 98 110 10;
#X obj 0 44 vline~;
#X obj 0 70 *~;
#X obj 0 0 inlet decay;
#X obj 0 92 outlet~;
#X msg 0 22 1 0 0 \, 0 \$1 0;
#X connect 0 0 1 0;
#X connect 0 0 1 1;
#X connect 1 0 3 0;
#X connect 2 0 4 0;
#X connect 4 0 0 0;

Download bellenv.pd.

Telephone bell group - abstraction for above patch

#N canvas 530 338 220 180 10;
#X obj 162 71 bellenv;
#X obj 86 133 *~;
#X obj 86 157 outlet~;
#X obj -3 71 bellosc;
#X obj -3 22 unpack f f f f f f f;
#X obj 52 71 bellosc;
#X obj 106 71 bellosc;
#X obj 52 101 *~ 0.333;
#X obj -3 -1 inlet f a f a f a d;
#X connect 0 0 1 1;
#X connect 1 0 2 0;
#X connect 3 0 7 0;
#X connect 4 0 3 0;
#X connect 4 1 3 1;
#X connect 4 2 5 0;
#X connect 4 3 5 1;
#X connect 4 4 6 0;
#X connect 4 5 6 1;
#X connect 4 6 0 0;
#X connect 5 0 7 0;
#X connect 6 0 7 0;
#X connect 7 0 1 0;
#X connect 8 0 4 0;

Download partialgroup.pd.

Telephone bell ratios - abstraction for above patch

#N canvas 206 292 744 471 10;
#X obj 566 374 dac~;
#X obj 252 134 partialgroup;
#X obj 252 -7 t f f f;
#X obj 252 65 * 2.002;
#X obj 274 43 * 3;
#X obj 296 19 * 9.6;
#X obj 444 -5 * 0.9;
#X obj 252 -30 r fundamental;
#X obj 352 -7 t f f f;
#X obj 352 -30 r strength;
#X obj 352 65 * 0.008;
#X obj 374 43 * 0.02;
#X obj 396 19 * 0.004;
#X obj 252 104 pack f f f f f f f;
#X obj 444 -30 r decay;
#X obj 567 343 catch~ \$0-bell1;
#X obj 252 155 throw~ \$0-bell1;
#X floatatom 567 255 5 0 0 0 - - -;
#X obj 500 134 partialgroup;
#X obj 500 -7 t f f f;
#X obj 500 -30 r fundamental;
#X obj 600 -7 t f f f;
#X obj 600 -30 r strength;
#X obj 500 104 pack f f f f f f f;
#X obj 692 -30 r decay;
#X obj 500 155 throw~ \$0-bell1;
#X obj 500 65 * 2.49;
#X obj 544 19 * 2.571;
#X obj 522 43 * 11;
#X obj 600 65 * 0.02;
#X obj 622 43 * 0.04;
#X obj 644 19 * 0.02;
#X obj 692 -5 * 0.25;
#X obj 2 365 partialgroup;
#X obj 2 224 t f f f;
#X obj 2 201 r fundamental;
#X obj 102 224 t f f f;
#X obj 102 201 r strength;
#X obj 2 335 pack f f f f f f f;
#X obj 194 201 r decay;
#X obj 2 386 throw~ \$0-bell1;
#X obj 2 296 * 3.05;
#X obj 102 296 * 0.005;
#X obj 24 274 * 6.242;
#X obj 124 273 * 0.05;
#X obj 46 250 * 12.49;
#X obj 146 250 * 0.05;
#X obj 194 226 * 0.14;
#X obj 2 134 partialgroup;
#X obj 2 -7 t f f f;
#X obj 2 -30 r fundamental;
#X obj 102 -7 t f f f;
#X obj 102 -30 r strength;
#X obj 124 43 * 0.02;
#X obj 2 104 pack f f f f f f f;
#X obj 194 -30 r decay;
#X obj 2 155 throw~ \$0-bell1;
#X obj 2 63 * 0.501;
#X obj 24 43 * 1;
#X obj 46 19 * 0.7;
#X obj 102 65 * 0.002;
#X obj 146 19 * 0.001;
#X obj 194 -5 * 1.2;
#X obj 253 364 partialgroup;
#X obj 253 223 t f f f;
#X obj 253 200 r fundamental;
#X obj 353 223 t f f f;
#X obj 353 200 r strength;
#X obj 253 334 pack f f f f f f f;
#X obj 445 200 r decay;
#X obj 253 385 throw~ \$0-bell1;
#X obj 253 295 * 13;
#X obj 275 273 * 16;
#X obj 297 249 * 24;
#X obj 353 295 * 0.02;
#X obj 375 272 * 0.03;
#X obj 397 249 * 0.04;
#X obj 445 225 * 0.07;
#X text 1 -56 fundamental \, sub \, inharmonic prime;
#X text 313 -56 primary modes;
#X text 543 -56 secondary modes;
#X text 45 182 circular modes;
#X text 321 180 striker;
#X msg 567 276 \; strength 1 \; decay 3000 \; fundamental \$1;
#X connect 1 0 16 0;
#X connect 2 0 3 0;
#X connect 2 1 4 0;
#X connect 2 2 5 0;
#X connect 3 0 13 0;
#X connect 4 0 13 2;
#X connect 5 0 13 4;
#X connect 6 0 13 6;
#X connect 7 0 2 0;
#X connect 8 0 10 0;
#X connect 8 1 11 0;
#X connect 8 2 12 0;
#X connect 9 0 8 0;
#X connect 10 0 13 1;
#X connect 11 0 13 3;
#X connect 12 0 13 5;
#X connect 13 0 1 0;
#X connect 14 0 6 0;
#X connect 15 0 0 0;
#X connect 15 0 0 1;
#X connect 17 0 83 0;
#X connect 18 0 25 0;
#X connect 19 0 26 0;
#X connect 19 1 28 0;
#X connect 19 2 27 0;
#X connect 20 0 19 0;
#X connect 21 0 29 0;
#X connect 21 1 30 0;
#X connect 21 2 31 0;
#X connect 22 0 21 0;
#X connect 23 0 18 0;
#X connect 24 0 32 0;
#X connect 26 0 23 0;
#X connect 27 0 23 4;
#X connect 28 0 23 2;
#X connect 29 0 23 1;
#X connect 30 0 23 3;
#X connect 31 0 23 5;
#X connect 32 0 23 6;
#X connect 33 0 40 0;
#X connect 34 0 41 0;
#X connect 34 1 43 0;
#X connect 34 2 45 0;
#X connect 35 0 34 0;
#X connect 36 0 42 0;
#X connect 36 1 44 0;
#X connect 36 2 46 0;
#X connect 37 0 36 0;
#X connect 38 0 33 0;
#X connect 39 0 47 0;
#X connect 41 0 38 0;
#X connect 42 0 38 1;
#X connect 43 0 38 2;
#X connect 44 0 38 3;
#X connect 45 0 38 4;
#X connect 46 0 38 5;
#X connect 47 0 38 6;
#X connect 48 0 56 0;
#X connect 49 0 57 0;
#X connect 49 1 58 0;
#X connect 49 2 59 0;
#X connect 50 0 49 0;
#X connect 51 0 60 0;
#X connect 51 1 53 0;
#X connect 51 2 61 0;
#X connect 52 0 51 0;
#X connect 53 0 54 3;
#X connect 54 0 48 0;
#X connect 55 0 62 0;
#X connect 57 0 54 0;
#X connect 58 0 54 2;
#X connect 59 0 54 4;
#X connect 60 0 54 1;
#X connect 61 0 54 5;
#X connect 62 0 54 6;
#X connect 63 0 70 0;
#X connect 64 0 71 0;
#X connect 64 1 72 0;
#X connect 64 2 73 0;
#X connect 65 0 64 0;
#X connect 66 0 74 0;
#X connect 66 1 75 0;
#X connect 66 2 76 0;
#X connect 67 0 66 0;
#X connect 68 0 63 0;
#X connect 69 0 77 0;
#X connect 71 0 68 0;
#X connect 72 0 68 2;
#X connect 73 0 68 4;
#X connect 74 0 68 1;
#X connect 75 0 68 3;
#X connect 76 0 68 5;
#X connect 77 0 68 6;

Download ratios.pd.

Audio

Telephone bell

Download telephonebell.wav.