DNB COLLEGE

Drum & Bass Ableton Live 12 Tutorials

LESSON DETAIL

Saturate jungle riser using groove pool tricks in Ableton Live 12 (Intermediate)

An AI-generated intermediate Ableton lesson focused on Saturate jungle riser using groove pool tricks in Ableton Live 12 in the Arrangement area of drum and bass production.

Back to lessons
Saturate jungle riser using groove pool tricks in Ableton Live 12 (Intermediate) cover image

Narrated lesson audio

The voice track includes the tutorial plus extra teacher commentary.

Open audio file

Main tutorial

```markdown

Saturate a Jungle Riser Using Groove Pool Tricks (Ableton Live 12) 🔥🥁

Skill level: Intermediate

Category: Arrangement (DnB / Jungle)

---

1. Lesson overview

In jungle and rolling DnB, risers aren’t just “noise up + filter.” The best ones feel like the groove accelerates and gets more aggressive as it approaches the drop. In this lesson, you’ll build a gritty jungle riser and use Ableton Live 12’s Groove Pool to create progressive swing, push/pull timing, and velocity drive, then convert that movement into audio and saturate it hard for classic rave energy. ⚡

You’ll learn how to:

  • Design a rhythmic jungle riser (not just a white noise sweep)
  • Use Groove Pool to increase swing/timing intensity over time
  • Turn groove into printable audio and saturate in stages for punch + grit
  • Arrange it into a drop like a proper DnB transition
  • ---

    2. What you will build

    A 16-bar jungle riser that evolves like this:

  • Bars 1–8: subtle shuffle, controlled top end, light distortion
  • Bars 9–14: stronger swing, tighter transient shaping, more saturation
  • Bars 15–16: “panic mode” — heavy drive, micro-stutters, pre-drop choke
  • It will be made from:

  • A break-derived top loop (or synthetic hats/percs)
  • A noise layer for lift
  • A tone layer (reese-ish or rave stab tail) to glue the riser to the track
  • …and then animated via Groove Pool + automation + resampling.

    ---

    3. Step-by-step walkthrough

    Step 0 — Session setup (DnB-friendly defaults) 🎛️

    1. Set tempo to 170–174 BPM (e.g., 174).

    2. Create a new Audio Track called `Riser Tops`.

    3. Create another Audio Track called `Riser Noise`.

    4. Create a Group (Cmd/Ctrl+G) with both inside called `Riser BUS`.

    Why: You’ll groove the rhythmic content, then use bus processing for “one-riser” cohesion.

    ---

    Step 1 — Build the rhythmic riser source (tops that can groove) 🥁

    You need something that responds to swing and timing. Two solid options:

    #### Option A: Use a break slice (classic jungle vibe)

    1. Drag in a break (Amen-style or any crunchy break) onto `Riser Tops`.

    2. Warp mode: Beats

    - Preserve: 1/16

    - Transients: On

    3. High-pass it so it’s only tops:

    - EQ Eight: enable HP at 250–400 Hz, steepness 24 dB/oct.

    Now duplicate the clip to make it 16 bars.

    #### Option B: Build synthetic hats/percs (cleaner modern roller)

    1. Load a tight hat loop or program 1/16 hats in a MIDI clip.

    2. Add Drum Rack hats + a couple of shaker hits.

    3. Keep it bright but controlled:

    - EQ Eight HP at 300–500 Hz

    ---

    Step 2 — Add lift layers (noise + tone) 🌪️

    #### Noise layer

    1. On `Riser Noise`, add Operator (or Wavetable).

    2. Operator settings:

    - Oscillator: Noise White

    - Filter: On, LP around 2–4 kHz initially

    3. Add Auto Filter after Operator:

    - Mode: LP24

    - Drive: 2–6 dB

    - Envelope: optional (but we’ll automate cutoff)

    Automate Auto Filter cutoff over 16 bars:

  • Start: ~1.2 kHz
  • End: ~14–18 kHz
  • Add a small resonance bump near the end (Res 0.6–0.8) for tension.

    #### Tone layer (optional but very DnB-effective)

    On `Riser BUS`, add a subtle tonal element (or another track in the group):

  • A short reese note (Operator/Wavetable) or a rave stab tail
  • Keep it quiet: -18 to -12 dB range
  • HP it so it doesn’t fight bass: HP at 200–350 Hz
  • This makes the riser feel “in-key” with your drop.

    ---

    Step 3 — Bring the Groove Pool into play (the trick) 🕺

    The goal: progressively intensify groove across the riser.

    1. Open Groove Pool (hotkey: Shift + Cmd/Ctrl + G).

    2. In the Browser: Grooves → Swing and Groove.

    3. Drag in 2–3 grooves, e.g.:

    - `Swing 16-55` (classic swing)

    - `MPC 16-62` (heavier push/pull)

    - `Logic 16 Swing` (if available in your pack list)

    Now apply groove:

    4. Select the `Riser Tops` clip → in Clip View, choose a groove (e.g., Swing 16-55) and click Commit? Not yet. Just assign it.

    5. Do the same for `Riser Noise` clip if it has rhythmic gating (optional). If it’s a long sweep, you can skip groove there.

    #### Groove Pool settings (this is where it gets spicy)

    Click the groove in Groove Pool and set:

  • Timing: start around 10–20%
  • Velocity: 10–25% (great if you’re using MIDI hats/percs; for audio it can still impact feel when committed to MIDI, but audio mainly benefits from timing)
  • Random: 2–8% (humanize, but keep it tight)
  • Base: 16
  • Quantize: Off (or very low if things get messy)
  • Key idea: We’re going to automate groove intensity by printing different versions, not by automating Groove Pool directly (since Groove Pool parameters aren’t designed for lane automation in a smooth “ramp” way).

    ---

    Step 4 — Create “groove ramps” by printing stages (arrangement hack) ✂️

    This is the core arrangement trick: make 3–4 sections, each with stronger groove, then crossfade/transition between them.

    1. Duplicate your `Riser Tops` clip into four 4-bar clips (Bars 1–4, 5–8, 9–12, 13–16).

    2. For each clip, assign a groove and progressively increase groove settings:

    Example progression:

  • Clip 1 (Bars 1–4): Swing 16-55, Timing 10%, Random 2%
  • Clip 2 (Bars 5–8): Swing 16-55, Timing 20%, Random 3%
  • Clip 3 (Bars 9–12): MPC 16-62, Timing 30%, Random 4%
  • Clip 4 (Bars 13–16): MPC 16-62, Timing 40–55%, Random 5–7%
  • 3. Now Commit each clip (right-click clip → Commit Groove).

    4. Crossfade between clips if needed (add tiny overlaps and enable fades).

    Result: Your riser feels like it’s starting controlled and getting more frantic without changing tempo.

    ---

    Step 5 — Saturate in stages (clean → driven → destroyed) 😈

    Now we “reward” the groove by making the timbre grow with it.

    On the `Riser BUS` (group), use a staged chain like:

    #### Device Chain (stock Ableton)

    1. EQ Eight (pre-clean)

    - HP: 200–400 Hz, 24 dB/oct

    - Gentle dip if harsh: 3–6 kHz -2 dB (optional)

    2. Saturator (main glue drive)

    - Mode: Analog Clip

    - Drive: 3–8 dB (automate upward)

    - Soft Clip: On

    - Output: compensate so it’s not just louder

    3. Drum Buss (transient + crunch)

    - Drive: 5–20%

    - Crunch: 5–15%

    - Boom: Off (usually off for risers unless you want low thump)

    - Transients: +5 to +20 (adds urgency)

    4. Roar (Live 12: heavy character option)

    - Style: try Overdrive / Distort / Tube depending on vibe

    - Drive: low to medium early, higher late

    - Filter: automate cutoff opening (or bandpass for “telephone → full”)

    - Mix: automate from 10–20% → 40–70%

    5. Auto Filter (movement + pre-drop hype)

    - Mode: HP12 or BP

    - Automate to create “tightening” in last 2 bars:

    - HP rises slightly near the end (e.g., 200 → 800 Hz) to clear room for drop impact

    6. Limiter (safety, not loudness)

    - Ceiling: -0.8 dB

    - Only catching peaks

    #### Automation plan (16 bars)

  • Bars 1–8: Saturator Drive ~3–4 dB, Drum Buss Drive 5–8%
  • Bars 9–14: Saturator Drive 5–7 dB, add Roar Mix up to 40–50%
  • Bars 15–16: quick ramp:
  • - Saturator Drive 8–10 dB

    - Drum Buss Transients up

    - Roar Drive up

    - Optional: Auto Filter resonance bump + slight HP rise

    ---

    Step 6 — Make the groove audible with rhythmic gating (optional but huge) 🔪

    If your noise is too smooth, it won’t “show” the groove.

    On `Riser Noise`:

    1. Add Auto Pan:

    - Amount: 100%

    - Rate: 1/8 or 1/16

    - Phase: (acts like tremolo)

    - Shape: square-ish (higher shape) for choppier gating

    2. Now assign the same groove concept to the gating by committing different “rate sections”:

    - Early: 1/8

    - Later: 1/16

    - Last bar: automate to 1/32 (briefly)

    This gives that frantic pre-drop jitter common in heavier jungle edits.

    ---

    Step 7 — Print/resample and do the final “tape abuse” pass 🎚️

    Once it feels right, commit it to audio so you can treat it like a single weapon.

    1. Create a new Audio Track: `Riser PRINT`.

    2. Set its input to Resampling (or “Riser BUS” group output).

    3. Record the 16 bars.

    4. On `Riser PRINT`, add:

    - Redux (tiny bit): Downsample 2–6, Dry/Wet 5–15%

    - Glue Compressor:

    - Attack 3 ms, Release Auto, Ratio 2:1, GR 1–3 dB

    - Utility: automate Width from 80% → 120% (careful near drop)

    Now you’ve got a cohesive, mixable riser that translates.

    ---

    Step 8 — Arrangement placement for DnB impact 🎯

    Typical placements that work in rolling DnB:

  • 16-bar riser entering during a breakdown or “half-energy” section
  • Add micro-fill at bar 15:
  • - 1-beat silence or tape stop style cut (or filter choke)

  • Last 1/2 bar: reduce low end and widen highs so the drop bass hits clean
  • Bonus: Layer a single reversed crash at bar 16 for classic jungle punctuation.

    ---

    4. Common mistakes 🚫

  • Groove too heavy too early: If Timing starts at 40% from bar 1, the riser feels sloppy instead of escalating.
  • Not committing groove: If you don’t commit/print, you’ll struggle to make staged intensity and consistent renders.
  • Over-saturating without level matching: Distortion adds loudness—match output or you’ll “choose with your eyes/ears” incorrectly.
  • Leaving low-mid mush: Riser energy in DnB is mostly mid/high, not 200 Hz fog. HP aggressively.
  • No rhythmic detail: A smooth noise sweep alone won’t read as “jungle.” Give it chopped rhythm or break-derived motion.
  • ---

    5. Pro tips for darker/heavier DnB 🕷️

  • Parallel distortion on the riser bus:
  • Create a Return track with Roar + Saturator + EQ Eight (HP 600 Hz), send the riser in more toward the end.

  • Band-split saturation:
  • Use Audio Effect Rack with 3 chains (Low/Mid/High via EQ Eight filters). Distort mids hardest, keep highs controlled.

  • Pre-drop “choke” automation:
  • In last 1 bar: automate Utility Gain down -2 to -6 dB, then hard cut to drop (creates perceived impact).

  • Jungle grit without harshness:
  • Distort into a low-pass (EQ Eight or Auto Filter), then open it back up—this keeps aggression but avoids brittle 10–12 kHz fizz.

  • Make swing feel faster without changing BPM:
  • Increase groove Timing + reduce note lengths / add 1/32 stutters right at the end.

    ---

    6. Mini practice exercise ✅

    Goal: Build a 8-bar riser with a clear groove ramp and saturation ramp.

    1. Use a break top loop (HP at 350 Hz).

    2. Split into two 4-bar clips.

    3. Clip A: `Swing 16-55` Timing 15%, Random 2% → Commit.

    4. Clip B: `MPC 16-62` Timing 45%, Random 6% → Commit.

    5. On the group bus, automate Saturator Drive 3 dB → 8 dB across the 8 bars.

    6. Print to audio and add Redux 10% for texture.

    7. Compare: with groove ramp vs. same saturation ramp but no groove changes.

    Listen for: urgency, “lean,” and how the riser dances into the drop.

    ---

    7. Recap 🔁

  • Use Groove Pool to create movement—then stage it across the riser by splitting into sections and committing groove.
  • Jungle risers hit harder when they’re rhythmic (break tops/gated noise), not just a smooth filter sweep.
  • Saturate in layers: cleanup → glue drive → character distortion → final print polish.
  • In arrangement, the final 1–2 bars should feel more chaotic + brighter + tighter, then make space for the drop with a choke/cut.

If you want, tell me what kind of drop you’re going into (deep roller vs. heavy neuro vs. jungle tearout), and I’ll suggest a specific groove progression + saturation curve that matches it.

```

Ask GPT about this lesson

Chat with the lesson tutor, get follow-up help, or use quick actions.

Bigup 👽 Ask me anything about this lesson and I’ll answer in context.

Narration script

Show spoken script
Welcome back. In this lesson we’re building a proper jungle and drum and bass riser in Ableton Live 12, but not the lazy kind that’s just “white noise plus a filter.”

We’re going to make a 16 bar riser that feels like the groove itself is speeding up and getting more aggressive as it approaches the drop. The big trick is using the Groove Pool in stages, committing the groove in sections, and then saturating after the timing is baked in so the distortion grabs the transients in a more animated way.

Set your tempo somewhere DnB-friendly, 170 to 174. I’ll sit at 174.

Now in Arrangement, create two audio tracks. Name the first one Riser Tops, and the second one Riser Noise. Select both and group them, then name the group Riser BUS. Think of that group as your “one riser instrument.” We’ll do movement on the tracks, and cohesion on the bus.

Step one is your rhythmic source. This matters because groove only feels exciting if there’s actually something rhythmic to push and pull.

Option A is the classic: grab a break. Amen-style, or any crunchy old break works. Drag it onto Riser Tops. Set warp mode to Beats, set Preserve to 1/16, and make sure transients are on. Then slap an EQ Eight on it and high-pass it hard, around 250 to 400 hertz, 24 dB per octave. We’re basically turning the break into “tops only,” so it won’t fight your bass or your real drums later.

Now duplicate that clip so it runs for 16 bars.

Option B would be synthetic hats and shakers, but the break option usually gives you that immediate jungle attitude, so I’m sticking with that for this run.

Step two: add the lift layers, starting with noise.

On Riser Noise, load Operator. Set the oscillator to Noise White. Turn Operator’s filter on, and keep it fairly low at first, maybe two to four kHz. Then add an Auto Filter after Operator. Set the filter to Low Pass 24. Give it a little drive, like two to six dB, just to wake it up.

Now automate the Auto Filter cutoff over the full 16 bars. Start around 1.2 kHz, and end somewhere up in the air, 14 to 18 kHz depending on how bright you want it. Near the end, add a small resonance bump, like 0.6 to 0.8. Not so much that it whistles, just enough that tension appears.

Optional, but very effective: add a tonal layer so the riser feels “in key” with the drop. This can be a quiet reese note, or a rave stab tail with a long decay. Keep it subtle, like minus 18 to minus 12 dB, and high-pass it around 200 to 350 Hz so it doesn’t cloud the low mids. If you don’t want another track, you can add it inside the group. The point is: when the drop hits, the riser feels connected musically, not just like a whoosh.

Now the main event: Groove Pool.

Open the Groove Pool. On most setups it’s Shift plus Command or Control plus G. In the Browser, go to Grooves, then Swing and Groove. Drag in a couple grooves. A good starting set is Swing 16-55 for a classic swing, and MPC 16-62 for a more aggressive push and pull.

Assign a groove to your Riser Tops clip first. Don’t commit yet. Just choose it in the clip’s Groove chooser.

Now, quick coach note before we go further: groove pool “feel” is more than swing. When you commit a groove, you’re baking in micro-timing changes. And those micro-timing changes change the way saturation and clipping grab the transients. So in this workflow, timing first, texture second. Commit timing, then distort. Not the other way around.

In Groove Pool settings for the groove you’re using, set Base to 16. Set Quantize to off, or very low if things start falling apart. Timing is going to start gentle, say 10 to 20 percent. Random, keep it small, two to eight percent. You want human, not drunk. Velocity can help if you’re working with MIDI hats; with audio tops, the main benefit is timing, but we’ll still use velocity thinking later if you add ghost hits.

Here’s the trick: you can’t really draw a smooth automation lane for Groove Pool intensity in a way that feels like a perfect ramp. Instead, we fake a ramp by printing stages.

So split your 16 bar tops clip into four sections of four bars each. Bars 1 to 4, 5 to 8, 9 to 12, 13 to 16. Now you’ve got four clips back to back.

Clip one: assign Swing 16-55. Set Timing around 10 percent and Random around 2 percent. Now commit the groove for that clip. Right-click, Commit Groove.

Clip two: still Swing 16-55, but Timing up to around 20 percent, Random around 3 percent. Commit.

Clip three: switch to MPC 16-62. Timing around 30 percent, Random around 4 percent. Commit.

Clip four: keep MPC 16-62, push Timing into that 40 to 55 percent zone, and Random maybe 5 to 7 percent. Commit.

Now play it from the top. You should feel like it starts controlled, then it starts leaning, then it starts getting a little frantic. Tempo never changes, but energy does.

If you hear it getting sloppy instead of exciting, back off Timing a little and try this counterintuitive move: increase Random slightly. Sometimes a tiny bit more random stops the groove from feeling “forced,” and it becomes more natural.

Another quick pro workflow: use the Global Groove Amount slider as an audition macro. Set your groove once, then sweep Global Groove Amount to find what “Stage 1, Stage 2, Stage 3” should feel like. Then, when you commit each clip, temporarily set the Global Groove Amount to that stage value and commit. It’s a fast way to pick intensities without guessing.

Before we distort anything, do a fast A/B test so you know you’re improving the feel and not just changing it.

Duplicate one of your committed clips. Quantize the duplicate back to straight 1/16, or otherwise remove the timing offsets, and level-match both. Now compare them through the same processing level. Listen for which one feels more alive. Usually the grooved one will “talk” more once we hit saturation.

Now we move to saturation in stages. This is where we reward the groove.

On the Riser BUS group, build a chain like this.

First, EQ Eight for cleanup. High-pass around 200 to 400 Hz, 24 dB per octave. If it’s harsh, do a gentle dip around 3 to 6 kHz, maybe two dB. Don’t overdo it; we still want bite.

Next, Saturator. Set it to Analog Clip. Turn Soft Clip on. Drive around three to eight dB depending on how hot your signal is. And important: output level-match. Distortion gets louder, and louder always sounds “better” until you actually match levels. So keep compensating output as you add drive.

Then Drum Buss. Drive maybe 5 to 20 percent. Crunch 5 to 15 percent. Boom usually off for risers, unless you intentionally want a low thump. Transients, push them up, plus 5 to plus 20. This is one of the best ways to make the riser feel urgent without just making it louder.

Then Roar, since we’re in Live 12 and we can. Pick a character like Overdrive, Distort, or Tube depending on your vibe. Early on, keep the mix low, like 10 to 20 percent. Later, automate it up into the 40 to 70 percent zone. You can also automate Roar’s filter so it opens toward the end, or do a bandpass “telephone” vibe that widens out as you approach the drop.

Then an Auto Filter for final movement and pre-drop control. A HP12 can work great. In the last two bars, automate the high-pass rising a little, like 200 up toward 800 Hz, to clear room for the impact of the drop. That small subtraction makes the drop hit feel bigger.

Finally, a Limiter for safety, not loudness. Ceiling at minus 0.8 dB. Just catch peaks.

Now automate across the 16 bars.

Bars 1 to 8: Saturator drive around 3 to 4 dB, Drum Buss drive around 5 to 8 percent. Roar is either off or barely in.

Bars 9 to 14: Saturator drive up to 5 to 7 dB. Bring Roar mix up to 40 to 50 percent. Start opening filters more.

Bars 15 to 16: this is “panic mode.” Quick ramp Saturator drive 8 to 10 dB, Drum Buss transients up, Roar drive up, maybe a tiny resonance bump somewhere in the filtering. You’re aiming for “about to explode,” not “completely unreadable fuzz.”

Here’s a sound design extra that works ridiculously well: pre-emphasis into distortion. Before the Saturator, add a gentle bell boost around 2.5 to 4.5 kHz, plus two to plus four dB. Then saturate. Then after saturation, pull that same band back down. You’ll get aggression and urgency without permanently making it harsh.

Now let’s make the groove obvious in the noise layer, because a smooth sweep can hide all that timing work.

On Riser Noise, add Auto Pan. Set Amount to 100 percent, Phase to 0 degrees so it acts like a tremolo, not a left-right pan. Set the rate to 1/8 early on, and increase later. Shape more square for choppier gating.

You can do this as automation: bars 1 to 8 at 1/8, bars 9 to 14 at 1/16, and then in the last bar, briefly jump to 1/32 for that frantic jitter. If you want a more advanced “controlled chaos” effect, try a weird subdivision in the middle like 3/16 or a triplet rate, so the noise feels like it’s accelerating independently of the grid.

Another advanced move: transient-locked chaos. Add a tiny clicky hat that stays fully quantized at very low volume. Groove everything else. Your ear uses the click as a reference, and suddenly all the grooved material feels even more animated.

Now: protect your drop with mono discipline.

Widening a riser can be super hype, but if you’re super wide right before the drop, you can smear the center and the kick and snare won’t feel as solid.

So put a Utility at the end of your riser bus and automate Width. You can open from around 80 percent toward 120 percent through the build, but pull it back toward 90 to 100 percent in the final moment before the drop. That way the center snaps back and the drop lands harder.

Also do the “is it rushing?” test. Solo the riser together with your snare on two and four. If the riser feels like it’s tripping the snare, reduce groove Timing, or adjust Random slightly until it sits like it’s dancing around the snare instead of fighting it.

Once it feels right, print it. This is where it becomes a single weapon you can place in any arrangement.

Create a new audio track called Riser PRINT. Set its input to resampling, or directly from the Riser BUS output. Record the full 16 bars.

On the printed track, do a final “tape abuse” polish.

Add Redux, but keep it subtle. Downsample two to six, Dry/Wet five to fifteen percent. You’re going for texture, not an obvious bitcrush.

Add Glue Compressor. Attack three milliseconds, release auto, ratio two to one, and just one to three dB of gain reduction. It should feel glued, not squashed.

Then a Utility for final width automation if needed. And remember: check mono, especially right at the end.

Now arrangement tips so it hits like DnB.

A 16 bar riser usually works best during a breakdown or a reduced-energy section. If your full beat is smashing underneath the whole time, the groove ramp can get masked. Sometimes the best move is to remove the kick for a couple bars and let the riser’s timing be the star, while the snare still marks the grid.

In bar 15, add a micro-fill. Even a one-beat silence, a filter choke, or a quick cut can create that “oh no” moment. In the last half bar, reduce low end and maybe dip the top slightly for an “air vacuum” move, then let the full spectrum return after the drop hits. That contrast makes the drop feel bigger without changing the drop.

And for classic jungle punctuation, layer a single reversed crash at bar 16. Quiet, just enough to signal the moment.

Common mistakes to avoid.

Don’t start with heavy groove timing from bar 1. If you’re already at 40 percent timing at the start, it doesn’t feel like escalation. It just feels loose.

Don’t forget to commit. If you don’t commit or print, it’s hard to do consistent staged intensity, and it can change unpredictably on render or when you tweak the Groove Pool later.

Don’t over-saturate without level matching. Always compensate output so you’re judging tone and density, not loudness.

And don’t leave low-mid mush. In DnB, riser energy is mostly mid and high. High-pass aggressively.

Now a quick mini exercise you can do right after this.

Make it 8 bars. Use break tops high-passed around 350 Hz. Split into two 4 bar clips. Clip A: Swing 16-55 at 15 percent timing and 2 percent random, commit. Clip B: MPC 16-62 at 45 percent timing and 6 percent random, commit. On the group, automate Saturator drive from 3 dB to 8 dB across the 8 bars. Print it, add Redux at 10 percent. Then do a comparison: same saturation ramp but no groove changes, fully quantized. Listen for urgency, how the offbeats lean, and whether it feels like it dances into the drop.

Recap.

A jungle riser hits harder when it’s rhythmic, not just a smooth sweep. Groove Pool gives you movement, but the real trick is staging it by splitting clips and committing different intensities. Commit timing first, then distort, because the saturation will grab those micro-timing transients in a more exciting way. Print it, polish it, and in the last one to two bars, go more chaotic and brighter, but also make space with a choke or a subtle subtraction so the drop lands clean.

If you tell me what kind of drop you’re going into, like a deep roller, a ragga jungle drop, or heavy modern neuro, I can suggest an exact groove progression and which distortion stage should do the heavy lifting in each quarter of the riser.

mickeybeam

Go to drumbasscd.com for +100 drum and bass YouTube channels all in one place - tune in!

Generating PDF preview…