[PD] pure-data / syncing audio and video in gem

sven ml.sven at subscience.de
Sun Apr 15 18:54:23 CEST 2007


At 17:43 14.04.2007, you wrote:
>dear sven
>i read your post on
>http://lists.puredata.info/pipermail/pd-list/2006-11/044164.html
>and have some problems with the realisation of your proposal.
>(
>>the best way to make sure that a/v stays perfectly in sync would be to play the audio
>>with [vline~] + [tabread4~] and [snapshot~] the ouput of [vline~] every [gemhead]
>>to determine the frame of the video to be displayed.
>)
>because i generally work in pd only with images not with sound, i
>don´t get the problem solved.
>is it maybe possible to get an example patch of your working
>audio/video sync for gem ?
>i use osx and pd-0.39.2-extended-test6

hi niki,
i've attached a pretty self-explanatory patch (?) to try it out.
just load an audio and a video file and press play.
play around with "scratch" to better see/hear see how it works.
you can use these testfiles (will be deleted in 3 days)
for instant satisfaction:
http://popmodernism.org/B31C87A5289C61FE/kr.wav
http://popmodernism.org/B31C87A5289C61FE/kr.mov

cheers,
sven. 
-------------- next part --------------
#N canvas 641 132 651 811 10;
#X obj 17 18 soundfiler;
#X obj 17 -26 openpanel;
#X obj 17 -46 bng 15 250 50 0 empty empty select_audio_file 0 -6 0
8 -262144 -1 -1;
#X msg 17 -4 read -resize \$1 audio;
#X floatatom 17 70 10 0 0 0 - - -;
#X obj 23 532 hsl 501 100 0 1 0 0 \$0-playpos-s \$0-playpos-r empty
-2 -6 0 8 -233017 -1 -355 0 1;
#N canvas 0 0 450 300 graph2 0;
#X array audio 271210 float 2;
#X coords 0 1 271210 -1 500 100 1;
#X restore 23 532 graph;
#X obj 17 454 tabread4~ audio;
#X obj 17 476 dac~;
#X obj 17 89 value a_len;
#X obj 105 89 value a_sf;
#X msg 105 67 44100;
#X obj 105 45 loadbang;
#X obj 187 45 loadbang;
#X obj 187 89 value v_fr;
#X msg 187 67 23.976;
#N canvas 0 0 454 304 gemwin 0;
#X obj 132 136 gemwin;
#X obj 67 89 outlet;
#X obj 67 10 inlet;
#X msg 67 70 set destroy;
#X msg 132 112 create \, 1;
#X msg 198 112 destroy;
#X msg 156 71 set create;
#X obj 67 41 route create;
#X connect 2 0 7 0;
#X connect 3 0 1 0;
#X connect 4 0 0 0;
#X connect 5 0 0 0;
#X connect 6 0 1 0;
#X connect 7 0 3 0;
#X connect 7 0 4 0;
#X connect 7 1 6 0;
#X connect 7 1 5 0;
#X restore 292 -24 pd gemwin;
#X msg 292 -44 create;
#X obj 286 294 gemhead;
#X obj 420 476 pix_texture;
#X obj 420 -46 bng 15 250 50 0 empty empty select_video_file 0 -6 0
8 -262144 -1 -1;
#X floatatom 463 416 5 0 10000 1 frame# - -;
#X obj 420 -26 openpanel;
#X msg 420 -4 open \$1;
#X obj 420 498 rectangle 4 3;
#X obj 420 454 pix_film;
#X obj 17 262 line~;
#X msg 42 240 0;
#X obj 129 417 snapshot~;
#X obj 286 316 t a b;
#X obj 129 476 s \$0-playpos-r;
#X obj 129 454 expr $f1/a_len;
#X obj 269 45 loadbang;
#X obj 269 89 value a_ps;
#X obj 17 213 pack f f;
#X obj 17 136 bng 15 250 50 0 empty empty PLAY 0 -6 0 8 -24198 -1 -1
;
#X obj 17 155 t b b;
#X obj 17 177 expr a_len \; a_len/a_sf/a_ps*1000;
#X text 96 27 audio sfreq;
#X text 176 27 video frate;
#X text 266 27 av playspeed;
#X obj 463 331 f;
#X obj 229 454 expr int($f1/a_sf*v_fr+0.5);
#X obj 62 136 bng 15 250 50 0 empty empty STOP 0 -6 0 8 -258699 -1
-1;
#X obj 18 352 +~;
#X obj 169 229 +~ 1;
#X obj 170 279 *~;
#X obj 183 136 tgl 15 0 empty empty SCRATCH 0 -6 0 8 -262144 -1 -1
0 1;
#X obj 239 136 bng 15 250 50 0 empty empty WHOLE_FILE 0 -6 0 8 -262144
-1 -1;
#X obj 239 156 expr a_len/2;
#X floatatom 239 178 10 0 0 0 - - -;
#X floatatom 214 178 3 0 0 0 - - -;
#X msg 269 67 0.8;
#X obj 169 251 *~ 10000;
#X obj 169 207 osc~ 1;
#X obj 203 -32 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1
1;
#X msg 222 -41 \; pd dsp \$1;
#X text 294 -61 gemwin;
#X text 232 -63 audio;
#X connect 0 0 4 0;
#X connect 1 0 3 0;
#X connect 2 0 1 0;
#X connect 3 0 0 0;
#X connect 4 0 9 0;
#X connect 7 0 8 0;
#X connect 11 0 10 0;
#X connect 12 0 11 0;
#X connect 13 0 15 0;
#X connect 15 0 14 0;
#X connect 16 0 17 0;
#X connect 17 0 16 0;
#X connect 18 0 29 0;
#X connect 19 0 24 0;
#X connect 20 0 22 0;
#X connect 21 0 25 1;
#X connect 22 0 23 0;
#X connect 23 0 25 0;
#X connect 25 0 19 0;
#X connect 26 0 44 0;
#X connect 27 0 26 0;
#X connect 28 0 31 0;
#X connect 28 0 42 0;
#X connect 29 0 25 0;
#X connect 29 1 28 0;
#X connect 31 0 30 0;
#X connect 32 0 52 0;
#X connect 34 0 26 0;
#X connect 35 0 36 0;
#X connect 36 0 37 0;
#X connect 36 1 27 0;
#X connect 37 0 34 0;
#X connect 37 1 34 1;
#X connect 41 0 21 0;
#X connect 42 0 41 0;
#X connect 43 0 27 0;
#X connect 44 0 7 0;
#X connect 44 0 28 0;
#X connect 45 0 53 0;
#X connect 46 0 44 1;
#X connect 47 0 46 1;
#X connect 48 0 49 0;
#X connect 49 0 50 0;
#X connect 50 0 53 1;
#X connect 51 0 54 0;
#X connect 52 0 33 0;
#X connect 53 0 46 0;
#X connect 54 0 45 0;
#X connect 55 0 56 0;


More information about the Pd-list mailing list