From 9340768f6c7dea7cb7fe348f6fdf52db75ce9d82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Tue, 23 Nov 2004 15:29:47 +0000 Subject: This commit was generated by cvs2svn to compensate for changes in r2300, which included commits to RCS files with non-trunk default branches. svn path=/trunk/externals/iem16/; revision=2301 --- examples/table16.pd | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 examples/table16.pd (limited to 'examples/table16.pd') diff --git a/examples/table16.pd b/examples/table16.pd new file mode 100644 index 0000000..50e6ccb --- /dev/null +++ b/examples/table16.pd @@ -0,0 +1,60 @@ +#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; -- cgit v1.2.1