[LAD] What KvR didn´t understand.

Ove Karlsen ove.karlsen at paradoxuncreated.com
Mon Jan 7 12:57:58 UTC 2013


What KvR didn´t understand 10 yrs ago, and still don´t understand.

Why does digital synths often sound so bad? Either stale, or harsh etc.

Let me tell you in complete truth and honesty, is has got nothing to do 
with digital. It has something to do with the engineers making the 
algorithms.

When I was a newbie DSP engineer, the first thing I tried was making a 
TB-303 filter. Which is what a lot of people do first. I talked to the 
people on #musicdsp, and they had little clue, some had tried and said 
it was difficult or impossible, some say they had succeded but their 
filters didn´t sound too good.

On a few days, not having touched code, since I was 12 years old, I did 
a resonance filter, that screamed and shreaked. Some engineers in the 
KvR forum, said it was a bad thing to do, because their job now got so 
much more difficult.

When in reality, it was not difficult at all. And this is typical for 
those kinds of engineers. They don´t get into the algorithm. They don´t 
understand what is going on. Instead very unecesary high-level theorems, 
they try to fit into what is simple analog feedback paths.

One of the guys even worked with supposedly professor for many years, 
and they did not come up with anything good.

They argue it is something to do with frequency-response, for instance, 
why the analog filters sound the way they do, and it cannot completely 
be done in digial.

All this is just crazy trash.

Later I actually looked at the schematics for the 303, and realized 
there was just four feedback-paths with one negative feedback-path 
around. It is as simple as that. That is all "analog vintage" 
synth-filters. There is absolutely no obscurity going on, it is as 
simple as it can be.

Knowing that analog has a certain headroom, and that components are a 
bit inaccurate, and there is often some highpassing going on, due to the 
frequency-response of the components, you can model that, VERY SIMPLY, 
and without much cpu use. Some of the stuff released on KvR uses extreme 
cpu, and even sounds bad.

Try this ok, in your synth, and you will realizing that digital can 
sound just as good as analog, and without the inaccuracies. And analog 
often has characteristics you DON´T want. So it is even better.

Released under The Beneficient Open-source licence. Please google it. 
Since this licence allows for functions alone, to be released as 
opensource you can make it a function, and use it alongside whatever 
else you use.


//licenced under The Beneficient Open-source Licence.
         // Osc lo-emph.
         b_lo = b_lo + ((-b_lo + b_v) * b_lfr); // for emulating the 
analog-charateristic of more saturation in the low-freq. (due to 
saturated buffers)
         b_v = b_v - b_lo;
         b_v = b_v + (b_lo * b_lgn);


         int i_cnt = 0;
         while (i_cnt < b_os) {
             double b_rez = ((b_aflt4 - b_insh) * (b_filres)); // 
removes attenuation by rez, and makes a smoother rez thru clip.
             if (b_rez > 1) {b_rez = 1;} else if (b_rez < -1) {b_rez = 
-1;} // clip res, for analogstyle resonance.
// you can also do clipping at 0.0001 for instance, and mix, and get a 
little resonance buildup, before resonance hits the audible range. A bit 
similar to how some zero-cross distortion works.




         if (i_ftype == 1) { // 24dB lowpass ("ladder")
             double b_rez = b_aflt5 - b_v; // sub = no attenuation with rez.
             b_v = b_v - (b_rez*b_fres); // negative feedback for resonance.
             b_v = b_v * b_off2; // gain offset
             b_v = b_v + ((fvar90-0.5)*2); // bias
             if (b_v > 1) {b_v = 1;} else if (b_v < -1) {b_v = -1;} // clip

             //sat/soften clip.
             double b_vr = b_v; if (b_vr < 0) {b_vr = -b_vr;}
             b_vr = 1-b_vr;
             b_vr = pow(b_vr,fvar91*10); // something I tested at the 
time, this is a filter from my synth "Abdullah", and work in progress.
             b_vr = 1-b_vr;
             if (b_v < 0) {b_vr = -b_vr;}

             b_v = b_vr;
             b_v = b_v - ((fvar90-0.5)*2); // bias
             b_v = b_v / b_off2;

// you can also do clipping at 0.0001 for instance, and mix, and get a 
little resonance buildup, before resonance hits the audible range. A bit 
similar to how some zero-cross distortion works.

             b_aflt1 = b_aflt1 + ((-b_aflt1 + b_v) * b_fenva);
             b_aflt2 = b_aflt2 + ((-b_aflt2 + b_aflt1) * b_fenva);
             b_aflt3 = b_aflt3 + ((-b_aflt3 + b_aflt2) * b_fenva);
             b_aflt4 = b_aflt4 + ((-b_aflt4 + b_aflt3) * b_fenva);
             b_v = b_aflt4;

             b_hp = b_hp + ((-b_hp + b_v) * b_fhp); // highpass to 
emulate analog, and get nice resonance, and also remove DC.
             b_v = b_v - b_hp;
             b_aflt5 = b_v;
         }


That is the ultimate "analog" filter, completely digital, and without 
inaccuracies, and ofcourse with perfect keytracking etc.

Forget all the obfuscating arrogant atheist KvR-nerds. This is the real 
deal.

And all my DSP is just as perfect, and they never did anything of that 
either.

And Unix-philosophy is really close to my philosophy of "least 
obscurity". So it would be natural for this to develop and etablish 
itself on Linux. I was a "hacker" in my teens, and I guess many who have 
been into hacking, and brilliant programming, really celebrates God, and 
ofcourse comes to the same idea of least obcurity, which is also very 
much like (non-idolaterous) religion.

Instead ofcourse KvR bans the brilliant, who even talks about a 
peacebringing religion, and peaceful meditation, according to Gods 
praises, and the highest of intelligence, infinite human unfolding and 
rights, if you wish. And  that is the incoherent idolater/faithless.

Peace Be With You.




More information about the Linux-audio-dev mailing list