Open303 - open source 303 emulation project - collaborators wanted

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

Post

thanks, unfortunately, today was the last day of my "vacation" i'm back to my daytime job tomorrow, and progress falls to "positive denormal
At the risk of further perpetuating the chat like nature of this thread, what do you work with as a daytime job anyway? Just curious.

Post

storage worker, foods & drinks.. not really exciting ;]
It doesn't matter how it sounds..
..as long as it has BASS and it's LOUD!

irc.libera.chat >>> #kvr

Post

just bump :)
Last edited by mztk on Tue Mar 16, 2010 10:16 am, edited 1 time in total.

Post

well, i'm messing with the filter (kunn's ladder)
the original coefficients he gave were kinda few, and my approximitation was probably poor in some places (especialy the K coefficient)
now.. i've probably mentioned that i had a little program i wrote that runs a filter with specific parameters and "finds" the coefficients (in iterations..)
that's how i found the coefficients for my old BP-feedback filter in the first place
now i'm doing the same thing with kunn's ladder and i'll hopefully have new coefficients + better approximitation
one more thing, i'm mapping the K coefficient against the a0, instead of the omega..
so that the K value will depend on the a0 location
the original tuning (a0) is very good, but i'll try to get the coefficients for it too, just in case ;]
It doesn't matter how it sounds..
..as long as it has BASS and it's LOUD!

irc.libera.chat >>> #kvr

Post

no idea what it's sounding like now..i was messing around with
the beta2-did i say this already?- and found the volume dropping off
a lot when the filter is opened up by cutoff or envmod; check it out,
sure you can sort it; is this what you're referring to?

Post

no
volume dropping off.. i guess you mean when resonance is high?
this is the normal behaviour of the TB-303 filter.. it uses negative feedback
EDIT:
pretty accurately approximated the K coefficient of kunn's ladder filter between the range of 0 to 0.125 (omega) .. this maps to 4x oversampling..
k = 0.345587968 / (0.020328704 + -0.041051468 * a0 + -0.016805597 * a0 * a0);
reciprocal quadratic
starts off at 17

next: i might run the same algo but this time up to 0.25 omega (to check if the approximitation still works for 2x oversampling)
and i'll also try to figure a smart algo that'll analyze the actuall cutoff frequency at a specific resonance value (say, reso=1.0) and use that to fine-tune the a0, then everything will be nice ;]
It doesn't matter how it sounds..
..as long as it has BASS and it's LOUD!

irc.libera.chat >>> #kvr

Post

yo, after changing that algo a bunch of times - i got very accurate measurements of the feedback level across the a0 paramterer which maps to (approximately) omega 0 to 0.25 (equivalent of 2x oversampling)
got inspired by the Binary Search algorithm (a guy mentioned it a while ago) and i implemented something that works in a similar way, but with the filter (instead of a sorted list of ints..)
and it's more, a lot more efficient now
i used an impulse as input for the filter, and i measured the "avg" output level, the duration of each test depends on the input frequency (like i'm capturing N cycles of an osc runing at X Hz)
so everything was fair and the resulting curve looks reasonable, and i found a nice approximitation for it:

k = 0.446671158 * (1.0 + a0 * 2.1717123) / (0.026274774 + -0.12935774 * a0 * a0);

i can post the data itself if someone's interested, just shout (it's longish)
next stop is frequency tuning ;]
It doesn't matter how it sounds..
..as long as it has BASS and it's LOUD!

irc.libera.chat >>> #kvr

Post

yeah sorry, volume dropping off with resonance. so that's the original
behaviour? ok, didn't know that. seems sort of odd to lose that much
'volume' there, but if that's how it is..
can you explain negative feedback, is it what robin whittle describes
in that accent sweep article?

Post

his articles are old, and some of the statements are just wrong there..
anyway
the 303 filter, like the moog filter uses negative feedback to make resonance
the moog filter needs 4 times feedback to go into selfoscillation, while the 303 filter needs 17
the moog filter also gets quieter when resonance is increased (because it's negative) but it's less noticable (only 4 times)

accent sweep is a different story
and i strongly dissagree with Robin Whittle about "accent adding more resonance"
i never observed that, it's just that the cutoff goes higher at accented notes, and the 303 filter has more resonance on higher frequencies (and that doesn't depend on the accent at all)
so, if you look at the resonant waves over the waveform, they *might* look like higher on the scope, and this is due to the higher cutoff frequency, AND the VCA being almost as twice as loud then
no ghosts, no magic there, no resonance magic during accents
the magic is in the cutoff curve
It doesn't matter how it sounds..
..as long as it has BASS and it's LOUD!

irc.libera.chat >>> #kvr

Post

the resonance control does directly affect the ratio between filtered and unfiltered accent pulse, though

pretty much this:

smoothed = fraction * follower(accent, attack, decay)
cutoff += lerp(accent, smoothed, resonance)

unfortunately it's a complex system where resonance also affects the attack and release time, and the fraction!

Post

aciddose: yeas, my model looks very similar too
that's the gimmick circuit
but still, accent doesn't change the feedback level of the filter..
It doesn't matter how it sounds..
..as long as it has BASS and it's LOUD!

irc.libera.chat >>> #kvr

Post

antto wrote: ...
k = 0.446671158 * (1.0 + a0 * 2.1717123) / (0.026274774 + -0.12935774 * a0 * a0);
...
fx = Fc/Fs * sqrt(2.0);
a0 = (fx * M_PI) / (1.0 + fx * 5.6147717 + fx * fx * 2.7919823);

i used a single impulse fed to the filter and counted the zerocrossings for a long time, then calculated the avg pitch of the resonance.. then i saved the detected pitch and the corresponding a0 value to make the approximitation..

tho, something is bothering me, i will try to detect the pitch in another way
maybe feeding a sine wave with the desired frequency, and testing the filter at slightly different cutoff freqs (random) to see where it gives highest amplitudes.. the results will be noisy, but i can then tighten the random range more and more after each test..
It doesn't matter how it sounds..
..as long as it has BASS and it's LOUD!

irc.libera.chat >>> #kvr

Post

http://www.box.net/shared/ihvtm1kzjj

just for fun. very rough attempt.

Post

mztk: it exploded, probably the filters, my DAW was set to 192KHz sampling rate
it worked under 44100
It doesn't matter how it sounds..
..as long as it has BASS and it's LOUD!

irc.libera.chat >>> #kvr

Post

lol

oh dear...
still not too sure about the sample rate setting on SE. maybe i'm
drafting them at wrong rate...what is the setting i should use, for
general purpose? i'm just doing things at 16bit/44.1khz atm, can't be
bothered with 24/96 files for now.

btw, have you seen grymmjack's skin for silverbox?

have something quite similar going;
sequencer, with randomizer, still haven't done the gate lengths,
accents or slides.
( was thinking, off, short, med?, and full 16th, but no idea of times/rates yet, slides separate, on/off) getting quite tired actually. full credit to ya.
Last edited by mztk on Wed Apr 21, 2010 8:31 pm, edited 1 time in total.

Post Reply

Return to “DSP and Plugin Development”