[PD] problem with correct numbers in pd double precision

Lucas Cordiviola lucarda27 at hotmail.com
Mon Sep 21 10:46:05 CEST 2020


On 9/20/2020 2:38 PM, hans w. koch wrote:
> but would it warrant opening an issue on github?

There should be some way to write/read 64bit arrays in Pd-double. [text] 
can be used for other stuff as it is not really efficient inside Pd 
(even if it worked without the actual issues).

I think the easiest feature request could be adding [soundfiler] the 
ability to "write" with the -raw flag (actually is only for "reading") 
and also making it able to handle 8 bytes per value.

A little discussion here might lead Hans or me to issue some request.

?


Attached patch edited to show that it is "no go" using txt files.



Mensaje telepatico asistido por maquinas.

-------------- next part --------------
#N canvas 100 12 1052 660 12;
#X obj 33 196 text set bign;
#X obj 34 106 makefilename %.0f;
#X msg 63 170 0;
#X obj 30 296 text get bign;
#X msg 30 270 0;
#X obj 34 135 t a b;
#X text 31 35 1) store the number in text;
#X msg 270 70 write bign.txt;
#X msg 435 66 read bign.txt;
#X msg 580 65 clear;
#X obj 304 289 text get bign;
#X msg 304 263 0;
#X obj 336 349 makefilename %.0f;
#X obj 335 377 print good;
#X obj 304 410 print good2;
#X obj 30 326 route float symbol;
#X obj 30 403 print float;
#X obj 91 370 print symbol;
#X obj 304 319 t f f;
#X text 301 237 5) now its a float \, but sill contains all digits
;
#X obj 271 99 text define -k bign;
#A set 3.02875e+014 \; 3.02875e+014 \;;
#X msg 35 55 13;
#X obj 35 81 pow 13;
#X text 411 267 6) this stays consistent ONLY with reloading the .txt
;
#X text 434 284 otherwise it "degrades" upon iterated open/save/close/reopen
;
#X obj 604 539 text set bign;
#X obj 605 449 makefilename %.0f;
#X obj 605 478 t a b;
#X msg 604 359 13;
#X obj 604 385 pow 13;
#X msg 634 513 1;
#X obj 604 416 + 1;
#X text 670 354 7) add this number at index 1;
#X text 705 392 8) write to disk;
#X text 738 418 9) read back in;
#X text 266 42 2) write to disk;
#X text 432 32 3) read back in;
#X text 777 525 good: symbol "302875000000000";
#X text 766 462 9) go to step 5;
#X text 775 500 now we lost precision on index 0:;
#X text 605 320 ----further more------;
#X text 28 242 4) verify \, that its a symbol;
#X text 26 8 this patch is for Pd-double;
#X text 601 599 more: There should be a way to store 64bit arrays;
#X text 598 578 10);
#N canvas 288 20 816 652 more 0;
#X msg 144 189 13;
#X obj 144 215 pow 13;
#X obj 79 214 until;
#X obj 76 269 +;
#X msg 77 240 1;
#X obj 68 407 array set bna;
#X obj 97 347 +;
#X msg 98 324 1;
#X obj 96 373 t f f;
#X obj 74 296 t f b f;
#X msg 215 206 -1;
#X msg 79 188 10;
#X obj 114 149 t b b b;
#X obj 107 99 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X obj 442 20 array define bna 10;
#X obj 96 502 array get bna;
#X floatatom 94 472 5 0 0 0 - - -;
#X obj 97 532 makefilename %0.f;
#X obj 98 563 print;
#X obj 350 314 soundfiler;
#X msg 357 230 write -wave -bytes 4 bignarray.wav bna;
#X msg 366 268 read bignarray.wav bna;
#X msg 353 110 write -raw 0 1 8 l bignarray bna;
#X text 334 158 currently writing with -raw is not possible \, is only
for reading and is not possible yet to read/write at 8 bytes.;
#X text 329 73 should be something like writing a raw 64bit(8 bytes)
per sample file:, f 61;
#X connect 0 0 1 0;
#X connect 1 0 3 1;
#X connect 2 0 4 0;
#X connect 3 0 9 0;
#X connect 4 0 3 0;
#X connect 6 0 8 0;
#X connect 7 0 6 0;
#X connect 8 0 5 1;
#X connect 8 1 6 1;
#X connect 9 0 5 0;
#X connect 9 1 7 0;
#X connect 9 2 3 1;
#X connect 10 0 6 1;
#X connect 11 0 2 0;
#X connect 12 0 11 0;
#X connect 12 1 0 0;
#X connect 12 2 10 0;
#X connect 13 0 12 0;
#X connect 15 0 17 0;
#X connect 16 0 15 0;
#X connect 17 0 18 0;
#X connect 20 0 19 0;
#X connect 21 0 19 0;
#X restore 600 627 pd more;
#X connect 1 0 5 0;
#X connect 2 0 0 1;
#X connect 3 0 15 0;
#X connect 4 0 3 0;
#X connect 5 0 0 0;
#X connect 5 1 2 0;
#X connect 7 0 20 0;
#X connect 8 0 20 0;
#X connect 9 0 20 0;
#X connect 10 0 18 0;
#X connect 11 0 10 0;
#X connect 12 0 13 0;
#X connect 15 0 16 0;
#X connect 15 1 17 0;
#X connect 18 0 14 0;
#X connect 18 1 12 0;
#X connect 21 0 22 0;
#X connect 22 0 1 0;
#X connect 26 0 27 0;
#X connect 27 0 25 0;
#X connect 27 1 30 0;
#X connect 28 0 29 0;
#X connect 29 0 31 0;
#X connect 30 0 25 1;
#X connect 31 0 26 0;


More information about the Pd-list mailing list