Lemus

ro-mono-303

Emulation of the Roland TB-303 Bass Line (1981), a monophonic bass synthesizer with a built-in step sequencer.

It runs the TB-303's original sequencer firmware on an emulated CPU, and models its voice circuit part by part from the service notes.

Hear it: Knob ride45 s · every knob ridden · no effects
All five loopsNext to a real TB-303
Download for macOSDownload for Windows
Free · macOS 11+ (Universal): AU, VST3, standalone · Windows 10+: VST3, standalone
ro-mono-303 in voice mode: the TB-303 panel with knobs, switches and keys, its brand mark slots left blank, and the plugin bar with SYNC, VCF TRIM, CUT OFF MAX and CLEAR MEMORY
ro-mono-303 in voice mode, without a user-supplied artwork file.
LISTEN

Five loops, nothing added

Straight from ro-mono-303, with no effects. The lines were written for this page, and in every loop all the knobs move.

Knob ride

45 s · saw

A two-bar acid line with every knob ridden through its range, from closed and dull to wide open.

Accents

38 s · saw

Runs of accents while ACCENT and RESONANCE come up. Each accent in a run climbs higher than the last.

Slides

40 s · saw

Octave slides, plain and accented. The glide takes the same time however far the note travels.

Square wave

39 s · square

A melodic line on the 303's own square shaper, from dark to biting.

Bass to acid

48 s · saw

A plain, closed bass part that opens into a full squelch and closes again.

All clips: saw unless marked, mono, AAC 192 kb/s.

ACCURACY

How close it is

Next to a real TB-303

acidvoice.com has recordings of a real TB-303 playing an accent test at three knob settings. These are ro-mono-303 playing the same pattern at the same settings. Play them next to the originals on his site.

ro-mono-303 is set to match his unit: CUT OFF MAX 2.05 kHz and DECAY 65 % (his site doesn't give DECAY). His low A♯ is about 25 cents flat against his high one: his unit's octave is wide, its WIDTH trimmer (TM5) out of trim. These clips leave ro-mono-303's trimmers as the factory set them, so its octaves are exact.

CUT OFF 60 % · RESONANCE 100 % · ACCENT 100 %
ro-mono-303 at CUT OFF 51 %, where its filter sits where his does at 60 %
CUT OFF 0 % · RESONANCE 0 % · ACCENT 100 %
CUT OFF 100 % · RESONANCE 100 % · ACCENT 100 %

In numbers

Measured note by note against 400 notes recorded from a real TB-303. Method: How it was made.

4.89
distance from the real unit, lower is closer
A perfect emulation would score about 2.39, the difference between two takes of the real unit. The schematic values alone score 9.76.
5.5 %
median error in the resonant peak
Roland's TB-303 software, measured the same way: 21 %.
±1 ¢
pitch error over five octaves
C1 to C5 against exact octaves, with the trimmers as the factory set them. Roland's TB-303 software: −7 to +8 ¢.
16 of 16
service-note adjustments and specifications pass
Pitch scale, filter ring period, envelope times, TEMPO range and gate length.
KNOWN DIFFERENCES

What is still different

  • Accented low notes

    On both real units, accented notes low in CUT OFF lose a band around 260–330 Hz that ro-mono-303 keeps, up to 16 dB on one harmonic. Plain notes match. Nothing in the circuit as transcribed accounts for it.

    Wanted: single accented low notes at CUT OFF 0, RESONANCE 0, ENV MOD 0 and several ACCENT settings.
  • The accent's sweep

    It is fitted to one unit at one setting: acidvoice.com's, with ACCENT and RESONANCE full. Its accents now peak within −70 to +30 cents of the real ones (they were 1.3–2.3 semitones short), and the climb gets halfway 2–3 ms sooner, within one period of the measurement.

    Wanted: accented runs at several ACCENT settings.
  • Loud accents

    Both real units flatten their loudest accents, and the BA662 VCA chip as reverse engineered doesn't. Its output is limited to a fifth of its swing to match; why the real chip does this isn't known. There is no manufacturer data for the BA662.

    Wanted: Rohm's BA662 data sheet, or measurements of an original chip's gain against its control current.
  • Against Din Sync's unit

    Brightness in the first 0.1 s of a note is about 25 % off; two takes of the unit differ by about 2 %. With the other knobs at 25 %, the resonant peak is about 250 cents high.

    Wanted: the recording sheet's single notes, from another unit.
  • One calibrated unit

    acidvoice.com's unit reaches 2.05 kHz at full CUT OFF, Din Sync's 1.35 kHz, and which is more typical isn't known. CUT OFF MAX in the plugin bar covers the spread.

    Wanted: full CUT OFF and RESONANCE with no ENV MOD, from as many units as possible.
  • Pitch scale

    acidvoice.com's unit's octave is wide: its low A♯ is about 25 cents flat against its high one, its WIDTH trimmer (TM5) out of trim. ro-mono-303 leaves the factory with exact octaves, and SERVICE can trim it to match a unit. How far real units usually drift isn't known.

    Wanted: single notes across all octaves.
WE NEED YOUR HELP

If you own a TB-303

Record it straight from its output into a 24-bit interface, with no effects, at the settings on the recording sheet, and say whether the unit is stock or modified. Recordings are published under CC-BY with your name on them. With them, this page can also carry a blind test of a real unit against ro-mono-303.

WHAT'S EMULATED

The whole machine, not just the sound

The TB-303's digital side runs its original firmware on an emulated CPU. Its analog voice is modelled part by part from the schematic, and every block is checked against a SPICE simulation.

Status: working
CPU AND SEQUENCER
original firmware
IC8
NEC µPD650C CPU
µCOM-43, emulated. Runs the 303's own program from your ROM.
Pattern RAM
Battery-backed memory, saved with the session.
Keys, switches and LEDs
The key matrix, read and lit by the firmware.
CV, gate, accent and slide latches
Where the firmware hands each step to the voice.
DIN sync input
Driven by the host's transport when SYNC is on.
VOICE
modelled from the schematic, checked against SPICE
SIGNAL PATH
Pitch
64-step DAC and the slide circuit
VCO
Expo converter, saw core, Q8 square shaper
VCF
Four-pole transistor ladder, Q21 in the resonance loop
VCA
The BA662 chip, from a reverse-engineered original
Output
Mixer, VOLUME and the output stage's clipping
CONTROL
Filter envelope› VCF
The MEG, with DECAY and ENV MOD
Accent sweep› VCF
C13 and the RESONANCE pot's second gang
Volume envelope› VCA
The VEG, with Q31 and Q32
Gate› VEG
The gate-conditioning circuit and its timing
DEVELOPMENT

How it was made

  1. 01

    Schematic and SPICE

    Each block of the voice was modelled from the schematic in the service notes, then simulated in ngspice from the same schematic and compared with the model, with typical part values and at both ends of their tolerance.

    Blockro-mono-303SPICE
    Slide, time constant22.00 ms22.04 ms
    Filter envelope, DECAY centre530 ms530 ms
    Accent boost, half / full ACCENT+4.1 / +8.9 dB+4.1 / +9.0 dB
    Note start after the gate6.7 ms7.0 ms
    Whole voice, note levelwithin 0.1–0.3 dB
  2. 02

    Service notes

    All 16 adjustments and specifications in the service notes pass, among them the pitch scale (two octaves at 4.0005 : 1, specified as 4 : 1 ± 0.5 %), the filter's ring period, the envelope times, TEMPO from 40 to 300 BPM and the gate length.

  3. 03

    Calibration to a real unit

    The schematic doesn't fix trimmer settings, transistor gain or potentiometer taper. These were fitted to Din Sync's TB-303 reference recordings, 400 notes recorded in 2010 from a real TB-303 at documented knob positions, with each value kept within its part's tolerance.

    PartSchematic valueFitted
    Filter trimmer TM3, ring period2.0 ms2.5 ms
    Resonance-loop transistor gain300385
    Filter envelope peak10 V9.3 V
    DECAY potentiometer1 MΩ860 kΩ
    Potentiometer taperexponentialtwo linear segments
    VCA control offset0 mV−80 mV
    VCA output swing±4.5 V±1 V
    Accent-sweep gang of the RESONANCE pot50 kΩ37.5 kΩ
    Distance from the real unit9.764.89

    The largest correction is the taper: with the schematic's exponential taper, the model is about an octave too bright with the controls at maximum. The last three values were fitted to how notes start and how accents peak and sweep, on Din Sync's unit and acidvoice.com's; they barely move the distance.

  4. 04

    Adjusting to a unit

    Units differ. Two controls in the plugin bar correspond to differences inside the hardware:

    CUT OFF MAX:
    how high full CUT OFF reaches, 1.2 to 3 kHz. The default, 1.35 kHz, is Din Sync's unit. acidvoice.com's unit is at 2.05 kHz, the nominal parts at 2.2 kHz and a typical unit at 2.5 kHz (Robin Whittle). Roland's software reaches 1.8 kHz.
    SERVICE:
    takes the panel off. The main board and the switch board are laid out as the service notes draw them, and the six trimmers turn as on the board: TM1 TEMPO, TM2 INT CLOCK, TM3 FREQ (the filter; the fitted unit's 2.5 ms ring), TM4 TUNE, TM5 WIDTH and TM6 CV. A scope, a frequency counter and a meter sit on the service notes' check points, beside the notes' adjustment steps. FACTORY TRIM puts every trimmer back.
    ro-mono-303 with SERVICE on: the TB-303's main board with its six trimmers, the switch board in front of it, and beside them a scope showing the filter ringing at test point TP6, a frequency counter, a meter on CV OUT and the service notes' adjustment steps, all in spec
    SERVICE on TM3's step: CUT OFF centred, RESONANCE full, and the scope timing the filter's ring at TP6.
COMPARISON WITH ROLAND'S SOFTWARE

Roland's TB-303 software

Measured the same way as ro-mono-303, against the same 400 real notes: the same MIDI, the same knob positions, and its "Simple Saw" patch with no drive or delay.

Mean difference from the real unit, saw / square. Lower is closer. ¢ = cents.
SpectrumBrightness, first 0.1 sBrightness, laterResonant peakLevel
Real unit, retaken2.5 / 2.2 dB41 / 60 ¢33 / 30 ¢95 / 43 ¢0.1 dB
ro-mono-3032.9 / 2.9 dB388 / 410 ¢184 / 174 ¢148 / 135 ¢0.8 dB
Roland's software3.3 / 3.3 dB718 / 812 ¢374 / 326 ¢385 / 333 ¢1.8 / 1.6 dB

Note by note, ro-mono-303 is closer to the real unit than Roland's software on 89 % of notes for the resonant peak, 84 % for brightness later in the note, 77 % for level, 76 % for brightness at the start and 70 % for the spectrum. ro-mono-303 was calibrated on these recordings; Roland's software wasn't.

Also measured in Roland's software

  • Accent level: at half ACCENT, accented notes are about 11.5 dB louder. The schematic gives 4.1 dB, or 3.7–4.7 dB across part tolerances.
  • Release: about 20 ms to fall silent after the gate closes. The schematic gives 14 ms, and a measured unit about 16 ms.
  • Pitch: the pitch scale is about 0.2 % wide (C1 7 cents flat, C5 8 cents sharp), and TUNING covers ±1 octave where the service notes give about ±700 cents.
  • Aliasing: on a 523 Hz saw, inharmonic content above 5 kHz is at −83 dB, against below −110 dB in ro-mono-303.

Measured with Roland's TB-303 software 1.0.9, KEYBOARD on, POSITION LOCK off. Lemus is not affiliated with or endorsed by Roland Corporation.

ROM IMAGE

ROM image and voice mode

The TB-303's sequencer is a program in its CPU's 2 KB mask ROM. With the ROM image present, ro-mono-303 runs that program on an emulated CPU. Without it, the plugin runs in voice mode, and the voice is played over MIDI.

[✓] ROM present[~] Voice mode
SoundComplete voiceComplete voice (identical)
SequencerOriginal firmware: PATTERN WRITE, pitch and time modes, TAP, accents and slides, used as on the hardwareNot available. Notes come from the host
TimingInternal clock (TEMPO 40–300 BPM), or SYNC: the host transport drives the DIN sync inputHost MIDI
Keys and LEDsDriven by the firmware. Usable with the mouse or the computer keyboardShown, but inactive
MIDIIn both modes, velocity 100 or more is an accent, and a note started while another is held slides to it. Controllers: CC 74 cutoff, 71 resonance, 12 env mod, 75 decay, 16 accent, 104 tuning, 11 volume.

The ROM, d650c-133.ic8 as in MAME's tb303 set, is not included, because the program is Roland's copyrighted work. Put it in the ROM folder, where it is identified by SHA1, or add it with "Add CPU ROM…" in the plugin bar. Patterns are saved with the session in either mode.

Roland's logo and model names are trademarks, so they aren't included either, and their places on the panel are blank. The plugin installs an empty artwork file, tb303.svg, in the ROM folder for users' own artwork. About panel artwork