#N canvas 541 23 455 612 12;
#X declare -path else;
#X obj 118 539 vline~;
#X obj 108 470 bng 20 250 50 0 empty empty empty 17 7 0 10 #dcdcdc
#000000 #000000;
#X obj 215 474 random 100;
#X obj 215 534 sig~;
#X floatatom 215 506 0 0 0 0 - - - 0;
#X obj 215 572 print~ SIG;
#X obj 108 570 print~ VLINE;
#X obj 284 172 sig~;
#X obj 284 124 tgl 17 0 empty empty empty 17 7 0 10 #dcdcdc #000000
#000000 0 1;
#X floatatom 284 147 5 0 0 0 - - - 0;
#X obj 284 200 display~;
#X obj 215 448 metro 1 1 samps;
#X text 37 241 But then we have the [vline~] object \, which offers
a more accurate conversion. It is mostly a line/envelope generator
as we'll see \, but it can also be used for this type of conversion.
, f 55;
#X text 37 304 Below \, we have [metro] sending bangs at each sample.
We use this to generate random values from 0 to 99 with the native
[random] object., f 55;
#X obj 100 147 setdsp~;
#X text 32 47 The native [sig~] object converts control data to audio
signal. But \, as we've seen \, Pd usually has an inherent control
rate that prevents more than one control value affecting an audio block
\, so it can only convert one value per block., f 55;
#X text 37 352 Click on the bang and see how [vline~] is capable of
generating a block of audio with one random value per sample \, but
[sig~] can only convert the last received value., f 55;
#X obj 272 17 declare -path else;
#X obj 215 424 tgl 17 0 empty empty empty 17 7 0 10 #dfdfdf #000000
#000000 0 1;
#X text 238 422 <= start metronome;
#X text 216 125 click =>;
#X text 41 470 click =>;
#X connect 0 0 6 0;
#X connect 1 0 5 0;
#X connect 1 0 6 0;
#X connect 2 0 4 0;
#X connect 3 0 5 0;
#X connect 4 0 0 0;
#X connect 4 0 3 0;
#X connect 7 0 10 0;
#X connect 8 0 9 0;
#X connect 9 0 7 0;
#X connect 11 0 2 0;
#X connect 18 0 11 0;
