Open303 - open source 303 emulation project - collaborators wanted
-
- KVRist
- 445 posts since 10 Jun, 2004
Edit: removed post
-
- KVRAF
- 3674 posts since 13 Jun, 2004
gotta check the x0x sample; rv0's confused me: right channel only,
but it made me think of 1-note acid sambas again, so thanks ;p
yeah, you CANNOT let a brilliant plugin like venom languish in that
state, antto...still feel the full-view of the sequencer would be nice:
semitones, octaves, gate/rest, slide, accent, and then have all the editing
options, as 'analogue' as they can be.
the randomizer is still a great tool, and i'm still not sure i grasp how it
selects different parameters for the function ( but i'm persevering when i
can ). i don't feel there's much/anything wrong with your sequencer; just need to
make it even more accessible. did you really overwrite all your code? or just
f*** up your current project file? anyway, glad you haven't just disappeared with your x0xbox. (does the x0xbox do randomize too?)
but it made me think of 1-note acid sambas again, so thanks ;p
yeah, you CANNOT let a brilliant plugin like venom languish in that
state, antto...still feel the full-view of the sequencer would be nice:
semitones, octaves, gate/rest, slide, accent, and then have all the editing
options, as 'analogue' as they can be.
the randomizer is still a great tool, and i'm still not sure i grasp how it
selects different parameters for the function ( but i'm persevering when i
can ). i don't feel there's much/anything wrong with your sequencer; just need to
make it even more accessible. did you really overwrite all your code? or just
f*** up your current project file? anyway, glad you haven't just disappeared with your x0xbox. (does the x0xbox do randomize too?)
- KVRAF
- 2568 posts since 4 Sep, 2006 from 127.0.0.1
mztk: i f*cked up everything by trying to implement the LCD and the new 2-types of patterns, and erased a lot of code, now it simply doesn't work, i can only temporarely load a pattern and play it, but that's all
nah, i wanted a x0xb0x so i can examine some stuff by myself, like knob response and maybe waveforms/gimmick circuit under a microscope (if they are the same as on a regular 303)
yet, i haven't done anything, everything is still callibrated to sound like rv0's 303, so any new stuff i do which is based on measurements of my x0xb0x - i'll do it very carefully
there are things in the x0x that work the same way, but there are differencies
and uhm, i modified the x0xb0x firmware and wrote the little brother of Venom's sequencer there
in other words, my x0xb0x has a sequencer very similar to the 303 sequencer, pitch and time mode, tripplets, that kind of stuff (rv0 helped again with answers/tests about the behaviour of the interface)
this is what got me going with the idea about throwing all old plans in the trash
the new plan is inspired the x0x - i'll just implement a simple new sequencer for Venom, that will only have 303-type patterns (pitch/time mode)
the pattern editting interface would be somewhat similar (as much as possible)
and there will still be extra pattern manipulation functions on top of that
i already designed some of them on the x0x, like randomizing the notelist order, shifting pitch/time.. copy/paste
actually, pattern manipulation with this 303-type of patterns gives a whole new world of possibilities, unlike the old array-style patterns which is simply boring now..
anyway, this whole thing will take a lot of time, i'll be silent
nah, i wanted a x0xb0x so i can examine some stuff by myself, like knob response and maybe waveforms/gimmick circuit under a microscope (if they are the same as on a regular 303)
yet, i haven't done anything, everything is still callibrated to sound like rv0's 303, so any new stuff i do which is based on measurements of my x0xb0x - i'll do it very carefully
there are things in the x0x that work the same way, but there are differencies
and uhm, i modified the x0xb0x firmware and wrote the little brother of Venom's sequencer there
in other words, my x0xb0x has a sequencer very similar to the 303 sequencer, pitch and time mode, tripplets, that kind of stuff (rv0 helped again with answers/tests about the behaviour of the interface)
this is what got me going with the idea about throwing all old plans in the trash
the new plan is inspired the x0x - i'll just implement a simple new sequencer for Venom, that will only have 303-type patterns (pitch/time mode)
the pattern editting interface would be somewhat similar (as much as possible)
and there will still be extra pattern manipulation functions on top of that
i already designed some of them on the x0x, like randomizing the notelist order, shifting pitch/time.. copy/paste
actually, pattern manipulation with this 303-type of patterns gives a whole new world of possibilities, unlike the old array-style patterns which is simply boring now..
anyway, this whole thing will take a lot of time, i'll be silent
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
- 3674 posts since 13 Jun, 2004
hey antto, hows it going.
i finally started using the randomiser the right way, doing it to
individual parameters separately.
really good. esepcially the 'key' random. still don't know what the buttons mean,
lol, but i know what they do!
funny thing is..sometimes i have to press DOWN both of those little buttons next to 'go',
and sometimes they have to be UP to get that function. it happened on one file, and
then the sequencer audio locked up unless i deleted the second instance. later i resaved the file once i conned into working, and renamed it, and the problem has gone.
erm, i hear your firmware is pretty good....? if that programming is available on a
x0xbox, wow.
i finally started using the randomiser the right way, doing it to
individual parameters separately.
really good. esepcially the 'key' random. still don't know what the buttons mean,
lol, but i know what they do!
funny thing is..sometimes i have to press DOWN both of those little buttons next to 'go',
and sometimes they have to be UP to get that function. it happened on one file, and
then the sequencer audio locked up unless i deleted the second instance. later i resaved the file once i conned into working, and renamed it, and the problem has gone.
erm, i hear your firmware is pretty good....? if that programming is available on a
x0xbox, wow.
- KVRAF
- 2568 posts since 4 Sep, 2006 from 127.0.0.1
i guess you mean the "TO ALL" and "INVERT" buttons below the "GO!" button?
here's how it works:
set the Target to something, for example Gate
now when you press "GO!" it executes the function, which first looks up the values of the buttons "TO ALL" and "INVERT"
if only "TO ALL" is pressed down, then the Gate values of all steps are set to to the same value as the currently selected step.. thus "to all" ;]
if only "INVERT" is pressed down, the gate values for all steps will be inverted
if both buttons are down - it's gonna be random ;]
have in mind that some targets only have "TO ALL" and others only "INVERT" (for example, you can't invert a pitch value)
n0nx0x - yes, it is, tho only the Pattern Edit/Play are available, as there is no more room on the microcontroler (waiting for a CPU mod with like 8 times more space)
not only 303 interface, "n0n" might be familiar.. Venom's sequencer is called "N0NSeq" so you might guess that n0nx0x has some of the pattern manipulation features of Venom, things 303 guys have probably dreamed about, like < > shift, easy copy/paste, progress-bar (step position), instant pattern change .. and more to come..
also, developing this firmware was educational to me, i learned some neat stuff i could use.. it also inspired me again ;]
here's how it works:
set the Target to something, for example Gate
now when you press "GO!" it executes the function, which first looks up the values of the buttons "TO ALL" and "INVERT"
if only "TO ALL" is pressed down, then the Gate values of all steps are set to to the same value as the currently selected step.. thus "to all" ;]
if only "INVERT" is pressed down, the gate values for all steps will be inverted
if both buttons are down - it's gonna be random ;]
have in mind that some targets only have "TO ALL" and others only "INVERT" (for example, you can't invert a pitch value)
n0nx0x - yes, it is, tho only the Pattern Edit/Play are available, as there is no more room on the microcontroler (waiting for a CPU mod with like 8 times more space)
not only 303 interface, "n0n" might be familiar.. Venom's sequencer is called "N0NSeq" so you might guess that n0nx0x has some of the pattern manipulation features of Venom, things 303 guys have probably dreamed about, like < > shift, easy copy/paste, progress-bar (step position), instant pattern change .. and more to come..
also, developing this firmware was educational to me, i learned some neat stuff i could use.. it also inspired me again ;]
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
- 3674 posts since 13 Jun, 2004
i'll check that out.
yeah was kinda wondering if you'd be getting into those randomize
features too. all sounds good...
the back panel stuff on the plugin, lots of new sounds there...
yeah was kinda wondering if you'd be getting into those randomize
features too. all sounds good...
the back panel stuff on the plugin, lots of new sounds there...
- KVRAF
- 2568 posts since 4 Sep, 2006 from 127.0.0.1
haven't been posting since quite a while now
got some new clues and weird things
2 days ago i was talking with mystran about how the accent "tail" thing probably works, and i wasn't sure what he suggested is really what happens so i investigated it from the last audio samples i got from rv0
and while doing this i noticed something new, pretty odd

so this is a loop cut from the recording
with yellow i've drawn how the accent signal probably looks like
as a conclusion, it seems normal accented notes leave a tail during the whole length of the step they are on
the same behaviour is with normal accented notes slided to un-accented notes
but tied accented notes seem to have the tail only till the middle of the last step which is a bit odd
i was curious how my x0xb0x will react to this test (as you might know, it uses the n0nx0x firmware which is supposed to be something like a clone of the 303 sequencer, so patterns are supposed to be _the same_ there)
i programmed the pattern on the x0x, and recorded the same test
to my surprise - absolutely the same behaviour
so the answer to this lies somewhere in the code of n0nx0x and the x0xb0x note_on() note_off() functions (which are a bit odd)
anyway..
some time before that, when working on n0nx0x i had to finaly summarise how the pattern interpretator should look like as a pseudo code
this bit of the sequencer is always confusing and many times i've made mistakes and bugs
so i concentrated my a$$ for 20 minutes and wrote it
http://www.box.net/shared/yk9potseok (txt file)
there is potentialy an unused variable (tg) i'm not sure why but i never reset it to 0.. tho, so far this works solid
today i was cleaning huge pieces of my (old) sequencer code
as i started coding the new sequencer into somewhat better looking classes
there is a sequencer class which holds an eeprom object (of ~4kb memory) a flash(ram) object (of ~1kb memory) a dinsync clock module, and so on..
i got only tiny bits of the clock and memory objects written so far, but i wanted to check if the whole sequencer will crash or not, after i deleted so much of the old code
to my surprise, when i conected the gate and pitch CVs and ran the synth - wtf
(audio)
sounded like a broken radio
i figured i output 20V to the osc instead of just 2V and my accent CV is stuck high, the osc (square wave) is not antialiased
but it f*ckin scared the hell out of me at first!
got some new clues and weird things
2 days ago i was talking with mystran about how the accent "tail" thing probably works, and i wasn't sure what he suggested is really what happens so i investigated it from the last audio samples i got from rv0
and while doing this i noticed something new, pretty odd

so this is a loop cut from the recording
with yellow i've drawn how the accent signal probably looks like
as a conclusion, it seems normal accented notes leave a tail during the whole length of the step they are on
the same behaviour is with normal accented notes slided to un-accented notes
but tied accented notes seem to have the tail only till the middle of the last step which is a bit odd
i was curious how my x0xb0x will react to this test (as you might know, it uses the n0nx0x firmware which is supposed to be something like a clone of the 303 sequencer, so patterns are supposed to be _the same_ there)
i programmed the pattern on the x0x, and recorded the same test
to my surprise - absolutely the same behaviour
so the answer to this lies somewhere in the code of n0nx0x and the x0xb0x note_on() note_off() functions (which are a bit odd)
anyway..
some time before that, when working on n0nx0x i had to finaly summarise how the pattern interpretator should look like as a pseudo code
this bit of the sequencer is always confusing and many times i've made mistakes and bugs
so i concentrated my a$$ for 20 minutes and wrote it
http://www.box.net/shared/yk9potseok (txt file)
there is potentialy an unused variable (tg) i'm not sure why but i never reset it to 0.. tho, so far this works solid
today i was cleaning huge pieces of my (old) sequencer code
as i started coding the new sequencer into somewhat better looking classes
there is a sequencer class which holds an eeprom object (of ~4kb memory) a flash(ram) object (of ~1kb memory) a dinsync clock module, and so on..
i got only tiny bits of the clock and memory objects written so far, but i wanted to check if the whole sequencer will crash or not, after i deleted so much of the old code
to my surprise, when i conected the gate and pitch CVs and ran the synth - wtf
sounded like a broken radio
i figured i output 20V to the osc instead of just 2V and my accent CV is stuck high, the osc (square wave) is not antialiased
but it f*ckin scared the hell out of me at first!
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
- 445 posts since 10 Jun, 2004
antto wrote:haven't been posting since quite a while now
got some new clues and weird things
2 days ago i was talking with mystran about how the accent "tail" thing probably works, and i wasn't sure what he suggested is really what happens so i investigated it from the last audio samples i got from rv0
and while doing this i noticed something new, pretty odd
so this is a loop cut from the recording
with yellow i've drawn how the accent signal probably looks like
as a conclusion, it seems normal accented notes leave a tail during the whole length of the step they are on
the same behaviour is with normal accented notes slided to un-accented notes
Antto, this was the two types of accents I was talking about earlier in the thread. Sorry I didn't follow up on the post but it looks like you've discovered/verified it yourself..
--Mike
AudioRealism
www.audiorealism.se
www.audiorealism.se
- KVRAF
- 2568 posts since 4 Sep, 2006 from 127.0.0.1
some new clues about the filter: there isn't any "minimum feedback level when resonance is 0" as i suggested earlier in the thread
but indeed the filter looses less gain compared to kunn's model which is supposed to be very close in that matter
what actually happens is that the resonance pot is dual
when increasing the resonance - this puts more feedback from the output to the input of the filter (creating the resonance, and gain IS lost a lot here)
but another path thru the reso pot also puts more of the filter output to the VCA input
so in other words, when increasing the resonance, you also add more of the output to the VCA which is probably supposed to fix the gain loss
another clue: the signal that feeds back goes thru one HP filter, while the signal that is added again to the VCA is filtered by another HP filter
this is rather interesting.. ;]
conclusion: kunn's filter is the best!
got some other cool things to report when i have more time
now that i've been looking around in the x0xb0x schematics, and poking my x0xb0x in all kinds of places..
but indeed the filter looses less gain compared to kunn's model which is supposed to be very close in that matter
what actually happens is that the resonance pot is dual
when increasing the resonance - this puts more feedback from the output to the input of the filter (creating the resonance, and gain IS lost a lot here)
but another path thru the reso pot also puts more of the filter output to the VCA input
so in other words, when increasing the resonance, you also add more of the output to the VCA which is probably supposed to fix the gain loss
another clue: the signal that feeds back goes thru one HP filter, while the signal that is added again to the VCA is filtered by another HP filter
this is rather interesting.. ;]
conclusion: kunn's filter is the best!
got some other cool things to report when i have more time
now that i've been looking around in the x0xb0x schematics, and poking my x0xb0x in all kinds of places..
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
- 2568 posts since 4 Sep, 2006 from 127.0.0.1
more new clues:
the sawtooth doesn't get filtered at all
so from the VCO output it directly enters the main filter (which only has a 0.7Hz DC blocker at the input, but this is rather low)
the square shaper on the other hand - it must have at least one additional HP filter before it goes to the main filter
the square asymmetry (or duty cycle or however you call it) now i'm almost 100% sure how it happens
it's DC bias coming from the sequencer PITCH CV
i plotted my old "soff" approximitation curve (you can find it here in the thread) on a exponential scale (erm like 1V/Oct) and the "soff" curve then looked linear!
the accent tail (on the VCA) is "sepparate" erm.. you could trigger the "ACCENT" signal and the "tail" will show up even when there is no Note playing
it shut's up immediately when the ACCENT signal goes off
oh, and this: http://www.firstpr.com.au/rwi/dfish/303-slide.html
WRONG
the dinsync clock has 24 pulses per quarter note (beat)
thus, a normal "step" takes 6 pulses (thus 4 steps in a beat)
each step (on a normal note) has a note and a "gap"
the 6 pulses during this step have 2 edges, one going up (+5V or something) and then 0V
so there are a total of 12 points where the sequencer is able to respond
so according to what Robin Whittle says: the note takes 7 "ticks" and the "gap" takes 5 ticks (3.5 pulses vs 2.5 pulses)
looking at a sample from rv0, slide test at 40BPM
i'm selecting a single "step" containing a high-pitched normal note and of course - a "gap" ;]
the total length of the step is 16568 samples (Fs=44100Hz)
now i select only the note part, length is: ~8390 samples (i'm not selecting the VCA gate-release here)
..my calculator tells me this is 0.506398 of the total length
now based on the total length, let's calculate what the note-length has to be if it was 7/5 as in the article - 16568*(12/7) = 9664.666 samples
if i select this in the wave editor, it goes way after the vca gate-release has gone away..
so this is simply another myth busted ;] 6/6
cheers to anyone still following this
the sawtooth doesn't get filtered at all
so from the VCO output it directly enters the main filter (which only has a 0.7Hz DC blocker at the input, but this is rather low)
the square shaper on the other hand - it must have at least one additional HP filter before it goes to the main filter
the square asymmetry (or duty cycle or however you call it) now i'm almost 100% sure how it happens
it's DC bias coming from the sequencer PITCH CV
i plotted my old "soff" approximitation curve (you can find it here in the thread) on a exponential scale (erm like 1V/Oct) and the "soff" curve then looked linear!
the accent tail (on the VCA) is "sepparate" erm.. you could trigger the "ACCENT" signal and the "tail" will show up even when there is no Note playing
it shut's up immediately when the ACCENT signal goes off
oh, and this: http://www.firstpr.com.au/rwi/dfish/303-slide.html
i also thought that the note lengths are a bit longer than half the step (i previously said something like 0.525 or something..Lets say you have 16 1/16 th notes programmed. Each note occupies
six clock pulses - lets call them pulses 0 to 5.
The gate goes high at the start of clock pulse 0 - the positive edge.
The gate goes low half-way through clock pulse 3 - on its negative
edge.
That is for a normal, 1/16 note. So there are 3.5 clock pulses on
and 2.5 off.
WRONG
the dinsync clock has 24 pulses per quarter note (beat)
thus, a normal "step" takes 6 pulses (thus 4 steps in a beat)
each step (on a normal note) has a note and a "gap"
the 6 pulses during this step have 2 edges, one going up (+5V or something) and then 0V
so there are a total of 12 points where the sequencer is able to respond
so according to what Robin Whittle says: the note takes 7 "ticks" and the "gap" takes 5 ticks (3.5 pulses vs 2.5 pulses)
looking at a sample from rv0, slide test at 40BPM
i'm selecting a single "step" containing a high-pitched normal note and of course - a "gap" ;]
the total length of the step is 16568 samples (Fs=44100Hz)
now i select only the note part, length is: ~8390 samples (i'm not selecting the VCA gate-release here)
..my calculator tells me this is 0.506398 of the total length
now based on the total length, let's calculate what the note-length has to be if it was 7/5 as in the article - 16568*(12/7) = 9664.666 samples
if i select this in the wave editor, it goes way after the vca gate-release has gone away..
so this is simply another myth busted ;] 6/6
cheers to anyone still following this
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
- 2568 posts since 4 Sep, 2006 from 127.0.0.1
the above statement for the VCO is partially wrong
none of the waveforms are processed by HP filters, so indeed the very first HPF is the DC blocker C17 / R62 at the filter input
there is no pitch CV feeding into the square wave
it's just a lot more difficult thing

Note: this is from my x0xb0x, and it's not the "rare" transistor there
the first (flat) part of the square is where the transistor Q8 is inactive (cutoff state)
the pulsewith is the point where it activates, and this varies across frequency, and is set by 2 things
on one side, it's the sawtooth passing thru C10 R35 and R34 which form something like a "high shelf" filter
on the other side it's C11 which acts as a lowpass filter
the "middle" of the pulse is thus pulled in both directions by both sides, which is pretty MAD ;]
after the activation of the transistor, there is a "smooth" part (i call it a knee) and after that, the transistor reaches saturation state (the other flat part which also seems to bend down slowly in an exponential fashion
the saturation point comes very soon on high frequencies, but pretty slow on the low ones
this is also what causes the "bump" i was talking about before
huge THANKS to "guest" @ x0xb0x forums, and the guys @ #musicdsp, for the technical details and analysis
none of the waveforms are processed by HP filters, so indeed the very first HPF is the DC blocker C17 / R62 at the filter input
there is no pitch CV feeding into the square wave
it's just a lot more difficult thing

Note: this is from my x0xb0x, and it's not the "rare" transistor there
the first (flat) part of the square is where the transistor Q8 is inactive (cutoff state)
the pulsewith is the point where it activates, and this varies across frequency, and is set by 2 things
on one side, it's the sawtooth passing thru C10 R35 and R34 which form something like a "high shelf" filter
on the other side it's C11 which acts as a lowpass filter
the "middle" of the pulse is thus pulled in both directions by both sides, which is pretty MAD ;]
after the activation of the transistor, there is a "smooth" part (i call it a knee) and after that, the transistor reaches saturation state (the other flat part which also seems to bend down slowly in an exponential fashion
the saturation point comes very soon on high frequencies, but pretty slow on the low ones
this is also what causes the "bump" i was talking about before
huge THANKS to "guest" @ x0xb0x forums, and the guys @ #musicdsp, for the technical details and analysis
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
-
- KVRian
- 687 posts since 27 Dec, 2003
Is this the latest we can get Robin?Robin from www.rs-met.com wrote:O.K. - nuff said - here's the very first prototype:
www.rs-met.com/temp/AciDevil.zip
- KVRAF
- 2568 posts since 4 Sep, 2006 from 127.0.0.1
Dandruff: hi
the sample demonstrated a comparison between my "real" x0xb0x and a software synth (not open303 tho)
they each play 1 take of a pattern, one was recorded on the left channel, the other - on the right channel
open303 so far is.. sadly, nowhere
tho, now we know a lot more about how to approximate the sound and behaviour of a 303 due to the discussion, tests, debates, experiments, recordings, and analysis
i don't remember what the latest built release was
it had a GUI for sure (the first release(s) didn't)
btw, Robin, how's it going? doing some other bigger stuff i guess ;]
the sample demonstrated a comparison between my "real" x0xb0x and a software synth (not open303 tho)
they each play 1 take of a pattern, one was recorded on the left channel, the other - on the right channel
open303 so far is.. sadly, nowhere
tho, now we know a lot more about how to approximate the sound and behaviour of a 303 due to the discussion, tests, debates, experiments, recordings, and analysis
i don't remember what the latest built release was
it had a GUI for sure (the first release(s) didn't)
btw, Robin, how's it going? doing some other bigger stuff i guess ;]
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
