#N canvas 0 22 957 616 10;
#N canvas 0 22 450 300 (subpatch) 0;
#X array phasor-graph 256 float 0;
#X coords 0 1 255 -1 200 140 1;
#X restore 485 119 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X array vphasor-graph 256 float 0;
#X coords 0 1 255 -1 200 140 1;
#X restore 485 289 graph;
#X obj 98 342 tabwrite~ phasor-graph;
#X obj 313 343 tabwrite~ vphasor-graph;
#X msg 48 70 \; pd dsp 1;
#X obj 473 469 loadbang;
#X obj 163 50 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1
1;
#X obj 163 78 metro 150;
#X msg 473 495 \; phasor-graph xticks 0 64 1 \; phasor-graph xlabel
-1.1 0 64 128 192 256 \; vphasor-graph xticks 0 64 1 \; vphasor-graph
xlabel -1.1 0 64 128 192 256 \;;
#X obj 485 57 block~ 64 1;
#X text 691 346 ...while [vphasor.mmb~] does not.;
#X text 688 179 [phasor~] locks to block boundaries...;
#X obj 48 47 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X obj 163 107 t b b;
#X text 66 47 turn on dsp;
#X text 179 50 turn on to see difference;
#X text 236 147 reset phases to 0.25;
#X msg 209 146 0.25;
#X text 54 426 [vphasor.mmb~] acts just like [phasor~] \, except the
phase inlet is sample-accurate \, meaning it can be updated between
block boundaries.;
#X text 132 363 [tabwrite~] starts writing at block boundaries.;
#X obj 313 275 vphasor.mmb~ 204;
#X obj 98 275 phasor~ 204;
#X connect 5 0 8 0;
#X connect 6 0 7 0;
#X connect 7 0 13 0;
#X connect 12 0 4 0;
#X connect 13 0 2 0;
#X connect 13 0 3 0;
#X connect 13 1 17 0;
#X connect 17 0 20 1;
#X connect 17 0 21 1;
#X connect 20 0 3 0;
#X connect 21 0 2 0;
