Open303 - open source 303 emulation project - collaborators wanted

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

Post

mistertoast wrote:Let's say I have two notes and the first one is marked as a slide. The frequency is going to change during the playing of that first note to that of the second note.
Nope, that would require a look-ahead. The way it works if I understand correctly is that when the sequencer comes across a slide it starts sliding right away:
- start frequency is the frequency of the last played note,
- end frequency is the current note in the sequencer (so no look-ahead is required, that would probably be too advanced for the 303's ultra simple logic).

Right, Antto?

Post

Hmm. I don't see why you'd need ANY lookahead if the whole change in pitch happens in step 2. In fact, it could be played via MIDI as a synth, no? And still get the same effect.

Color me surprised.
Swing is the difference between a drum machine and a sex machine.

Post

mistertoast wrote:Hmm. I don't see why you'd need ANY lookahead if the whole change in pitch happens in step 2. In fact, it could be played via MIDI as a synth, no? And still get the same effect.

Color me surprised.
Now I'm reading Antto's explanation.. I doubt.. it would mean the slide starts on the step after the step where the slide was programmed?

That's strange because that would mean that during a slide the filter would be almost completely closed and that's not what it sounds like to my ears.

Hmm... too bad I don't have a real 303 to test... :?:

Post

There are certainly going to be slides in the source that antto uses. I'll grab a few of those this weekend and watch the frequency. We should do the samer work as antto, for his sake and ours. Back him up.
Swing is the difference between a drum machine and a sex machine.

Post

brambos: no, sequencer doesn't slide on step1 .. it only extends the duration (full or 1.0)
at step2 sequencer starts sliding the pitch of step1 to the pitch of step2 (C2->C3)
since there is no slide on step2, gate will be closed at 0.5 (as normal unslided notes)

mistertoast: "lookahead" well, i don't want to remember why i had to make my sequencer look both into the next note, and into the previous (besides the current) steps
but that's what it does
this is probably because i didn't "emulate" the circuits
so, i made it more complicated, and because of that, my sequencer had to be complicated too

brambos: yes, a slide starts on the next step, tho, which is the first thing people get wrong/confused when trying to sequence acid on a piano roll (this is why i keep saying - don't waste your time doing this, use the internal sequencer)

it's too early now, but we'll probably get to the other details of the TB-303 that are tricky
accents, filter/volume envelopes on accented notes
then when we add slides to this we get:
normal<slide_to>accented
accented<slide_to>accented
accented<slide_to>normal

and then, the second might have gate OFF, or SLIDE ON too
things get shitty ;]

this is one reason why i needed lookahead in my sequencer

either you have to do a 100% emulation - translate the analog circuits to DSP algos and you probably gonna have it (tho, you still won't understand _why_ it works like it does)
<or>
do what i did ;]
It doesn't matter how it sounds..
..as long as it has BASS and it's LOUD!

irc.libera.chat >>> #kvr

Post

i'm just analyzing some audio materials now, with fixed knob settings
haven't yet analyzed the whole envelopes ranges but i distinguished the length of the shortest Decay time (erm, Filter envelope)

it's about 8704 samples (at 44100) which according to my calculator is 0.19737 seconds
i'll assume this is what was meant as "200 miliseconds" ;]
btw, i'm not really using FFT for this (tho, keeping an eye on it)
gonna post again with the whole picture (erm, without the accent stuff)

EDIT: damn, not!
looking at the part where Cutoff & EnvMod = MAX i can see on the FFT, in the low part of the specter, that the envelope has a very silent tail, which is quite small, but it's not at 0 (this is because it's a sort of a HP filter)
so, at that point, the modulation is huge (envelope peak is about somewhere above 27KHz and drops down to somewhere below 1KHz)
and looking around 1KHz i see the part where the envelope finaly rests, the length it took is approximately 30145 samples (at 88200) which calculates to 0.34178 seconds

i guess the 200ms could mean the time for the envelope to reach 0, tho it's bipolar, thus ignoring the negative part
but that's kind of silly

so, the min decay time is about 341 mili seconds, but the curve is important (again..)
Last edited by antto on Fri Sep 11, 2009 7:07 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

mr.bungle wrote:
Robin from www.rs-met.com wrote: -are a graphic artist and willing to contribute to the GUI (at the moment, the plugin is GUIless)
Hi,

My friend modeled a 303 for my web-303-thing that was never finished. You can check the graphics here: http://www.rinki.net/pekka/webirth/

If you're interested, I can ask if my friend could render the GUI for you.

(shameless plug: improved version of my TB-303/TR-x engine was used made this: http://www.rinki.net/pekka/acid/ ... though it's still not sounding very good)
incredible gui

Post

TB-303_FEnv_anlz01.jpg
the curves on that image are silly, don't stare at them ;]

the frequencies are in Hz
this is for the TB-303 at max resonance (otherwise i wouldn't be able to tell the cutoff)
i've placed red "thingies" in front of the points at which i am not 100% sure of

case2 and case4, the high peak (3.5KHz) my calculation says 3.2 or 3.3KHz but the FFT shows more like 3.5KHz, and i'm probably wrong, so better agree with the FFT (or take avg of 3.4KHz, the choice is yours)

case4, the low peak, well, this is the lowest point the filter can practicaly get (and envmod must be at max, otherwise it won't go that low)
i' can't really say what is the exact frequency of the filter there, resonance is weak, FFT is poor too

this could be matched "visualy" or "by ear" when you already got the right filter and waveforms, just get a sample with low-pitched notes..

i did this today (actually a few hours ago) since i had to do it long ago, but anyway, i'm sure you gonna need it ;]
if anyone has evidence that the values are wrong - let us know, we'll discuss it ;P~
It doesn't matter how it sounds..
..as long as it has BASS and it's LOUD!

irc.libera.chat >>> #kvr

Post

hi antto,

from which sample did you infer these infos?

and as for your question how i fitted the amp-env - i just plotted in octave the absolute value of the signal, created my sum of exponentials and tweaked the coefficients until i found a visually convincing match. like this:

Image

the blue plot is the absolute value of the signal, the red line is my sum of exponentials
My website: rs-met.com, My presences on: YouTube, GitHub, Facebook

Post

by analyzing autodafe's samples, i just discovered another interesting fact: the square-wave has actually a pulse-width of 50% (i previously believed that the even harmonics in the square wave were due to a non-50% pulse width - they aren't). they are due to the asymmetry of the waveform's amplitude: the lower half-wave has a higher amplitude than the upper half-wave. interesting. i have this currently wrong. must somehow build that into the oscillator class...
My website: rs-met.com, My presences on: YouTube, GitHub, Facebook

Post

By "lower half," do you mean the negative part?

Also, does anyone know the notes that a non-modified TB-303 can generate?
Swing is the difference between a drum machine and a sex machine.

Post

mistertoast wrote:By "lower half," do you mean the negative part?
yes - the part below the zero line
My website: rs-met.com, My presences on: YouTube, GitHub, Facebook

Post

Robin, is the graphic you made the "amp" envelope? if so - no
at least if the Y scale is linear there
also, i'll advise you again to not look at autodafe's samples, i've seen samples from a lot of different sources, each have small differences here or there, but autodafe's samples are really ODD

the amplitude envelope could even be linear, you can't tell since the filter is messing up the waveform
tho, i think is a simple (and loooong, in time) exponential, sort of like a highpassed step (or i think what you call a "leaky integrator" ..)
out = out * coeff; // coeff must be < 1.0 but positive
if (gate) { out = 1.0; }

square: no, it is assymetrical, but the exact distance between the two peaks varies between each machine a little
i have samples where the PW is about 98% (which is almost a square) and others where it's more like 86% (which is far from a square)
maybe look at the filter thread, i posted a .rar file with a comparison of my synth with a sample of the TB-303
blah.. here it is: http://www.box.net/shared/bdf8v582cv

as you can see from the first part (where it's runing square) they are quite the same
btw, my FEnvelopes are (a little) wrong there, and still it looks quite close

tho there is something about the negative part of the square that always bothers me
the negative peak of the square doesn't excite the filter resonance when it's at high frequency as much as the positive peak
which is odd, and i guessed that it might be due to DC or something, the waveform being so negative that the negative peak might be clipped by the filter (but you have to have the right filter to get the effect)
and this can be seen in all TB-303 samples
It doesn't matter how it sounds..
..as long as it has BASS and it's LOUD!

irc.libera.chat >>> #kvr

Post

antto wrote:Robin, is the graphic you made the "amp" envelope? if so - no
at least if the Y scale is linear there
also, i'll advise you again to not look at autodafe's samples, i've seen samples from a lot of different sources, each have small differences here or there, but autodafe's samples are really ODD
O.K. but this two-stage decay amp-env is also in good agreeement with ABL. could you upload your reference samples somewhere? or point to the original sources?
the amplitude envelope could even be linear, you can't tell since the filter is messing up the waveform
i think, when fully open with zero resonance, the filter should not mess up the amp-env too much. i know there's the non-zero env-mod even when the dial is counterclockwise (unless one has a mod that allows to set it to true zero, like devilfish), but that should then only affect the transient - the rest of the envelope (the loong exponential decay) should still be visible.
tho, i think is a simple (and loooong, in time) exponential, sort of like a highpassed step (or i think what you call a "leaky integrator" ..)
out = out * coeff; // coeff must be < 1.0 but positive
if (gate) { out = 1.0; }
well, yes kind of. your code is what i would call 'multiplicative accumulator', though the results are the same.
square: no, it is assymetrical, but the exact distance between the two peaks varies between each machine a little
i have samples where the PW is about 98% (which is almost a square) and others where it's more like 86%

i slept over it and i think now, that i was on the wrong track with that anyway. changing the amplitudes of the two half-waves of a square would merely introdcue DC and nothing else. so yeah, non-50% pulse-width seems the way to go.
(which is far from a square)
maybe look at the filter thread, i posted a .rar file with a comparison of my synth with a sample of the TB-303
blah.. here it is: http://www.box.net/shared/bdf8v582cv
aha thanks for that - i suppose the first part is the real thing there?

tho there is something about the negative part of the square that always bothers me
the negative peak of the square doesn't excite the filter resonance when it's at high frequency as much as the positive peak
which is odd, and i guessed that it might be due to DC or something, the waveform being so negative that the negative peak might be clipped by the filter
yes i would assume something like that, too
My website: rs-met.com, My presences on: YouTube, GitHub, Facebook

Post

What is "gate" on the TB-303, besides an output from the box?

Also, antto, what notes can be produced from a standard TB-303? How many octaves? Which MIDI notes?
Swing is the difference between a drum machine and a sex machine.

Post Reply

Return to “DSP and Plugin Development”