Venom VB-303

Venom VB-303 is a win32 VST made with SynthEdit/SE_SDK2.
It’s an approximation of the sound of a x0xb0x, and the sequencer of the TB-303.


Download: (4 MB)
Discussion: at KVR

For many reasons, this plugin will not be developed any further, don’t wait for updates/bugfixes.


I am interested in using a 303, not because it emulates a bass guitar, but because of that special unique sound that comes out of it.
I’ve been trying to recreate this sound for 10 years, i know it’s a single oscillator thru a resonant filter, but no matter what i did - something wasn’t quite right.
I’ve been trying to understand - WHY is it so hard to make this sound on my own? What makes it so special?
It took me 4 years to get to here, and now i think i can see the answer.

What is so special about the 303?

It’s just 1 oscillator, thru 1 filter, and VCA, controlled via a sequencer.

Well every synth has an oscillator, filter and amp, and you have a sequencer in your DAW, no?

Many people think they can substitude a 303 with any synth which has saw/square and a resonant filter.
They are missing the point, the 303 shouldn’t be taken apart like that, it should be examined as a whole. And the combination of that oscillator, with that filter, with that sequencer, and those other little details (accent and slide) working together is what makes this thing unique, and so hard to recreate with anything else.
So, no, you just cannot substitute a 303 with any synth, you need a synth which is explicitly designed to emulate the 303.
Fortunately for everyone, there are quite a number of 303 clones and emulations, in hardware and software form, this here is just one of them.

It’s the filter!

It’s also a common misconception that the unique sound of the 303 is all due to that filter, well, it’s not.
The unique 303 sound is 50% due to sequencer which controls the synth engine, and the other 50% goes between the oscillator, filter, accent, slide, and how the parameters (Tone Control) work.
Notice how i basically mentioned every single thing on that synth. That’s correct, the only normal thing in the 303 is the sawtooth waveform, which is more or less a pure boring old ramp. So while the square wave, the filter and those other things are indeed unique on their own - this doesn’t mean that you’ll instantly make acid if you take the filter from the 303 and slap it in another synth. The individual parts are not responsible for the result, it’s the combination of them together in that little box.

Aww, I can’t believe that’s the explanation, I thought it’s the filter!

So did I… 4 years ago ;]


How it started..

The first “Beta” release of the VB-303 was in 2009.
At that time, it wasn’t a very serious project, and it was rather ugly.
After that, i started a thread in the DSP section at KVR about my lousy filter. That thread soon morphed into a discussion about Ladder filters and specifically transistor and diode ladder filters.
And finally a dedicated thread was created for discussing 303 stuff - Open303.
At that time i barely knew anything about the TB-303. I’ve been reading whatever was available on the internet, and listening to audio samples from the few places i managed to find. At the Open303 thread, we were asking for someone who owns a TB-303 to record us some audio samples that we can look at.. At some point in time then, some guy (rv0) PM’ed me that he can record samples for me, i really didn’t expect that to happen, this 303 seemed so mythical to me.
rv0 gave answers to my hundreds of questions with great patience, as well as audio recordings, many of them. He was also asking me why don’t i try to make my sequencer more like the real thing, i simply skipped answering or rejected.
At that time, my foggy impression about the sequencer on that thing was that it’s unusable/broken/weird/unpredictable because that was the information poping up everywhere on the internet. I also started noticing that a number of things that i had read about the 303 don’t fit with my current findings at that time. So i started questioning the “facts” and became more suspicious about what’s written here and there. I also started listening to what rv0 was saying about the original sequencer, which seemed very hard at first, because i just didn’t want to listen, and was looking at it from the wrong direction.
So it seemed that my current sequencer has to be rewritten, and i just didn’t see a way to make it work like the original, since it wasn’t even able to blink LEDs with the tempo and the actual code was such a mess. The VB-303 project had already gone in a very wrong direction. It was basically unfixable the way it was.
In the middle of 2010 i managed to get myself a x0xb0x.
I quickly found out that the thing has an open-source firmware and was written in C, i took the tools needed, and recompiled it. A few days later i became roughly familiar with the main functions and managed to modify some of the sequencer code. That was a great opportunity to attempt to write a 303 sequencer for the x0xb0x, rv0 agreed. Unfortunately, the space on the cpu ran out, i could barely fit the pattern editing functions of the sequencer. However, thanks to this experience, i was so inspired by how the code worked, i asked myself - can’t i do this for the VB-303? This time i didn’t want to risk wasting time and efforts for nothing, so i began writing a “Plan” for bringing the VB-303 project back to life. It was basically a plan written in Notepad. ;] One very important problem was: How do you press multiple buttons at the same time? The only answer i could think of was - via MIDI notes, they are polyphonic by nature, and as a coincidence, the 303 sequencer has 24 buttons, which is exactly 2 octaves. This is very weird, but at that time i wasn’t thinking about what’s normal and what isn’t, i just wanted to resurect my project. I layed down the other difficult aspects in my “Plan” and started looking for solutions before i actually start coding anything. Because little problems do happen, and it’s those things that really slowed the developement of the first version of the synth.
At the end, my “Plan” took shape and was quite detailed, i had the feeling that i know exactly how to do this. So i started coding. Notice how this is all about the sequencer.
At one point, i was able to copy and paste huge sections of code from my x0xb0x firmware into my new sequencer, and it worked (only with some minor variable name tweaks). At that time there was also a x0xb0x cpu upgrade project being brewed at the x0x forums, which i hoped to get soon. I wanted to try and code the same sequencer interface to run on both the VB-303 and the x0xb0x. Well, that didn’t happen. The x0xb0x cpu mod project got frozen for very long periods of time. In the middle of 2011 i got sick of waiting for that thing. I decided to split the two sequencers and continue with the VB-303 sepparately. The x0xb0x was making things difficult also because it has only 23 buttons (technically there’s a 24th button but in a very nasty place) and the button layout wasn’t easy to make equivalent to that on the 303. So i freezed my x0xb0x firmware project. This way the VB-303 was free to have the same button layout as the original.
So now, on the 20th April 2013, i decided to release the VB-303 as is, it’s not quite finished, but it actually has all of the functions of the original sequencer, including track mode. I never thought i’d do any of this for the same old reason - i didn’t know anything about it so i thought it’s something very complicated. It’s actually not.
The more i actually learned about the 303 sequencer - the more i liked it.
Steps, Notes, Patterns, Chains of Patterns, Tracks.. it all makes perfect sense ;]