aboutsummaryrefslogtreecommitdiff
path: root/pd/doc/3.audio.examples/J05.triangle.pd
blob: fda0ef05de41a9e3d8d617aa191c54765af5c7ce (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
#N canvas 111 30 606 531 12;
#N canvas 0 0 450 300 graph1 0;
#X array \$0-sum 882 float 0;
#X coords 0 0.5 881 -0.5 200 130 1;
#X restore 382 119 graph;
#X text 381 257 ---- 0.02 seconds ----;
#X text 350 505 updated for Pd version 0.39;
#X obj 46 242 output~;
#X obj 140 276 tabwrite~ \$0-sum;
#X obj 130 107 / 100;
#X floatatom 130 86 4 0 100 0 - - -;
#X obj 206 108 / 100;
#X floatatom 206 87 4 0 100 0 - - -;
#X obj 151 228 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1
1;
#X obj 151 250 metro 193;
#X obj 19 95 phasor~;
#X floatatom 19 74 5 0 0 0 - - -;
#X text 11 51 frequency;
#X text 126 50 SLOPES (percent);
#X obj 108 137 *~;
#X obj 19 129 *~ -1;
#X obj 19 154 +~ 1;
#X obj 184 156 *~;
#X obj 108 189 min~;
#X text 341 118 0.5;
#X text 338 237 -0.5;
#X text 30 4 Making waveforms with corners by specifying line segment
slopes;
#X text 136 67 up;
#X text 209 68 down;
#X text 29 317 Occasionally a second method for making corners is more
convenient. Here we specify the slopes of the rising and falling segments
(as always \, in units per cycle). We then make a triangle wave with
a corner at (0 \, 0) and another one \, placed somewhere within the
cycle. The slopes of the two lines determine the second point \, which
will have an x value of t/(s+t) (if we let s denote the rising slope
and t the falling one \, both as positive numbers). The y value is
st/(s+t). If we wish instead to specify the corner location (x \, y)
(with x in cycles \, 0<x<1) we set s = y/x and t = y/(1-x). The DC
value is y/2.;
#X connect 5 0 15 1;
#X connect 6 0 5 0;
#X connect 7 0 18 1;
#X connect 8 0 7 0;
#X connect 9 0 10 0;
#X connect 10 0 4 0;
#X connect 11 0 15 0;
#X connect 11 0 16 0;
#X connect 12 0 11 0;
#X connect 15 0 19 0;
#X connect 16 0 17 0;
#X connect 17 0 18 0;
#X connect 18 0 19 1;
#X connect 19 0 3 0;
#X connect 19 0 4 0;