#N canvas 47 54 871 435 10; #N canvas 4 20 454 304 Hz_to_period_length 1; #X floatatom 138 238 0 0 0; #X obj 138 142 t b f; #X text 138 259 period length in samples (float); #X floatatom 138 80 0 0 0; #X obj 138 206 / 1; #X text 183 79 frequency in Hz; #X obj 53 142 samplerate~; #X obj 53 119 loadbang; #X floatatom 138 175 5 0 0; #X connect 1 0 8 0; #X connect 1 1 4 1; #X connect 3 0 1 0; #X connect 4 0 0 0; #X connect 6 0 8 0; #X connect 7 0 6 0; #X connect 8 0 4 0; #X restore 78 302 pd Hz_to_period_length; #X obj 71 32 cnv 15 15 15 empty empty vasp.phasor 0 10 1 14 -262144 -1 0; #N canvas 40 55 247 122 clear_buffer 0; #X obj 54 79 vasp.update; #X obj 54 56 vasp.= 0; #X obj 54 26 inlet; #X connect 1 0 0 0; #X connect 2 0 1 0; #X restore 547 310 pd clear_buffer; #X text 71 83 optional argument/right inlet: frequency in period length in samples; #X obj 415 311 dac~; #X obj 415 267 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X text 437 266 play; #X text 71 63 vasp saw tooth ramp generator; #X obj 415 288 tabplay~ bufphasor; #X msg 547 287 vasp bufphasor; #X obj 414 124 wavedisplay-simple bufphasor \$0; #N canvas 92 108 276 288 inside 0; #X obj 63 149 s \$0-sample-length; #X msg 103 103 resize \$1; #X obj 103 56 loadbang; #X msg 103 77 88200; #X obj 103 124 s bufphasor; #X connect 1 0 4 0; #X connect 2 0 3 0; #X connect 3 0 1 0; #X connect 3 0 0 0; #X restore 680 311 pd inside; #X obj 77 217 vasp.update; #X obj 77 194 vasp.* 0.5; #X msg 77 127 vasp bufphasor; #X text 188 124 generate saw tooth at 20 Hz; #X floatatom 168 151 5 0 0; #X obj 77 239 bng 15 250 50 0 \$0-draw_display empty empty 0 -6 1152 8 -262144 -1 -1; #X obj 77 171 vasp.phasor 2205; #X obj 77 371 VASP-HELP; #X connect 5 0 8 0; #X connect 8 0 4 0; #X connect 8 0 4 1; #X connect 9 0 2 0; #X connect 12 0 17 0; #X connect 13 0 12 0; #X connect 14 0 18 0; #X connect 16 0 18 1; #X connect 18 0 13 0;