From a7f56f2c7b0c44912f7fb772c64f547a8c0e0ae3 Mon Sep 17 00:00:00 2001 From: Miller Puckette Date: Tue, 30 Dec 2008 01:53:20 +0000 Subject: Oops, add 2 help files svn path=/trunk/; revision=10470 --- pd/doc/3.audio.examples/B15.tabread4~-onset.pd | 66 ++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 pd/doc/3.audio.examples/B15.tabread4~-onset.pd (limited to 'pd/doc/3.audio.examples/B15.tabread4~-onset.pd') diff --git a/pd/doc/3.audio.examples/B15.tabread4~-onset.pd b/pd/doc/3.audio.examples/B15.tabread4~-onset.pd new file mode 100644 index 00000000..08eabd5c --- /dev/null +++ b/pd/doc/3.audio.examples/B15.tabread4~-onset.pd @@ -0,0 +1,66 @@ +#N canvas 88 58 563 680 12; +#X text 355 655 updated for Pd version 0.42; +#X text 28 36 Pd is usually compiled to work on 32-bit audio samples. +These do not \, in general \, have enough precision for use as indices +into an array of more than about 32K samples. This is because the mantissa +of a 23-bit floating point number has only 24 bits \, out of which +you would be using 16 bits or more to address a sample more than 32K +into the array \, so there would remain 8 or fewer bits to supply the +fraction. In the most extreme situation possible \, the sample could +contain a Nyquist frequency sinusoid and the output would then have +only about 8 bits of accuracy!; +#X text 29 196 You can use the "onset" inlet to tabread4~ to get good +accuracy reading longer arrays. The tabread4~ object adds the index +and the "main" (signal) inlet in 64-bit precision. So if \, for example +\, the onset inlet could specify an integer exactly up to about 8 million +(190 seconds at 44100 Hz) \, and the signal inlet could act as a displacement. +; +#X text 116 13 USING ONSETS INTO TABREAD4~ TO IMPROVE ACCURACY; +#X obj 41 587 output~; +#X obj 395 507 samplerate~; +#X obj 395 531 / 2; +#X obj 384 445 loadbang; +#X obj 384 582 tabwrite~ \$0-tab; +#X obj 40 557 tabread4~ \$0-tab; +#X obj 395 555 osc~; +#X obj 172 557 tabread4~ \$0-tab; +#X obj 173 589 output~; +#X obj 384 486 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X msg 408 468 \; pd dsp 1; +#X obj 41 474 *~ 10000; +#X obj 41 527 +~; +#X floatatom 192 476 6 0 0 0 - - -; +#X msg 247 446 1; +#X obj 383 610 table \$0-tab 200000; +#X obj 42 446 phasor~ 0.02; +#X msg 192 446 150001; +#X text 28 310 At left below an onset (1 or 150000 samples) is added +to the index of a table lookup. If you select the onset of 150001 \, +you should hear the truncation error. (The table contains a Nyquist +signal and the "correct" output should be a 100 Hz. tone.) At right +\, the onset is presented in the separate onset inlet. The worst-case +truncation error drops by about 30 dB.; +#X text 57 647 BAD; +#X text 190 646 GOOD; +#X text 193 425 ONSET INTO TABLE; +#X text 384 426 This loads the table:; +#X connect 5 0 6 0; +#X connect 6 0 10 0; +#X connect 7 0 13 0; +#X connect 7 0 14 0; +#X connect 9 0 4 0; +#X connect 9 0 4 1; +#X connect 10 0 8 0; +#X connect 11 0 12 0; +#X connect 11 0 12 1; +#X connect 13 0 5 0; +#X connect 13 0 8 0; +#X connect 15 0 16 0; +#X connect 15 0 11 0; +#X connect 16 0 9 0; +#X connect 17 0 11 1; +#X connect 17 0 16 1; +#X connect 18 0 17 0; +#X connect 20 0 15 0; +#X connect 21 0 17 0; -- cgit v1.2.1