I second that it would be nice to be able to display waveforms with standard pd. In this respect, opening/saving audio files appears to be the major problem here.
I do get along rather well with the attached hand-made oscilloscope, which draws tables and which can certainly be extended to draw audio file waveforms (some sort of downsampling needed though).
Matthias
derek holzer schrieb:
Just a thought:
this whole thing of using GEM would be pretty unnecessary if opening a soundfile from the HD or visualizing a table in a graph didn't cause audio dropouts. Then the whole thing could be visualized with several moveable canvases over a graph structure. But I guess that is when I need to move over to the "threaded soundfiler" or "improved GUI" threads...
d.
#N canvas 312 131 725 265 10; #X obj 80 -28 adc~; #X obj 76 14 cnv 10 600 150 empty empty empty 0 0 1 16 -241470 -42246 0; #X obj 80 144 tgl 18 0 oo1 empty on/off 24 10 1 8 -262144 -1 -1 1 1 ; #N canvas 90 0 832 750 oszi_1 0; #X obj -2 -51 cnv 15 80 24 empty empty oszi 20 12 1 18 -233017 -1109 0; #X obj 79 -51 cnv 15 120 24 empty empty subpatch 0 12 1 18 -233017 -1109 0; #X obj 560 -27 cnv 15 90 20 empty empty empty 20 12 0 14 -261681 -66577 0; #X obj 391 10 loadbang; #X obj 233 254 delay 1000; #X obj 15 12 inlet~; #X obj 527 488 cnv 15 40 25 empty empty empty 20 12 0 14 -261681 -66577 0; #X obj 470 65 cnv 15 30 30 empty empty empty 20 12 0 14 -261681 -66577 0; #X obj 255 476 cnv 15 40 40 empty empty empty 20 12 0 14 -261681 -66577 0; #X obj 309 224 div 2; #X obj 309 301 pow 0; #X msg 309 278 10; #X obj 352 255 select 0 1; #X msg 352 284 1; #X msg 384 284 3; #X obj 336 328 * 1; #X floatatom 316 180 5 0 0 0 - - -; #X msg 279 104 1; #X msg 352 104 1; #X obj 279 129 + 1; #X obj 352 129 - 1; #X obj 352 154 * -1; #X msg 316 104 0; #X obj 366 375 / 10; #X obj 345 410 * -1; #X obj 291 68 cnv 15 25 30 empty empty empty 20 12 0 14 -261681 -66577 0; #X obj 364 68 cnv 15 25 30 empty empty empty 20 12 0 14 -261681 -66577 0; #X text -4 46 ------------------------------------------------------------ ; #X text 416 46 ----------------------------------; #X obj 42 358 cnv 15 55 20 empty empty empty 20 12 0 14 -261681 -66577 0; #X msg 45 215 0; #X obj 45 240 metro 1000; #X obj 79 272 delay 500; #X obj 123 11 inlet; #X text 169 9 <-- bang to reset; #X text 197 22 overload; #X obj 45 322 pack 8 8; #X msg 79 294 8; #X msg 45 294 14; #X obj 120 120 cnv 15 55 20 empty empty empty 20 12 0 14 -261681 -66577 0; #X obj 336 351 t b f; #X obj 309 255 t b f; #X obj 352 224 mod 2; #X obj 316 200 t f f; #X obj 123 76 t b b; #X obj 2 194 threshold~ 0.98 100 -0.98 100; #X obj 82 165 cnv 15 90 20 empty empty empty 20 12 0 14 -261681 -66577 0; #X obj 490 253 phasor~; #X obj 491 231 sig~; #X obj 491 186 samplerate~; #X obj 259 435 pack 0.1 1 -1; #X obj 560 343 cnv 15 90 20 empty empty empty 20 12 0 14 -261681 -66577 0; #X obj 566 248 cnv 15 60 25 empty empty empty 20 12 0 14 -261681 -66577 0; #X obj 458 461 clip~ -1 1; #X obj 521 -3 block~ 1024; #X obj 491 208 / 1024; #X obj 552 276 / 1000; #X obj 552 298 * 44100; #X obj 491 322 *~ 4410; #X msg 123 106 ; ui_ovl1 color 8 8; #X obj 16 167 tabwrite~ oszi1_buffer; #X msg 45 344 ; ui_ovl1 color $2 $1; #X obj 458 492 tabwrite~ meas1; #X obj 492 345 tabread4~ oszi1_buffer; #X obj 552 253 r s_xtime1; #X obj 458 73 r oo1; #X obj 352 75 r py1; #X obj 279 75 r my1; #X obj 521 -25 table oszi1_buffer 11050; #X msg 577 70 100; #X obj 591 91 cnv 15 60 25 empty empty empty 20 12 0 14 -261681 -66577 0; #X obj 577 96 s r_xtime1; #X msg 259 462 ; meas1 bounds 0 $2 1023 $3 ; meas1 yticks 0 $1 5 ; meas1 ylabel 1060 $3 0 $2; #X obj 458 99 metro 250; #X connect 3 0 4 0; #X connect 3 0 22 0; #X connect 3 0 49 0; #X connect 3 0 69 0; #X connect 4 0 50 0; #X connect 5 0 45 0; #X connect 5 0 60 0; #X connect 9 0 41 0; #X connect 10 0 15 0; #X connect 11 0 10 0; #X connect 12 0 13 0; #X connect 12 1 14 0; #X connect 13 0 15 1; #X connect 14 0 15 1; #X connect 15 0 40 0; #X connect 16 0 19 1; #X connect 16 0 20 1; #X connect 16 0 43 0; #X connect 17 0 19 0; #X connect 18 0 20 0; #X connect 19 0 16 0; #X connect 20 0 21 0; #X connect 21 0 16 0; #X connect 22 0 16 0; #X connect 23 0 50 0; #X connect 24 0 50 2; #X connect 24 0 53 1; #X connect 30 0 31 0; #X connect 31 0 38 0; #X connect 31 0 32 0; #X connect 32 0 37 0; #X connect 33 0 44 0; #X connect 36 0 61 0; #X connect 37 0 36 0; #X connect 38 0 36 0; #X connect 40 0 50 0; #X connect 40 1 23 0; #X connect 40 1 24 0; #X connect 40 1 50 1; #X connect 40 1 53 2; #X connect 41 0 11 0; #X connect 41 1 10 1; #X connect 42 0 12 0; #X connect 43 0 9 0; #X connect 43 1 42 0; #X connect 44 0 59 0; #X connect 44 1 30 0; #X connect 45 0 31 0; #X connect 45 1 31 0; #X connect 47 0 58 0; #X connect 48 0 47 0; #X connect 49 0 55 0; #X connect 49 0 57 1; #X connect 50 0 72 0; #X connect 53 0 62 0; #X connect 55 0 48 0; #X connect 56 0 57 0; #X connect 57 0 58 1; #X connect 58 0 63 0; #X connect 63 0 53 0; #X connect 64 0 56 0; #X connect 65 0 73 0; #X connect 66 0 18 0; #X connect 67 0 17 0; #X connect 69 0 71 0; #X connect 73 0 60 0; #X connect 73 0 62 0; #X coords 0 0 0.00222222 0.00333333 200 140 0; #X restore 80 19 pd oszi_1; #X obj 650 78 bng 12 250 50 0 py1 empty + 1 -10 1 14 -262144 -1 -1 ; #X obj 650 95 bng 12 250 50 0 my1 empty - 3 16 1 18 -262144 -1 -1; #X obj 501 15 cnv 15 15 25 empty empty p 4 10 1 14 -262131 -1 0; #X obj 517 15 cnv 15 30 25 empty empty (t) 0 10 1 14 -262131 -1 0; #X obj 312 16 cnv 15 120 24 empty ui_ovl1 OVERLOAD! 2 11 1 14 -228992 -228992 0; #X obj 152 17 bng 20 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X text 174 19 <-- click to reset; #X obj 559 145 nbx 3 14 0 250 0 0 s_xtime1 r_xtime1 msec 35 8 1 8 -262144 -1 -1 40 256; #N canvas 0 0 450 300 graph2 0; #X array meas1 1024 float 0; #X coords 0 0.3 1023 -0.3 540 100 1; #X restore 80 41 graph; #X obj 81 -7 hip~ 5; #X connect 0 0 13 0; #X connect 9 0 3 1; #X connect 13 0 3 0;