Open303 - open source 303 emulation project - collaborators wanted

DSP, Plugin and Host development discussion.
Post Reply New Topic
RELATED
PRODUCTS

Post

Well, anyway I couldn't get it to work here.

If you haven't tried these kinds of filter already (sorry I haven't read all of the discussion) you can try this one:

I did a 303 style filter earlier, for a synth I used internally here.

And IIRC, I only needed to adjust resonance and saturation, on a simple 4 pole, to get "good enough" results. Add a highpass as a separate stage after that, and an overdrive, and you have wild 303 sound.

// under the GPL licence
in1 = in1 * drive; // the gain to clip/sat must be carefully adjusted
in1 = in1 - (buf4*rez) // add resonance

double polarity = in1; //clip & saturate
if (in1 < 0) (in1 = -in1;}
if (in1 > 1) {in1 = 1;}
in1 = 1-in1;
in1 = in1*in1; // very gradual
in1 = 1-in1;
in1 = in1 * 0.5; // normalize sat
if (polarity < 0) {in1 = -in1;}//

buf1 = ((-buf1 + in1) * cut) + buf1; // filter
buf2 = ((-buf2 + buf1) * cut) + buf2; //
buf3 = ((-buf3 + buf2) * cut) + buf3; //
buf4 = ((-bu42 + buf3) * cut) + buf4; //

One might also do tricks to get smoother rez, but if you're going to run it through distortion anyway, one may discuss the necessity of this. Most tricks on the rez messes up keyfollow also, so one needs to design it carefully if one wishes to keep that. This is just off the top of my head, so I can't remember exactly what I did back then (this is several years ago). But if someone fixes the logic compatibility maybe I'll have a look at it.

Post

Ok, I got it to work in Energy XT. It sounds quite good, but through a dist, it sounds a bit rotten. So smoothing up the rez, by tweaking the saturation and the res, is probably a good thing.

Post

Legatotime sounds a bit longer than the original too :) hehehe

Post

Oh well, you got closer to the original sound than what I did, but mine was much cooler through a distortion. From experience I can say that you need to tweak the saturation probably. Allow a bit more headroom, possibly. I bored easily, lol, so someone else should do it.

Post

My last thoughts on the project:

It's almost like the overtones of the original 303 fades into eachother, when you have the rezo at max. This sounds great in a distortion.
If you have peaky behaviour, when the rez sweeps over an overtone, you get a bit sour sound.

Tune the sat/rez for the first..

Post

ParadoxUn: we've already found the right filter in here
it was proposed by kunn, others helped too, i added an improved coefficient approximitation and it's done

first, it uses just 1 tuning coefficient and 1 resonance coefficient
the first pole is 1 octave above (2*coeff)
the resonance is ran thru a 1st order HP filter

i have some recent audio comparisons with this filter and a x0xb0x
i also tested the filter in extreme conditions against the x0xb0x in the same conditions (resonance boost via potentiometer in R97) but i didn't recorded them, i was happy with the results
http://www.box.net/shared/bckoudgncp x0x vs vb303
http://www.box.net/shared/1p4fzf8gaq vb303 with internal dist, showing off the difference in VCA coupling (i don't remember exactly what was the purpose, i was demonstrating something to someone at the x0xb0x forums)
It doesn't matter how it sounds..
..as long as it has BASS and it's LOUD!

irc.libera.chat >>> #kvr

Post

Yes, it sounds quite good. I remember trying switching the first pole up an octave aswell, I had forgot.

I dug out my old source. If you boost the rez a bit, and the input drive to the filter, you can do extremely shreddy sounds: http://www.paradoxuncreated.com/mp3/shred.mp3

This with a preq-softclipper-posteq.

Probably a feature most people would want. hehehe

Post

Btw, I came to think of something else. If you listen to a sampled 303 sweep at max rez, and slow it down, it will be obvious that something dynamic is going on, because when it selfoscillates in the top, theres still enveloping in the rez sound, probably beacuse of dynamic behaviour in the clipping stage. So a simple compressor with fast att/rel times, would probably mimick that. But where to put it.. Maybe it's the transistor that controls the feedback amount that does it, mostly..

Post

I did a quick try with it. It was kind of interesting. Did a quick feedback style compressor, where I'd usually clip the signal. (after adding rez) (Feedback style compression is what seems most similar to what I've seen of transistor clipping behaviour on an oscilloscope.).
Kindof interesting, takes away some of the digital edge. But it sounded more like a SH2 at first tries here.

Post

i've said it lots of times..
the 303 is not all about the filter
It doesn't matter how it sounds..
..as long as it has BASS and it's LOUD!

irc.libera.chat >>> #kvr

Post

I know this, but the central "squelchyness", is due to the characther of the resonance.

I simplified my dynamic clipper, to a shaper which worked quite well though.
Clipping the "res feedback transistor", aka x = buf4 * res; at about 0.6, and then adding some of the clean feedback to it. + unclipped, at 0.2 or somewhere around that. Gave a bit similar squelch.

Post

the filter which is already posted somewhere in here, is very close to the real thing
i have a potentiometer hooked in my x0xb0x (on R97, which is in the feedback path)
the original value for R97 is 10K, my pot is 10K too
so i can tweak the feedback from "normal" up to a state where it's beyond crazy
i also tweak this in the softsynth's filter to compare how they behave under such conditions
simply said, the x0xb0x filter's resonance gets very strong (it is beyond selfoscillation, but is limited by the nonlinearities so it cannot explode)
the overall amplitude of the output doesn't grow much, since it's clipped by the filter, and since i increase the feedback even more - the input signal becomes quieter, it "vanishes" into the resonance
when the potentiometer is at 0K - the input is barely noticable, all you hear is the filter resonance
got the same behaviour out of the softsynth, so it's good enough (once again, thanks to all the guys here, and specifically kunn)
It doesn't matter how it sounds..
..as long as it has BASS and it's LOUD!

irc.libera.chat >>> #kvr

Post

Yeah, that's what happens with this mixed clipped and original feedback too.

I extended my synth a long time ago, with several oscs and full envelopes;
A 303 inspired filter, sounds quite good in it :)

http://www.paradoxuncreated.com/tmp/303 ... filter.wav

Peace.

Post

I finally achieved that detail I noticed in the sampled 303. It's kind of a lower level overdriven selfoscillation going on in the background of the filter, giving the filter a more pronounced resonance. This is how my filter looks now:

//under GPL licence v3.0
b_rez1 = b_nbl * b_flres; // first a method I used for "nobassloss-rez", but now I used it to get that low overdriven selfoscillation.
b_rez2 = b_aflt4 * b_flres; // normal res, which I mix in.
if (b_rez1 > 0.0040) {b_rez1 = 0.0040;} else if (b_rez1 < -0.0040) {b_rez1 = -0.0040;} // only a small, but important detail.
b_rez = b_rez1 + (b_rez2 * 0.9660); // add the normal rez, tuned for 303 like max res, at res 4.
b_in = b_insh - b_rez; // b_insh = sample and hold version of input, currently my qnd oversamp method.
if (b_in > 0.6520) {b_in = 0.6520;} else if (b_in < -0.6520) {b_in = -0.6520;} // 303-eqsue clipping, ,my oscs are at -6dB.
b_aflt1 = b_aflt1 + ((-b_aflt1 + b_in) * b_cutoff2);
b_aflt2 = b_aflt2 + ((-b_aflt2 + b_aflt1) * b_cutoff1);
b_aflt3 = b_aflt3 + ((-b_aflt3 + b_aflt2) * b_cutoff1);
b_aflt4 = b_aflt4 + ((-b_aflt4 + b_aflt3) * b_cutoff1);
b_nbl = b_aflt4 - b_in;
b_in = b_aflt4;

You will probably want to oversample that aswell.
I have yet to do resonance tuning, but I read the thread to the point of kunns resonance tuning, so I might give that a try tomorrow.

soundsample, 303 sample first half, my synth second half. Notice the similarity of the rez. I haven't really done much work to match the hp's yet.

Peace.

Post

where did you get the "303" sample from? it is some kind of a montage
on each note the sawtooth seems to start at the same phase, which is rather odd, as the 303's VCO is freerunning
otherwise, the waveform looks like it came out of a 303, no doubt ;P~
here's my version of this http://www.box.net/shared/vfiaejmxat

EDIT: btw, in a previous post, you mentioned about listening to a filter sweep pitched down, that's interesting, but be sure to take a _good_ audio recording in such tests
something like at least 96K sampling rate (192K would be better)
and uhm, i doubt it's dynamic as a "compressor"
you're probably seeing the effect of the resonance clipping inside the filter, before the output (it kinda "bounces" around in there)
It doesn't matter how it sounds..
..as long as it has BASS and it's LOUD!

irc.libera.chat >>> #kvr

Post Reply

Return to “DSP and Plugin Development”