aboutsummaryrefslogtreecommitdiff
path: root/pd/doc/4.fft.examples/01.fftanalysis.pd
blob: 9b5e1e4ce8fc02f4d4eabc91ae5a4cf03e8531d8 (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
#N canvas 11 0 944 595 12;
#X text 60 368 frequency;
#X obj 20 238 tabwrite~ array2;
#X msg 141 117 0;
#N canvas 245 0 864 679 fft-analysis 0;
#X obj 57 75 *~;
#X obj 98 191 *~;
#X graph graph1 0 -1 256 1 397 304 797 4;
#X array array1 256 float 0;
#X pop;
#X graph graph2 0 -1 256 1 397 631 797 331;
#X array array2 256 float 0;
#X pop;
#X obj 57 4 inlet~;
#X obj 57 192 *~;
#X obj 57 310 tabsend~ array1;
#X msg 442 673 \; array1 resize 256 \; array2 resize 256;
#X obj 76 48 tabreceive~ array2;
#X obj 57 136 rfft~;
#X obj 57 222 rifft~;
#X obj 80 283 outlet~;
#X obj 229 216 print~;
#X msg 229 188 bang;
#X obj 94 632 block~ 256 2;
#X text 82 30 Hanning window;
#X text 61 106 forward real FFT;
#X text 74 243 inverse real FFT;
#X text 121 126 renormalize by 1/256;
#X obj 120 144 sig~ 0.0039;
#X connect 0 0 9 0;
#X connect 1 0 10 1;
#X connect 4 0 0 0;
#X connect 5 0 10 0;
#X connect 8 0 0 1;
#X connect 9 0 5 0;
#X connect 9 0 12 0;
#X connect 9 1 1 0;
#X connect 10 0 11 0;
#X connect 10 0 6 0;
#X connect 13 0 12 0;
#X connect 19 0 5 1;
#X connect 19 0 1 1;
#X restore 133 430 pd fft-analysis;
#X floatatom 133 379 0 0 0;
#X obj 134 525 dac~;
#X graph graph1 0 -1 256 1 352 461 608 261;
#X array array3 256 float 0;
#X pop;
#X obj 141 462 tabwrite~ array3;
#X msg 77 442 bang;
#X obj 133 324 * 44100;
#X obj 133 352 / 256;
#X floatatom 133 298 0 0 0;
#X text 71 165 sample rate / 256;
#X text 17 23 CLICK HERE TO;
#X text 15 41 CALCULATE HANNING;
#X text 14 58 WINDOW TABLE;
#X msg 20 79 bang \; pd dsp 1;
#X text 40 289 frequency;
#X text 50 305 in bins;
#X text 62 385 in Hz.;
#X text 14 440 scope;
#X text 236 23 A patch to test the rfft~ and rifft~ modules. An incoming
sine wave is Hanning windowed and transformed. The inverse transform
is then output.;
#X text 235 70 The block size (256) and overlap (2) are set by the
block~ object in the sub-patch. The output is automatically overlap-added
by the outlet~ object.;
#X floatatom 778 111 0 0 0;
#N canvas 194 37 397 591 output 0;
#X obj 72 249 t b;
#X obj 72 173 f;
#X obj 73 89 inlet;
#X text 86 54 mute;
#X obj 72 280 f;
#X msg 149 292 0;
#X msg 72 125 bang;
#X obj 73 197 moses 1;
#X obj 149 263 t b f;
#X obj 109 543 outlet;
#X msg 108 503 set \$1;
#X obj 92 337 s master-amp;
#X obj 206 153 r master-amp;
#X obj 107 424 r master-amp;
#X obj 206 186 moses 1;
#X obj 249 494 dbtorms;
#X obj 251 520 pack 0 100;
#X obj 252 548 s master-out;
#X connect 0 0 4 0;
#X connect 1 0 7 0;
#X connect 2 0 6 0;
#X connect 4 0 11 0;
#X connect 5 0 11 0;
#X connect 6 0 1 0;
#X connect 7 0 0 0;
#X connect 7 1 8 0;
#X connect 8 0 5 0;
#X connect 10 0 9 0;
#X connect 12 0 1 1;
#X connect 12 0 14 0;
#X connect 13 0 10 0;
#X connect 13 0 15 0;
#X connect 14 1 4 1;
#X connect 15 0 16 0;
#X connect 16 0 17 0;
#X restore 778 83 pd output;
#X msg 778 55 mute;
#X text 821 115 AMPLITUDE;
#X obj 778 142 s master-amp;
#X obj 191 522 line~;
#X obj 134 495 *~;
#X text 236 124 You can close the sub-patch if table updates are interfering
with your audio output.;
#X obj 191 495 r master-out;
#X obj 36 166 osc~;
#X obj 35 118 samplerate~;
#X obj 36 142 / 256;
#X obj 36 189 *~ -0.5;
#X obj 36 209 +~ 0.5;
#X obj 133 405 osc~;
#X connect 2 0 32 1;
#X connect 3 0 7 0;
#X connect 3 0 29 0;
#X connect 4 0 37 0;
#X connect 8 0 7 0;
#X connect 9 0 10 0;
#X connect 10 0 4 0;
#X connect 11 0 9 0;
#X connect 16 0 1 0;
#X connect 16 0 2 0;
#X connect 16 0 33 0;
#X connect 23 0 27 0;
#X connect 24 0 23 0;
#X connect 25 0 24 0;
#X connect 28 0 29 1;
#X connect 29 0 5 0;
#X connect 31 0 28 0;
#X connect 32 0 35 0;
#X connect 33 0 34 0;
#X connect 34 0 32 0;
#X connect 35 0 36 0;
#X connect 36 0 1 0;
#X connect 37 0 3 0;