Open303 - open source 303 emulation project - collaborators wanted
-
- KVRAF
- 3404 posts since 15 Sep, 2002
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.
-
- KVRist
- 161 posts since 15 Jun, 2009
i'm the one recording samples for anttomistertoast wrote:Can you give me the sample so I can use it in my evidence-based FAQ?
this one is the last i did:
http://users.telenet.be/darffader/rv0te ... estest.ogg
-
- KVRAF
- 3404 posts since 15 Sep, 2002
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.
- KVRAF
- 2569 posts since 4 Sep, 2006 from 127.0.0.1
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 ;]
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
..as long as it has BASS and it's LOUD!
irc.libera.chat >>> #kvr
-
Music Engineer Music Engineer https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=15959
- KVRAF
- Topic Starter
- 4379 posts since 8 Mar, 2004 from Berlin, Germany
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)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)
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
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.your samples are by far the best ones i got, clean, no hard HP filters, perfect for what we're doing here ;]
@ 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.
-
- KVRAF
- 3404 posts since 15 Sep, 2002
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.
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.
-
Music Engineer Music Engineer https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=15959
- KVRAF
- Topic Starter
- 4379 posts since 8 Mar, 2004 from Berlin, Germany
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.
-
- KVRist
- 161 posts since 15 Jun, 2009
no problem, it will be fully embedded anyway.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
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 -
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)
-> 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.
-
- KVRAF
- 3404 posts since 15 Sep, 2002
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?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.
Swing is the difference between a drum machine and a sex machine.
-
- KVRist
- 161 posts since 15 Jun, 2009
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..
- KVRAF
- 2569 posts since 4 Sep, 2006 from 127.0.0.1
well, since the last thing i discovered, i think the sequencer just outputs pitch changes instantlymistertoast wrote: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?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.
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
..as long as it has BASS and it's LOUD!
irc.libera.chat >>> #kvr
- KVRAF
- 2569 posts since 4 Sep, 2006 from 127.0.0.1
[/quote]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(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)Code: Select all
TM: G G G G G O G O PM: c ; C(U) ; c(S) ; C(U) ; c(S) ; C(U)
-> 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.
//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
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
..as long as it has BASS and it's LOUD!
irc.libera.chat >>> #kvr
-
- KVRist
- 161 posts since 15 Jun, 2009
yes.. Time mode can have 3 values.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?
Pitch Mode has the note value and 4 possible params (Up, Down, Accent, Slide)
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)antto wrote: what would happen if you didn't add the Slide there in PitchMode? -> a long note that doesn't change in pitch?
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 -
Code: Select all
TM: G O O O O O O O
PM: c
jep.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
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.)
afaik 303 works the same with internal or external clock.. no differenceantto 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
-
- KVRist
- 161 posts since 15 Jun, 2009
while you're still in this stage: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
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
-
- KVRian
- 1398 posts since 9 Dec, 2002
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)
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!
