Update of /cvsroot/pure-data/externals/iem16/help In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16210
Added Files: del16read~-help.pd del16write~-help.pd tab16play~-help.pd tab16read4~-help.pd tab16read-help.pd tab16receive~-help.pd tab16send~-help.pd tab16write~-help.pd tab16write-help.pd table16-help.pd vd16~-help.pd Log Message: changed example to help files
--- NEW FILE: vd16~-help.pd --- #N canvas 88 40 717 480 12; #X floatatom 50 254 0 0 0 0 - - -; #X obj 50 347 outlet~; #X text 130 346 signal output (delayed signal); #X obj 50 282 sig~; #X text 99 279 signal input (delay time in ms); #X text 218 310 creation argument: name of delay line; #X text 35 400 see also:; #X obj 24 16 vd16~; #X text 77 10 reads a signal from a 16bit delay line at a variable delay time (4-point-interpolation); #X text 31 51 vd16~ implements a 4-point interpolating delay tap from a corresponding delwrite~ object. The delay in milliseconds of the tap is specified by the incoming signal.; #X obj 50 314 vd16~ del_example; #X text 16 433 similar pd-objects:; #X obj 201 432 delread~; #X obj 285 432 delwrite~; #X obj 378 432 vd~; #X obj 123 403 del16write~; #X obj 242 403 del16read~; #X text 411 386 updated for iem16 version1.0; #X text 28 116 This is very similar to the pd-object; #X text 56 137 It uses only 16bit to store the samples , which will need only half of the memory of pd's floatingpoint-based object.; #X text 57 175 However , there are 2 drawbacks: there will be some additional noise (because floats are more precise than 16bit) , and you cannot have values>1 stored in the delay-line; #X obj 375 112 vd~; #X connect 0 0 3 0; #X connect 3 0 10 0; #X connect 10 0 1 0;
--- NEW FILE: tab16read-help.pd --- #N canvas 245 143 703 316 12; #X text 62 102 index; #X floatatom 25 103 0 0 0 0 - - -; #X floatatom 25 199 0 0 0 0 - - -; #X text 70 197 output = array99[index]; #X text 189 157 creation argument; #X text 185 175 gives array name; #X msg 35 125 set array99; #X text 147 125 change array name; #X obj 25 165 tab16read array99; #X obj 422 131 table16 array99; #X obj 17 13 tab16read; #X text 412 257 updated for iem16 version1.0; #X obj 16 252 tab16write~; #X obj 16 271 tab16read4~; #X obj 120 271 tab16read; #X obj 120 252 tab16write; #X obj 217 252 tab16send~; #X obj 217 271 tab16receive~; #X obj 339 257 table16; #X text 108 15 - read numbers from a 16bit-table; #X text 21 42 since [table16] can only hold 16bit values , the output of [tab16read] is limited to integer-values between -32768..+32767 ; #X connect 1 0 8 0; #X connect 6 0 8 0; #X connect 8 0 2 0;
--- NEW FILE: tab16send~-help.pd --- #N canvas 151 91 705 277 12; #X text 113 26 writes one block of a signal continuously to an array ; #X text 41 60 creation argument: name of array; #X text 29 96 By default a block is 64 samples ; this can be reset using the block~ object.; #X text 376 239 updated for iem16 version1.0; #X obj 5 216 tab16write~; #X obj 5 235 tab16read4~; #X obj 109 235 tab16read; #X obj 109 216 tab16write; #X obj 204 216 tab16send~; #X obj 204 235 tab16receive~; #X obj 328 221 table16; #X text 17 195 see also:; #X text 14 137 16bit-signals are limited to 65536 values between -1.0..+1.0 ; #X text 16 157 if your signal has absolute values >1.0 , these are wrapped around...; #X obj 11 27 tab16send~;
--- NEW FILE: tab16play~-help.pd --- #N canvas 159 54 804 495 10; #X msg 639 93 ; pd dsp 0; #X floatatom 11 342 0 0 0 0 - - -; #X msg 11 109 set array99; #X text 93 109 "set" message permits you to switch between arrays; #X text 138 228 creation argument initializes array name; #X obj 11 316 env~ 16384; #X obj 87 360 dac~ 1; #X obj 87 323 *~; #X obj 100 304 line~; #X msg 100 263 0.1 100; #X msg 116 284 0 100; #X text 162 264 on; #X text 157 283 off; #X text 148 301 envelope; #X text 148 312 generator; #X text 101 248 amplitude controls:; #X text 131 362 audio output; #X obj 87 342 hip~ 5; #X msg 26 179 0 44100; #X msg 27 158 44100; #X msg 26 138 bang; #X text 80 136 "bang" or 0 plays whole sample; #X text 82 157 play starting at 44100th sample; #X text 93 177 play starting at beginning for 44100 samples; #X msg 25 199 44100 1000; #X text 103 198 play from 44100 through 45099 (1000 samples); #X obj 11 228 tab16play~ array99; #X obj 589 205 table16 array99; #X text 389 444 updated for iem16 version1.0; #X obj 5 439 tab16write~; #X obj 5 458 tab16read4~; #X obj 89 458 tab16read; #X obj 89 439 tab16write; #X obj 166 439 tab16send~; #X obj 166 458 tab16receive~; #X obj 32 13 tab16play~; #X text 29 43 The [tab16play~] object is the same as the [tabplay~] object , but it refers to 16bit-arrays stored in [table16] instead of floating-point arrays (stored in normal pd-tables/arrays); #X obj 328 444 table16; #X text 11 417 see also:; #X text 108 14 play a 16bit-table as a sample (non-transposing); #X connect 2 0 26 0; #X connect 5 0 1 0; #X connect 7 0 17 0; #X connect 8 0 7 1; #X connect 9 0 8 0; #X connect 10 0 8 0; #X connect 17 0 6 0; #X connect 18 0 26 0; #X connect 19 0 26 0; #X connect 20 0 26 0; #X connect 24 0 26 0; #X connect 26 0 5 0; #X connect 26 0 7 0;
--- NEW FILE: tab16receive~-help.pd --- #N canvas 109 83 646 239 12; #X text 17 53 creation argument: name of array; #X text 16 83 By default a block is 64 samples ; this can be reset using the block~ object.; #X obj 21 18 tab16receive~; #X text 376 199 updated for iem16 version1.0; #X obj 5 176 tab16write~; #X obj 5 195 tab16read4~; #X obj 109 195 tab16read; #X obj 109 176 tab16write; #X obj 204 176 tab16send~; #X obj 204 195 tab16receive~; #X obj 328 181 table16; #X text 17 155 see also:; #X text 129 18 - read a block of a 16bit-signal from an array continuously ; #X text 10 129 16bit-signals are limited to 65536 values between -1.0..+1.0 ;
--- NEW FILE: tab16write~-help.pd --- #N canvas 119 134 697 433 10; #X msg 43 131 bang; #X obj 23 82 sig~ 3000; #X obj 23 110 phasor~; #X text 158 213 creation argument initializes array name; #X msg 40 181 set array99; #X msg 445 35 ; pd dsp 1; #X msg 524 37 ; pd dsp 0; #X text 85 133 bang to start recording; #X text 126 180 set the destination array; #X msg 43 153 stop; #X text 85 154 stop recording; #X text 385 366 updated for iem16 version1.0; #X obj 14 343 tab16write~; #X obj 14 362 tab16read4~; #X obj 118 362 tab16read; #X obj 118 343 tab16write; #X obj 213 343 tab16send~; #X obj 213 362 tab16receive~; #X obj 337 348 table16; #X text 26 322 see also:; #X obj 22 211 tab16write~ array99; #X obj 492 160 table16 array99; #X obj 31 27 tab16write~; #X text 120 27 object to write a 16bit-signal in an array; #X text 261 261 since [table16] can only hold 16bit-values , the incoming signal (-1.0..+1.0) is stored as integer values -32768..+32767; #X connect 0 0 20 0; #X connect 1 0 2 0; #X connect 2 0 20 0; #X connect 4 0 20 0; #X connect 9 0 20 0;
--- NEW FILE: del16read~-help.pd --- #N canvas 24 20 800 531 12; #X text 372 274 1st argument: name of delay line; #X floatatom 116 253 0 0 0 0 - - -; #X text 151 255 float input (delay time in ms); #X text 127 310 signal output (delayed signal); #X floatatom 383 177 0 0 0 0 - - -; #X obj 116 375 snapshot~; #X floatatom 116 399 0 0 0 0 - - -; #X obj 24 246 loadbang; #X obj 24 313 metro 200; #X msg 32 273 ; pd dsp 1; #X text 424 176 input to delay line; #X obj 383 201 sig~; #X text 372 290 2nd argument: (initial) delay time in ms; #X text 36 443 see also:; #X obj 116 286 del16read~ del_example 1000; #X obj 383 226 del16write~ del_example 1000; #X obj 24 16 del16read~; #X obj 126 444 del16write~; #X obj 239 444 vd16~; #X text 133 14 - read a 16bit signal from a 16bit-delay line; #X obj 368 52 delread~; #X text 21 52 This is very similar to the pd-object; #X text 49 82 It uses only 16bit to store the samples , which will need only half of the memory of pd's floatingpoint-based object.; #X text 50 120 However , there are 2 drawbacks: there will be some additional noise (because floats are more precise than 16bit) , and you cannot have values>1 stored in the delay-line; #X text 38 490 similar pd-objects:; #X obj 223 489 delread~; #X obj 307 489 delwrite~; #X obj 400 489 vd~; #X text 433 443 updated for iem16 version1.0; #X connect 1 0 14 0; #X connect 4 0 11 0; #X connect 5 0 6 0; #X connect 7 0 8 0; #X connect 7 0 9 0; #X connect 8 0 5 0; #X connect 11 0 15 0; #X connect 14 0 5 0;
--- NEW FILE: tab16read4~-help.pd --- #N canvas 59 33 741 466 10; #X text 21 207 signal input x(n); #X text 127 21 4-point-interpolating table lookup; #X obj 11 316 snapshot~; #X obj 30 290 metro 200; #X obj 11 124 sig~; #X floatatom 11 98 0 0 0 0 - - -; #X obj 30 264 r readout; #X floatatom 11 342 0 0 0 0 - - -; #X text 49 94 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 text 149 228 creation argument initializes array name; #X obj 10 228 tab16read4~ array99; #X obj 460 301 table16 array99; #X text 395 400 updated for iem16 version1.0; #X obj 11 395 tab16write~; #X obj 11 414 tab16read4~; #X obj 95 414 tab16read; #X obj 95 395 tab16write; #X obj 172 395 tab16send~; #X obj 172 414 tab16receive~; #X obj 334 400 table16; #X obj 47 21 tab16read4~; #X text 7 51 tab16read4~ is used to build samplers and other table lookup algorithms. The interpolation scheme is 4-point polynomial. ; #X text 185 266 since [table16] can only hold 16bit-values , the stored integer values -32768..+32767 are converted to floats -1.0..+1.0; #X connect 2 0 7 0; #X connect 3 0 2 0; #X connect 4 0 12 0; #X connect 5 0 4 0; #X connect 6 0 3 0; #X connect 9 0 12 0; #X connect 12 0 2 0;
--- NEW FILE: table16-help.pd --- #N canvas 37 0 856 640 10; #X obj 30 21 table16; #X text 97 22 16bit-table; #X text 32 51 [table16] stores 16bit values. The normal pd-tables ([table] , array) store the values as floating-points. While floating points are (often) more precise (this is of course not really true... , esp. when comparing integer(4byte) to floating-point.) they use a lot of memory (4byte).; #X text 32 121 [table16] uses only 16bit (2bytes) to store the values , which is half of the memory.; #X text 32 155 However there are 2 major drawbacks; #X text 53 172 a) less precision means less SNR - you can only store 65536 different values , but this is what CD-quality is (should be good enough for most musical applications); #X text 55 221 b) the 65536 values (-32678..+32767) are mapped to -1.0..+1.0! This means you cannot store signals that exceed this magical limit. Please make sure , that the signal has correct values (use [clip~]) or the unclipped values will get wrapped!; #X text 20 323 There are several objects to access the data of [table16]: ; #X obj 55 344 tab16write~; #X obj 55 363 tab16read4~; #X obj 279 363 tab16read; #X obj 279 344 tab16write; #X obj 164 344 tab16send~; #X obj 164 363 tab16receive~; #X obj 55 382 tab16read~; #X text 19 410 The message-objects [tab16read]/[tab16write] store the values directly (-32767..+32768) , while the signal-objects convert the floats -1.0..+1.0 to the correct values or vice-versa.; #X text 270 21 updated for iem16 version1.0; #X msg 496 53 resize 100; #X obj 496 308 table16 array16 99; #N canvas 0 0 450 300 graph6 0; #X array array100 10 float 1; #A 0 1 2 3 4 5 6 7 8 9 0; #X coords 0 10 9 0 200 140 1; #X restore 477 452 graph; #X msg 478 409 ; array100 0 1 2 3 4 5 6 7 8 9; #X text 481 389 click to init float-array; #X msg 502 114 from array100; #X text 21 497 There is no beautiful graphical representation as with pd's arrays.; #X msg 508 139 from array100 resize; #X msg 516 190 from array100 20 30; #X msg 517 213 from array100 20 30 resize; #X msg 527 259 from array100 20 30 95; #X msg 527 279 from array100 20 30 95 resize; #X text 502 95 copy the data from a float-array; #X text 603 117 and resize the 16bit-array; #X text 513 173 copy floats (index20..30); #X text 653 192 and resize to 30-20; #X text 526 241 copy indexed values and insert at index95; #X connect 17 0 18 0; #X connect 22 0 18 0; #X connect 24 0 18 0; #X connect 25 0 18 0; #X connect 26 0 18 0; #X connect 27 0 18 0; #X connect 28 0 18 0;
--- NEW FILE: del16write~-help.pd --- #N canvas 83 192 678 431 12; #X text 88 202 signal input; #X text 136 16 writes a signal in a delay line; #X text 281 235 1st argument: name of delay line; #X obj 24 203 sig~ 0; #X text 304 265 (= max. delay time); #X text 281 251 2nd argument: length of delay line in msec; #X text 24 292 see also:; #X obj 24 16 del16write~; #X obj 112 294 delread16~; #X obj 209 294 vd16~; #X text 16 353 similar pd-objects:; #X obj 201 352 delread~; #X obj 285 352 delwrite~; #X obj 378 352 vd~; #X obj 24 237 del16write~ del_line_xxx 500; #X text 21 51 This is very similar to the pd-object; #X text 49 81 It uses only 16bit to store the samples , which will need only half of the memory of pd's floatingpoint-based object.; #X text 50 119 However , there are 2 drawbacks: there will be some additional noise (because floats are more precise than 16bit) , and you cannot have values>1 stored in the delay-line; #X obj 368 51 delwrite~; #X text 411 306 updated for iem16 version1.0; #X connect 3 0 14 0;
--- NEW FILE: tab16write-help.pd --- #N canvas 44 17 653 456 12; #X floatatom 39 96 0 0 0 0 - - -; #X floatatom 176 170 0 0 0 0 - - -; #X text 208 192 creation argument; #X text 210 210 is array name; #X text 76 87 set y value; #X text 74 152 right inlet selects x value; #X msg 55 117 set array99; #X text 163 116 change array name; #X obj 39 195 tab16write array99; #X obj 31 27 tab16write; #X text 388 378 updated for iem16 version1.0; #X obj 17 355 tab16write~; #X obj 17 374 tab16read4~; #X obj 121 374 tab16read; #X obj 121 355 tab16write; #X obj 216 355 tab16send~; #X obj 216 374 tab16receive~; #X obj 340 360 table16; #X text 29 334 see also:; #X obj 438 156 table16 array99; #X text 133 28 write numbers to a 16bit-table; #X text 20 256 since [table16] can only hold 16bit-values , the stored numbers have to be integer (ok , we take care of this!) values between -32768..+32767.; #X connect 0 0 8 0; #X connect 1 0 8 1; #X connect 6 0 8 0;