Open303 - open source 303 emulation project - collaborators wanted

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

Post

Can you give me the sample so I can use it in my evidence-based FAQ?
Swing is the difference between a drum machine and a sex machine.

Post

mistertoast wrote:Can you give me the sample so I can use it in my evidence-based FAQ?
i'm the one recording samples for antto

this one is the last i did:

http://users.telenet.be/darffader/rv0te ... estest.ogg

Post

Thanks so much rv0. Your name will go down in history (if that is indeed your name).
Swing is the difference between a drum machine and a sex machine.

Post

no matter how hard i look, it is not tempo-dependant, just a silly type of a LP filter in there
should be pretty easy to "emulate"
so, i was wrong about that part all the way since the beta version

thus, all of the guys who think that piano-roll sequencing from the DAW would work with sync'ed slide time are wrong now
they were wrong anyway, since the slide curve was not linear (as i knew this from the begining)

rv0: i noticed, your other 303 has a little less resonance at max level, probably this is one of those things that differe between different machines or change with age?
(or probably the knob range was tweaked from the inside?)
otherwise, your samples are by far the best ones i got, clean, no hard HP filters, perfect for what we're doing here ;]
It doesn't matter how it sounds..
..as long as it has BASS and it's LOUD!

irc.libera.chat >>> #kvr

Post

antto wrote:thus, all of the guys who think that piano-roll sequencing from the DAW would work with sync'ed slide time are wrong now
they were wrong anyway, since the slide curve was not linear (as i knew this from the begining)
why wouldn't piano roll sequencing work? just initiate a slide when new note comes in. like setting the target frequency and lowpass it in the per-sample loop (with always the same time constant)

anyway - today i spent all day lawng to implement my own sequencer (including GUI). and now i'm damn tired, but it was a productive workday
your samples are by far the best ones i got, clean, no hard HP filters, perfect for what we're doing here ;]
couldn't agree more. much thanks to rv0. it would be really a great contribution if you could generate samples for mistertoast's (and our all) myth-busting endeavor.

@ rv0
as for the PM: i'm fully planning to keep the core dsp-code open source, so you can embedd it into your project.

with the GUI version, this would be a bit ...mmm... complicated ...as i would have dissolve and clean up dozens of classes from my framework
Last edited by Music Engineer on Tue Sep 15, 2009 10:20 pm, edited 2 times in total.
My website: rs-met.com, My presences on: YouTube, GitHub, Facebook

Post

Now might be a good time to mention my basic osc, which takes what a lot of other people do and extends it.

It's two ramp oscillators. You can, of course, build a square by subtracting a ramp from another offset ramp.

I keep the amplitude of the first ramp all the way up at 1. The second ramp is variable in amplitude between 1 (for a square) and 0 (for a ramp). But I also let you push the second ramp all the way down to -1. Since you're subtracting a negative ramp, you're really adding two ramps. What this does is change the amplitudes of various partials in different ways.

So with one control you have a smoothly moving square to ramp to double-ramp. And you can, of course, modulate this.

You can also change the phase. This is used to make the square into a pulse with different duty cycles. And it can be used on the double saw as well.

So with just two controls (but more, if you want to modulate them on the fly) you have all different kinds of sounds, but based on the square/ramp family of the TB-303.
Swing is the difference between a drum machine and a sex machine.

Post

my next myth to be busted (or confirmed) would be the slide lookahead. i think, a sample very similar to the one like before would be suitable, but with a well defined and fixed tempo of 120 bpm. we could then look in the spectrogram whether or not the slides start off at multiples of 0.125 seconds. if they do, then they start off exactly at the occurence of the slide-target note. it would be easy to spot, if they start off earlier. it would have to be rendered with the internal sequencer, of course.
My website: rs-met.com, My presences on: YouTube, GitHub, Facebook

Post

Robin from www.rs-met.com wrote: @ rv0
as for the PM: i'm fully planning to keep the core dsp-code open source, so you can embedd it into your project.

with the GUI version, this would be a bit ...mmm... complicated ...as would have dissolve and clean up dozens of classes from my framework
no problem, it will be fully embedded anyway.


feel free to ask more samples, It's no real trouble for me to record them.
Just download 'em quick because I can't keep them online forever.

I must say though:
Time Mode & Pitch Mode please!
Like for the previous sample I got this pattern:

Code: Select all

C2 G -
C4 G -
C2 G S
C4 G -

C2 G S
C2 G S
C4 G S
C4 G -
(G = gate, S = slide, ...)
Now this is just bullshit because it is not how the 303 is programmed (although you can program it that way, it contains 2 useless slided notes and the sequencer will convert it automaticly to ties)
the C2, C4 and what not stuff is confusing too.

I'd rather see the pattern like this (c is lower c, C is higher c) (can't think of a better notation for forums at the moment)
time machine = TM, pitch mode = PM

Code: Select all

TM: G G G G G O G O 
PM: c ; C(U) ; c(S) ; C(U) ; c(S) ; C(U)  
(yes thats right, only 6 notes instead of the previous 8, and a only 2 slides instead of 4, it's 100% the same pattern though)
-> UDAS = UP DOWN ACCENT SLIDE format) for the pitch mode
-> G = gate, O = tie, - = rest) for the time mode
So please do me a favor when asking for samples, and ask it with a pattern of this (or similar) form
I have a special way of syncing the 303 sample accurate (zero latency, jitter), so provide an exact bpm when needed, otherwise I just use internal clock.
Also mention knob settings.

Post

Robin from www.rs-met.com wrote:my next myth to be busted (or confirmed) would be the slide lookahead. i think, a sample very similar to the one like before would be suitable, but with a well defined and fixed tempo of 120 bpm. we could then look in the spectrogram whether or not the slides start off at multiples of 0.125 seconds. if they do, then they start off exactly at the occurence of the slide-target note. it would be easy to spot, if they start off earlier. it would have to be rendered with the internal sequencer, of course.
There's also talk of slide always being on for the very, very beginning of the note (as it's fading in). This supposedly adds to the dirtiness and funkiness of the sound. Myth or truth?
Swing is the difference between a drum machine and a sex machine.

Post

antto wrote: rv0: i noticed, your other 303 has a little less resonance at max level, probably this is one of those things that differe between different machines or change with age?
(or probably the knob range was tweaked from the inside?)
otherwise, your samples are by far the best ones i got, clean, no hard HP filters, perfect for what we're doing here ;]

true, resonance is boosted somehow.. I don't know why.. Loads of 303's sound different.. I've heard unmodded 303's sound like birds and other's like swamp creatures, at same settings.

there's numourous reasons, be it internal pots, component tolerance, different serial n°, etc..

like the one with less resonance, has loads of components just pinned on the back of the pcb.. thats not a mod: factory, because of errors in the pcb of that revision..
note that note scaling might not be perfect too on my 303 as they have been tuned my way (that is, steady note with max pitch setting)
should not matter that much.. i guess..

Post

mistertoast wrote:
Robin from www.rs-met.com wrote:my next myth to be busted (or confirmed) would be the slide lookahead. i think, a sample very similar to the one like before would be suitable, but with a well defined and fixed tempo of 120 bpm. we could then look in the spectrogram whether or not the slides start off at multiples of 0.125 seconds. if they do, then they start off exactly at the occurence of the slide-target note. it would be easy to spot, if they start off earlier. it would have to be rendered with the internal sequencer, of course.
There's also talk of slide always being on for the very, very beginning of the note (as it's fading in). This supposedly adds to the dirtiness and funkiness of the sound. Myth or truth?
well, since the last thing i discovered, i think the sequencer just outputs pitch changes instantly
the voltage probably goes to a RC circuit (or 1 pole LP filter)
the sequencer probably has a Frequency control over that filter
for non-slided notes, the filter is "open" (high frequency, instant change)
for slided notes the filter frequency is changed to that constant
i don't think the slide starts earlier
my slide rule still applies:
slide on step1 starts on step2
so if you just implement this filter as i explained, you should get the absolutely same effect (as long as a 1pole filter's output looks exactly like that slide curve seen on the sonogram, which i believe is true)

rv0: sorry, i'll try to learn this so i can write patterns in an easier way for you (i have a little idea of how a TB-303 pattern is programmed, like hell)

Robin: tell me bout the sequencer ;]
btw, implement FreeBee pattern format, so there will be at least 3 synths now that can share patterns between them ;]
i'll help you on this if you want ;]
It doesn't matter how it sounds..
..as long as it has BASS and it's LOUD!

irc.libera.chat >>> #kvr

Post

rv0 wrote: I'd rather see the pattern like this (c is lower c, C is higher c) (can't think of a better notation for forums at the moment)
time machine = TM, pitch mode = PM

Code: Select all

TM: G G G G G O G O 
PM: c ; C(U) ; c(S) ; C(U) ; c(S) ; C(U)  
(yes thats right, only 6 notes instead of the previous 8, and a only 2 slides instead of 4, it's 100% the same pattern though)
-> UDAS = UP DOWN ACCENT SLIDE format) for the pitch mode
-> G = gate, O = tie, - = rest) for the time mode
So please do me a favor when asking for samples, and ask it with a pattern of this (or similar) form
I have a special way of syncing the 303 sample accurate (zero latency, jitter), so provide an exact bpm when needed, otherwise I just use internal clock.
[/quote]
//END OF QUOTE grrr...

ok, i get a little confused about the way you wrote that..
G = note on (gate, or whatever) .. i understand
O = tie <- well, sort of OK
- = rest/silent (note off)

then you got c(S) <- low C key, with a slide?!

so you have to program gate/tie/rest in Time mode, and also Slides in PitchMode?
is that right?
what would happen if you didn't add the Slide there in PitchMode? -> a long note that doesn't change in pitch?
i was thinking that if you got 8 steps, you gotta set the pitches to all 8 steps, but you're saying that the sequencer is kind of "smarter" and you can actually enter less pitches while still programming the same pattern
damn, i got to dring about 4 coffies before i get used to thinking the 303 way ;]
i will try to do that :hihi:

EDIT: about the internal vs external clock:
i think it's good to know that (as we have doubts about some aspects of the synth being Tempo-dependant) this should be mentioned explicitly
i think that if internaly sequenced, with internal timing, there is a great chance that something might be tempo dependant
which will probably not work in the same way if using an external clock

i could be wrong here
or the TB-303 might have nothing to do with tempo (like what we know so far)
or it might be analyzing the clock impulses to "catch up" and work the same (i personaly doubt that, sounds too expensive for a "cheap" old synth like the TB-303)
It doesn't matter how it sounds..
..as long as it has BASS and it's LOUD!

irc.libera.chat >>> #kvr

Post

antto wrote: ok, i get a little confused about the way you wrote that..
G = note on (gate, or whatever) .. i understand
O = tie <- well, sort of OK
- = rest/silent (note off)

then you got c(S) <- low C key, with a slide?!

so you have to program gate/tie/rest in Time mode, and also Slides in PitchMode?
is that right?
yes.. Time mode can have 3 values.
Pitch Mode has the note value and 4 possible params (Up, Down, Accent, Slide)

antto wrote: what would happen if you didn't add the Slide there in PitchMode? -> a long note that doesn't change in pitch?
yes and thats about exactly what happens with the 5th and 7th step/note in your pattern. (well not exactly, as the fifth will slide to the 7th)

just think of it in a parsing context: time mode parses pitch mode.. by that I mean: whenever you see a G (= gate on) in the time mode, it will take note from the stack/list of notes in pitch mode.
Another example to clarify:

Code: Select all

C2 G s
C2 G s
C2 G s
C2 G s
C2 G s
C2 G s
C2 G s
C2 G -
Is 100% the same as:

Code: Select all

TM: G O O O O O O O
PM: c
antto wrote: i was thinking that if you got 8 steps, you gotta set the pitches to all 8 steps, but you're saying that the sequencer is kind of "smarter" and you can actually enter less pitches while still programming the same pattern
jep.
its actually quite logic: you enter notes, not steps. The steps in time mode will grab those notes when needed. Pitch Mode and Time Mode are somewhat independent. (meaning I can change all pitches without reprogramming when they will play.)
antto wrote: EDIT: about the internal vs external clock:
i think it's good to know that (as we have doubts about some aspects of the synth being Tempo-dependant) this should be mentioned explicitly
i think that if internaly sequenced, with internal timing, there is a great chance that something might be tempo dependant
which will probably not work in the same way if using an external clock
afaik 303 works the same with internal or external clock.. no difference

Post

Robin from www.rs-met.com wrote: anyway - today i spent all day lawng to implement my own sequencer (including GUI). and now i'm damn tired, but it was a productive workday
while you're still in this stage:
please don't implement it like the other 303 clones.
implement it like a real 303, so you can enter patterns like in my example above.

that way this would be the first accurate 303 clone.. and you'll make a lot of people happy

Post

I guess that someone has to say it at this point, so it might as well be me...

Emulating the note entry / sequencing of the original surely isn't that desirable in this day and age. It's pretty much the thing that keeps most of the emulations from becoming really usable instruments.

Please, pretty please with sugar on top, consider it carefully. There are more civilized ways to realize a step sequencer that achieves the same results without being a pain in the butt to use. Seriously.

It's what the sequencer in the original does functionwise what's necessary, not the user experience.

(And the obviously necessary disclaimer: I'm talking as a person who's owned several 303s and is familiar with all the emulations)
Now available with added Inherently Suspect Justification!

Post Reply

Return to “DSP and Plugin Development”