#N canvas 351 47 650 572 10; #X obj 283 212 cnv 15 350 130 empty empty empty 20 12 0 14 -24198 -66577 0; #X obj 183 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 0 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 51 194 * 2; #X obj 51 217 + 1; #X obj 21 238 /; #X obj 21 264 outlet; #X obj 21 56 s BLTRIANGLE; #X obj 21 76 r BLTRIANGLE; #X connect 0 0 10 0; #X connect 1 0 3 0; #X connect 2 0 0 0; #X connect 3 0 4 0; #X connect 3 1 6 0; #X connect 4 0 5 0; #X connect 5 0 8 0; #X connect 6 0 7 0; #X connect 7 0 8 1; #X connect 8 0 9 0; #X connect 11 0 1 0; #X restore 262 383 pd compute_bandlimited_range; #X text 260 431 if frequency above border -> bandlimited triangle; #X text 260 447 if frequency below border -> raw triangle; #X obj 32 151 synth.osc.triangle.bl~ 20; #X text 219 49 if [synth.osc.triangle.bl~] is instantiated more than once \, only the first instance creates the tables. if the argument value differs \, the biggest is taken.; #X text 219 126 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.triangle.bl~] switches to a raw triangle.; #X obj 33 230 mix.out_~; #X text 18 502 Author: Roman Haefeli; #X text 17 520 Version: 0.1.2; #X text 220 22 Description: Generates a bandlimited triangle signal ; #X text 290 223 SYNOPSIS; #X text 288 252 inlet1: signal (frequency); #X text 288 269 inlet2: float (set phase); #X text 288 285 outlet1: signal (bandlimited triangle at given f); #X text 288 303 arg1: int (number of tables \, default 40); #X connect 7 0 8 0; #X connect 8 0 9 0; #X connect 9 0 14 0; #X connect 11 0 2 0; #X connect 14 0 17 0; #X connect 14 0 17 1;