Open303 - open source 303 emulation project - collaborators wanted

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

Post

thanks rv0!

i still think the gimmick circuit is something pretty simple, a mattern of switching the signal path a little, some LP/HP filters
but that's if we emulate the circuit, which is kind of not what we're doing sadly

first impressions: (watching the first part of the audio, when EnvMod is 0)
normal notes: you can tell the cutoff knob is at max (the curves start off at 3.5KHz)
accented note comes in: now, normaly, the envelope there would be fast (as i said before around 341ms (but consider the sharp edge..))
the curves starts off at ~3.5KHz (or a little higher) again, but instead of falling down, it goes a little up, then smoothly changes direction to fall down
the peak is around ~6.8KHz the first time
now this is almost twice 3.5KHz (the normal envelope peak at this cutoff knob setting)
but actually, 6.8KHz is when it changes direction, not in the begining, so it must be more than twice 3.5KHz

i'm guessing there is a LP filter going on here

accented note ends, next is normal notes
you can see that the envelope looks like it was "hot" and relaxes after an accented note
this is probably because of the "filters" there
not sure but i got a gut feeling that there is a HP filter too

damn, need more time to analyze this
It doesn't matter how it sounds..
..as long as it has BASS and it's LOUD!

irc.libera.chat >>> #kvr

Post

O.K. - updated the source archive:

www.rs-met.com/temp/AciDevil.zip

it contains now all the internal logic of the step-sequencer.

i would now like to re-calibrate my oscillator waveforms and amp-envelope to rv0's 303. what i need for that is actually not a pattern at all but just prolonged notes (say 2 seconds or so) with certain settings ( i think it would be TM: G O O O O O ..., PM: C (or whatever note))

first: C > max, R > max, E > min, D > min, A > min, Wave: saw
long note at the root C

set: R > min, A > max
long notes at c(D), c, C, C(U)
long notes at c(DA), c(A), C(A), C(UA)
set: Wave > square
then the same again:
long notes at c(D), c, C, C(U)
long notes at c(DA), c(A), C(A), C(UA)

perhaps easiest to do by just setting up a one-note 'pattern', i guess

thanks in advance
My website: rs-met.com, My presences on: YouTube, GitHub, Facebook

Post

Robin from www.rs-met.com wrote: i think it would be TM: G O O O O O ..., PM: C (or whatever note))

first: C > max, R > max, E > min, D > min, A > min, Wave: saw
long note at the root C

set: R > min, A > max
long notes at c(D), c, C, C(U)
long notes at c(DA), c(A), C(A), C(UA)
set: Wave > square
then the same again:
long notes at c(D), c, C, C(U)
long notes at c(DA), c(A), C(A), C(UA)

perhaps easiest to do by just setting up a one-note 'pattern', i guess

thanks in advance
http://users.pandora.be/darffader/rv0test/longnotes.ogg

i put a small "bliip" in between as a helper..

patterns used (only 1 step long)

Code: Select all

TM: G
PM: c(DS)

TM: G
PM: c(S)

TM: G
PM: C(S)

TM: G
PM: C(US)

TM: G
PM: c(DAS)

TM: G
PM: c(AS)

TM: G
PM: C(AS)

TM: G
PM: C(UAS)
It takes advantage of the cool fact that a full slide pattern fades out. :D

btw: i checked out your application now, it looks really nice and intuitive (the keyboard input).
I like how the notes are tied together.. you might aswell take the "filled circle - open circle approach" like on the original..
It would easily adapt to something more like the original input.
Perhaps you do it so you have a few buttons (say: gate,tie,rest) next to a table row, and then a highlight on the current table cell and loop thru that onClick? that way you could enter time mode data really fast, it could perfectly co-exist with the keyboard input, but the visual feedback in the table cells is useful for transcribing to real 303, printed/written pattern sheet, etc..

Well done!

Post

rv0 wrote:
btw: i checked out your application now, it looks really nice and intuitive (the keyboard input).
I like how the notes are tied together.. you might aswell take the "filled circle - open circle approach" like on the original..
It would easily adapt to something more like the original input.
Perhaps you do it so you have a few buttons (say: gate,tie,rest) next to a table row, and then a highlight on the current table cell and loop thru that onClick? that way you could enter time mode data really fast, it could perfectly co-exist with the keyboard input, but the visual feedback in the table cells is useful for transcribing to real 303, printed/written pattern sheet, etc..

Well done!
glad you like it. well, there's some currently unused space left in the sequencer that could be used for such a thing. i will consider this. as for the filled/open circles: that would mean that the top rows would be always filled with circles, each of which is either filled or open? i can try that, but i suppose, it will look more messy.

now off to analyze your samples,

thanks a bunch
My website: rs-met.com, My presences on: YouTube, GitHub, Facebook

Post

Robin from www.rs-met.com wrote: as for the filled/open circles: that would mean that the top rows would be always filled with circles, each of which is either filled or open? i can try that, but i suppose, it will look more messy.
yes, but thats not what i meant.

this is what i mean (look at the images of an original 303, right side, time mode)
Image

what i propose actually looks cleaner imo...

Post

rv0 wrote:this is what i mean (look at the images of an original 303, right side, time mode)
Image

what i propose actually looks cleaner imo...
mmm...O.K. i see what you mean. cleaner - may be, but imo also less suggestive. i think it makes more sense to indicate tied notes by visual ties rather than open circles. i always tend to approach user interface related things from the point of view of a user that comes with a fresh mind and has no pre-conditioning

and such a user would first have to learn the (rather arbitrary) connection between open circles and tied notes. whereas the visual connection is much less arbitrary and more natural ...and therefore probably easier to understand
My website: rs-met.com, My presences on: YouTube, GitHub, Facebook

Post

mmm... but maybe we can have both: open circles with visual connections. :)
My website: rs-met.com, My presences on: YouTube, GitHub, Facebook

Post

Robin from www.rs-met.com wrote:mmm... but maybe we can have both: open circles with visual connections. :)
hah exactly!

imo, you already have the visual feedback on the piano roll..


i dunno if there's room for it.. but how about something like this? add a few buttons and you can have the same functionality as 303 seq (just stop the unnecessary slides from being displayed.. if possible at all in your sequencer design)
Image

Post

maybe you can use this for the buttons:

Image

and i found these patch sheets on my hard-drive, the first one contains some explanation ( >5mb word .doc)
http://users.pandora.be/darffader/303patterbackup.doc
http://users.pandora.be/darffader/303%2 ... 0sheet.pdf

Post

i still see this wierd thing about the square+resonance
when filter cutoff is high, only the positive peak of the square has resonance, the negative doesn't
i think i got an idea of how i can achieve this that has the "cheap components" logic to it
will test and report after i get back from work today

otherwise: yeah, i wanted a confirm that a full-slide pattern "dies" this is because of the one-shot AMP envelopes ;]
It doesn't matter how it sounds..
..as long as it has BASS and it's LOUD!

irc.libera.chat >>> #kvr

Post

ok, i actually just tested it, i think it works, have no time to look carefully
added a 1 pole LP filter on the negative saw in the square wave
this will make it less sharper, so filter won't get too excited at high freq+reso
i tested with 2KHz filter frequency, sort of looks like the thing
i'm also thinking, that maybe this is one reason why the square "PW" value seems to change with frequency of the osc (LP phase response)
It doesn't matter how it sounds..
..as long as it has BASS and it's LOUD!

irc.libera.chat >>> #kvr

Post

now, i tested a little more, looked carefuly, compared
it does what it does - the 1 pole filter filtering out the negative peak of the square
as the main filter resonating at a higher frequency (like 3.5KHz at max cutoff, min envmod) you can see on the original TB-303 sample, that the negative peak doesn't "excite" the filter resonance at all
i can set the frequency of the 1pole LP to get the same effect (now, it has to be a lot less than 2KHz for that)
but then another "problem" appears, the negative peak is "visualy" smoother (no surprise, that's what the LPF is doing there)
but on the original sample, both peaks look the same, the positive peak doesn't look like it's sharper or anything

so now i'm wondering..
what if the saw (which is used for the square too) has a really strong peak, that is high in amplitude, but is so sharp, that normal recording at 44100 (or even 88200Hz) won't catch it?
hm..
or is there something fancy in the circuit we all missed?
It doesn't matter how it sounds..
..as long as it has BASS and it's LOUD!

irc.libera.chat >>> #kvr

Post

antto wrote: or is there something fancy in the circuit we all missed?
Definitely nothing fancy in a 303. Synth1 must be able to do it perfectly.

(ok sorry, couldn't resist)

Post

am i missing something? just wondering why the negative peak of the square doesn't excite the filter..
and how to recreate the effect

um, what about a steeper LP filter for the negative saw? like -12 or -24dB?
It doesn't matter how it sounds..
..as long as it has BASS and it's LOUD!

irc.libera.chat >>> #kvr

Post

antto wrote:am i missing something? just wondering why the negative peak of the square doesn't excite the filter..
and how to recreate the effect

um, what about a steeper LP filter for the negative saw? like -12 or -24dB?
Interesting ideas. Even if we figure out why it happens in the hardware, we are still left with how to deal with it in the software.

It's certainly an interesting idea to modify the filter based on the phase, which is the equivalent of what you're talking about, right?

Is that a challenge? We need to maintain the IIR's history and do something to modify the filter according to phase without making a mess.
Swing is the difference between a drum machine and a sex machine.

Post Reply

Return to “DSP and Plugin Development”