diff --git a/pd/doc/3.audio.examples/B03.tabread4.pd b/pd/doc/3.audio.examples/B03.tabread4.pd index 3d7ba64860ac31f644b2b8ad1db44fd995fd3931..691f60e860d6167e1fdd7be8379a1cef03f0a437 100644 --- a/pd/doc/3.audio.examples/B03.tabread4.pd +++ b/pd/doc/3.audio.examples/B03.tabread4.pd @@ -1,6 +1,6 @@ -#N canvas 374 90 626 581 10; +#N canvas 374 90 452 581 10; #N canvas 0 0 450 300 (subpatch) 0; -#X array waveform12 131 float 1; +#X array waveform12 131 float 1 black black; #A 0 -0.172615 -0.172615 -0.172615 -0.172615 -0.172615 -0.141231 -0.109846 -0.0941538 -0.0627692 -0.0470769 0.0156923 0.0784615 0.125538 0.188308 0.235385 0.298154 0.360923 0.392308 0.470769 0.533538 0.596308 0.643385 @@ -18,8 +18,8 @@ 0.219692 0.109846 -0.0156923 -0.0941538 -0.109846 -0.141231 -0.156923 -0.172615 -0.188308 -0.204 -0.204 -0.219692 -0.204 -0.204 -0.219692 -0.219692 -0.204 -0.204 -0.204 -0.204 -0.204 -0.188308; -#X coords 0 1.02 130 -1.02 258 130 1; -#X restore 311 42 graph; +#X coords 0 1.02 131 -1.02 150 80 1; +#X restore 274 39 graph; #X floatatom 131 292 0 0 100 0 - - -; #N canvas 159 26 532 285 output 0; #X obj 338 160 t b; @@ -91,9 +91,9 @@ #X text 164 38 squeeze; #X text 92 38 frequency; #N canvas 0 0 450 300 (subpatch) 0; -#X array wave-out12 441 float 0; -#X coords 0 1 440 -1 300 140 1; -#X restore 311 202 graph; +#X array wave-out12 441 float 0 black black; +#X coords 0 1 441 -1 150 80 1; +#X restore 274 124 graph; #X obj 127 260 tabwrite~ wave-out12; #X msg 127 234 bang; #X obj 170 128 +~ 128; @@ -122,7 +122,7 @@ Wilkes revised the patch to conform to the PDDP template for Pd version #X text 7 2 wavetable oscillators- Related Help Documents; #X text 19 37 list the other tab-objects here; #X restore 103 561 pd References; -#X text 18 352 The [tabread4~] module is available for situations requiring +#X text 18 343 The [tabread4~] module is available for situations requiring more control than [tabosc4~] offers. The relationship between the two is the same as between [cos~] and [osc~] \, although the units are different between [cos~] and [tabread4~]. [cos~] assumes input is normalized diff --git a/pd/doc/3.audio.examples/B07.sampler.pd b/pd/doc/3.audio.examples/B07.sampler.pd index 813bd6ae0578c517eb6d3a11626551a0b4e0ee11..4623e1ebd2382c641ca3e4a9ff1b1c0b8a4feee4 100644 --- a/pd/doc/3.audio.examples/B07.sampler.pd +++ b/pd/doc/3.audio.examples/B07.sampler.pd @@ -2,8 +2,8 @@ #X obj 22 199 hip~ 5; #X text 81 199 high pass filter to cut DC; #N canvas 0 0 450 300 (subpatch) 0; -#X array sample-table 44104 float 0; -#X coords 0 1.02 44103 -1.02 200 130 1; +#X array sample-table 44104 float 0 black black; +#X coords 0 1.02 44104 -1.02 200 130 1; #X restore 99 243 graph; #X obj 22 172 tabread4~ sample-table; #X obj 22 142 line~; @@ -14,10 +14,10 @@ #X text 64 93 convert to SAMPLES (441 samples in 0.01 sec); #X text 168 164 read from the table; #X text 169 178 (the input is the index in samples); -#X text 17 488 For more on reading and writing soundfiles to tables +#X text 17 493 For more on reading and writing soundfiles to tables \, setting their lengths \, etc \, see "arrays" in the "control examples" series.; -#X text 17 526 Fanatics take note: if you want really high-fidelity +#X text 17 533 Fanatics take note: if you want really high-fidelity sampling \, use a high-quality resampling program to up-sample your soundfile to 88200 to drastically reduce interpolation error.; #X text 65 142 convert smoothly to audio signal; @@ -61,7 +61,7 @@ Wilkes revised the patch to conform to the PDDP template for Pd version #X text 7 2 sampler- Related Help Documents; #X text 19 37 links:; #X restore 103 589 pd References; -#X text 17 394 This patch introduces the [tabread4~] object \, which +#X text 17 388 This patch introduces the [tabread4~] object \, which reads audio samples out of a floating-point array \, often called a "sample table." The input is the index of the sample to read \, counting from zero. The output is calculated using 4-point cubic interpolation diff --git a/pd/doc/5.reference/tabread4~-help.pd b/pd/doc/5.reference/tabread4~-help.pd index 897fc64b1014e398df9cdbd3fdebb46d40455a9f..59986b38c31bd82f065b28010737620733a7ff8d 100644 --- a/pd/doc/5.reference/tabread4~-help.pd +++ b/pd/doc/5.reference/tabread4~-help.pd @@ -1,48 +1,141 @@ -#N canvas 323 179 845 474 12; -#X obj 11 249 tabread4~ array99; +#N canvas 429 34 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 tabread4~ 3 12 0 +18 -204280 -1 0; +#X obj 0 305 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13 +-228856 -1 0; +#N canvas 487 283 494 344 META 0; +#X text 12 125 LIBRARY internal; +#X text 12 165 WEBSITE http://crca.ucsd.edu/~msp/; +#X text 12 25 LICENSE SIBSD; +#X text 12 145 AUTHOR Miller Puckette; +#X text 12 205 HELP_PATCH_AUTHORS Updated for Pd version 0.29. Jonathan +Wilkes revised the patch to conform to the PDDP template for Pd version +0.42.; +#X text 12 5 KEYWORDS signal array; +#X text 12 45 DESCRIPTION 4-point-interpolating table lookup; +#X text 12 65 INLET_0 signal set; +#X text 12 85 INLET_1 float; +#X text 12 105 OUTLET_0 signal; +#X text 12 185 RELEASE_DATE 1997; +#X restore 500 597 pd META; +#X obj 0 417 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0 +13 -228856 -1 0; +#X obj 0 449 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12 +0 13 -228856 -1 0; +#X obj 0 510 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12 +0 13 -228856 -1 0; +#N canvas 218 331 428 294 Related_objects 0; +#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0 +14 -204280 -1 0; +#X text 21 38 Native Pd Objects; +#X obj 24 61 tabread~; +#X obj 98 61 tabread4; +#X obj 173 61 tabwrite; +#X obj 248 61 tabwrite~; +#X obj 24 89 tabsend~; +#X obj 100 89 tabreceive~; +#X obj 200 89 tabplay~; +#X obj 277 89 table; +#X text 21 140 [array]; +#X obj 24 116 soundfiler; +#X text 84 140 and fft objects.; +#X obj 120 116 tabread4~; +#X obj 211 116 getsize; +#X obj 282 116 setsize; +#X text 8 2 [tabread4~] Related Objects; +#X text 21 170 Externals and other object libraries; +#X obj 21 190 pddp/helplink zexy/tabdump; +#X obj 21 210 pddp/helplink linear_path; +#X text 102 210 <-- which library is this in?; +#X text 102 230 <-- which library is this in?; +#X obj 21 230 pddp/helplink score; +#X text 102 250 <-- which library is this in?; +#X obj 21 250 pddp/helplink tabenv; +#X obj 21 270 pddp/helplink arraysize; +#X restore 102 597 pd Related_objects; +#X obj 78 314 cnv 17 3 75 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856 +-162280 0; +#X obj 78 426 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856 +-162280 0; +#X obj 479 12 tabread4~; +#X text 11 23 4-point-interpolating table lookup; +#X text 68 174 signal input x(n); +#X obj 21 261 snapshot~; +#X obj 40 239 metro 200; +#X obj 21 115 sig~; +#X floatatom 21 89 0 0 0 0 - - -; +#X floatatom 21 284 0 0 0 0 - - -; +#X text 98 313 signal; +#X text 168 313 - the incoming signal is the index. Indices should +range from 1 to the size of the array minus two \, so that the 4-point +interpolation is meaningful.; +#X text 53 83 Shift-drag the number box to see the effect of interpolation. +; +#X text 98 353 set; #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 337 snapshot~; -#X obj 30 311 metro 200; -#X obj 11 124 sig~; -#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 23 161 set array99; -#X text 113 160 "set" message permits you to switch between arrays +#X array \$0-array 10 float 0 black black; +#X coords 0 1 10 -1 160 100 1; +#X restore 289 141 graph; +#X text 98 425 signal; +#X obj 40 217 loadbang; +#X obj 100 515 pddp/pddplink all_about_arrays.pd -text all_about_arrays +; +#X text 168 467 - the name of the array or table from which [tabread4~] +will read data. The array or table must exist in an open Pd patch/canvas +or an error message will appear in the console.; +#N canvas 117 345 428 159 init 0; +#X msg 23 103 0 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1; +#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0 +14 -204280 -1 0; +#X obj 23 81 loadbang; +#X text 8 2 [tabread4~] [table] initialization; +#X text 20 38 This subpatch just initializes a [table] to some values. +(Values in a [table] are not saved in the patch.); +#X obj 23 125 s \$0-array; +#X connect 0 0 5 0; +#X connect 2 0 0 0; +#X restore 289 269 pd init; +#X text 168 353 - the "set" message \, followed by the name of an array +\, permits you to switch between arrays (e.g. \, "set another_array"). +; +#X text 80 467 1) symbol; +#X text 18 44 [tabread4~] is used to build samplers and other table +lookup algorithms. The interpolation scheme is 4-point polynomial. +; +#X obj 4 597 pddp/pddplink all_about_help_patches.pd -text Usage Guide ; -#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 563 16 click here to test; -#X obj 12 442 tabwrite~; -#X obj 157 442 tabread; -#X obj 216 442 tabwrite; -#X obj 281 442 tabsend~; -#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 obj 83 442 tabplay~; -#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 4 0; -#X connect 10 0 0 0; -#X connect 25 0 0 1; +#X obj 475 53 pddp/dsp; +#X obj 100 530 pddp/pddplink ../3.audio.examples/B03.tabread4.pd -text +doc/3.audio.examples/B03.tabread4.pd; +#X obj 100 545 pddp/pddplink ../3.audio.examples/B04.tabread4.interpolation.pd +-text doc/3.audio.examples/B04.tabread4.interpolation.pd; +#X obj 78 396 cnv 17 3 17 empty \$0-pddp.cnv.let.1 1 5 9 0 16 -228856 +-162280 0; +#X text 98 395 float; +#X obj 247 395 pddp/pddplink ../3.audio.examples/B15.tabread4~-onset.pd +-text doc/3.audio.examples/B15.tabread4~-onset.pd; +#X text 168 395 - onset. See:; +#X obj 100 560 pddp/pddplink ../3.audio.examples/B06.table.switching.pd +-text doc/3.audio.examples/B06.table.switching.pd; +#X obj 100 575 pddp/pddplink ../3.audio.examples/B07.sampler.pd -text +doc/3.audio.examples/B07.sampler.pd; +#X obj 21 194 tabread4~ \$0-array; +#X obj 289 247 table \$0-array2; +#X obj 66 113 bng 15 250 50 0 empty empty empty 17 7 0 10 -4034 -1 +-1; +#X obj 66 133 f \$0; +#X msg 66 155 set \$1-array2; +#X obj 170 280 s \$0-array2; +#X msg 170 253 sinesum 256 1; +#X connect 13 0 17 0; +#X connect 14 0 13 0; +#X connect 15 0 41 0; +#X connect 16 0 15 0; +#X connect 24 0 14 0; +#X connect 41 0 13 0; +#X connect 43 0 44 0; +#X connect 44 0 45 0; +#X connect 45 0 41 0; +#X connect 47 0 46 0;