aboutsummaryrefslogtreecommitdiff
path: root/doc/pddp/czero_rev~-help.pd
blob: 14dd612d51082b8ff0d8a472c164d4e1629680cd (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
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
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
#N canvas 0 0 555 619 10;
#X obj 0 595 cnv 15 552 21 empty \$0-pddp.cnv.footer empty 20 12 0
14 -228856 -66577 0;
#X obj 0 0 cnv 15 552 40 empty \$0-pddp.cnv.header czero_rev~ 3 12
0 18 -204280 -1 0;
#X obj 0 303 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#N canvas 47 228 494 384 META 0;
#X text 12 195 LIBRARY internal;
#X text 12 235 WEBSITE http://crca.ucsd.edu/~msp/;
#X text 12 215 AUTHOR Miller Puckette;
#X text 12 275 HELP_PATCH_AUTHORS Updated for Pd version-0.38. Jonathan
Wilkes revised the patch to conform to the PDDP template for Pd version
0.42.;
#X text 12 5 KEYWORDS signal filter;
#X text 12 25 LICENSE SIBSD;
#X text 12 75 INLET_0 signal set clear;
#X text 12 95 INLET_1 signal;
#X text 12 115 INLET_2 signal;
#X text 12 135 INLET_3 signal;
#X text 12 155 OUTLET_0 signal;
#X text 12 175 OUTLET_1 signal;
#X text 12 255 RELEASE_DATE 1997;
#X text 12 45 DESCRIPTION complex one-zero (non-recursive) "reverse"
filter \, raw;
#X restore 500 597 pd META;
#X obj 0 440 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 0 502 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
0 13 -228856 -1 0;
#X obj 0 559 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
0 13 -228856 -1 0;
#N canvas 41 281 428 309 Related_objects 0;
#X obj 74 60 rzero~;
#X obj 25 80 cpole~;
#X obj 25 60 rpole~;
#X obj 123 60 rzero_rev~;
#X obj 74 80 czero~;
#X obj 123 80 czero_rev~;
#X text 201 60 real;
#X text 200 81 complex;
#X text 22 44 1-pole;
#X text 71 44 1-zero;
#X text 121 44 1-zero \, reversed;
#X text 47 29 summary of raw filters:;
#X text 19 184 User-friendly Filters;
#X obj 22 213 lop~;
#X obj 73 212 hip~;
#X obj 125 213 bp~;
#X obj 170 214 vcf~;
#X obj 23 274 biquad~;
#X text 19 250 Other Objects;
#X text 19 113 Pd also provides a suite of user-friendly filters. This
and other raw filters are provided for situations which the user-friendly
ones can't handle. See Chapter 8 of http://crca.ucsd.edu/~msp/techniques
for an introduction to the necessary theory.;
#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#X text 7 1 [czero_rev~] Related Objects;
#X restore 101 597 pd Related_objects;
#X obj 78 449 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 78 312 cnv 17 3 45 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X text 98 312 signal;
#X text 98 449 signal;
#N canvas 3 174 550 380 test 0;
#X obj 152 296 env~ 16384;
#X floatatom 152 320 5 0 0 0 - - -;
#X floatatom 499 76 4 -1000 1000 0 - - -;
#X obj 349 324 dac~;
#X obj 349 288 *~;
#X obj 390 70 cos~;
#X floatatom 298 8 5 0 0 0 - - -;
#X obj 298 31 phasor~;
#X floatatom 398 14 5 0 0 0 - - -;
#X obj 397 39 / 1000;
#X obj 423 71 -~ 0.25;
#X obj 423 93 cos~;
#X obj 499 95 / 1000;
#X obj 389 121 *~;
#X obj 423 121 *~;
#X obj 228 296 env~ 16384;
#X floatatom 228 320 5 0 0 0 - - -;
#X obj 381 284 dbtorms;
#X floatatom 382 264 5 0 0 0 - - -;
#X obj 117 89 phasor~;
#X floatatom 115 60 5 0 0 0 - - -;
#X text 77 13 Stuff to test it:;
#X obj 131 149 cpole~;
#X obj 241 262 *~ -1;
#X obj 21 261 env~ 16384;
#X floatatom 21 285 5 0 0 0 - - -;
#X obj 50 312 env~ 16384;
#X floatatom 50 336 5 0 0 0 - - -;
#X obj 138 181 cpole~;
#X obj 146 216 czero_rev~;
#X obj 154 264 czero_rev~;
#X msg 204 103 clear;
#X obj 262 50 cos~;
#X obj 261 83 *~ 0.02;
#X obj 193 50 sig~ 1.1;
#X obj 448 296 *~;
#X connect 0 0 1 0;
#X connect 2 0 12 0;
#X connect 4 0 3 0;
#X connect 5 0 13 0;
#X connect 6 0 7 0;
#X connect 7 0 32 0;
#X connect 8 0 9 0;
#X connect 9 0 7 1;
#X connect 10 0 11 0;
#X connect 11 0 14 0;
#X connect 12 0 14 1;
#X connect 12 0 13 1;
#X connect 13 0 22 2;
#X connect 13 0 28 2;
#X connect 13 0 29 2;
#X connect 13 0 30 2;
#X connect 14 0 22 3;
#X connect 14 0 23 0;
#X connect 14 0 29 3;
#X connect 15 0 16 0;
#X connect 17 0 4 1;
#X connect 17 0 35 1;
#X connect 18 0 17 0;
#X connect 19 0 22 0;
#X connect 19 0 24 0;
#X connect 19 0 35 0;
#X connect 20 0 19 0;
#X connect 22 0 28 0;
#X connect 22 1 28 1;
#X connect 23 0 28 3;
#X connect 23 0 30 3;
#X connect 24 0 25 0;
#X connect 26 0 27 0;
#X connect 28 0 26 0;
#X connect 28 0 29 0;
#X connect 28 1 29 1;
#X connect 29 0 30 0;
#X connect 29 1 30 1;
#X connect 30 0 0 0;
#X connect 30 0 4 0;
#X connect 30 1 15 0;
#X connect 31 0 22 0;
#X connect 31 0 28 0;
#X connect 32 0 33 0;
#X connect 33 0 5 0;
#X connect 33 0 10 0;
#X connect 34 0 33 0;
#X connect 35 0 3 1;
#X restore 101 568 pd test;
#X text 98 327 clear;
#X text 98 342 set;
#X obj 78 362 cnv 17 3 17 empty \$0-pddp.cnv.let.1 1 5 9 0 16 -228856
-162280 0;
#X text 98 362 signal;
#X obj 78 387 cnv 17 3 17 empty \$0-pddp.cnv.let.2 2 5 9 0 16 -228856
-162280 0;
#X text 98 387 signal;
#X obj 78 412 cnv 17 3 17 empty \$0-pddp.cnv.let.3 3 5 9 0 16 -228856
-162280 0;
#X text 98 412 signal;
#X obj 78 474 cnv 17 3 17 empty \$0-pddp.cnv.let.1 1 5 9 0 16 -228856
-162280 0;
#X text 98 474 signal;
#X obj 460 3 czero_rev~;
#X obj 430 20 pddp/pddplink http://wiki.puredata.info/en/czero_rev~
-text pdpedia: czero_rev~;
#X text 198 196 where y[n] is the output \, x[n] the input \, and a[n]
the filter coefficient (all complex numbers). The filter is always
stable.;
#X text 261 176 y[n] = - a[n] * x[n] + x[n-1];
#X text 199 245 The transfer function is H(Z) = -a + Z^-1.;
#X obj 52 127 osc~ 100;
#X msg 60 152 clear;
#X obj 86 203 sig~;
#X obj 120 225 sig~;
#X obj 156 245 sig~;
#X msg 67 178 set 0.6 0.8;
#X obj 51 268 czero_rev~ 0.9 0.4;
#X text 11 23 complex one-zero (non-recursive) "reverse" filter \,
raw;
#X text 158 312 - signal to filter (real part).;
#X text 158 327 - clear internal state to zero.;
#X text 158 342 - set internal state (real & imaginary parts).;
#X text 158 362 - signal to filter ( imaginary part ).;
#X text 158 387 - filter coefficient ( real part ).;
#X text 158 412 - filter coefficient ( imaginary part ).;
#X text 157 521 - (optional) filter coefficient (real part).;
#X text 157 536 - (optional) filter coefficient (imaginary part).;
#X text 80 521 1) float;
#X text 80 536 2) float;
#X text 93 57 [czero_rev~] filters a complex audio signal (first two
inlets) via a one-zero filter \, whose coefficients are controlled
by creation arguments or by another complex audio signal (remaining
two inlets). The impulse response is that of "rzero" reversed in time.
;
#X text 201 155 The action of [czero_rev~] is:;
#X obj 4 597 pddp/pddplink all_about_help_patches.pd -text Usage Guide;
#X obj 455 51 pddp/dsp;
#X connect 28 0 34 0;
#X connect 29 0 34 0;
#X connect 30 0 34 1;
#X connect 31 0 34 2;
#X connect 32 0 34 3;
#X connect 33 0 34 0;