Skip to main content
Open Source Electronic Instruments

JC-303

Unlock the iconic sound of Roland's TB-303 with JC-303, a faithful emulation of the legendary acid house and techno synth, available free of charge (!) as a VST2, VST3, LV2, CLAP, and AU plugin for Linux, macOS, or Windows DAWs.

Key Features

As far as software emulations of the TB-303 go and according to Acid Voice, JC-303 comes right after popular commercial and proprietary plugins such as AudioRealism's Bass Line or D16's Phoscyon.

Community Driven

JC-303 is a community-driven project open to contributions in coding, testing, bug reporting/fixing, design, and ideas for improvements. JC-303 also makes use of other open-source projects, such as Open303 and GuitarML.

Open303 Based

Over the course of a decade, a community of TB-303 enthusiasts led by Robin Schmidt, has been hard at work on the Open303 project, intending to create an open-source digital emulation of the TB-303. They dove deep into their oscilloscopes, engaged in circuit reverse engineering, and debated the inner workings of our beloved TB-303, striving to achieve the closest possible replica of the original TB-303 synthesizer with all its quirks and rich character. And all of this started in 2009 when Robin Schmidt posted a call for collaborators for his TB-303 emulation project on the KVR Audio forum.

GuitarML Integration

By capturing the sound output of real overdrive pedals and cabinets, the GuitarML project uses machine learning to train models that can be used in real-time to recreate the sound of actual overdrive! It is a community-driven project with a large and growing library of trained pedal and cabinet models available for download and testing, offering sheer unlimited tonal possibilities.

Installation instructions

Installing JC-303 is straightforward. Just follow the steps for your respective operating system:

  1. Download: Grab the correct ZIP package for your system (Windows, macOS, or Linux) from the download links at the top of this page.
  2. Extract: Unzip the downloaded file. You will find folders corresponding to different plugin formats (e.g., VST3, AU for macOS, LV2, CLAP and VST).
  3. Copy: Identify the plugin format(s) you want to install and copy the actual plugin files (e.g., JC303.vst3 folder, JC303.component, JC303.dll, JC303.lv2 folder and/or JC303.clap) from the extracted folder into your system's standard plugin directory for the respective format.

Default Plugin Locations:

  • Windows:
    • VST2 (.dll): Often C:\Program Files\VSTPlugins, C:\Program Files\Steinberg\VSTPlugins, or a custom location set in your DAW.
    • VST3 (.vst3): C:\Program Files\Common Files\VST3
    • CLAP (.clap): C:\Program Files\Common Files\CLAP
    • LV2 (.lv2): Often %APPDATA%\LV2 or C:\Program Files\Common Files\LV2
  • macOS:
    • VST2 (.vst): /Library/Audio/Plug-Ins/VST (system-wide) or ~/Library/Audio/Plug-Ins/VST (user-specific)
    • VST3 (.vst3): /Library/Audio/Plug-Ins/VST3 (system-wide) or ~/Library/Audio/Plug-Ins/VST3 (user-specific)
    • Audio Unit (.component): /Library/Audio/Plug-Ins/Components (system-wide) or ~/Library/Audio/Plug-Ins/Components (user-specific)
    • CLAP (.clap): /Library/Audio/Plug-Ins/CLAP (system-wide) or ~/Library/Audio/Plug-Ins/CLAP (user-specific)
    • LV2 (.lv2): /Library/Audio/Plug-Ins/LV2 (system-wide) or ~/Library/Audio/Plug-Ins/LV2 (user-specific) (Note: ~ refers to your user home directory. System-wide installs are generally recommended unless you have specific reasons otherwise.)
  • Linux:
    • VST2 (.so): ~/.vst, /usr/lib/vst, /usr/local/lib/vst
    • VST3 (.vst3): ~/.vst3, /usr/lib/vst3, /usr/local/lib/vst3 (The .vst3 item is usually a folder)
    • LV2 (.lv2): ~/.lv2, /usr/lib/lv2, /usr/local/lib/lv2 (The .lv2 item is usually a folder)
    • CLAP (.clap): ~/.clap, /usr/lib/clap, /usr/local/lib/clap (Note: Locations can vary depending on distribution and user configuration. Check your DAW's plugin path settings.)

macOS De-Quarantine Process (Important!)

Due to macOS security features (Gatekeeper), you must de-quarantine the plugin files after copying them, otherwise your DAW may not load them.

  1. Open the Terminal application (you can find it in Applications > Utilities).
  2. Run the following command for each plugin format you installed. You will need to enter your administrator password (it won't show characters as you type). Replace the path if you installed to your user library (~/Library/...).

For Audio Unit (AU):

sudo xattr -rd com.apple.quarantine /Library/Audio/Plug-Ins/Components/JC303.component

For VST3:

sudo xattr -rd com.apple.quarantine /Library/Audio/Plug-Ins/VST3/JC303.vst3

For VST2:

sudo xattr -rd com.apple.quarantine /Library/Audio/Plug-Ins/VST/JC303.vst

For CLAP:

sudo xattr -rd com.apple.quarantine /Library/Audio/Plug-Ins/CLAP/JC303.clap

For LV2:

sudo xattr -rd com.apple.quarantine /Library/Audio/Plug-Ins/LV2/JC303.lv2

(Note: Ensure the plugin filename (JC303.component, JC303.vst3 etc.) matches the actual file you copied.)

Rescan: After copying the files (and de-quarantining on macOS), open your Digital Audio Workstation (DAW) and perform a plugin rescan if it doesn't automatically detect the new JC-303 plugin.

Step Sequencer

JC303 ships with a full acid step sequencer ported from Aciduino V2. It is a 16-step monophonic sequencer clocked sample-accurately from the audio thread, playing the built-in 303 engine and sending MIDI out to the host. Note length is the authentic 303 half-step (50%) gate, and slide/tie bridge correctly from the last step back to the first. The sequencer panel and manual below target the midilabv2 GUI theme.

Layout

Each of the 16 steps is a column of controls:

RowControlMeaning
stepLEDSelects the step to edit; also shows the playing step and the active pattern length
resttoggleNote ON (toggle up) or rest (toggle down)
accentmicro-toggleStep plays with accent
slidemicro-toggleStep slides into the next one
tiemicro-toggleStep ties into the previous note

Below the grid are the transport buttons (PLAY/STOP, REC, REST, CLEAR, gen), the generative mod knobs, and the on-screen octave keyboard.

Editing steps

  • Left-click a step LED to select the step to edit. The selected step blinks; the step currently playing is highlighted. Clicking a step at or beyond the active pattern length snaps the selection to the last active step.
  • Note/rest toggle: each step is a note by default; toggle it off to make it a rest, on to re-activate it.
  • Accent / Slide / Tie are per-step toggles. A tie carries the previous note over, and handles wrap-around from the last step to the first.
  • The keyboard always shows the note of the selected step.

Setting the pattern length

  • Right-click any step LED to set the pattern length from 1 to 16 (the clicked step becomes the last step of the pattern). Steps beyond the length are kept but stay silent.
  • Length can also be set with the Length item in the SEQ menu page.

Seq keyboard

  • Click a key to set the note of the selected step.
  • Mouse wheel over the keyboard transposes the note of the selected step by one octave per notch (the octave of the keyboard follows the note).
  • In record mode the rec cursor is the target for both actions.

Record mode

Turn REC on to enter serial (step-by-step) entry. The record cursor starts at the currently selected step and advances one step per entered event, wrapping at the pattern length.

  • Keyboard: press a key to record its note and advance. Existing accent/slide/tie flags on the step are kept.
  • External MIDI: velocity 100 or above records the step with accent; striking a second note while one is still held records a slide (legato); tapping the sustain pedal (CC64, 127 on) records a rest.
  • REST button: in record mode it records a rest and advances the cursor; outside record mode it turns the selected step into a rest and moves the selection to the next step.
  • CLEAR button resets the whole track to rests (all accents, slides and ties removed).

Generative

The gen button generates a random pattern across all 16 steps using:

KnobRange (default)Meaning
FILL0–100 (80)% chance each step is ON (not a rest)
ACC0–100 (50)% chance of accent on an ON step
SLIDE0–100 (30)% chance of slide on an ON step
TIE0–100 (100)% chance of tie on a rest step
TONES1–12 (4)Number of pitch classes to snap to (1 = single note)
LOW0–127 (20)Lowest MIDI note in the random pitch range
RANGE0–127 (48)Range above LOW of the random pitches

The sequencer is briefly muted while a pattern is generated so no stray notes play. Generating keeps the pattern length intact but overwrites the steps within it.

Transport and clock

  • PLAY/STOP starts and stops the sequencer.
  • The SEQ menu page in the LCD exposes:
    • Length — pattern length (1–16).
    • Tempo — internal BPM (20–300); active only in Internal sync mode.
    • Sync ModeInternal (free-running at Tempo), Host (follows the DAW transport position and tempo), or Midi Clock (follows external MIDI Start/Stop/Clock messages).
    • Start ModeTransport (starts on host transport or MIDI Start) or Note Trigger (starts automatically on the first incoming note, even while stopped).

Disclaimer: Roland and TB-303 are registered trademarks of the Roland Corporation.
JC-303 is not affiliated with or endorsed by Roland Corporation.