#N canvas 558 60 544 580 12;
#X text 47 16 CONVERTING CONTROL TO SIGNALS;
#X obj 244 379 output~;
#X obj 332 381 output~;
#N canvas 799 228 303 263 metro 0;
#X obj 88 38 loadbang;
#X msg 88 65 1;
#X obj 88 131 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
;
#X obj 88 153 sel 0 1;
#X obj 88 190 outlet;
#X obj 152 192 outlet;
#X obj 88 96 metro 2;
#X connect 0 0 1 0;
#X connect 1 0 6 0;
#X connect 2 0 3 0;
#X connect 3 0 4 0;
#X connect 3 1 5 0;
#X connect 6 0 2 0;
#X restore 244 271 pd metro;
#X msg 244 297 1 2;
#X msg 332 299 0 2;
#X obj 244 334 line~;
#X obj 332 335 vline~;
#X text 46 129 Here we try out line~ and vline~ as triangle wave generators.
The subpatch is still sending alternating bangs as in the last patch
\, but now at an audible frequency \, every 2 msec.;
#X text 47 195 The effect of line~ rounding breakpoints to the nearest
block (on the order of a millisecond) is that each 4-millisecond-long
cycle has a different shape. Using vline~ resolves the problem.;
#X text 337 523 Updated for Pd 0.37;
#X text 66 472 Sometimes you will want to use vline~ in place of sig~
for the same reason.;
#X text 46 49 For controlling amplitudes \, line~ \, with its block-aligned
breakpoints \, is accurate enough for most purposes. But certain usages
\, such as this patch \, demand more accuracy. The vline~ object \,
somewhat more expensive than line~ \, can handle breakpoints to sub-sample
accuracy., f 60;
#X connect 3 0 4 0;
#X connect 3 1 5 0;
#X connect 4 0 6 0;
#X connect 4 0 7 0;
#X connect 5 0 6 0;
#X connect 5 0 7 0;
#X connect 6 0 1 0;
#X connect 6 0 1 1;
#X connect 7 0 2 0;
#X connect 7 0 2 1;
