#N canvas 285 15 647 568 10; #X obj 283 212 cnv 15 350 130 empty empty empty 20 12 0 14 -24198 -66577 0; #X text 288 252 inlet1: signal (frequency); #X text 288 269 inlet2: float (set phase); #X obj 184 354 cnv 15 450 120 empty empty empty 20 12 0 14 -241291 -66577 0; #X floatatom 262 408 7 0 0 0 - - -; #X text 315 410 Hz; #X text 194 408 border @; #X obj 244 484 cnv 15 390 25 empty empty empty 20 12 0 14 -258699 -66577 0; #X text 252 490 due to bandlimitation peaks above/below +/-1 may occur ; #X obj 34 61 hsl 128 15 20 17000 1 0 empty empty frequency -2 -8 0 10 -262144 -1 -1 4900 1; #X obj 31 83 pack f 100; #X obj 31 104 line~; #X text 261 361 try different values for :; #N canvas 573 67 190 308 compute_bandlimited_range 0; #X msg 21 34 get_num_of_tables; #X obj 21 97 route num_of_tables; #X obj 21 12 loadbang; #X obj 21 128 t b f; #X obj 21 152 samplerate~; #X obj 21 174 / 2; #X obj 21 203 /; #X obj 21 229 outlet; #X obj 21 56 s BLSAW; #X obj 21 76 r BLSAW; #X obj 51 177 + 1; #X connect 0 0 8 0; #X connect 1 0 3 0; #X connect 2 0 0 0; #X connect 3 0 4 0; #X connect 3 1 10 0; #X connect 4 0 5 0; #X connect 5 0 6 0; #X connect 6 0 7 0; #X connect 9 0 1 0; #X connect 10 0 6 1; #X restore 262 379 pd compute_bandlimited_range; #X text 260 431 if frequency above border -> bandlimited saw; #X text 260 447 if frequency below border -> raw saw; #X text 219 52 if [synth.osc.saw.bl~] is instantiated more than once \, only the first instance creates the tables. if the 1st argument value differs \, the biggest is taken.; #X text 217 128 the number of tables is at the same time the number of harmonics of the table with the highest number of harmonics. this value defines also the frequency \, below which [synth.osc.saw.bl~] switches to a raw saw.; #X obj 33 230 mix.out_~; #X text 290 223 SYNOPSIS; #X text 288 285 outlet1: signal (bandlimited saw at given f); #X text 18 502 Author: Roman Haefeli; #X text 17 520 Version: 0.1.2; #X text 220 22 Description: Generates a bandlimited saw signal; #X obj 32 151 synth.osc.saw.bl~; #X text 288 303 arg1: int (number of tables \, default 40); #X connect 9 0 10 0; #X connect 10 0 11 0; #X connect 11 0 24 0; #X connect 13 0 4 0; #X connect 24 0 18 0; #X connect 24 0 18 1;