Strudelify

No Limits

2 Unlimited

KeyG♯ minorTempo120 bpm
0:00/0:00
// No Limits — 2 Unlimited
// 120 bpm, 4/4, key G# minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 5 trombone (copy of ch 3 lead 2 sawtooth); ch 14 lead 8 bass lead (copy of ch 3 lead 2 sawtooth); ch 12 synth strings 1 (copy of ch 13 pad poly)
// note: Full arrangement: all 110 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(120/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · "a, b" plays two voices at once · [...]/2 spreads a riff over 2 bars.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// bass · synth bass 2
const bass = note(`<
  [~@7 g#2@3 g#3@3 ~ g#2@3 g#3@3 g#2@3 ~ g#3@3 g#2@3 g#3@2]
  [g#3@2 c#2@3 c#3@3 c#2@3 ~ c#3@3 e2@3 e3@3 ~ e2@3 e3@3 g#2@3 ~]
  [g#3@3 g#2@3 g#3@3 ~ g#2@3 g#3@3 g#2@3 ~ g#3@3 c#2@3 ~ c#3@3 c#2@2]
  [~ c#3@3 ~ e2@3 e3@3 e2@3 ~ e3@3 ~@14]
  ~@106
>`).s("gm_synth_bass_2").gain(0.48)

// other · lead 2 sawtooth
const lead_2_sawtooth = note(`<
  ~@3 A@2 B@2 C D E F G H@2 I@2 J K ~@6 L M N@2 ~@6 O P@2 Q ~@6 R S T U ~@27 L V W@2 X Y Z AA ~@9 AB AC AD AE@2 T U ~@6
  AF AG AH@2 ~
>`.pickRestart({
  A: "[~@18 g#2@3 ~@4 g#2@3 ~@3 g#2@3 ~ f#2@3 g#2@3 b2@3 ~ g#2@3 ~@3 g#2@3 ~@4 g#2@3 f#2@3]/2",
  B: "[~ g#2@3 b2@3 g#2@3 ~@4 g#2@3 ~@4 g#2@3 f#2@3 ~ g#2@3 b2@3 c#2@3 ~@4 c#2@3 ~@4 e2@3 c#2@3 e2@3 ~ f#2@3 g#2@3]/2",
  C: "~@4 g#2@3 ~@3 g#2@3 ~ f#2@3 g#2@3 b2@3 ~ g#2@3 ~@3 g#2@2", D: "~@5 g#2@3 f#2@3 ~ g#2@3 b2@3 g#2@3 ~@4 g#2@3 ~@4",
  E: "g#2@3 f#2@3 ~ g#2@3 b2@3 c#2@3 ~@4 c#2@3 ~@4 e2@3 c#2@2", F: "~ e2@3 ~ f#2@3 ~@24",
  G: "~@3 g#2@3 ~@3 g#2@3 ~@4 g#2@3 ~ f#2@3 g#2@3 b2@3 ~ g#2@2",
  H: "[~@4 g#2@3 ~@4 g#2@3 f#2@3 ~ g#2@3 b2@3 g#2@3 ~@4 g#2@3 ~@4 g#2@3 f#2@3 g#2@3 ~ b2@3 c#2@3 ~@4 c#2@3 ~@3]/2",
  I: "[e2@3 ~ c#2@3 e2@3 ~ f#2@3 g#2@3 ~@3 g#2@3 ~@4 g#2@3 ~ f#2@3 g#2@3 b2@3 ~ g#2@3 ~@3 g#2@3 ~@4 g#2@3 f#2@3 ~ g#2@3]/2",
  J: "b2@3 g#2@3 ~@4 g#2@3 ~@4 g#2@3 f#2@3 g#2@3 ~ b2@3 c#2@2", K: "~@5 c#2@3 ~@3 e2@3 ~ c#2@3 e2@3 ~ f#2@3 ~@7",
  L: "~@15 g#2@3 ~@4 g#2@3 ~@3 g#2@3 ~", M: "f#2@3 g#2@3 b2@3 ~ g#2@3 ~@3 g#2@3 ~@4 g#2@3 f#2@3 ~ g#2@2",
  N: "[~ b2@3 g#2@3 ~@4 g#2@3 ~@4 g#2@3 f#2@3 g#2@3 ~ b2@3 c#2@3 ~@4 c#2@3 ~@4 e2@3 c#2@3 e2@3 ~ f#2@3 ~@6]/2",
  O: "~@16 g#2@3 ~@4 g#2@3 ~@3 g#2@3",
  P: "[~ f#2@3 g#2@3 b2@3 ~ g#2@3 ~@3 g#2@3 ~@4 g#2@3 f#2@3 ~ g#2@3 b2@3 g#2@3 ~@4 g#2@3 ~@4 g#2@3 f#2@3 ~ g#2@3 b2@3]/2",
  Q: "c#2@3 ~@4 c#2@3 ~@4 e2@3 c#2@3 e2@3 ~ f#2@3 ~@5", R: "~@17 g#2@3 ~@4 g#2@3 ~@3 g#2@2",
  S: "~@2 f#2@3 g#2@3 b2@3 ~ g#2@3 ~@3 g#2@3 ~@4 g#2@3 ~ f#2@3",
  T: "g#2@3 b2@3 ~ g#2@3 ~@3 g#2@3 ~@4 g#2@3 f#2@3 ~ g#2@3 b2@2",
  U: "~ c#2@3 ~@4 c#2@3 ~@4 e2@3 c#2@3 e2@3 ~ f#2@3 ~@4",
  V: "f#2@3 g#2@3 b2@3 ~ g#2@3 ~@3 g#2@3 ~@4 g#2@3 ~ f#2@3 g#2@2",
  W: "[~ b2@3 g#2@3 ~@4 g#2@3 ~@4 g#2@3 f#2@3 ~ g#2@3 b2@3 c#2@3 ~@4 c#2@3 ~@4 e2@3 c#2@3 e2@3 ~ f#2@3 g#2@3 ~@3]/2",
  X: "~ g#2@3 ~@3 g#2@3 ~ f#2@3 g#2@3 b2@3 ~ g#2@3 ~@3 g#2@3 ~@2",
  Y: "~@2 g#2@3 ~ f#2@3 g#2@3 b2@3 ~ g#2@3 ~@3 g#2@3 ~@4 g#2@3",
  Z: "f#2@3 ~ g#2@3 b2@3 c#2@3 ~@4 c#2@3 ~@4 e2@3 c#2@3 e2@2", AA: "~@2 f#2@3 ~@27",
  AB: "~@6 g#2@3 ~@4 g#2@3 ~@3 g#2@3 ~ f#2@3 g#2@3 ~ b2@2",
  AC: "~ g#2@3 ~@4 g#2@3 ~@3 g#2@3 ~ f#2@3 g#2@3 b2@3 ~ g#2@3 ~",
  AD: "~@2 g#2@3 ~@4 g#2@3 f#2@3 ~ g#2@3 b2@3 c#2@3 ~@4 c#2@3",
  AE: "[~@4 e2@3 c#2@3 e2@3 ~ f#2@3 g#2@3 ~@4 g#2@3 ~@4 g#2@3 f#2@3 g#2@3 ~ b2@3 g#2@3 ~@4 g#2@3 ~@3 g#2@3 ~ f#2@3]/2",
  AF: "~@18 g#2@3 ~@4 g#2@3 ~@4", AG: "g#2@3 f#2@3 g#2@3 ~ b2@3 g#2@3 ~@4 g#2@3 ~@3 g#2@3 ~ f#2@2",
  AH: "[~ g#2@3 b2@3 ~ g#2@3 ~@3 g#2@3 ~@4 g#2@3 f#2@3 ~ g#2@3 b2@3 c#2@3 ~@4 c#2@3 ~@4 e2@3 c#2@3 ~ e2@3 f#2@3 g#2@3]/2",
})).s("gm_lead_2_sawtooth").gain(0.8)

// bass · synth bass 2
const bass_2 = note(`<
  ~ A B C ~@7 D E@4 F G H I@2 J@2 K L M N@2 O@2 P Q H R@2 S@3 ~@6 T U V W X Y@2 Z AA AB AC@2 AD@2 AE@2 AB AF AG ~@2 AH@2
  AI AJ ~@6 AK AL AM@2 AN@2 AO AP ~@9 AQ@3 AR@2 AB AS ~@6 AT AU AV@2 ~
>`.pickRestart({
  A: "~@14 g#2!2", B: "g#3@3 g#2@3 g#3@2 g#3@2 g#2 g#2@2 g#3@3 g#2@3 ~ g#3 g#3@2 c#2@2 c#2@2 c#3@3 c#2@2",
  C: "~ c#3@2 c#3@2 e2 e2@2 e3@3 e2@3 ~ e3 e3@2 ~@14",
  D: "~@3 g#2@3 g#2@3 g#2@3 ~ g#2@3 g#2@3 ~ g#3@3 g#2@3 g#3@2 g#3@2 g#2@2",
  E: "[~ g#2@3 g#2@3 ~ g#2@3 g#2@3 g#3@3 ~ g#2@3 g#3@2 ~ g#2@3 ~ g#2@3 g#2@3 g#2@3 ~ g#2@3 g#3@3 g#2@3 ~ g#3 g#3@2 c#2@3 c#2@3 ~ c#2@3 c#3@2 ~ e2@3 ~ e3@3 e2@3 ~@2 e2@2 g#2@3 g#2@3 g#2@3 ~ g#2@3 g#2@3 ~ g#3@3 g#2@3 g#3@2 g#3@2 g#2@3 g#2@3 g#2@3 ~ g#2@3 g#2@3 g#3@3 ~ g#2@3, ~@23 g#3@2 ~@38 c#2@3 ~@9 e3@3 ~@50]/4",
  F: "g#3@2 ~ g#2@3 ~ g#2@3 g#2@3 g#2@3 ~ g#2@3 g#3@3 g#2@3 ~ g#3 g#3@2 c#2@2, ~ g#3 ~@14",
  G: "~ c#2@3 ~ c#2@3 c#3@2 ~ e2@3 ~ e3@3 e2@3 ~@2 e2@2 g#2@3 g#2@3 ~, ~@10 c#2@3 ~@9 e3@3 ~@7",
  H: "g#2@3 g#2@3 g#2@3 ~ g#2@3 g#2@3 g#2@3 ~ g#2@3 g#2@3 g#2@3 ~ g#2@2",
  I: "[~ g#2@3 g#2@3 ~ g#2@3 g#2@3 g#2@3 ~ g#2@3 g#2@3 g#2@3 ~ g#2@3 g#2@3 g#2@3 ~ g#2@3 c#3@3 c#3@3 ~ c#3@3 c#3@3 d#3@3 ~ d#3@3 d#3@3]/2",
  J: "[~ d#3@3 g#2@3 g#2@3 ~ g#2@3 g#2@3 g#2@3 ~ g#2@3 g#2@3 g#2@3 ~ g#2@3 g#2@3 g#2@3 ~ g#2@3 g#2@3 g#2@3 ~ g#2@3 g#2@3 g#2@3 ~ g#2@3]/2",
  K: "g#2@3 g#2@3 ~ g#2@3 g#2@3 g#2@3 ~ g#2@3 c#3@3 c#3@3 ~ c#3@3 c#3@2",
  L: "~ d#3@3 ~ d#3@3 d#3@3 ~ d#3@3 g#2@3 g#2@3 ~ g#2@3 g#2@3 g#2@3 ~",
  M: "g#3@3 g#2@3 g#3@2 g#3@2 g#2@3 g#2@3 g#2@3 ~ g#2@3 g#2@3 g#3@3 ~ g#2@2",
  N: "[~ g#3@2 ~ g#2@3 ~ g#2@3 g#2@3 g#2@3 ~ g#2@3 g#3@3 g#2@3 ~ g#3@2 ~ c#2@3 ~ c#2@3 c#2@3 c#3@2 c#2@2 e2@3 e3@3 e2@3 ~@2 e2@2 g#2@3 g#2@3, ~@3 g#3@2 ~@25 g#3@2 ~@23 e3@3 ~@6]/2",
  O: "[~ g#2@3 g#2@3 g#2@3 ~ g#2@3 g#2@3 g#2@3 ~ g#2@3 g#2@3 g#2@3 ~ g#2@3 g#2@3 g#2@3 ~ g#2@3 g#2@3 g#2@3 ~ g#2@3 g#2@3 g#2@3 ~ g#2@3]/2",
  P: "g#2@3 g#2@3 ~ g#2@3 c#3@3 ~ c#3@3 c#3@3 c#3@3 ~ d#3@3 d#3@3 d#3@2",
  Q: "~@2 d#3@3 g#2@3 g#2@3 ~ g#2@3 g#2@3 g#2@3 ~ g#2@3 g#2@3 g#2@3 ~",
  R: "[~ g#2@3 g#2@3 ~ g#2@3 g#2@3 g#2@3 ~ g#2@3 c#3@3 ~ c#3@3 c#3@3 c#3@3 ~ d#3@3 d#3@3 d#3@3 ~ d#3@3 g#2@3 g#2@3 ~ g#2@3 g#2@3 g#2@3]/2",
  S: "[~ g#3@3 g#2@3 g#3@2 g#3@2 g#2@3 g#2@3 g#2@3 ~ g#2@3 g#2@3 g#3@3 ~ g#2@3 g#3@2 ~ g#2@3 ~ g#2@3 g#2@3 g#2@3 ~ g#2@3 g#3@3 ~ g#2@3 g#3@2 ~ c#2@3 ~ c#2@3 c#2@3 c#3@2 c#2@2 e2@3 e3@3 e2@3 ~@2 e2@3 ~@4, ~@36 g#3@2 ~@25 g#3@2 ~@23 e3@3 ~@5]/3",
  T: "~@17 g#2@3 g#2@3 ~ g#2@3 g#2@3 g#2@2", U: "~@2 g#3@3 g#2@3 ~ g#3 g#3@2 g#2@3 g#2@3 g#2@3 ~ g#2@3 g#2@3 ~ g#3@3",
  V: "g#2@3 g#3@2 g#3@2 g#2@3 g#2@3 g#2@3 ~ g#2@3 g#2@3 g#3@3 ~ g#2@3 g#3@2",
  W: "~ c#2@3 ~ c#2@3 c#2@3 c#3@2 c#2@2 e2@3 e3@3 e2@3 ~@2 e2@3 ~@3, g#3@2 ~@23 e3@3 ~@4", X: "~@23 g#2@3 g#2@3 g#2@3",
  Y: "[~ g#2@3 g#2@3 ~ g#2@3 g#2@3 g#2@3 ~ g#2@3 g#2@3 g#2@3 ~ g#2@3 g#2@3 g#2@3 ~ g#2@3 g#2@3 g#2@3 ~ g#2@3 g#2@3 g#2@3 ~ g#2@3 g#2@3]/2",
  Z: "g#2@3 ~ g#2@3 g#2@3 g#2@3 ~ g#2@3 g#2@3 g#2@3 ~ g#2@3 c#3@3 d#3@2",
  AA: "~@2 g#2@3 g#2@3 ~ g#2@3 g#2@3 g#2@3 ~ g#2@3 g#2@3 g#2@3 ~ g#2@3",
  AB: "g#2@3 g#2@3 ~ g#2@3 g#2@3 g#2@3 ~ g#2@3 g#2@3 g#2@3 ~ g#2@3 g#2@2",
  AC: "[~ g#2@3 ~ g#2@3 g#2@3 g#2@3 ~ g#2@3 g#2@3 g#2@3 ~ g#2@3 g#2@3 g#2@3 ~ g#2@3 c#3@3 d#3@3 ~ g#2@3 g#2@3 ~ g#2@3 g#2@3 g#2@3 ~ g#2@2]/2",
  AD: "[~ g#2@3 g#2@3 ~ g#2@3 g#2@3 g#2@3 ~ g#2@3 g#2@3 g#2@3 ~ g#2@3 g#2@3 g#2@3 ~ g#2@3 g#2@3 g#2@3 ~ g#2@3 g#2@3 g#2@3 ~ g#2@3 c#3@3]/2",
  AE: "[c#3@3 ~ c#3@3 c#3@3 d#3@3 ~ d#3@3 d#3@3 ~ d#3@3 g#2@3 g#2@3 ~ g#2@3 g#2@3 g#2@3 ~ g#2@3 g#2@3 g#2@3 ~ g#2@3 g#2@3 g#2@3 ~ g#2@3]/2",
  AF: "~ g#2@3 ~ g#2@3 c#3@3 c#3@3 ~ c#3@3 c#3@3 ~ d#3@3 d#3@3 d#3@3 ~", AG: "d#3@3 ~@29",
  AH: "[~@14 g#2@3 g#2@3 ~ g#2@3 g#2@3 g#2@3 ~ g#2@3 g#2@3 g#2@3 ~ g#2@3 g#2@3 g#2@3 ~ g#2@3 g#2@3 g#2@3 ~ g#2@3]/2",
  AI: "g#2@3 g#2@3 ~ g#2@3 g#2@3 g#2@3 ~ g#2@3 g#2@3 g#2@3 ~ g#2@3 c#3@2",
  AJ: "~@2 c#3@3 c#3@3 c#3@3 ~ d#3@3 d#3@3 d#3@3 ~ d#3@3 ~@7", AK: "~@15 g#2@3 g#2@3 ~ g#2@3 g#2@3 g#2@3 ~",
  AL: "g#3@3 g#2@3 g#3@2 g#3@2 g#2@3 g#2@3 g#2@3 ~ g#2@3 g#2@3 ~ g#3@3 g#2@2",
  AM: "[~ g#3@2 g#3@2 g#2@3 g#2@3 g#2@3 ~ g#2@3 g#2@3 g#3@3 ~ g#2@3 g#3@2 ~ c#2@3 ~ c#2@3 c#2@3 c#3@2 c#2@2 e2@3 e3@3 e2@3 ~@2 e2@2 g#2@3 g#2@3, ~@30 g#3@2 ~@23 e3@3 ~@6]/2",
  AN: "[~ g#2@3 g#2@3 g#2@3 ~ g#2@3 g#2@3 g#2@3 ~ g#2@3 g#2@3 g#2@3 ~ g#2@3 g#2@3 ~ g#2@3 g#2@3 g#2@3 ~ g#2@3 g#2@3 g#2@3 ~ g#2@3 g#2@3]/2",
  AO: "g#2@3 ~ g#2@3 g#2@3 c#2@3 ~ c#2@3 c#2@3 c#2@3 ~ e2@3 e2@3 e2@2", AP: "~@2 e2@3 ~@27",
  AQ: "[~@6 g#2@3 g#2@3 ~ g#2@3 g#2@3 g#2@3 ~ g#3@3 g#2@3 ~ g#3 g#3@2 g#2@3 g#2@3 ~ g#2@3 g#2@3 g#2@3 ~ g#3@3 g#2@3 g#3@2 g#3@2 g#2@3 g#2@3 g#2@3 ~ g#2@3 g#2@3 g#3@3 ~ g#2@3 g#3@2 ~ c#2@3 ~ c#2@3 c#2@3, ~@85 g#3@2 ~@9]/3",
  AR: "[c#3@2 c#2@2 e2@3 e3@3 ~ e2@3 ~ e2@2 g#2@3 ~ g#2@3 g#2@3 g#2@3 ~ g#2@3 g#2@3 g#2@3 ~ g#2@3 g#2@3 g#2@3 ~ g#2@3 g#2@3 g#2@3 ~ g#2@3, ~@14 e3@3 ~@47]/2",
  AS: "~ c#2@3 ~ c#2@3 c#2@3 c#2@3 ~ e2@3 e2@3 e2@3 ~ e2@3 ~@4", AT: "~@18 g#2@3 ~ g#2@3 g#2@3 g#2@3 ~",
  AU: "g#2@3 g#3@3 g#2@3 ~ g#3 g#3@2 g#2@3 g#2@3 ~ g#2@3 g#2@3 g#2@3 ~ g#3@2",
  AV: "[~ g#2@3 g#3@2 g#3@2 g#2@3 g#2@3 g#2@3 ~ g#2@3 g#2@3 ~ g#3@3 g#2@3 g#3@2 ~ c#2@3 ~ c#2@3 c#2@3 ~@2 c#2@2 e2@3 e3@3 ~ e2@3 e3@2 ~ g#2@3, ~@33 g#3@2 ~@10 c#3@3 ~@12 e2@3 ~]/2",
})).s("gm_synth_bass_2").gain(0.72)

// chords · pad sweep
const pad_sweep = note("<~@37 A@8 ~@23 B@8 ~@22 C@8 ~@4>".pickRestart({
  A: "[~@27 [g#2,g#3,g#4,b4,d#5,g#5]@53 [f#2,f#3,f#4,a#4,c#5,f#5]@27 [c#2,c#3,c#4,g#4,c#5,f5]@27 ~ g#5@51 ~ f#5@27 [c#2,c#3,c#4,g#4,c#5,f5]@27 ~@15, ~@134 [g#2,g#3,b4,d#5]@52 [f#2,f#3,f#4,a#4,c#5]@27 ~@43]/8", // G#m F# C# G#m F#
  B: "[~@26 g#5@52 [f#2,f#3,f#4,a#4,c#5,f#5]@27 [c#2,c#3,c#4,g#4,c#5,f5]@27 ~ g#5@52 [f#2,f#3,f#4,a#4,c#5,f#5]@27 [c#2,c#3,c#4,g#4,c#5,f5]@27 ~@17, ~@12 [g#2,g#3,g#4,b4,d#5]@27 ~@27 [g#2,g#3,g#4,b4,d#5]@26 ~@36]/8", // F# C# F# C# G#m
  C: "[~@29 g#5@51 ~ f#5@27 [c#2,c#3,c#4,g#4,c#5,f5]@27 ~ g#5@52 [f#2,f#3,f#4,a#4,c#5,f#5]@27 [c#2,c#3,c#4,g#4,c#5,f5]@27 ~@14, ~@28 [g#2,g#3,g#4,b4,d#5]@52 [f#2,f#3,f#4,a#4,c#5]@27 ~@28 [g#2,g#3,b4,d#5]@52 ~@69]/8", // C# F# C# G#m F# G#m
})).s("gm_pad_sweep").gain(0.48)

// other · pad poly
const pad_poly = note("<~@17 A@2 B@4 C D ~@37 E@3 F@2 G@2 ~@41>".pickRestart({
  A: "[~@25 g#2@5 ~ g#2@5 ~@6 b2@5 ~ b2@4 g#2@5 ~ g#2@5 ~]/2",
  B: "[~@4 b2@5 ~@5 g#2@5 ~@2 g#2@5 ~@5 b2@5 ~@5 c#3@5 ~@2 c#3@5 ~ d#3@5 ~@2 d#3@5 ~@2 g#2@5 ~@2 g#2@5 ~@5 b2@5 ~ b2@4 g#2@5 ~ g#2@5 ~@5 b2@5 ~@5 g#2@5 ~@2, ~@11 b2@5 ~@22 g#2@5 ~@75 b2@5 ~@5]/4",
  C: "g#2@5 ~@5 b2@5 ~@5 c#3@5 ~@2 c#3@5, ~@17 g#2@5 ~@10", D: "~ d#3@5 ~@2 d#3@5 ~@19",
  E: "[~@3 g#2@5 ~@2 g#2@5 ~@5 b2@5 ~ b2@4 g#2@5 ~ g#2@5 ~@5 b2@5 ~@5 g#2@5 ~@2 g#2@5 ~@5 b2@5 ~@5 c#3@5 ~@2 c#3@5 ~, ~@53 b2@5 ~@22 g#2@5 ~@11]/3",
  F: "[~ d#3@5 ~ d#3@5 ~@2 g#2@5 ~@2 g#2@5 ~@5 b2@5 ~ b2@4 g#2@5 ~ g#2@5 ~@5 b2@5 ~@2]/2",
  G: "[~@3 g#2@5 ~@2 g#2@5 ~@5 b2@5 ~@5 c#3@5 ~@2 c#3@5 ~@2 d#3@5 ~ d#3@5 ~@9, b2@5 ~@22 g#2@5 ~@32]/2",
})).s("gm_pad_poly").gain(0.72)

// other · piano
const piano = note("<~@108 [~@29 c#3@3] ~>").s("gm_piano").gain(0.8)

// drums · kick
const kick = s("bd").struct(`<
  ~@11 A B C D E F G H I J K L M N O B P Q E R S T I U K V D W O G P Q J X S M Y Z B C D AA F G H I J AB L M AC O B AD
  AE E F S T I U K L D W O G P Q J X AF AG AH AI K C D AA F AJ P I J AB L M AC O B C AK E F S T I AL ~
>`.pickRestart({
  A: "~@3 x ~@5 x ~@6 x ~@6 x ~@6 x ~", B: "~@4 x ~@6 x ~@6 x ~@5 x ~@6 x", C: "~@6 x ~@5 x ~@6 x ~@6 x ~@5",
  D: "x ~@6 x ~@6 x ~@5 x ~@6 x ~@4", E: "~@2 x ~@6 x ~@5 x ~@6 x ~@6 x ~@2", F: "~@3 x ~@6 x ~@6 x ~@5 x ~@6 x ~",
  G: "~@5 x ~@5 x ~@6 x ~@6 x ~@5 x", H: "~@6 x ~@6 x ~@6 x ~@5 x ~@5", I: "~ x ~@6 x ~@5 x ~@6 x ~@6 x ~@3",
  J: "~@2 x ~@6 x ~@6 x ~@5 x ~@6 x ~@2", K: "~@4 x ~@6 x ~@5 x ~@6 x ~@6 x", L: "~@5 x ~@6 x ~@6 x ~@5 x ~@6",
  M: "x ~@6 x ~@5 x ~@6 x ~@6 x ~@4", N: "~ x ~@6 x ~@6 x ~@6 x ~@5 x ~@3", O: "~@3 x ~@6 x ~@5 x ~@6 x ~@6 x ~",
  P: "~@6 x ~@6 x ~@5 x ~@6 x ~@5", Q: "~ x ~@5 x ~@6 x ~@6 x ~@5 x ~@4", R: "~@3 x ~@6 x ~@6 x ~@6 x ~@5 x ~",
  S: "~@5 x ~@6 x ~@5 x ~@6 x ~@6", T: "x ~@5 x ~@6 x ~@6 x ~@5 x ~@5", U: "~@3 x ~@5 x ~@6 x ~@6 x ~@5 x ~@2",
  V: "~@5 x ~@6 x ~@6 x ~@6 x ~@5", W: "~@2 x ~@5 x ~@6 x ~@6 x ~@5 x ~@3", X: "~@4 x ~@5 x ~@6 x ~@6 x ~@5 x ~",
  Y: "~ x ~@6 x ~@6 x ~@5 x ~@10", Z: "~@23 x ~@5 x ~@2", AA: "~@2 x ~@5 x ~@6 x ~@6 x ~@6 x ~@2",
  AB: "~@4 x ~@5 x ~@6 x ~@6 x ~@6 x", AC: "~ x ~@6 x ~@6 x ~@5 x ~@6 x ~@3", AD: "~@6 x ~@5 x ~@6 x ~@12",
  AE: "~@14 x ~@6 x ~@5 x ~@4", AF: "~@5 x ~@22 x ~@3", AG: "x ~@26 x ~@4", AH: "~@18 x ~@2 x ~@10",
  AI: "~@16 x ~@6 x ~@5 x ~@2", AJ: "~@5 x ~@5 x ~@20", AK: "x ~@6 x ~@6 x ~@6 x ~@5 x ~@4",
  AL: "~@2 x ~@6 x ~@6 x ~@6 x ~@5 x ~@2",
})).gain(0.5)

// drums · clap
const clap = s("cp").struct(`<
  ~ A B C ~@2 D E F G H I J K L M N O ~@7 P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL ~ AM AN AO AP AQ AR
  AS AT AU AV AW AX AY AZ ~@6 BA BB BC BD BE BF BG BH Q BI ~@3 BJ BK BL BM BN BO BP BQ B BR BS BT AH AI ~@3 BU AM AN BV
  AP AQ BW BX BY BZ ~
>`.pickRestart({
  A: "~@7 x", B: "~@10 x ~@12 x ~@8", C: "~@5 x ~@26", D: "~@29 x ~@2", E: "~@4 x ~@5 x ~@6 x ~@6 x ~@5 x ~",
  F: "~@5 x ~@6 x ~@5 x ~@6 x ~@6", G: "x ~@6 x ~@5 x ~@6 x ~@6 x ~@4", H: "~ x ~@30", I: "~@10 x ~@2 x!2 ~",
  J: "~@14 x ~@6 x ~ x ~@8", K: "~@9 x ~@6 x!2 ~@14", L: "~@4 x ~@6 x!2 ~@18 x", M: "~@5 x ~ x ~@17 x ~@6",
  N: "x ~ x ~@17 x ~@6 x!2 ~@3", O: "~@15 x ~@6 x!2 ~@8", P: "x ~@2 x!2 ~@8 x ~@2", Q: "~ x ~ x ~@17 x ~@6 x ~ x ~",
  R: "~@16 x ~@6 x!2 ~ x ~@2 x ~@2", S: "~@11 x ~@5 x ~ x ~ x ~@2 x ~@7", T: "~@5 x ~@6 x ~ x ~ x ~@2 x ~@12",
  U: "x ~@6 x!2 ~ x ~@3 x ~@12 x ~@4", V: "~@2 x!2 ~ x ~@2 x ~@13 x ~@5 x ~ x ~",
  W: "x ~@2 x ~@12 x ~@6 x ~ x!2 ~@3 x ~", X: "~@11 x ~@6 x!2 ~ x ~@3 x ~@6", Y: "~@6 x ~@6 x!2 ~@17",
  Z: "~ x ~@5 x ~ x ~@17 x ~@4", AA: "~@2 x ~ x ~@17 x ~@6 x ~ x", AB: "~@17 x ~@6 x!2 ~@6", AC: "~@6 x ~@2 x!2 ~@5",
  AD: "~@6 x ~@6 x ~ x ~@16", AE: "~ x ~@6 x ~ x ~@17 x ~@3", AF: "~@3 x!2 ~@18 x ~@5 x ~ x",
  AG: "~@17 x ~@6 x ~ x ~@5", AH: "~@12 x ~@6 x ~ x ~@10", AI: "~@7 x ~@6 x!2 ~@16", AJ: "~@2 x ~@6 x!2 ~@18 x ~@2",
  AK: "~@3 x ~ x ~@17 x ~@6 x ~", AL: "x ~@17 x ~@6 x!2 ~@5", AM: "~@4 x ~@2 x!2 ~@7", AN: "~@2 x ~@6 x ~ x ~@17 x ~@2",
  AO: "~@4 x!2 ~@18 x ~@5 x ~", AP: "x ~@18 x ~@5 x ~ x ~@4", AQ: "~@13 x ~@6 x ~ x ~@9", AR: "~@8 x ~@6 x!2 ~@15",
  AS: "~@3 x ~@5 x ~ x ~ x ~@2 x ~@13 x ~", AT: "~@4 x ~ x ~ x ~@2 x ~@12 x ~@6 x",
  AU: "~ x!2 ~@3 x ~@12 x ~@6 x!2 ~ x ~@2", AV: "x ~@13 x ~@6 x!2 ~ x ~@2 x ~@4", AW: "~@9 x ~@5 x ~ x ~ x ~@2 x ~@9",
  AX: "~@3 x ~@6 x ~ x!2 ~@3 x ~@12 x ~", AY: "~@5 x!2 ~ x ~@3 x ~@12 x ~@6", AZ: "x!2 ~@30", BA: "~@5 x ~@2 x!2 ~@6",
  BB: "~@4 x ~@6 x ~ x ~@17 x", BC: "~@3 x!2 ~@8 x ~@2", BD: "~ x!2 ~@18 x ~@5 x ~ x ~@2", BE: "~@15 x ~@6 x ~ x ~@7",
  BF: "~@10 x ~@6 x ~ x ~@12", BG: "~@5 x ~@6 x!2 ~@18", BH: "x ~@5 x ~ x ~@18 x ~@4", BI: "~@16 x ~@6 x!2 ~@7",
  BJ: "~@5 x ~@6 x ~@5 x ~@6 x ~@4 x ~", BK: "~@6 x ~@6 x ~@6 x ~@6 x ~@4", BL: "~ x ~@6 x ~@6 x ~@4 x ~@7 x ~@3",
  BM: "~@3 x ~@5 x ~@13 x ~@8", BN: "~@4 x ~@12 x ~@13 x", BO: "~@6 x ~@6 x ~@2", BP: "~@7 x ~@12 x ~@11",
  BQ: "~@2 x ~@12 x ~@13 x ~@2", BR: "~@5 x ~@12 x ~@12 x", BS: "~@23 x ~@6 x!2", BT: "~@9 x ~@2 x!2 ~@2",
  BU: "~@13 x ~@6 x!2 ~@10", BV: "~@4 x ~ x ~@17 x ~@6 x", BW: "~@8 x ~@6 x ~ x ~@14", BX: "~@3 x ~@6 x!2 ~@18 x ~",
  BY: "~@4 x ~ x ~@18 x ~@5 x", BZ: "~ x ~@17 x ~@6 x ~ x ~@3",
})).gain(0.45)

// drums · snare
const snare = s("sd").struct("<~@3 A ~@60 B C ~@12 D E F G H ~@12 I J K L ~@11>".pickRestart({
  A: "~@3 x ~@2 x ~@3 x!2 ~ x ~ x!2 ~@15", B: "~@21 x ~@2 x ~ x ~@2 x ~@2", C: "~ x ~@2 x ~@2 x ~ x ~ x ~@20",
  D: "~@29 x ~@2", E: "~@4 x ~@6 x!2 ~@4 x ~@6 x ~@6 x", F: "~@6 x!2 ~@4 x ~@6 x ~@6 x ~@5",
  G: "x ~ x ~@4 x ~@6 x ~@5 x ~@3 x ~@2 x ~@2 x ~", H: "x ~ x!2 ~@28", I: "~@21 x ~@5 x ~@4",
  J: "~@2 x ~ x ~@4 x ~@5 x ~@6 x ~@6 x!2 ~", K: "~@3 x ~@6 x ~@6 x ~@5 x ~ x ~@4 x ~",
  L: "~@5 x ~@5 x ~@3 x ~@2 x ~@2 x ~ x ~ x ~ x ~@4",
})).gain(0.45)

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@2 A B ~@60 C ~@16 D ~@16 E ~@11>".pickRestart({
  A: "~@23 x ~@3 x ~@2 x ~", B: "x!2 ~@30", C: "~@19 x ~@12", D: "~@29 x ~@2", E: "~@5 x ~@2",
})).gain(0.25)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@7 A B C D E F G H I J K L M G N O J P Q R S G O T J Q U M G V O J W X M G Y O Z AA AB AC F G O AD J Q AE M G AF O J
  K AG AH AI AJ O AK J Q M F G O AL J W AM M G AN O AO AP AQ AR AS AT AU AV AW AX AY M G AF O J W L M G Y O J AZ Q BA BB
  ~
>`.pickRestart({
  A: "x ~@6 x ~@6 x ~@5 x ~ x ~@4 x ~@4", B: "~@2 x ~@5 x ~@6 x ~ x ~@4 x ~@6 x ~@2",
  C: "~@3 x ~@6 x ~ x ~@4 x ~@5 x ~@6 x ~", D: "~@5 x!2 ~@25",
  E: "~@3 x!2 ~ x ~ x!2 ~ x ~ x!2 ~ x ~ x ~ x!2 ~ x!2 ~ x ~ x ~ x!2",
  F: "~ x!2 ~ x ~ x ~ x!2 ~ x ~ x!2 ~ x ~ x!2 ~ x ~ x!2 ~ x ~ x!2 ~ x",
  G: "~ x!2 ~ x ~ x!2 ~ x ~ x!2 ~ x ~ x!2 ~ x ~ x!2 ~ x ~ x!2 ~ x ~ x",
  H: "x ~ x ~ x!2 ~ x ~ x ~ x!2 ~ x!2 ~ x ~ x!2 ~ x ~ x!2 ~ x ~ x ~ x",
  I: "x ~ x!2 ~ x ~ x ~ x!2 ~ x ~ x!2 ~ x ~ x!2 ~ x ~ x!2 ~ x ~ x!2 ~",
  J: "x ~ x!2 ~ x ~ x!2 ~ x ~ x!2 ~ x ~ x!2 ~ x ~ x!2 ~ x ~ x!2 ~ x ~",
  K: "x!2 ~ x ~ x!2 ~ x ~ x!2 ~ x ~ x!2 ~ x ~ x ~ x!2 ~ x!2 ~ x ~ x ~",
// … 181 more lines

More by 2 Unlimited