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

Builds and Drops

The build is a promise. The drop is keeping it.

A good build makes the audience need the drop. They know it’s coming. They’re waiting for it. And when it finally hits, it’s not just sound — it’s release. All that tension, resolved in one moment.

Get this wrong and people check their phones. Get it right and they throw their hands up.

The Basic Cycle

LOW ENERGY → BUILD → TENSION → DROP → HIGH ENERGY

Each phase has specific techniques:

The Build

1. Filter Opening

The most common build technique — start filtered, open up:

in_thread do
  with_fx :lpf, cutoff: 50, cutoff_slide: 32 do |fx|
    control fx, cutoff: 110  # Opens over 32 beats
    8.times { bassline 0.8 }
  end
end

The sound gets brighter as energy builds.

2. Adding Elements

Layer in elements progressively:

# Bar 1-2: Kicks only
in_thread do
  8.times { kick 0.7; sleep 1 }
end

# Bar 3-4: Add hats
in_thread do
  sleep 8
  8.times { hat 0.5; sleep 0.5 }
end

# Bar 5-6: Add snares
in_thread do
  sleep 16
  snare 0.6; sleep 2; snare 0.6; sleep 2
  snare 0.7; sleep 2; snare 0.7; sleep 2
end

# Bar 7-8: Add bass
in_thread do
  sleep 24
  2.times { bassline 0.7 }
end

sleep 32

3. Rising Volume

Gradually increase amplitude:

8.times do |i|
  drums (0.6 + i*0.05), (0.5 + i*0.05), (0.4 + i*0.04)
end

Volume rises from 0.6 to 0.95 over 8 bars.

4. Increasing Density

More notes = more energy:

# Sparse (early build)
kick; sleep 1; kick; sleep 1; kick; sleep 1; kick; sleep 1

# Dense (late build)
kick; sleep 0.5; kick; sleep 0.5
kick; sleep 0.5; kick; sleep 0.5
kick; sleep 0.5; kick; sleep 0.5
kick; sleep 0.5; kick; sleep 0.5

5. Risers

Noise or synth rising in pitch/volume:

define :riser do |dur, v=1|
  use_synth :noise
  play :g2, amp: 0.4*v, attack: dur*0.9, release: dur*0.1,
       cutoff: 50, cutoff_slide: dur
  with_fx :lpf, cutoff: 50, cutoff_slide: dur do |fx|
    control fx, cutoff: 120
  end
end

# Use at end of build
in_thread do
  sleep 24  # Wait until 8 beats before drop
  riser 8, 0.8
end

The Tension

The moment before the drop — maximum anticipation:

1. Strip the Kick

Remove the foundation:

# TENSION: 4 bars - no kick
in_thread do
  16.times { hat 0.4; sleep 0.5 }
end

in_thread do
  with_fx :hpf, cutoff: 90 do  # Remove bass frequencies
    4.times { snare 0.5; sleep 2 }
  end
end

sleep 16

2. High-Pass Everything

Remove low frequencies to create yearning for bass:

with_fx :hpf, cutoff: 100 do
  with_fx :reverb, room: 0.9, mix: 0.6 do
    melody 0.5
  end
end

3. Increase Reverb

Sound floats, untethered:

with_fx :reverb, room: 0.95, mix: 0.7 do
  with_fx :echo, phase: 1, decay: 6, mix: 0.55 do
    lead :d4, 2, 0.5
  end
end

4. The Pause

Sometimes, silence:

# Last beat before drop
sleep 0.75
# Silence...
sleep 0.25
hit 1.5  # DROP

The Drop

1. The Hit

Impact sound at the moment of drop:

define :hit do |v=1|
  sample :bd_boom, amp: 2*v, rate: 0.4
  sample :drum_splash_hard, amp: 0.7*v, rate: 0.6
end

# End of tension
hit 1.5
# DROP begins
drums 1.2, 1.1, 0.85

2. Everything Returns

All elements at full power:

# DROP: 12 bars
in_thread do
  12.times { drums 1.15, 1.05, 0.8 }
end

in_thread do
  12.times { bassline 1.1, 88 }  # Brighter cutoff
end

in_thread do
  6.times { melody 0.9 }
end

sleep 48

3. Louder Than Before

The drop should be louder than the section before the build:

SectionDrumsBass
Main A1.01.0
Build0.6→0.950.7→0.9
Tension0 (no kick)0
Drop1.151.1

4. Filter Fully Open

Bass cutoff at maximum brightness:

# Before drop
bassline 0.9, 75  # Cutoff 75

# At drop  
bassline 1.1, 90  # Cutoff 90 - brighter!

Complete Build-Drop Example

# BUILD: 8 bars
in_thread do
  with_fx :lpf, cutoff: 50, cutoff_slide: 28 do |fx|
    control fx, cutoff: 100
    8.times { |i| drums (0.65+i*0.04), (0.5+i*0.05), (0.45+i*0.04) }
  end
end

in_thread do
  with_fx :lpf, cutoff: 55, cutoff_slide: 28 do |fx|
    control fx, cutoff: 85
    8.times { bassline (0.6+i*0.04) }
  end
end

in_thread do
  sleep 24
  riser 8, 0.7
end

sleep 32

# TENSION: 4 bars
in_thread do
  with_fx :hpf, cutoff: 95 do
    16.times { hat 0.35; sleep 0.5 }
  end
end

in_thread do
  with_fx :reverb, room: 0.9, mix: 0.65 do
    melody 0.5
  end
end

sleep 15.75
# Brief silence
sleep 0.25

# DROP
hit 1.5

in_thread do
  12.times { drums 1.15, 1.05, 0.85 }
end

in_thread do
  12.times { bassline 1.1, 90 }
end

in_thread do
  with_fx :reverb, room: 0.5, mix: 0.3 do
    6.times { melody 0.95 }
  end
end

sleep 48

Drop Variations

The Fake Drop

Build expectation, then deny it:

# FAKE DROP: Silence instead of drop
sleep 16  # Tension...
# Listeners expect drop here
sleep 4   # More silence!
hit 1.8   # REAL drop (bigger because delayed)

Used in: Skull Fracture

The Half Drop

Partial return of elements:

# HALF DROP: Just drums, no bass
in_thread do
  4.times { drums 1, 0.9, 0.7 }
end
sleep 16

# FULL DROP: Everything
in_thread do
  12.times { drums 1.15, 1.05, 0.85 }
end
in_thread do
  12.times { bassline 1.1, 90 }
end

The Slow Drop

Elements fade in rather than slam:

# SLOW DROP: 4 bars of building into full
in_thread do
  4.times { |i| drums (0.7+i*0.12), (0.6+i*0.12), (0.5+i*0.1) }
  12.times { drums 1.15, 1.05, 0.85 }
end

Used in: Chrome Cathedral (atmospheric track)

Quick Reference

Build techniques:

  • Filter opening (lpf cutoff slide up)
  • Adding elements progressively
  • Rising volume
  • Increasing note density
  • Risers

Tension techniques:

  • Remove kick
  • High-pass filter
  • Increase reverb
  • Silence/pause

Drop techniques:

  • Hit/impact sound
  • All elements return
  • Louder than before
  • Filter fully open