Examples / Songs

Small Drum And Bass

Small drum & bass arrangement in F minor.

Demos/Songs/small-drum-and-bass.strudel · 174 BPM

Play in Cycletron Opens it in the app in your browser, with the visualizers. Desktop browsers only.

// Small drum & bass arrangement in F minor.
// FORM (174 BPM · 1 cycle = 1 bar · 36 bars): intro 4 · build 4 · drop 8 · breakdown 4 · bridge 4 · final 8 · outro 4.
setbpm(174);

"<intro build drop@2 breakdown bridge final@2 outro>".slow(4).pickRestart({
  intro: stack(
    s("bd ~ ~ ~ ~ ~ ~ ~ ~ ~ bd ~ ~ ~ ~ ~").lpf(500).gain(0.72),
    s("hh*8").hpf(5000).gain(0.14),
    note("<f1 f1 d#1 c#1>")
      .s("sine").attack(0.02).release(0.45).gain(0.52),
    note("<[f3,g#3,c4] [d#3,g3,a#3] [c#3,f3,g#3] [c3,d#3,g3]>")
      .s("wt_pad").attack(0.8).release(1.4).lpf(1000).room(0.6).gain(0.2)
  ),
  build: stack(
    s("bd ~ ~ ~ ~ ~ ~ ~ ~ ~ bd ~ ~ ~ ~ ~").gain(0.86),
    s("<[~ ~ ~ ~ sd ~ ~ ~ ~ ~ ~ ~ sd ~ ~ ~] [~ ~ ~ ~ sd ~ ~ ~ ~ ~ ~ ~ sd ~ ~ ~] [~ ~ ~ ~ sd ~ ~ ~ ~ ~ ~ ~ sd ~ sd sd] [sd*4 sd*4 sd*8 sd*8]>")
      .gain(0.66),
    s("hh*8").hpf(5000).gain(0.17),
    note("<[f1 ~ f1 ~] [f1 ~ f1 ~] [d#1 ~ d#1 ~] [c#1 ~ c#1 c1]>")
      .s("supersaw").lpf(sine.range(220, 900).slow(4)).resonance(9).gain(0.38),
    note("<[f3,g#3,c4] [d#3,g3,a#3] [c#3,f3,g#3] [c3,d#3,g3]>")
      .s("wt_pad").attack(0.5).release(1.0).lpf(1450).room(0.5).gain(0.2)
  ),
  drop: stack(
    s("bd ~ ~ ~ ~ ~ ~ ~ ~ ~ bd ~ ~ ~ ~ ~").gain(0.95),
    s("~ ~ ~ ~ sd ~ ~ ~ ~ ~ ~ ~ sd ~ ~ ~").gain(0.8),
    s("hh*16").hpf(5500).gain(0.2),
    note("<[f1 ~ f1 f1] [f1 ~ f1 c2] [d#1 ~ d#1 d#1] [c#1 ~ c#1 c1]>")
      .s("supersaw").lpf(sine.range(180, 1200).slow(2)).resonance(10).gain(0.46),
    note("<[f3,g#3,c4] [d#3,g3,a#3] [c#3,f3,g#3] [c3,d#3,g3]>")
      .s("sawtooth").struct("~ 1 ~ ~").release(0.16).lpf(1800).room(0.25).gain(0.3)
  ),
  breakdown: stack(
    s("bd ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~").lpf(700).gain(0.68),
    s("~ ~ ~ ~ ~ ~ ~ ~ sd ~ ~ ~ ~ ~ ~ ~").room(0.35).gain(0.58),
    note("<f1 f1 d#1 c#1>")
      .s("sine").attack(0.03).release(0.8).gain(0.55),
    note("<[f3,g#3,c4] [d#3,g3,a#3] [c#3,f3,g#3] [c3,d#3,g3]>")
      .s("wt_pad").attack(1.0).release(1.8).lpf(1200).room(0.7).gain(0.24)
  ),
  bridge: stack(
    s("bd ~ ~ bd ~ ~ ~ ~ ~ ~ bd ~ ~ ~ ~ ~").gain(0.9),
    s("~ ~ ~ ~ sd ~ ~ ~ ~ ~ ~ ~ sd ~ ~ ~").gain(0.74),
    s("hh*8").hpf(5200).gain(0.16),
    note("<[f1 ~ f1 c2] [d#1 ~ d#1 a#1] [c#1 ~ c#1 g#1] [c1 ~ c1 d#1]>")
      .s("supersaw").lpf(950).resonance(9).gain(0.42),
    note("<[f4 c5 g#4 c5] [d#4 a#4 g4 a#4] [c#4 g#4 f4 g#4] [c4 g4 d#4 g4]>")
      .s("wt_pluck").decay(0.1).sustain(0).delay(0.2).room(0.25)
      .pan(sine.range(0.35, 0.65)).gain(0.25)
  ),
  final: stack(
    s("bd ~ ~ ~ ~ ~ ~ bd ~ ~ bd ~ ~ ~ ~ ~").gain(0.96),
    s("~ ~ ~ ~ sd ~ ~ ~ ~ ~ ~ ~ sd ~ ~ ~").gain(0.82),
    s("hh*16").hpf(5500).gain(0.22).pan(sine.range(0.38, 0.62)),
    s("~ oh ~ oh").gain(0.16),
    note("<[f1 ~ f1 f1] [f1 ~ f1 c2] [d#1 ~ d#1 g#1] [c#1 ~ c#1 c1]>")
      .s("supersaw").lpf(sine.range(180, 1450).slow(2)).resonance(11).gain(0.48),
    note("<[f3,g#3,c4] [d#3,g3,a#3] [c#3,f3,g#3] [c3,d#3,g3]>")
      .s("sawtooth").struct("~ 1 ~ 1").release(0.14).lpf(2200).room(0.3).gain(0.32)
  ),
  outro: stack(
    s("bd ~ ~ ~ ~ ~ ~ ~ ~ ~ bd ~ ~ ~ ~ ~")
      .lpf(isaw.range(180, 900).slow(4)).gain(0.72),
    s("hh*8").lpf(isaw.range(2200, 7000).slow(4)).gain(0.13),
    note("<f1 f1 d#1 c#1>")
      .s("sine").attack(0.04).release(0.9).gain(0.46),
    note("<[f3,g#3,c4] [d#3,g3,a#3] [c#3,f3,g#3] [c3,d#3,g3]>")
      .s("wt_pad").attack(1.0).release(2.0)
      .lpf(isaw.range(500, 1400).slow(4)).room(0.7).gain(0.22)
  )
})