Practice Room — Music Theory Tools for Guitar and Bass

The Bass Generator: A Vibe-Coded Love Letter to the TB-303

The Bass Generator: A Vibe-Coded Love Letter to the TB-303

How a "let's see what happens" experiment turned into a practice tool

This little corner of the site started life as an experiment. I wanted to see how far I could get building something fun with a bit of vibe coding — no detailed spec, no grand plan, just a question: can I make a TB-303-flavoured bassline generator that's actually useful for practice? As a lifelong 303 obsessive, the answer was always going to be "I'm going to enjoy finding out."

What came out the other side is the Bass Generator — a sixteen-step sequencer with a synth voice loosely modelled on Roland's most misunderstood box, sitting on a webpage, ready to spit out a bassline whenever you fancy jamming over one.

A quick word on the 303 itself

Here's the thing most people don't realise about the TB-303: it failed. Spectacularly.

Roland released it in 1981 as the Transistor Bass — the clue is right there in the name. It was pitched at solo guitarists and singer-songwriters as a programmable bass accompaniment unit. The idea was that you'd sit at home, program in a walking bassline, and practice your guitar parts over the top. Roland imagined it sitting next to a TR-606 drum machine in a bedroom somewhere, holding down the low end while a real human strummed away on top.

Players hated it. The interface was cryptic, it didn't sound much like a bass guitar, and programming it was a nightmare. Roland pulled the plug after about eighteen months and roughly 10,000 units.

Then, of course, a few years later, some kids in Chicago found them in pawn shops for next to nothing, twisted the resonance knob about as far as it would go, and accidentally invented acid house. The squelchy, liquid, alien sound that Roland engineers had spent years trying to avoid turned out to be the whole point. The 303 went from commercial flop to one of the most influential electronic instruments ever made.

Back to the original mission

This tool tips its hat to both lives of the 303, but it leans into the first one. You can absolutely crank the resonance, max the envelope amount, and squelch your way into late-eighties Chicago — that's all in there, and it's a lot of fun. But that wasn't the goal.

The goal was Roland's original goal: a programmable bass accompaniment for someone learning an instrument.

If you're a guitarist or bassist working through a key — say you've been drilling A minor pentatonic, or you're trying to get comfortable improvising over a Dorian vamp — you can program a basic bassline here, hit play, and have something to play along with. It loops. It stays in key. It doesn't get bored. And when you find a bassline that feels good under your fingers, you can either export it to MIDI for use in a DAW, or just read it back from the pattern display and write it down.

It's not trying to be an authentic 303 emulation. There are far better software 303s out there if that's what you want, several of them free. This one's a fun little playground — a place to mess about, generate ideas, and most importantly, get a backing line going so you can actually practice.


How to use it

The most important thing to understand: the synth makes no sound until there's a pattern to play. When you first load the page, all sixteen steps are rests. Hit play and you'll hear silence. So your first job is always to get notes onto the grid.

You've got two ways to do that.

Option 1 — Generate a random pattern

This is the fastest route, and honestly the most fun. Set your Key and Scale at the top (defaults are A minor, which is a sensible place to start for most people), then hit Generate. The tool builds a weighted random sixteen-step pattern in that key, with a sensible mix of notes, rests, accents, and slides. Hit Play and you've got a bassline.

If you don't like it, hit Generate again. Hit it ten more times. The patterns are different every time — eventually one will jump out at you.

You've also got Rnd A/S, which keeps the notes you've got but randomises just the accents and slides. Useful when the notes are good but the rhythm feels stiff.

Option 2 — Build your own pattern

Each of the sixteen steps in the grid has:

That last one is the secret sauce of the 303 sound. Slides are what give acid basslines their liquid, conversational feel. Used sparingly, they also work brilliantly for walking basslines and bluesy phrases.

Once you've got a pattern

Hit Play (or just press the spacebar). The current step lights up as it plays so you can see what's happening. Loop is on by default, which is what you want for practice — it'll keep going until you stop it.

The Tempo field accepts anything from 40 to 200 BPM. The Steps field lets you shorten the pattern if you want something less than sixteen steps long — handy for half-bar phrases or weird time signatures.

Patterns and chaining

There are four pattern slots — P1, P2, P3, P4 — sitting just above the grid. Click between them to edit each one independently. The Chain dropdown lets you stitch them together: set it to 4 and the player will run through P1 → P2 → P3 → P4 in order before looping. This is great for building longer phrases, or for setting up an A/B/A/C song structure to play over.

Copy and Paste (in the patterns row) let you duplicate a pattern across slots — useful when you want P2 to be a slight variation of P1 rather than starting from scratch.

Synth controls

The middle panel is where you shape the sound. The defaults are tuned for a fairly clean, percussive bass tone that sits well under a guitar. If you want to mess about:

Try moving Reso and Env up together while a pattern is playing — that's the classic 303 filter sweep, and it's the sound that took over the world in about 1988.

Exporting

Two options once you've got something you like:

A couple of small things


That's it. Generate something, hit play, grab your guitar, and see what comes out. If you find a line you love, ship it to MIDI and keep it forever.

Have fun.