[PD] Analog/good-sounding oscillators in PD

Frank Barknecht fbar at footils.org
Thu Apr 6 22:17:36 CEST 2006


Hallo,
alexandre matheson hat gesagt: // alexandre matheson wrote:

> It is my understanding that analog synthesizers generate the basic  
> waveforms with additive synthesis. I'm wondering if using [tabosc4~]  
> and sinesum be a step in the right direction?

To fight foldover at half the sample rate this will only work for a
certain range. For example if you want to play any non-sine waveform
at almost half the sample rate, you will only be able to play a
sine-waveform at that frequency without any partial above that folding
over. Such foldover will also happen when you play a sinesum through
tabosc4~.

Miller's book describes some ways around this problem, which I
sometimes use as well (attached is a little GOP abstraction ripped
straight from his examples).

Besides foldover, which can be fought, there also is another area of
getting "good" sounding analogish oscillators: Analog gear tends to
have certain distortions an irregularites, that people tend to like
and to associate with that "warm" analog feeling. I guess, Reaktor may
introduce some of this stuff as well. There is a LADSPA plugin, forgot
its name, by Steve Harris which has a "warmth" control to introduce
such distortions, but I think, these are hard to model and would need
a lot of fiddling. Anyways static waveforms always tend to sound a bit
digital, so finding ways to make the sounds dynamic often is useful. 

Ciao
-- 
 Frank Barknecht                 _ ______footils.org_ __goto10.org__
-------------- next part --------------
#N canvas 524 501 551 377 10;
#X obj 210 142 hsl 64 15 0 1 0 0 \$0-pwm \$0-pwm PWM 2 8 0 8 -262144
-1 -1 0 1;
#X obj 208 115 hradio 15 1 0 2 \$0-waveform \$0-waveform waveform 0
20 0 8 -262144 -1 -1 0;
#X obj 23 125 inlet;
#N canvas 367 265 781 538 1002-16x 0;
#X obj 66 279 *~ 0.064;
#X obj 66 302 rpole~ 0.93538;
#X obj 66 325 *~ 0.00431;
#X obj 66 348 cpole~ 0.96559 0.05592;
#X obj 66 374 cpole~ 0.96559 -0.05592;
#X obj 66 397 *~ 0.125;
#X obj 66 420 rzero~ -1;
#X obj 66 443 rzero~ -1;
#X obj 66 466 rzero~ -1;
#X obj 66 124 phasor~;
#X obj 579 128 block~ 1024 1 16;
#X obj 66 89 inlet;
#X obj 66 500 outlet~;
#X text 258 361 These objects make a 3-pole \, 3-zero Butterwirth low-pass
filter with cutoff at 15kHz (assuming 44100 sample rate.) The filter
was designed using the "buttercoef3" abstraction introduced in patch
H13.butterworth.pd in this series.;
#X floatatom 125 69 0 0 0 0 - - -;
#X obj 125 102 phasor~ 0;
#X obj 141 161 phasor~ 0;
#X obj 141 137 + 0.2;
#X obj 125 211 -~;
#X obj 269 193 pack 0 10;
#X obj 269 169 unpack 0 0;
#X obj 342 195 pack 0 10;
#X obj 199 102 t b f;
#X obj 269 88 r \$0-waveform;
#X obj 269 112 select 0 1;
#X obj 257 64 loadbang;
#X msg 269 137 1 0;
#X msg 306 137 0 1;
#X obj 199 77 r \$0-pwm;
#X obj 66 254 *~ 1;
#X obj 209 256 *~ 0;
#X obj 270 219 line;
#X obj 342 221 line;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 2 0 3 0;
#X connect 3 0 4 0;
#X connect 3 1 4 1;
#X connect 4 0 5 0;
#X connect 5 0 6 0;
#X connect 6 0 7 0;
#X connect 7 0 8 0;
#X connect 8 0 12 0;
#X connect 9 0 29 0;
#X connect 11 0 9 0;
#X connect 11 0 15 0;
#X connect 11 0 17 0;
#X connect 14 0 15 0;
#X connect 14 0 17 0;
#X connect 15 0 18 0;
#X connect 16 0 18 1;
#X connect 17 0 16 0;
#X connect 18 0 30 0;
#X connect 19 0 31 0;
#X connect 20 0 19 0;
#X connect 20 1 21 0;
#X connect 21 0 32 0;
#X connect 22 0 17 0;
#X connect 22 1 17 1;
#X connect 23 0 24 0;
#X connect 24 0 26 0;
#X connect 24 1 27 0;
#X connect 25 0 26 0;
#X connect 26 0 20 0;
#X connect 27 0 20 0;
#X connect 28 0 22 0;
#X connect 29 0 0 0;
#X connect 30 0 0 0;
#X connect 31 0 29 1;
#X connect 32 0 30 1;
#X coords 0 0 1 1 85 60 0;
#X restore 23 148 pd \$0-16x;
#X obj 24 180 outlet~;
#X connect 2 0 3 0;
#X connect 3 0 4 0;
#X coords 0 -1 1 1 85 60 1 200 100;


More information about the Pd-list mailing list