Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

The TB303 Sound

The Roland TB-303 defined acid house and remains central to electronic music. Sonic Pi’s :tb303 synth captures its essential character.

Basic Usage

use_synth :tb303
play :d2, cutoff: 80, res: 0.3

Key Parameters

cutoff (Filter Frequency)

The most important parameter. Controls brightness:

play :d2, cutoff: 60   # Dark, subby
play :d2, cutoff: 75   # Warm, balanced
play :d2, cutoff: 90   # Bright, present
play :d2, cutoff: 110  # Aggressive, cutting

res (Resonance)

Adds emphasis at the cutoff frequency — the classic “squelch”:

play :d2, res: 0.1   # Subtle, clean
play :d2, res: 0.3   # Classic, present
play :d2, res: 0.5   # Pronounced, acid
play :d2, res: 0.7   # Extreme, screaming

Warning: High resonance can be harsh. 0.2-0.4 is usually sufficient.

wave (Waveform)

play :d2, wave: 0   # Sawtooth - brighter, more harmonics
play :d2, wave: 1   # Square - hollow, more fundamental

Sawtooth (wave: 0) is more common for bass. Square (wave: 1) has a darker, hollow character.

ADSR for TB303

For punchy bass:

use_synth :tb303
play :d2,
  attack: 0.01,    # Near-instant attack
  decay: 0.2,      # Quick drop
  sustain: 0.1,    # Short sustain
  release: 0.15,   # Quick release
  cutoff: 80,
  res: 0.3

This creates tight, rhythmic bass lines.

The Album’s TB303 Sound

Standard Bass (Track 1)

use_synth :tb303
play n, amp: 0.8*v, attack: 0.01, decay: 0.2,
     sustain: 0.1, release: 0.15, cutoff: 80, res: 0.3, wave: 0

Grinding Bass (Track 2)

use_synth :tb303
play n, amp: 0.8*v, attack: 0.01, decay: 0.2,
     sustain: 0.1, release: 0.15, cutoff: 75, res: 0.35, wave: 0

Higher resonance for more grit.

Aggressive Bass (Track 4)

use_synth :tb303
play n, amp: 0.75*v, attack: 0, decay: 0.18,
     sustain: 0.05, release: 0.1, cutoff: 82, res: 0.35, wave: 1

Square wave for darker character.

Filter Movement

The TB303’s magic is in filter movement:

Cutoff Variation in Patterns

define :bassline do |v=1, c=80|
  bass :d2, v, c        # Main note
  sleep 0.5
  bass :d2, v*0.7, c-10 # Ghost note, darker
  sleep 0.5
  bass :f2, v*0.9, c+5  # Accent, brighter
  sleep 1
end

Cutoff Slide

use_synth :tb303
play :d2, cutoff: 60, cutoff_slide: 2
sleep 0.1
control cutoff: 100  # Slides from 60 to 100

As Effect Automation

with_fx :lpf, cutoff: 50, cutoff_slide: 16 do |fx|
  control fx, cutoff: 100
  16.times do
    bass :d2
    sleep 1
  end
end

TB303 vs Other Bass Synths

SynthCharacterBest For
:tb303Squelchy, acidAggressive bass
:prophetWarm, smoothMelodic bass
:dsawWide, aggressiveLayering, stabs

When to Use TB303

  • Aggressive, driving tracks
  • Acid-influenced sounds
  • When you need filter resonance
  • Bass lines that need to cut through

When to Use Alternatives

  • Warmer, smoother bass: :prophet
  • Wider, more aggressive: :dsaw
  • Pure sub: :sine (always layer this)

Layering with TB303

TB303 handles mid frequencies well. Layer with sine for sub:

define :bass do |n, v=1, c=80|
  use_synth :tb303
  play n, amp: 0.8*v, attack: 0.01, decay: 0.2,
       sustain: 0.1, release: 0.15, cutoff: c, res: 0.3
  
  use_synth :sine
  play n-12, amp: 1.1*v, attack: 0.01, sustain: 0.25, release: 0.2
end

The TB303 provides character; the sine provides weight.

Quick Reference

# Basic TB303 bass
use_synth :tb303
play :d2,
  amp: 0.8,
  attack: 0.01,
  decay: 0.2,
  sustain: 0.1,
  release: 0.15,
  cutoff: 80,      # 60-100 typical
  res: 0.3,        # 0.2-0.4 typical
  wave: 0          # 0=saw, 1=square

# Cutoff guide:
# 60-70: Dark, subby
# 75-85: Balanced
# 90+: Aggressive

# Resonance guide:
# 0.2: Subtle
# 0.3: Classic
# 0.4+: Pronounced acid