aboutsummaryrefslogtreecommitdiff
path: root/doc/tutorials/sound/building_waveforms_with_sines.pd
blob: d2e4b2a3977b2567438ef2de321243e25f7cd684 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#N canvas 26 211 652 472 10;
#X obj 541 21 pddp/dsp;
#X obj 11 8 cnv 15 450 40 empty empty building_waveforms_with_sines
20 12 0 24 -228992 -66577 0;
#X obj 467 373 output~;
#X obj 32 219 sixteen_harmonics wavetable;
#X obj 522 238 random 64;
#X obj 522 262 + 32;
#X obj 522 285 mtof;
#X msg 408 190 bang;
#X obj 479 336 *~;
#X obj 522 309 tabosc4~ wavetable;
#X obj 440 105 cnv 15 100 60 empty empty empty 20 12 0 14 -241291 -66577
0;
#X obj 446 125 vsl 10 32 0 1 0 1 \$0-a \$0-a a 0 -8 0 8 -262144 -1
-1 1900 0;
#X obj 459 125 vsl 10 32 0 1 0 1 \$0-d \$0-d d 0 -8 0 8 -262144 -1
-1 2700 0;
#X obj 472 125 vsl 10 32 0 1 0 1 \$0-s \$0-s s 0 -8 0 8 -262144 -1
-1 1000 0;
#X obj 485 125 vsl 10 32 0 1 0 1 \$0-r \$0-r r 0 -8 0 8 -262144 -1
-1 1500 0;
#N canvas 95 141 435 501 env 0;
#X obj 29 5 inlet;
#X obj 29 457 outlet~;
#X obj 29 423 vline~;
#X msg 29 203 0 \, 1 \$1;
#X msg 224 375 0 \$1;
#X obj 254 307 * 500;
#X obj 59 71 * 500;
#X obj 100 253 pack;
#X obj 224 240 random 1000;
#X msg 100 274 \$2 \$1;
#X obj 129 148 * 500;
#X obj 100 189 max 10;
#X obj 29 114 max 10;
#X obj 224 352 max 10;
#X obj 29 25 bang;
#X obj 129 126 receive \$0-d;
#X obj 59 50 receive \$0-a;
#X obj 223 218 delay;
#X obj 254 287 receive \$0-r;
#X obj 224 331 float;
#X obj 224 261 delay;
#X obj 29 92 float;
#X obj 46 139 delay;
#X obj 100 170 float;
#X obj 122 231 receive \$0-s;
#X connect 0 0 14 0;
#X connect 2 0 1 0;
#X connect 3 0 2 0;
#X connect 4 0 2 0;
#X connect 5 0 19 1;
#X connect 6 0 21 1;
#X connect 7 0 9 0;
#X connect 8 0 20 0;
#X connect 9 0 2 0;
#X connect 10 0 23 1;
#X connect 11 0 7 0;
#X connect 11 0 17 0;
#X connect 12 0 3 0;
#X connect 12 0 22 0;
#X connect 13 0 4 0;
#X connect 14 0 21 0;
#X connect 15 0 10 0;
#X connect 16 0 6 0;
#X connect 17 0 8 0;
#X connect 18 0 5 0;
#X connect 19 0 13 0;
#X connect 20 0 19 0;
#X connect 21 0 12 0;
#X connect 22 0 23 0;
#X connect 23 0 11 0;
#X connect 24 0 7 1;
#X restore 407 273 pd env;
#X text 18 145 To start with \, we have something close to a square
wave;
#X text 15 62 Any waveform can be contructed using sine waves. This
patch allows you to construct a waveform using harmonics.;
#X obj 408 213 trigger bang bang;
#X text 7 373 You can make a triangle wave by setting each harmonic
to an amplitude that is the inverse of the harmonic number. That means
for harmonic 2 \, set the slider to an amplitude of 1/2 \, or halfway
in the middle. For harmonic 3 \, set it at 1/3 \, harmonic 4 \, set
to 1/4 \, and so on...;
#X connect 4 0 5 0;
#X connect 5 0 6 0;
#X connect 6 0 9 0;
#X connect 7 0 18 0;
#X connect 8 0 2 0;
#X connect 8 0 2 1;
#X connect 9 0 8 1;
#X connect 15 0 8 0;
#X connect 18 0 15 0;
#X connect 18 1 4 0;