[PD] phasor~ and osc~ right inlet: exact timing

Frank Barknecht fbar at footils.org
Sun Apr 18 11:25:03 CEST 2010


On Fri, Apr 16, 2010 at 08:19:09PM +0200, Frank Barknecht wrote:
> Mike's trick then is to take a snapshot~ of the original phasor at the
> moment of the desired phase resetting.  If you substract that value from
> the original phasor, you get a phasor~ shifted up or down just by the
> value it had when the phase was last reset.
> 
> Now you can add in the desired phase value again to get a wrap-phasor that is
> out of sync to the original phasor in exactly the desired fashion.

Actually I meant two write "take a [samphold~] of the original phasor".
Taking a snapshot~ or rather, a vsnapshot~ is something I have also
tried, but it gives the wrong results. See attached example for a
comparison of [vsnapshot~]->[vline~] with Mike's [samphold~] solution
(which I simplified a bit). Lesson to learn:  [vsnapshot~]->[vline~]
won't do what you may expect it to do.

Ciao
-- 
Frank
-------------- next part --------------
#N canvas 31 37 914 426 10;
#N canvas 0 0 450 300 vphasor.mbb 0;
#X obj 73 44 inlet~;
#X obj 72 265 outlet~;
#N canvas 263 13 762 384 banghold~ 0;
#X obj 101 280 samphold~;
#X obj 162 255 vline~;
#X obj 205 100 samplerate~;
#X obj 205 122 swap 1000;
#X obj 205 147 /;
#X obj 205 69 loadbang;
#X obj 162 198 f;
#X msg 162 230 -1 \, 0 0 \$1;
#X obj 162 41 inlet;
#X obj 162 177 b;
#X obj 102 41 inlet~;
#X obj 101 304 outlet~;
#X msg 289 69 bang;
#X text 234 24 samples its input whenever it receives a bang at the
first inlet. Accurate up to one sample duration.;
#X connect 0 0 11 0;
#X connect 1 0 0 1;
#X connect 2 0 3 0;
#X connect 3 0 4 0;
#X connect 3 1 4 1;
#X connect 4 0 6 1;
#X connect 5 0 2 0;
#X connect 6 0 7 0;
#X connect 7 0 1 0;
#X connect 8 0 9 0;
#X connect 9 0 6 0;
#X connect 10 0 0 0;
#X connect 12 0 2 0;
#X restore 89 127 pd banghold~;
#X obj 71 165 -~;
#X obj 71 227 wrap~;
#X obj 71 200 +~;
#X obj 72 81 phasor~;
#X obj 138 43 inlet;
#X obj 138 67 t f b;
#X obj 138 166 vline~;
#X connect 0 0 6 0;
#X connect 2 0 3 1;
#X connect 3 0 5 0;
#X connect 4 0 1 0;
#X connect 5 0 4 0;
#X connect 6 0 3 0;
#X connect 6 0 2 0;
#X connect 7 0 8 0;
#X connect 8 0 9 0;
#X connect 8 1 2 1;
#X connect 9 0 5 1;
#X restore 89 139 pd vphasor.mbb;
#N canvas 297 96 450 300 vphasor.vsnap 1;
#X obj 73 44 inlet~;
#X obj 73 265 outlet~;
#X obj 72 227 wrap~;
#X obj 72 81 phasor~;
#X obj 138 43 inlet;
#X obj 138 166 vline~;
#X obj 138 67 t b f;
#X obj 138 118 vsnapshot~;
#X obj 138 142 -;
#X obj 73 196 -~;
#X connect 0 0 3 0;
#X connect 2 0 1 0;
#X connect 3 0 7 0;
#X connect 3 0 9 0;
#X connect 4 0 6 0;
#X connect 5 0 9 1;
#X connect 6 0 7 0;
#X connect 6 1 8 1;
#X connect 7 0 8 0;
#X connect 8 0 5 0;
#X connect 9 0 2 0;
#X restore 212 139 pd vphasor.vsnap;
#X obj 125 206 -~;
#N canvas 0 0 450 300 (subpatch) 0;
#X array \$0-s 256 float 0;
#X coords 0 1 255 -1 200 140 1;
#X restore 378 195 graph;
#X obj 620 282 s \$0-s;
#X obj 620 198 loadbang;
#N canvas 0 0 450 300 (subpatch) 0;
#X array \$0-s1 256 float 0;
#X coords 0 1 255 -1 200 140 1;
#X restore 378 35 graph;
#N canvas 0 0 450 300 (subpatch) 0;
#X array \$0-s2 256 float 0;
#X coords 0 1 255 -1 200 140 1;
#X restore 598 35 graph;
#X obj 620 304 s \$0-s1;
#X obj 620 326 s \$0-s2;
#X obj 231 169 r \$0-SCOPE;
#X obj 145 240 r \$0-SCOPE;
#X obj 108 328 r \$0-SCOPE;
#X obj 88 356 tabwrite~ \$0-s1;
#X obj 125 268 tabwrite~ \$0-s;
#X obj 211 197 tabwrite~ \$0-s2;
#X msg 620 259 yticks 0 0.1 5 \, xticks 0 64 5;
#X obj 184 42 metro 150;
#X obj 229 66 s \$0-SCOPE;
#X obj 184 20 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X msg 627 221 \; pd dsp 1;
#X msg 184 67 0.25;
#X obj 89 60 sig~ 456;
#X text 222 120 wrong;
#X connect 0 0 13 0;
#X connect 0 0 2 0;
#X connect 1 0 2 1;
#X connect 1 0 15 0;
#X connect 2 0 14 0;
#X connect 5 0 16 0;
#X connect 5 0 20 0;
#X connect 10 0 15 0;
#X connect 11 0 14 0;
#X connect 12 0 13 0;
#X connect 16 0 4 0;
#X connect 16 0 8 0;
#X connect 16 0 9 0;
#X connect 17 0 21 0;
#X connect 17 0 18 0;
#X connect 19 0 17 0;
#X connect 21 0 0 1;
#X connect 21 0 1 1;
#X connect 22 0 0 0;
#X connect 22 0 1 0;


More information about the Pd-list mailing list