File: 16.FFT-plot.pd

package info (click to toggle)
puredata 0.55.2%2Bds-2
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 20,508 kB
  • sloc: ansic: 118,824; tcl: 10,221; cpp: 9,327; makefile: 1,632; sh: 1,476; python: 152; xml: 98; awk: 13
file content (184 lines) | stat: -rw-r--r-- 5,683 bytes parent folder | download | duplicates (2)
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
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
#N canvas 447 38 549 567 12;
#X declare -stdpath ./;
#N canvas 136 407 1188 313 peaks-list 1;
#X coords 0 313 1 312 0 0 0;
#X restore 409 365 pd peaks-list;
#X text 345 367 display:;
#N canvas 365 100 537 353 add-peaks 0;
#X obj 288 217 pointer;
#X obj 221 197 rmstodb;
#X obj 288 136 t b b;
#X msg 340 129 \; pd-peaks-list clear;
#X msg 288 181 traverse pd-peaks-list \, bang;
#X obj 221 223 * 3;
#X msg 154 216 20;
#X obj 73 28 inlet;
#X obj 88 252 append peaks-template x y amp;
#X obj 73 155 unpack f f f;
#X text 71 293 see result in the 'peaks-list' subwindow;
#X obj 288 67 bang~;
#X obj 350 68 block~ 4096;
#X obj 88 215 * 0.1;
#X text 99 63 This subpatch uses 'peaks' information from [sigmund~] to draw FFT peaks with data structures., f 19;
#X obj 340 102 loadbang;
#X connect 0 0 8 3;
#X connect 1 0 5 0;
#X connect 2 0 4 0;
#X connect 2 1 3 0;
#X connect 4 0 0 0;
#X connect 5 0 8 2;
#X connect 6 0 8 1;
#X connect 7 0 9 0;
#X connect 9 1 13 0;
#X connect 9 2 6 0;
#X connect 9 2 1 0;
#X connect 11 0 2 0;
#X connect 13 0 8 0;
#X connect 15 0 3 0;
#X restore 101 532 pd add-peaks;
#X obj 340 91 bng 22 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000;
#X text 368 93 record live input;
#X obj 489 153 bng 22 250 50 0 empty empty empty 0 -10 0 12 #dfdfdf #000000 #000000;
#X text 380 134 or even...;
#X text 405 169 sample;
#X obj 43 143 openpanel;
#X obj 43 90 bng 22 250 50 0 empty empty 1st 31 11 0 20 #dfdfdf #000000 #000000;
#N canvas 136 53 860 453 sample 0;
#X obj 119 121 r resize-sample;
#X obj 119 156 t f b;
#X obj 151 187 samplerate~;
#X obj 151 212 / 1000;
#X obj 119 201 *;
#X obj 26 17 inlet;
#N canvas 441 320 449 241 record 1;
#X obj 37 37 inlet;
#X obj 53 145 adc~ 1;
#X text 191 91 (set array size to 3 seconds);
#X msg 52 77 \; resize-sample 3000 \; pd dsp 1;
#X obj 37 182 tabwrite~ \$0-sample;
#X connect 0 0 3 0;
#X connect 0 0 4 0;
#X connect 1 0 4 0;
#X restore 122 66 pd record;
#X obj 72 17 inlet;
#X obj 122 16 inlet;
#X obj 216 17 inlet;
#N canvas 265 240 283 380 load 0;
#X obj 55 34 inlet;
#X msg 109 144 \; pd dsp 1;
#X obj 109 34 inlet;
#X msg 109 99 symbol ../sound/\$1;
#X obj 109 69 symbol;
#X obj 55 257 soundfiler;
#X obj 55 195 list append \$0-sample;
#X msg 55 226 read -resize \$1 \$2;
#X connect 0 0 1 0;
#X connect 0 0 6 0;
#X connect 2 0 4 0;
#X connect 3 0 1 0;
#X connect 3 0 6 0;
#X connect 4 0 3 0;
#X connect 6 0 7 0;
#X connect 7 0 5 0;
#X restore 26 66 pd load;
#N canvas 362 36 579 430 synthesis 0;
#X obj 68 113 osc~ 110;
#X obj 68 165 *~;
#X obj 68 209 +~ 0.2;
#X obj 68 241 cos~;
#X obj 68 284 *~;
#X obj 199 31 inlet;
#X obj 134 188 vline~;
#X obj 308 188 vline~;
#X text 251 277 This creates a waveshaping synthesis sample., f 26;
#X msg 317 86 \; resize-sample 2500 \; pd dsp 1 \, fast-forward 2500;
#X msg 134 148 0 \, 2 500 \, 0.05 1500 500;
#X msg 308 148 0 \, 1 100 \, 0 2250 250;
#X obj 199 365 tabwrite~ \$0-sample;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 2 0 3 0;
#X connect 3 0 4 0;
#X connect 4 0 12 0;
#X connect 5 0 10 0;
#X connect 5 0 11 0;
#X connect 5 0 9 0;
#X connect 5 0 12 0;
#X connect 6 0 1 1;
#X connect 7 0 4 1;
#X connect 10 0 6 0;
#X connect 11 0 7 0;
#X restore 216 66 pd synthesis;
#X obj 119 278 s \$0-sample;
#X msg 119 246 resize \$1;
#X obj 360 216 loadbang;
#X obj 456 321 declare -stdpath ./;
#X text 458 256 initialization;
#X msg 360 340 vis 1;
#X obj 360 309 delay 1000;
#X msg 378 251 \; npeaks 25;
#X obj 360 372 send pd-16.FFT-plot.pd;
#X obj 351 69 cnv 19 451 88 empty empty empty 20 12 0 12 #e0e0e0 #404040 0;
#N canvas 0 50 450 300 (subpatch) 0;
#X array \$0-sample 62079 float 2;
#X coords 0 1 62079 -1 453 90 1 0 0;
#X restore 350 68 graph;
#X connect 0 0 1 0;
#X connect 1 0 4 0;
#X connect 1 1 2 0;
#X connect 2 0 3 0;
#X connect 3 0 4 1;
#X connect 4 0 13 0;
#X connect 5 0 10 0;
#X connect 7 0 10 1;
#X connect 8 0 6 0;
#X connect 9 0 11 0;
#X connect 13 0 12 0;
#X connect 14 0 19 0;
#X connect 14 0 18 0;
#X connect 17 0 20 0;
#X connect 18 0 17 0;
#X coords 0 -1 1 1 453 108 2 350 50;
#X restore 43 193 pd sample;
#N canvas 395 221 458 221 peaks-template 0;
#X obj 59 81 filledpolygon 3 3 3 0 0 0 amp 0 0;
#X obj 58 41 struct peaks-template float x float y float amp;
#X text 55 131 This is a template for plotting FFT amplitude peaks \, where a polygon is drawn for all peaks., f 46;
#X restore 409 337 pd peaks-template;
#X text 380 153 synthesize -->;
#X msg 207 168 voice2.wav;
#X msg 200 145 voice.wav;
#X msg 191 122 bell.aiff;
#X text 381 110 (3 seconds);
#X text 133 143 choose:;
#X text 33 67 browse:;
#X text 112 92 - browse/choose soundfile or ->;
#X floatatom 28 410 5 1 50 0 - npeaks - 16;
#X msg 28 442 npeak \$1;
#X text 36 22 FFT DATA PLOT;
#X obj 101 347 bng 22 250 50 0 empty empty Play -47 11 0 17 #dfdfdf #000000 #000000;
#X obj 118 421 output~;
#X text 336 337 template:;
#X text 245 423 The maximum number of peaks is '50'. Open [pd add-peaks] to see how the peaks are drawn as data structures., f 36;
#X text 189 12 This patch plots FFT "peaks" from a sampled sound analyzed via [sigmund~] and plotted as data structures., f 44;
#X obj 101 497 sigmund~ -npts 512 -hop 4096 -npeak 50 -maxfreq 8000 peaks;
#X obj 245 356 spigot;
#X obj 284 324 tgl 22 0 empty empty empty 0 -10 0 12 #dfdfdf #000000 #000000 0 1;
#X text 226 324 looping;
#X obj 101 381 tabplay~ \$0-sample;
#X connect 3 0 10 2;
#X connect 5 0 10 3;
#X connect 8 0 10 0;
#X connect 9 0 8 0;
#X connect 13 0 10 1;
#X connect 14 0 10 1;
#X connect 15 0 10 1;
#X connect 20 0 21 0;
#X connect 21 0 28 0;
#X connect 23 0 32 0;
#X connect 28 0 2 0;
#X connect 29 0 23 0;
#X connect 30 0 29 1;
#X connect 32 0 24 0;
#X connect 32 0 28 0;
#X connect 32 1 29 0;