Open303 - open source 303 emulation project - collaborators wanted

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

Post

antto wrote:i'm uploading a 88200Hz audio sample of the TB-303 that i used to get the curves i'm talking about, it's kinda huge (~50mb, 22mb compressed rar)
on the left channel there is my synth (with the new curves and knob ranges)
right channel is the audio sample which rv0 recorded for me (with my specifications) (thanks to him) (TB-303)
Awesome! Let us know the URL when it's up!
Swing is the difference between a drum machine and a sex machine.

Post

vb303_rv0_compare02.rar (22.8MB)
Left: Venom VB-303
Right: TB-303 (by rv0, unmodified unit, clean 88200Hz recording)

so, this is where i got the curve from ;]
as you can see, both channels sound quite the same (either hear on headphones, or look at a sonogram or something)
so i believe my theory is right (non-linear envelopes, sort-of-linear filter-cutoff response)
It doesn't matter how it sounds..
..as long as it has BASS and it's LOUD!

irc.libera.chat >>> #kvr

Post

Robin from www.rs-met.com wrote:
antto wrote:Robin: "filter sweep" ???
i was talking about the filter envelope curve, this graphic you posted is probably something else, it's different
whe i say 'filter sweep', i mean a filter that changes cutoff frequency through time - regardless whether this sweep is created manually by tweaking the cutoff knob or imposed by an envelope. the sample i'm talking about is here:

http://www.audiorealism.se/abl/abl2_announcement.htm

the link 'Sliding' under 'Original Hardware', and the filename is 'orig_slide.wav' - although primarily demonstrating slide, there's also a strong (envelope imposed) filter sweep going on as well, with apparently slow decay time, so the shape is observable at a rather good time-resolution

btw.: there are also theoretical reasons that would support an exponentially decaying shape - analog envelope generators are typically realized with RC-circuits, which sport exactly that type of shape
oh, the orig_slide.wav sample you're talking about?
i just saw it
ok, i see now why you still think it's a simple exponent, because the sample is at 44100, but Cutoff & Envmod are 100% and you can't see where the peak of the curve is (at around 28KHz)
never mind that, but at least notice (on the sonogram) that when the note starts, you can't see the resonant peak immediately, but after a while, falling down from 22050Hz, there is your evidence
just look at my sample, and you'll see the sharp peak in the begining of the curve!

and btw, i won't tell that a filter sweep, that's just envelope modulation ;]
It doesn't matter how it sounds..
..as long as it has BASS and it's LOUD!

irc.libera.chat >>> #kvr

Post

antto wrote: i just saw it
ok, i see now why you still think it's a simple exponent, because the sample is at 44100, but Cutoff & Envmod are 100% and you can't see where the peak of the curve is (at around 28KHz)
never mind that, but at least notice (on the sonogram) that when the note starts, you can't see the resonant peak immediately, but after a while, falling down from 22050Hz, there is your evidence
just look at my sample, and you'll see the sharp peak in the begining of the curve!

and btw, i won't tell that a filter sweep, that's just envelope modulation ;]
hi and much thanks for the sample. currently i'm looking at the sonogram. i will pick one nice sweep out of it (and yes, i keep calling it a 'sweep') and try to fit an exponential and come back with my results later this evening.

really a good sample! that's exactly what we need!
My website: rs-met.com, My presences on: YouTube, GitHub, Facebook

Post

mistertoast wrote:I think we should use the correct curves for the filter sweep and slide, whatever they are, even if they have to come out of a lookup table.

I'd guess that a lot of the character of the 303 is in those curves.
absolutely
in my experience, the most important things you gotta get right are:
the sequencer behaviour
the curves (envelope, slide)
the knob ranges
the filter resonance level over the frequency range (then even a moog filter will work, probably a dumb-old-StateVariable too)
the waveforms
the accents ;]

i still think that the sequencer is one of the first things you gotta have (so you can tweak the rest of the synth to respond to it in the right way)
tho, Robin has different point of view here, hope he changes his mind (it's harder otherwise)
It doesn't matter how it sounds..
..as long as it has BASS and it's LOUD!

irc.libera.chat >>> #kvr

Post

In the synth I'm working on, I just have the sequences hard-coded with note, accent, and slide. Don't really need an interface at first.

Speaking of knobs, you gave a cheat sheet with ranges for 0% and 100% positions for two knobs, but nothing about any in-between values. Are those knobs linear?
Swing is the difference between a drum machine and a sex machine.

Post

antto wrote:i still think that the sequencer is one of the first things you gotta have (so you can tweak the rest of the synth to respond to it in the right way) tho, Robin has different point of view here, hope he changes his mind (it's harder otherwise)
i'll probably do a sequencer when i come up with a JUCE based GUI. however - all that GUI code will then be heavily intertwined with my libraries/framework so it won't be easily possible to make it open source anymore. however, i will keep the DSP-core together with the GUI-less VST implementation open source, then.
My website: rs-met.com, My presences on: YouTube, GitHub, Facebook

Post

well, not exactly
some knobs could be linear, others might be exponential, or logarithmic or something

but if you match the end-points (which values i have given) you can later tweak the response if you want/need

in my synth, i did it simple, all knobs (Cutoff, Reso, Envmod, Accent, Decay..) are with the range of 0..1
for example, the Cutoff and Envmod knobs..
i got a very messy circuit that takes the values of these two knobs, and (via a messy formula + coefficients) auto-tweaks the cutoff frequency to the filter (in Hz now) and the envelope scaling (which is added to the cutoff too)
i'm quite sure that (for example) if i set Cutoff and Envmod to 0.5 (or 50%) it wouldn't match a TB-303 exactly at the same knob values, tho, with a little tweak, it will do so, closely ;]
i really need a TB-303 here in my hands to achieve this..
It doesn't matter how it sounds..
..as long as it has BASS and it's LOUD!

irc.libera.chat >>> #kvr

Post

Kriminal wrote:
antto wrote:
you know, some say "logarithmic envelope" or "exponential" or "linear"
this is exactly the same, only it doesn't seem to be any of these

in other words, if you look how the cutoff (with a lot of resonance) travels on the FFT (when you're looking at a TB-303 sample) you'll see that it is not linear, it falls down fast in the begining, then slower and slower
isnt that what a logarithmic curve does?
+1. that's exactly what it does. tho i think it's called exponential decay - achievable with a simple low-pass filter.

Post

But of course you can have something that falls quickly and then more slowly without it precisely matching an exponential decay.
Swing is the difference between a drum machine and a sex machine.

Post

It's also worth remembering that FFTs map frequency linearly**, so a linear envelope controling a filter who's cutoff is V/Oct, will look like an exponential decay in a sonogram. Because a V/Oct input will exponentialy map the envelope to the cuttoff.

IE. It's not just the envelope shape, but how the circuit maps the control voltage to the cuttoff frequency.

Edit: **Unless you have your FFT set to logarithmic display...

Post

nollock wrote:It's also worth remembering that FFTs map frequency linearly**, so a linear envelope controling a filter who's cutoff is V/Oct, will look like an exponential decay in a sonogram. Because a V/Oct input will exponentialy map the envelope to the cuttoff.

IE. It's not just the envelope shape, but how the circuit maps the control voltage to the cuttoff frequency.

Edit: **Unless you have your FFT set to logarithmic display...
i know what you mean here pretty well
the case is not like that - look at the sample (left channel)

PS: my FFT (sonogram) is linear
my filter has a 1V/KHz response
both waveforms look the same on the FFT (mine, and the original)
so, i'm right ;] :hihi:
It doesn't matter how it sounds..
..as long as it has BASS and it's LOUD!

irc.libera.chat >>> #kvr

Post

kunn wrote:+1. that's exactly what it does. tho i think it's called exponential decay - achievable with a simple low-pass filter.
ok, try to approximate the curve i posted by any exponent or log() or simple low/high-pass filter
..i couldn't, maybe i didn't try hard enough
EDIT: erm, i tryied the "accumulator" thing, not a real HP Filter (tho, it should work the same i guess)
i still think the curve is pretty damn specific
you gotta get a real close approximitation, or else - it'll fail ;]
Last edited by antto on Mon Sep 14, 2009 6:44 pm, edited 1 time in total.
It doesn't matter how it sounds..
..as long as it has BASS and it's LOUD!

irc.libera.chat >>> #kvr

Post

Robin from www.rs-met.com wrote: i will pick one nice sweep out of it (and yes, i keep calling it a 'sweep') and try to fit an exponential and come back with my results later this evening.
i did. here is the best exponential fit, i could find:
Image
and as we see, the real curve falls of more quickly in the first part and more slowly in the second. ...soo i tried something else: a weighted sum between an exponential decay and the same exponential decay cubed. by tweaking the weights, i could get much more closely to the data:
Image
the weights are 0.56 for the normal exponential and 1-0.56=0.44 for the cubed exponential.
Last edited by Music Engineer on Mon Sep 14, 2009 6:53 pm, edited 1 time in total.
My website: rs-met.com, My presences on: YouTube, GitHub, Facebook

Post

could it be that the standard RC envelope goes through some nonlinearity with a cubic component in the original circuit?
My website: rs-met.com, My presences on: YouTube, GitHub, Facebook

Post Reply

Return to “DSP and Plugin Development”