Martin Schied found a interesting distortion. Nothing new I guess but worth some analysation.
haut-parleur-doppler.pd is the original file from Martin, the other one my variation to get a better glimpse at it. If you like sunn o))) or similar you might like it. But I suggest you first look at how it behaves without feedback. >> Sounds really cool with a guitar and with high gain (around 50). What's nice >> is the change in the spectrum depending on the volume of the input. > > But all waveshapers also do change the spectrum according to the volume > (except those that are linear, which basically means those waveshapers that > are configured to do nothing.) This is wrong for this distortion. And that again is what is interesting about it. The distortion depends only on the travel speed of the vd~. But if you multiply the signal with a gain you also change the velocity by that amount. A negative velocity (down to a delay of 0) means a pitchshift upwards. While a positive velocity means a downshift. At a velocity of 1ms/ms is the turning point, for faster modulation the signal is played in reverse. A reflection at 0Hz, which is basically the same as a Nyquist reflection. The parallel up/downshifting leads to a chaotic spectrum change. With a speed of .7 ms/ms we have at the same time the signal with 30% and 170% playback speed. Which clearly has no relation to the original pitch and no harmonic relation left. This is only intensified through the reversed playback and the constant velocity change. While typical (soft-)clipping only generates harmonics related to the fundamental. The more I think about it the more fascinated I am that this results in something interesting to the ear. So what we have here is some kind of natural asymmetrical distortion. As the velocity is the important factor it has the interesting property of being frequency (and amplitude) dependant! A modulation frequency (amplitude) of *2 results in a velocity of *2. This means: the higher the input frequency (or amplitude) the harsher the distortion. If wanted this can be compensated for with a simple lop~, who has a rolloff of -6 Db/dec or in rms: a frequency increase of *2 means a amplitude reduction to 0.5. So every frequency above the cut-off-frequency has now (almost) the same impact on the distortion. Please correct me if I'm wrong somewhere. And have fun. -
#N canvas 0 0 395 185 10; #X obj 19 26 adc~; #X obj 18 144 dac~; #X obj 26 47 delwrite~ a 500; #X floatatom 48 87 5 0 0 0 - - -; #X obj 18 125 vd~ a; #X obj 18 68 +~ 1; #X obj 18 106 +~ 2; #X obj 18 87 *~ 5; #X connect 0 0 2 0; #X connect 0 0 5 0; #X connect 3 0 7 1; #X connect 4 0 1 0; #X connect 5 0 7 0; #X connect 6 0 4 0; #X connect 7 0 6 0;
#N canvas 475 79 679 580 10; #X floatatom 127 50 9 0 0 0 - - -; #X obj 123 27 hsl 128 15 20 5000 1 0 empty empty osc-freq -2 -8 0 10 -262144 -1 -1 2839 1; #X floatatom 5 142 9 0 0 0 - - -; #X obj -1 117 hsl 128 15 1 2500 1 0 empty empty gain -2 -8 0 10 -262144 -1 -1 4184 1; #X obj 52 224 vd~ foo; #X obj 386 86 diy2_303/smp-transpose1; #X msg 373 62 0; #X obj 367 40 metro 12000; #X obj 365 20 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1; #X obj 76 245 delwrite~ bar 5000; #X obj 126 68 osc~; #X obj 222 164 delwrite~ foo 25000; #X obj 15 45 loadbang; #X obj 133 114 -~; #X obj 217 66 hsl 128 15 0 1 0 0 empty empty feedback -2 -8 0 10 -262144 -1 -1 6985 1; #X floatatom 262 108 5 0 0 0 - - -; #X obj 213 107 *~ 0; #X obj 262 19 loadbang; #X msg 271 39 0.55; #X obj 10 184 line~; #X msg 8 165 \$1 100; #X obj 55 200 expr~ ($v1+3)*$v2+5; #X obj 152 491 samplerate~; #X floatatom 152 512 9 0 0 0 - - -; #X obj 153 470 metro 3000; #X obj 159 439 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 2 2; #X obj 7 425 hradio 15 1 0 7 empty empty empty 0 -8 0 10 -262144 -1 -1 2; #X msg 12 471 set 64 1 \$1; #X obj 37 400 init 2; #X obj 7 447 expr pow(2 \, $f1-2); #X obj 137 481 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X obj 191 87 delread~ bar 5; #X obj 104 165 lop~ 20; #X obj 115 143 lop~ 350; #X obj 73 184 hip~ 14; #N canvas 0 0 450 300 limit 0; #X obj 201 22 inlet~; #X obj 264 22 inlet~; #X obj 172 189 z~ 64; #X obj 212 188 limiter~ 50 1; #X obj 301 188 z~ 64; #X obj 210 214 *~; #X obj 271 214 *~; #X obj 162 84 lp10_butt~ 21000; #X obj 268 83 lp10_butt~ 21000; #X obj 207 112 hip~ 13; #X obj 269 112 hip~ 13; #X obj 210 258 outlet~; #X obj 269 256 outlet~; #X connect 0 0 7 0; #X connect 1 0 8 0; #X connect 2 0 5 0; #X connect 3 0 5 1; #X connect 3 0 6 0; #X connect 4 0 6 1; #X connect 5 0 11 0; #X connect 6 0 12 0; #X connect 7 0 9 0; #X connect 8 0 10 0; #X connect 9 0 2 0; #X connect 9 0 3 0; #X connect 10 0 4 0; #X connect 10 0 3 1; #X restore 19 290 pd limit; #X obj 13 317 output~; #X msg 60 69 68.7185; #X msg 4 73 13.1658; #X obj 7 497 block~; #X connect 0 0 10 0; #X connect 1 0 0 0; #X connect 2 0 20 0; #X connect 3 0 2 0; #X connect 4 0 9 0; #X connect 4 0 35 0; #X connect 6 0 5 0; #X connect 7 0 6 0; #X connect 8 0 7 0; #X connect 10 0 13 0; #X connect 12 0 38 0; #X connect 12 0 37 0; #X connect 13 0 11 0; #X connect 13 0 33 0; #X connect 14 0 15 0; #X connect 15 0 16 1; #X connect 16 0 13 1; #X connect 17 0 18 0; #X connect 18 0 14 0; #X connect 19 0 21 1; #X connect 20 0 19 0; #X connect 21 0 4 0; #X connect 22 0 23 0; #X connect 24 0 22 0; #X connect 24 0 30 0; #X connect 25 0 24 0; #X connect 26 0 29 0; #X connect 26 0 30 0; #X connect 27 0 39 0; #X connect 28 0 26 0; #X connect 28 0 25 0; #X connect 29 0 27 0; #X connect 30 0 22 0; #X connect 31 0 16 0; #X connect 32 0 34 0; #X connect 33 0 32 0; #X connect 34 0 21 0; #X connect 35 0 36 0; #X connect 35 0 36 1; #X connect 37 0 1 0; #X connect 38 0 3 0;
_______________________________________________ [email protected] mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
