aboutsummaryrefslogtreecommitdiff
path: root/pd/doc
diff options
context:
space:
mode:
Diffstat (limited to 'pd/doc')
-rw-r--r--pd/doc/3.audio.examples/J07.oversampling.pd101
-rw-r--r--pd/doc/5.reference/tabread4~-help.pd59
-rw-r--r--pd/doc/7.stuff/tools/testtone.pd6
3 files changed, 103 insertions, 63 deletions
diff --git a/pd/doc/3.audio.examples/J07.oversampling.pd b/pd/doc/3.audio.examples/J07.oversampling.pd
index 0b124c03..4c5f3cc8 100644
--- a/pd/doc/3.audio.examples/J07.oversampling.pd
+++ b/pd/doc/3.audio.examples/J07.oversampling.pd
@@ -1,10 +1,5 @@
-#N canvas 343 48 578 498 12;
-#N canvas 158 4 728 420 16x 0;
-#X obj 21 151 *~ 0.064;
-#X obj 21 174 rpole~ 0.93538;
-#X obj 21 197 *~ 0.00431;
-#X obj 21 220 cpole~ 0.96559 0.05592;
-#X obj 21 246 cpole~ 0.96559 -0.05592;
+#N canvas 378 114 542 534 12;
+#N canvas 371 260 740 538 16x 0;
#X obj 21 269 *~ 0.125;
#X obj 21 292 rzero~ -1;
#X obj 21 315 rzero~ -1;
@@ -13,44 +8,84 @@
#X obj 204 29 block~ 1024 1 16;
#X obj 21 31 inlet;
#X obj 21 372 outlet~;
-#X text 170 151 These objects make a 3-pole \, 3-zero Butterwirth low-pass
-filter with cutoff at 15kHz (assuming 44100 sample rate.) The filter
+#X obj 20 166 rpole~ 0.87467;
+#X obj 20 143 *~ 0.12532;
+#X obj 20 189 *~ 0.01668;
+#X obj 279 358 buttercoef3;
+#X floatatom 279 282 7 0 0 0 - - -;
+#X obj 279 332 / 16;
+#X floatatom 279 488 7 0 0 0 - - -;
+#X obj 279 307 / 22050;
+#X floatatom 293 468 7 0 0 0 - - -;
+#X floatatom 308 448 7 0 0 0 - - -;
+#X floatatom 323 428 7 0 0 0 - - -;
+#X floatatom 338 408 7 0 0 0 - - -;
+#X floatatom 353 388 7 0 0 0 - - -;
+#X text 335 489 normalizer for rpole~;
+#X text 352 468 normalizer for cpole~;
+#X text 366 449 coef for rpole~;
+#X text 382 430 coef for cpole~ real part;
+#X text 413 390 coef for cpole~ imag part;
+#X text 409 408 (same \, other cpole~);
+#X obj 20 212 cpole~ 0.9293 0.10812;
+#X obj 20 238 cpole~ 0.9293 -0.10812;
+#X msg 279 257 15000;
+#X text 329 256 desired cutoff frequency;
+#X text 339 308 divide by nyquist frequency of this subpatch \, which
+is 22050*16 because of the 16-times oversampling.;
+#X text 273 225 Here is how to calculate the filter coefficients:;
+#X text 143 123 These objects make a 3-pole \, 3-zero Butterworth low-pass
+filter with cutoff at 15kHz (assuming 16x44100 sample rate). The filter
was designed using the "buttercoef3" abstraction introduced in patch
H13.butterworth.pd in this series.;
#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 3 1 4 1;
-#X connect 4 0 5 0;
-#X connect 5 0 6 0;
-#X connect 6 0 7 0;
-#X connect 7 0 8 0;
-#X connect 8 0 12 0;
-#X connect 9 0 0 0;
-#X connect 11 0 9 0;
-#X restore 23 148 pd 16x;
-#X floatatom 23 111 7 0 0 0 - - -;
-#X obj 109 149 phasor~;
-#X obj 22 194 output~;
-#X obj 108 194 output~;
-#X obj 23 83 mtof;
-#X floatatom 23 59 3 -24 135 0 - - -;
-#X text 131 18 UPSAMPLING TO CONTROL FOLDOVER;
-#X text 56 57 <-- pitch;
-#X text 126 250 not;
-#X text 22 265 sampled;
-#X text 26 249 16x up-;
-#X text 20 293 The "pd 16x" subpatch at left contains a phasor~ object
+#X connect 3 0 7 0;
+#X connect 4 0 9 0;
+#X connect 6 0 4 0;
+#X connect 8 0 10 0;
+#X connect 9 0 8 0;
+#X connect 10 0 27 0;
+#X connect 11 0 14 0;
+#X connect 11 1 16 0;
+#X connect 11 2 17 0;
+#X connect 11 3 18 0;
+#X connect 11 4 19 0;
+#X connect 11 5 20 0;
+#X connect 12 0 15 0;
+#X connect 13 0 11 0;
+#X connect 15 0 13 0;
+#X connect 27 0 28 0;
+#X connect 27 1 28 1;
+#X connect 28 0 0 0;
+#X connect 29 0 12 0;
+#X restore 29 123 pd 16x;
+#X floatatom 29 86 7 0 0 0 - - -;
+#X obj 115 124 phasor~;
+#X obj 28 169 output~;
+#X obj 114 169 output~;
+#X obj 29 58 mtof;
+#X floatatom 29 34 3 -24 135 0 - - -;
+#X text 158 15 UPSAMPLING TO CONTROL FOLDOVER;
+#X text 62 32 <-- pitch;
+#X text 132 225 not;
+#X text 28 240 sampled;
+#X text 32 224 16x up-;
+#X text 26 268 The "pd 16x" subpatch at left contains a phasor~ object
\, but is locally upsampled by a factor of sixteen. Without upsampling
\, partials as low as 24 Khz. fold back over into the audible range.
With upsampling \, the first audibly folding over partial is at almost
700 Hz \, 29 times higher. The relevant partials will be 29 times \,
or almost 30 dB \, quieter when upsampled.;
-#X text 21 403 A third-order Butterworth filter is used inside the
+#X text 27 378 A third-order Butterworth filter is used inside the
"pd 16x" subpatch - without that \, the internal signal would fold
over as it gets downsampled at the outlet~ object.;
-#X text 324 464 Updated for Pd version 0.39;
+#X text 312 507 Updated for Pd version 0.42;
+#X text 26 430 You can trade off cutoff frequency with foldover. Here
+\, the filter is set for a cutoff of 15 kHz. Lowering it to 7500 Hz
+would further reduce foldover by 18 dB at the expense of losing energy
+in the range 7500-15000 Hz.;
#X connect 0 0 3 0;
#X connect 0 0 3 1;
#X connect 1 0 0 0;
diff --git a/pd/doc/5.reference/tabread4~-help.pd b/pd/doc/5.reference/tabread4~-help.pd
index c28f580a..897fc64b 100644
--- a/pd/doc/5.reference/tabread4~-help.pd
+++ b/pd/doc/5.reference/tabread4~-help.pd
@@ -1,30 +1,28 @@
-#N canvas 59 33 814 475 10;
-#X obj 11 228 tabread4~ array99;
-#X text 21 207 signal input x(n);
-#X msg 727 51 \; pd dsp 0;
-#X graph graph1 0 -1 9 1 514 373 764 173;
-#X array array99 10 float 0;
-#X pop;
+#N canvas 323 179 845 474 12;
+#X obj 11 249 tabread4~ array99;
+#N canvas 0 0 450 300 (subpatch) 0;
+#X array array99 10 float 3;
+#A 0 -0.5 -0.5 -0.5 0.5 0.5 0.5 0 0 0 0;
+#X coords 0 1 10 -1 250 200 1;
+#X restore 561 167 graph;
#X text 127 21 4-point-interpolating table lookup;
-#X obj 11 316 snapshot~;
-#X obj 30 290 metro 200;
+#X obj 11 337 snapshot~;
+#X obj 30 311 metro 200;
#X obj 11 124 sig~;
-#X floatatom 11 98 0 0 0;
-#X obj 30 264 r readout;
-#X floatatom 11 342 0 0 0;
-#X msg 452 50 \; readout 1 \; array99 resize 10 \; array99 0 -0.5 -0.5
--0.5 0.5 0.5 0.5 \; pd dsp 1 \;;
-#X text 49 94 incoming signal is index. Indices should range from 1
+#X floatatom 11 98 6 0 10 0 - - -;
+#X obj 30 285 r readout;
+#X floatatom 11 363 0 0 0 0 - - -;
+#X text 59 92 incoming signal is index. Indices should range from 1
to (size-2) so that the 4-point interpolation is meaningful. You can
shift-drag the number box to see the effect of interpolation.;
-#X msg 34 158 set array99;
-#X text 116 158 "set" message permits you to switch between arrays
+#X msg 23 161 set array99;
+#X text 113 160 "set" message permits you to switch between arrays
;
-#X text 139 228 creation argument initializes array name;
-#X text 5 392 see also the "array" tutorial in section 2 of the Pd
+#X text 139 249 creation argument initializes array name;
+#X text 11 403 see also the "array" tutorial in section 2 of the Pd
documentation \, and these objects:;
#X obj 47 21 tabread4~;
-#X text 509 27 click here to test;
+#X text 563 16 click here to test;
#X obj 12 442 tabwrite~;
#X obj 157 442 tabread;
#X obj 216 442 tabwrite;
@@ -32,12 +30,19 @@ documentation \, and these objects:;
#X obj 346 442 tabreceive~;
#X text 7 58 Tabread4~ is used to build samplers and other table lookup
algorithms. The interpolation scheme is 4-point polynomial.;
-#X text 616 460 updated for Pd version 0.29;
#X obj 83 442 tabplay~;
-#X connect 0 0 5 0;
-#X connect 5 0 10 0;
+#X text 626 451 updated for Pd version 0.42;
+#X msg 582 40 \; readout 1 \; pd dsp 1 \;;
+#X floatatom 111 190 3 0 10 0 - - -;
+#X text 19 205 signal input;
+#X text 138 183 inlet sets onset into table. You can use this to improve
+the accuracy of indexing into the array. See B15.tabread4~-onset.pd
+for details.;
+#X connect 0 0 3 0;
+#X connect 3 0 8 0;
+#X connect 4 0 3 0;
+#X connect 5 0 0 0;
#X connect 6 0 5 0;
-#X connect 7 0 0 0;
-#X connect 8 0 7 0;
-#X connect 9 0 6 0;
-#X connect 13 0 0 0;
+#X connect 7 0 4 0;
+#X connect 10 0 0 0;
+#X connect 25 0 0 1;
diff --git a/pd/doc/7.stuff/tools/testtone.pd b/pd/doc/7.stuff/tools/testtone.pd
index d286bb9d..f65dc812 100644
--- a/pd/doc/7.stuff/tools/testtone.pd
+++ b/pd/doc/7.stuff/tools/testtone.pd
@@ -86,7 +86,7 @@ started" in the Help menu.;
#X connect 4 0 3 0;
#X restore 459 298 pd more;
#X obj 399 135 tgl 20 0 tone-hipass set-tone-hipass input-hipass 25
-10 0 12 -262144 -1 -1 1 1;
+10 0 12 -262144 -1 -1 0 1;
#X obj 185 117 tgl 20 0 tone-ch3 tone-ch3 3 5 -8 0 12 -262144 -1 -1
1 1;
#X obj 210 117 tgl 20 0 tone-ch4 tone-ch4 4 5 -8 0 12 -262144 -1 -1
@@ -112,7 +112,7 @@ started" in the Help menu.;
#X obj 51 174 vradio 15 1 0 2 tone-type tone-type-set empty 0 -6 0
8 -262144 -1 -1 1;
#X obj 51 104 vradio 15 1 0 3 tone-radio tone-radio-set empty 0 -6
-0 8 -262144 -1 -1 2;
+0 8 -262144 -1 -1 0;
#X obj 460 193 adc~;
#X obj 459 240 print~;
#X obj 468 217 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
@@ -123,7 +123,7 @@ started" in the Help menu.;
1 1;
#X obj 308 117 tgl 20 0 tone-ch8 tone-ch8 8 5 -8 0 12 -262144 -1 -1
1 1;
-#N canvas 233 399 903 462 audio 0;
+#N canvas 233 399 321 422 audio 0;
#X obj 25 303 s~ tone-mon;
#X obj 25 277 line~;
#X obj 25 249 pack 0 50;