aboutsummaryrefslogtreecommitdiff
path: root/pd/doc/3.audio.examples/C08.analog.sequencer.pd
blob: 9ee9e6de815309791c2377b8e38cd79b518764be (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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
#N canvas 46 22 825 554 12;
#N canvas 0 0 450 300 graph1 0;
#X array 29-sequence 9 float 1;
#A 0 55 550 385 495 165 385 495 275 615;
#X coords 0 500 8 0 200 100 1;
#X restore 621 42 graph;
#X obj 27 426 *~;
#X obj 27 454 hip~ 5;
#N canvas 0 0 450 300 graph1 0;
#X array 29-envelope 103 float 1;
#A 0 -0.1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 1.01111 1 0.988889 0.977778
0.966667 0.955556 0.944444 0.933333 0.922222 0.911111 0.9 0.888889
0.797778 0.737777 0.677777 0.647777 0.617777 0.557777 0.487777 0.467777
0.447776 0.417776 0.397776 0.387776 0.377776 0.367776 0.347776 0.327776
0.317776 0.297776 0.277776 0.267776 0.257776 0.257776 0.277776 0.297776
0.327776 0.357776 0.377776 0.397776 0.407776 0.427776 0.437776 0.387776
0.367776 0.347776 0.337776 0.287776 0.277776 0.277776 0.277776 0.267776
0.267776 0.267776 0.297776 0.317776 0.347776 0.367776 0.367776 0.357776
0.347776 0.337776 0.307776 0.287776 0.257776 0.227776 0.197776 0.167776
0.167776 0.167776 0.167776 0.167776 0.157776 0.157776 0.157776 0.157776
0.147776 0.147776 0.147776 0.137776 0.137776 0.111111 0.1 0.0888889
0.0777778 0.0666667 0.0555556 0.0444444 0.0333333 0.0222222 0.0111111
0 -0.0111111;
#X coords 0 1 102 0 200 100 1;
#X restore 622 146 graph;
#N canvas 0 0 450 300 graph1 0;
#X array 29-sample 259 float 1;
#A 0 0.989177 1 0.989177 0.95694 0.903989 0.83147 0.740952 0.634394
0.514103 0.382684 0.242981 0.0980184 -0.0490663 -0.195089 -0.336888
-0.471395 -0.595698 -0.707105 -0.803206 -0.88192 -0.941543 -0.980785
-0.998795 -0.995185 -0.970032 -0.923881 -0.85773 -0.773013 -0.671561
-0.555573 -0.427558 -0.290288 -0.146734 -3.98038e-06 0.146726 0.290281
0.427551 0.555566 0.671556 0.773007 0.857726 0.923878 0.97003 0.995184
0.998796 0.980786 0.941546 0.881924 0.803211 0.707111 0.595704 0.471402
0.336896 0.195097 0.0490743 -0.0980105 -0.242974 -0.382677 -0.514097
-0.634388 -0.740946 -0.831465 -0.903986 -0.956938 -0.989175 -1 -0.989178
-0.956943 -0.903993 -0.831474 -0.740957 -0.6344 -0.51411 -0.382692
-0.242989 -0.0980263 0.0490584 0.195081 0.336881 0.471388 0.595691
0.7071 0.803202 0.881916 0.941541 0.980783 0.998795 0.995186 0.970034
0.923884 0.857734 0.773018 0.671567 0.55558 0.427566 0.290296 0.146742
1.19412e-05 -0.146719 -0.290273 -0.427544 -0.55556 -0.67155 -0.773002
-0.857722 -0.923875 -0.970028 -0.995183 -0.998796 -0.980788 -0.941549
-0.881928 -0.803216 -0.707117 -0.595711 -0.471409 -0.336903 -0.195104
-0.0490822 0.0980025 0.242966 0.38267 0.51409 0.634382 0.740941 0.831461
0.903983 0.956936 0.989174 1 0.989179 0.956945 0.903996 0.831479 0.740962
0.634406 0.514117 0.382699 0.242997 0.0980342 -0.0490504 -0.195073
-0.336873 -0.471381 -0.595685 -0.707094 -0.803197 -0.881913 -0.941538
-0.980782 -0.998795 -0.995187 -0.970036 -0.923887 -0.857738 -0.773023
-0.671573 -0.555586 -0.427573 -0.290303 -0.14675 -1.99019e-05 0.146711
0.290265 0.427537 0.555553 0.671544 0.772997 0.857718 0.923872 0.970026
0.995183 0.998797 0.980789 0.941551 0.881931 0.803221 0.707122 0.595717
0.471416 0.336911 0.195112 0.0490902 -0.0979946 -0.242958 -0.382662
-0.514083 -0.634375 -0.740936 -0.831457 -0.903979 -0.956933 -0.989173
-1 -0.98918 -0.956947 -0.904 -0.831483 -0.740968 -0.634412 -0.514124
-0.382706 -0.243004 -0.0980421 0.0490425 0.195065 0.336866 0.471374
0.595679 0.707088 0.803192 0.881909 0.941535 0.98078 0.998794 0.995187
0.970038 0.92389 0.857742 0.773028 0.671579 0.555593 0.42758 0.290311
0.146758 2.78627e-05 -0.146703 -0.290258 -0.42753 -0.555547 -0.671538
-0.772992 -0.857714 -0.923868 -0.970024 -0.995182 -0.998797 -0.980791
-0.941554 -0.881935 -0.803225 -0.707128 -0.595723 -0.471423 -0.336918
-0.19512 -0.0490981 0.0979867 0.24295 0.382655 0.514076 0.634369 0.74093
0.831452 0.903976 0.956931 0.989172 1 0.989181;
#X coords 0 1 258 -1 200 100 1;
#X restore 619 281 graph;
#X text 566 533 updated for Pd version 0.37;
#X obj 26 218 tabread~ 29-sequence;
#X obj 106 241 wrap~;
#X obj 106 265 *~ 100;
#X obj 106 289 +~ 1;
#X obj 26 242 phasor~;
#X obj 26 266 -~ 0.5;
#X obj 27 377 cos~;
#X obj 84 336 *~;
#X obj 28 488 output~;
#X obj 84 408 tabread4~ 29-sample;
#X obj 106 313 tabread4~ 29-envelope;
#X obj 84 360 *~ 128;
#X obj 84 384 +~ 129;
#X obj 27 401 +~ 1;
#X obj 26 194 *~ 9;
#N canvas 328 85 609 424 make-tables 0;
#X msg 109 52 bang;
#X obj 109 77 t b b;
#X obj 152 134 f;
#X obj 190 134 + 1;
#X msg 174 106 0;
#X obj 109 103 until;
#X obj 152 162 t f f;
#X obj 27 190 moses 10;
#X obj 18 272 tabwrite 29-envelope;
#X obj 75 159 sel 102;
#X obj 23 218 expr ($f1-1)/10;
#X obj 35 243 expr (101-$f1)/90;
#X msg 120 380 \; 29-sample cosinesum 256 0 0 0 0 0 0 1;
#X msg 120 338 \; 29-sequence 0 55 550 385 495 165 385 495 275 615
;
#X text 30 8 bang to recalculate the envelope table (I did this but
then went in and changed it with the mouse afterward.);
#X text 84 299 The sequence is just a list of specified frequencies
\; the wavetable is a cosine.;
#X connect 0 0 1 0;
#X connect 1 0 5 0;
#X connect 1 1 4 0;
#X connect 2 0 3 0;
#X connect 2 0 6 0;
#X connect 2 0 9 0;
#X connect 3 0 2 1;
#X connect 4 0 2 1;
#X connect 5 0 2 0;
#X connect 6 0 7 0;
#X connect 6 1 8 1;
#X connect 7 0 10 0;
#X connect 7 1 11 0;
#X connect 9 0 5 1;
#X connect 10 0 8 0;
#X connect 11 0 8 0;
#X restore 689 401 pd make-tables;
#X text 46 1 ANALOG-SYNTH-STYLE SEQUENCER;
#X obj 26 170 phasor~ 0.6;
#X text 27 27 Some control operations can be carried out entirely by
tilde objects passing audio signals around. Here is an imitation of
an analog sequencer and envelope generator. A phasor~ loops through
the "sequence" table at 0.6 Hz \, generating 9 frequencies. Simultaneously
\, by multiplying by 9 and wrapping \, we create a sawtooth at 9*0.6=5.4
Hz \, which reads a second table for an envelope shape. This becomes
the grain size for a samplerbased on the 18.sampler.looped example
earlier.;
#X text 97 194 main loop: sawtooth of amplitude 9;
#X text 218 219 read frequency sequence;
#X text 162 241 9x original frequency sawtooth;
#X text 173 266 adjust for reading;
#X text 346 266 envelope sample;
#X text 123 336 multiply envelope by audio-frequency sawtooth;
#X text 147 361 adjust amplitude and center for wavetable;
#X text 62 428 multiply by raised-cosine smoothing function;
#X text 478 401 how to make the tables:;
#X connect 1 0 2 0;
#X connect 2 0 14 0;
#X connect 2 0 14 1;
#X connect 6 0 10 0;
#X connect 7 0 8 0;
#X connect 8 0 9 0;
#X connect 9 0 16 0;
#X connect 10 0 11 0;
#X connect 11 0 13 0;
#X connect 11 0 12 0;
#X connect 12 0 19 0;
#X connect 13 0 17 0;
#X connect 15 0 1 1;
#X connect 16 0 13 1;
#X connect 17 0 18 0;
#X connect 18 0 15 0;
#X connect 19 0 1 0;
#X connect 20 0 6 0;
#X connect 20 0 7 0;
#X connect 23 0 20 0;