Strudelify

Addicted to That Rush

Big Mr.

KeyA minorTempo214 bpm
0:00/0:00
// Addicted to That Rush — Big Mr.
// 214 bpm, 4/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 242 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): GTHARMONIC.
setcpm(214/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.

// other · overdriven guitar · "OVERDRIVE"
const overdriven_guitar = note(`<
  ~@6 A B C D C D E F G H I@2 J K L M N O ~@98 P Q R S T U V W X@2 Y@2 Z AA AB AC ~@14 AD@8 AE ~@3 AF AG AH AI ~@9 AJ
  AK@3 ~@4 AL AM AN AO AP AO AQ ~@26 AR AS AT AU@2 ~@19
>`.pickRestart({
  A: "~@2 g3 ~@2 g3 ~@2", B: "g3@6 g2 a2", C: "a3 g3 f#3@2 g3@2 g3!2", D: "f#3@2 g3@2 g3 g2@2 g2",
  E: "a3 g3 f#3@2 e4@2 b3@2", F: "a4 g3 d3@2 e3 c4 g3@2", G: "a3 d3 g3 d3 e3 e4 c4 g3", H: "d4 a3 c4 g3 a3@4",
  I: "d#4 c4 ~ d4 c4 a3 ~ c4 d#4 c4 ~ d4 c4 a3 ~ c4", J: "g4 e4 ~ f#4 e4 c#4 ~ e4 g4 e4 ~ f#4 e4 c#4 ~ e4",
  K: "g4 e4 ~ f#4 e4 c#4 ~ e4 g4@4 d#4 e4 ~ g4", L: "a4 g4 ~ e4 d#4 d4 ~ c4 d4 c4 ~ d4 d#4 d4 ~ c4",
  M: "g4 e4 ~ g4 a4 g4 ~ e4 a4 g4 ~ a4 c5 a4 ~ g4", N: "c5 a4 ~ c5 d#5 c5 ~ a4 d#5 c5 ~ d5 c5 a4 ~ c5",
  O: "d#5 c5 ~ d5 c5 a4 ~ c5 g5@8", P: "b3 d4 f#4 b3 c#4 e4 b3 d4 f#4 b3 c#4 e4 b3 d4 f#4 b3",
  Q: "d#4 f#4 a4 d#4 f4 g#4 d#4 f#4 a4 d#4 f4 g#4 d#4 f#4 a4 d#4",
  R: "b4 d5 f#5 b4 c#5 e5 d5 c#5 b4 d5 f#5 b4 c#5 e5 d5 c#5", S: "b4 d5 f#5 b4 c#5 e5 d5 c#5 b4 d5 f#5 b4 d5 e5 f#5 a5",
  T: "b5 a5 f#5 d5 b4 e4 f#4 a4 b4 d5 f#5 b5 d6 b5 f#5 g#5", U: "d6 b5 a5 f#5@3 e5@2 f#5 g5 f#5 e5 d5 c#5 b4 a#4",
  V: "b4 c5 b4 a#4 f#4 g4 f#4 e4 f#4 e4 f#4 g4 f#4 e4 d4@2", W: "f#4 f4 e4 d#4 d4 e4 d#4 d4 b3@8",
  X: "f4 d4 ~ e4 d4 b3 ~ d4 f4 d4 ~ e4 d4 b3 ~ d4", Y: "a4 f#4 ~ g#4 f#4 d#4 ~ f#4 a4 f#4 ~ g#4 f#4 d#4 ~ f#4",
  Z: "d4 c#4 ~ d4 b3 a3 ~ g3 e4 d4 ~ e4 c#4 b3 ~ a3", AA: "f#4 e4 ~ f#4 d4 c#4 ~ b3 g4 f#4 ~ g4 e4 d4 ~ c#4",
  AB: "a4 g4 ~ a4 f#4 e4 ~ d4 b4 a4 ~ b4 g4 f#4 ~ e4", AC: "c#5 b4 ~ a4 g4 f#4 ~ e4 e5@8",
  AD: "[[a2,e3], a3@105 ~@23]/8", AE: "[a2,e3,a3] ~@15", AF: "c5@2 a4@2 ~@2 a4@5 ~ g4@2 ~@2, ~@6 a3 ~@9",
  AG: "a4@2 a4@2 ~@2 c5@7 ~@3", AH: "d5@5 a4 ~ g4 f#5@4 e5@4", AI: "d#5 d5 c5 a4 c5@4", AJ: "~@12 g3 g#3 ~ a3",
  AK: "[c4@2 a3@2 ~@2 d4@2 ~@2 d4@2 ~@2 d4@4 ~@2 c4@23 ~@5]/3", AL: "~@12 c4 c#4 ~ e4", AM: "a4 g4 ~ f#4 ~ e4 ~ d#4",
  AN: "d4", AO: "g4 d4 ~ g4 ~ d4 ~ g4", AP: "~ g4 ~ d4 g4 ~ d4 ~", AQ: "[a2,e3,a3]@8 [a2,e3,a3]@7 ~",
  AR: "g3 g#3 ~ a3 c4 d4 ~ d#4 e4 g4 ~ a4 f#4!2 ~ f4", AS: "d4 d#4 ~ e4 g4 g#4 ~ a4 c5 d5 ~ d#5 e5 f#5 ~ g5",
  AT: "e5 f5 ~ g5 a5 b5 ~ c6 a5 g5 ~ c6 b5 a5 ~ c6", AU: "[c6@19 ~@13]/2",
})).s("gm_overdriven_guitar").gain(0.64)

// bass · fretless bass · "FRETLESS"
const bass = note(`<
  A@7 B ~@8 C@2 D E F G H I ~@106 J@2 K@2 L M N O ~@14 P@3 ~ Q@2 R@2 S ~@10 T U V W X Y ~@4 Z AA@2 ~@3 AB AC@3 AD ~@22
  AE@4 AF AG AH AI AJ AK AJ AK AJ AL AM AJ AN@6 AO@4 AP ~
>`.pickRestart({
  A: "a3/7", B: "g3@3 ~", C: "d#3 c3 ~ d3 c3 a2 ~ c3 d#3 c3 ~ d3 c3 a2 ~ c3",
  D: "g3 e3 ~ f#3 e3 c#3 ~ e3 g3 e3 ~ f#3 e3 c#3 ~ e3", E: "g3 e3 ~ f#3 e3 c#3 ~ e3 g3@4 d#3 e3 ~ g3",
  F: "a3 g3 ~ e3 d#3 d3 ~ c3 d3 c3 ~ d3 d#3 d3 ~ c3", G: "g3 e3 ~ g3 a3 g3 ~ e3 a3 g3 ~ a3 c4 a3 ~ g3",
  H: "c4 a3 ~ c4 d#4 c4 ~ a3 d#4 c4 ~ d4 c4 a3 ~ c4", I: "d#4 c4 ~ d4 c4 a3 ~ c4 d#4@8",
  J: "f3 d3 ~ e3 d3 b2 ~ d3 f3 d3 ~ e3 d3 b2 ~ d3", K: "a3 f#3 ~ g#3 f#3 d#3 ~ f#3 a3 f#3 ~ g#3 f#3 d#3 ~ f#3",
  L: "d3 c#3 ~ d3 b2 a2 ~ g2 e3 d3 ~ e3 c#3 b2 ~ a2", M: "f#3 e3 ~ f#3 d3 c#3 ~ b2 g3 f#3 ~ g3 e3 d3 ~ c#3",
  N: "a3 g3 ~ a3 f#3 e3 ~ d3 b3 a3 ~ b3 g3 f#3 ~ e3", O: "c#4 b3 ~ a3 g3 f#3 ~ e3 a3@8", P: "[a1,e2]/3",
  Q: "[f#3@3 ~@3 f#3@4 ~@3 g3@15 ~@4]/2", R: "[d2 d3 ~ d3@21 d#2@8]/2", S: "a1 ~@7", T: "~@6 a1 ~ g2@4 a1 c2 ~ a1",
  U: "a2 g2 ~ a2 g2 a2 ~ g2 f#2@2 g2@2 g2@2 f#2@2", V: "g2@2 g2@2 f#2@2 g2@2 g2 a2 c3@2 ~ c3 a2@2, ~@6 d3 ~",
  W: "b2 d3 b2 c3 e3 c3 d3 f3", X: "d3 e3 g3@6", Y: "a1@3 ~@13", Z: "~@12 d3!2 ~ d3",
  AA: "[d3!4 ~ d3 ~@8 e2@2, ~@7 c3@9]/2", AB: "~@3 c3",
  AC: "[a3@5 ~@2 a3@6 ~ a3@5 ~@3 a3@6 ~@2 a3@6 ~@2 a3@6 ~@4, ~@7 a2 ~@6 a2 ~@33]/3", AD: "a1@7 ~ g2@8",
  AE: "a2!2 ~ a2!3 ~ a2!3 ~ a2!3 ~ a2", AF: "c3!2 ~ c3!3 ~ c3 d3!2 ~ d3!3 ~ d3",
  AG: "e3!2 ~ e3!3 ~ e3 g3!2 ~ g3!3 ~ g3", AH: "a3!2 ~ a3!3 ~ a3!3 ~ a3!3 ~ a3", AI: "a3!2 ~ a3!3 ~ a3 a3@3 ~ a1@4",
  AJ: "g2 a2 ~ g2 a2 ~ g2 a2", AK: "~ g2 a2 ~ g2 e2 c2 d2", AL: "~ g2 a2 ~ g2 a2 ~ g2", AM: "a2 ~ g2 a2 ~ g2 a2 ~",
  AN: "[a1@47 ~]/6", AO: "[a1@63 ~]/4", AP: "a1 ~@3",
})).s("gm_fretless_bass").gain(0.62)

// bass · electric bass finger · "FRETLESS"
const bass_2 = note(`<
  ~@24 A@6 B C A@7 D E F A G A F H I J K L M J N ~ O P Q R S R T U V W X ~ V ~ Y Z AA AB M AC AD A@7 D E F A G A AE AF
  AG J K L M J N ~ O P Q R S R T U V W X ~ V ~ AH U V W AI ~ AJ ~ AK AL AM@6 AN ~@8 J K L M J N ~ O P Q R S R T ~@40 J K
  L M J N ~ O P Q R S R T AO M AO M AO M AP AQ ~@28
>`.pickRestart({
  A: "a1!8", B: "c2 a1 c#2 a1 d2 a1 d#2 a1", C: "g2 a2 ~ g2 e2@4 g2@2 ~@2 a#1@4",
  D: "a1 ~ a1 ~ a1@4 d2@2 e2@2 g2@2 e2@2", E: "a1!6 a1@2", F: "a1!7 g1", G: "a1!7 g#1",
  H: "g1@2 a1@2 a1 ~ a1@2 a1 ~ a1@2 a1@4", I: "g1 a1!2 g1!2 a1 g1 a1", J: "[c2,g2]", K: "[d2,a2]@15 ~",
  L: "g1 a1 ~ a1@2 g1 a1@2", M: "a1 ~ a1 ~ a1@4 a1 ~ a1 ~ a1@4", N: "~ f#1, [d2,a2]@11 ~@5", O: "g#3 ~ a3 ~ a2!2 g#3@2",
  P: "c2", Q: "d2", R: "f2", S: "e2", T: "g2@8 c#2@5 ~@3", U: "a1 ~@7", V: "~@4 a1 ~@3", W: "~@7 a1@9",
  X: "e2 a2 g#2 e2 a1 ~@3", Y: "~@3 c#2", Z: "a1@4 a1 ~ a1@2 a1 ~ a1@2 a1@4",
  AA: "a1 ~ e1@2 g1@2 a1@2 a1 ~ e1@2 g1@2 a1@2", AB: "a1@2 a1@2 a1 ~ a1@2 a1 ~ a1@2 a1@4",
  AC: "[c2,g2]@5 ~ [d2,a2]@9 ~", AD: "g1@5 ~ e1@9 ~", AE: "a1!5 d2 e2 g2", AF: "g2 a2 c3 a2@3 g3 e3",
  AG: "c3 a2 d3 c3 a2 g2 c3@2", AH: "~@8 f2@7 ~", AI: "a1 a2 g2 e2 a1@2 ~@2", AJ: "~@2 a2@2 a1 ~@3", AK: "b1",
  AL: "b1@2 b1 ~ b1@2 b1@2 b1@2 b1@2 b1@2 b1@2", AM: "b1!8", AN: "b1!4 b1@4", AO: "a1!3 a1@2 a1 a1@2",
  AP: "a1!3 a1@2 a1 d2 c2", AQ: "d2 e2 g2 e2 g2 e2 g2 a2",
})).s("gm_electric_bass_finger").gain(0.62)

// chords · synth brass 1 · "SYNBRASS 1"
const synth_brass_1 = note(`<
  ~@48 A B ~@2 A B ~@2 A B ~@34 A B ~@2 A B ~@2 A B ~@36 A B ~@2 A B ~@2 A B ~@44 A B ~@2 A B ~@2 A C D@2 E F G@2 H@2
  I@2 J@2 K@2 L@2 M@2 N@2 O@2 ~@18
>`.pickRestart({
  A: "[d#5,f#5]", B: "[d5,f#5]@13 ~@3", C: "[d5,f#5]@5 [a5,c6]@3",
  D: "[[c6,e6]@2 [b5,d6]@2 ~@2 [a5,c6]@2 ~@2 [g5,b5]@4 [a5,c6]@15 ~@3]/2", E: "[c6,e6] [b5,d6] [a5,c6] [g5,b5]",
  F: "[a5,c6]!2", G: "[c5@2 b4@4 d5@4 d5@4 e5@15 ~@3]/2", H: "[b4 c5@2 d5@2 c#5@2 e5@7 ~@2]/2",
  I: "[c5 c5@2 d5@2 d5@2 d5@9]/2", J: "[c5@2 c5@3 ~ d5@4 d5@3 ~ d#5@13 ~@5]/2", K: "[c5@2 c5@3 ~ c#5@4 d5@4 e5@18]/2",
  L: "[c5@2 c5@3 ~ d5@4 d5@4 d#5@14 ~@4]/2", M: "[c5@2 c5@3 ~ d5@4 d5@4 e5@16 ~@2]/2",
  N: "[c5@2 c5@4 d5@4 d5@4 e5@15 ~@3]/2", O: "[[d#5,d#6]@21 ~@11]/2",
})).s("gm_synth_brass_1").gain(0.65)

// other · overdriven guitar · "OVERDRIVE"
const overdriven_guitar_2 = note(`<
  ~@6 A B C D C D E F G H I@2 J K L M N O P Q R S R Q T U V W X Y V W Z AA V W X Y V W AB AC AD AE AF Q AD AE AG AH AD
  AE AI AJ AI AK AL@2 AM@2 AL@2 AN@2 R Q R S AO AP V W X Y V W Z AA V W X Y V W AB AC AD AE AF Q AD AE AG AH AD AE AI AJ
  AI AK AL@2 AQ@2 AL@2 AR@2 AL@2 AS AT AL@2 AU@3 ~@15 AD AE AF Q AD AE AG AH AD AE AI AJ AI AK ~@40 AD AE AF Q AD AE AG
  AH AD AE AI AJ AI AK AV AW AV AW AV AW AV@2 AX@4 AY AZ BA BB BC BD BC BD BC BE BF BC BG@6 BH@4 BI@2
>`.pickRestart({
  A: "~@2 g3 ~@2 g3 ~@2", B: "g3@6 g2 a2", C: "a3 g3 f#3@2 g3@2 g3!2", D: "f#3@2 g3@2 g3 g2@2 g2",
  E: "a3 g3 f#3@2 e4@2 b3@2", F: "a4 g3 d3@2 e3 c4 g3@2", G: "a3 d3 g3 d3 e3 e4 c4 g3", H: "d4 a3 c4 g3 a3@4",
  I: "d#4 c4 ~ d4 c4 a3 ~ c4 d#4 c4 ~ d4 c4 a3 ~ c4", J: "g4 e4 ~ f#4 e4 c#4 ~ e4 g4 e4 ~ f#4 e4 c#4 ~ e4",
  K: "g4 e4 ~ f#4 e4 c#4 ~ e4 g4@4 d#4 e4 ~ g4", L: "a4 g4 ~ e4 d#4 d4 ~ c4 d4 c4 ~ d4 d#4 d4 ~ c4",
  M: "g4 e4 ~ g4 a4 g4 ~ e4 a4 g4 ~ a4 c5 a4 ~ g4", N: "c5 a4 ~ c5 d#5 c5 ~ a4 d#5 c5 ~ d5 c5 a4 ~ c5",
  O: "d#5 c5 ~ d5 c5 a4 ~ c5 g5@8", P: "[g3,c4]@4 ~@2 [e3,a3]@5 ~ [d3,g3]@4, [g4,a5] ~@15", Q: "~ b3 a3 g3 e3 d3 c3 a2",
  R: "[g3,c4]@4 ~@2 [e3,a3]@5 ~ [d3,g3]@4", S: "~ a3 g3 e3 [a3,d4]@4", T: "c3 a2 c#3 a2 d3 a2 d#3 a2",
  U: "g3 a3 ~ g3 e3@4 a3@2 g3@2 a#2@4", V: "~@2 a2 ~ a2 ~@3 a2 ~ a2 ~@3 a2 ~, [g3,c4]@4 ~@2 e3@5 ~ d3@4",
  W: "a2 ~ b3@2 a3@2 g3@2 e3@2 d3@2 c3@2 a2@2",
  X: "~@2 a2 ~ a2 ~@3 a2 ~ a2 ~@3 a2 ~, [g3,c4]@4 ~@2 [e3,a3]@5 ~ [d3,g3]@4", Y: "a2 ~ a3@2 g3@2 e3@2 [a3,d4]@8",
  Z: "~@2 a2 ~ a2 ~@3 a2 ~ a2 ~@3 a2 ~, [g3,c4]@4 ~@2 [a3,d4]@5 ~ [a#3,d#4]@4", // C5 D5 D#5
  AA: "a2 ~@3 a2 ~ a2 ~ a3@2 a3@2 g3@2 e3@2, ~@2 [a3,d4]@5 ~@9", AB: "c3 a2!3 c#3 a2 d3@2", AC: "~@2 c4@5 ~ a3@4 g3@4",
  AD: "[g2,c3,g3,c4]", AE: "[a2,d3,a3,d4]", AF: "g2 a2 ~ a2@2 g2 a2@2", AG: "g#4 ~@3 g#4 ~@3 g#4 ~@3 a3 ~ a3 ~",
  AH: "g#4 ~@3 a4 ~@3 a3 ~ a3 ~ g#4@4", AI: "[f3,c4,f4,a4]", AJ: "[e2,e3,b3,d4,g4]", AK: "[g3,d4,g4,b4]",
  AL: "[g3@4 ~@2 a3 ~@3 g3@14 [a2,e3,a3]@3 ~@5]/2", AM: "[g3@4 ~@2 a3 ~@3 g3@8 g3@2 e3@2 d3@2 [a2,e3,a3]@3 ~@5]/2",
  AN: "[g3@4 ~@2 a3 ~@3 g3@14 ~@4 e3@4]/2", AO: "[c3,g3,c4,e4]@4 ~@2 [a2,e3,a3,c4,e4]@7 ~@3",
  AP: "[g2,d3,b3,d4]@2 ~ [b2,e3,g3,b3,e4]@5, g3 ~@15", AQ: "[g3@4 ~@2 a3 ~@3 g3@8 g3@2 f#3@2 d3@2 [a2,e3,a3]@3 ~@5]/2",
  AR: "[g3@3 ~@3 a3@2 ~@2 g3@2 [d4,f#4]@13 ~@7]/2", AS: "g3@4 ~@2 a3 ~@3 g3@6",
  AT: "~@2 a3@2 g3@2 e3@2 [a2,e3,a3]@3 ~@5", AU: "[b3@11 ~@5]/3", AV: "a2!8", AW: "a2!2 f3 a2 g3 a2 f3 a2",
  AX: "a3!2 ~ a3!3 ~ a3!3 ~ a3!3 ~ a3", AY: "g3 g#3 ~ a3 c4 d4 ~ d#4 e4 g4 ~ a4 f#4!2 ~ f4",
  AZ: "d4 d#4 ~ e4 g4 g#4 ~ a4 c5 d5 ~ d#5 e5 f#5 ~ g5", BA: "e5 f5 ~ g5 a5 b5 ~ c6 a5 g5 ~ c6 b5 a5 ~ c6", BB: "c6",
  BC: "g3 a3 ~ g3 a3 ~ g3 a3", BD: "~ g3 a3 ~ g3 a3 g3 a3", BE: "~ g3 a3 ~ g3 a3 ~ g3", BF: "a3 ~ g3 a3 ~ g3 a3 ~",
  BG: "[[e3,a3], a2@47 ~]/6", BH: "[[a2,b3], e4@59 ~@5]/4", BI: "[[a2,e3,a3]@3 a2 a2@6 ~@22, ~@3 [e3,a3]@29]/2",
})).s("gm_overdriven_guitar").gain(0.54).pan(0)

// other · guitar harmonics · "GTHARMONIC"
const guitar_harmonics = note("<~@164 A ~@2 B ~@10 C@3 ~@7 D E D F ~@50>".pickRestart({
  A: "c5 ~@7", B: "~ c5", C: "[~@6 d4@2 ~@2 d4@2 ~@2 d4@4 ~@2 c4@23 ~@5]/3", D: "g4 d4 ~ g4 ~ d4 ~ g4",
  E: "~ g4 ~ d4 g4 ~ d4 ~", F: "[a2,e3,a3]@8 [a2,e3,a3]@7 ~",
})).s("gm_guitar_harmonics").gain(0.36)

// drums · kick
const kick = s("bd").struct(`<
  A ~@23 B C D C D C D E B C D C D C D C D C D C D C D A F@2 D C F@2 G ~ F@2 H@3 A@2 I ~@3 I ~@2 B C D J K@2 B C D C D C
  D C D C D C D C D A F@2 D C F@2 G ~ F@2 H@3 A@2 I ~@3 I ~@2 A I ~ I ~ I L M B N D N D N D N H@4 O@3 A F@2 D C F@2 G ~
  F@2 H@3 A@2 ~@7 A ~@15 A ~@14 P F@2 D C F@2 G ~ F@2 H@3 A B C D C D C D C B N D N D N H@2 Q R Q R Q S T Q U V ~ W A X
  A ~@3 Y ~
>`.pickRestart({
  A: "x", B: "x ~@2 x ~ x ~@2", C: "~ x ~@2 x!2 ~@2", D: "x!2 ~ x ~ x ~@2", E: "x!2 ~@6", F: "x ~@4 x ~@2",
  G: "x!2 ~@4 x!2", H: "x!2 ~@3 x ~@2", I: "~ x", J: "~ x ~@2 x ~@3", K: "x ~@2 x ~@4", L: "~@3 x!2 ~@3 x!2 ~@3 x ~ x",
  M: "~@3 x!2 ~@2 x ~@8", N: "x!2 ~@2 x!2 ~@2", O: "x!2 ~ x ~@3 x!3 ~ x ~@3 x", P: "~@11 x ~@4", Q: "~ x!2 ~ x!2 ~ x",
  R: "x ~ x!2 ~ x ~ x", S: "x ~ x!2 ~ x!2 ~", T: "x!2 ~ x!2 ~ x!2", U: "x ~@10 x ~@3 x", V: "~@3 x ~@3 x ~@8",
  W: "~@3 x", X: "~@3 x ~@12", Y: "x!2 ~@2",
})).gain(0.72)

// drums · snare
const snare = s("sd").struct(`<
  A@23 B A@5 C A D A@5 C A@9 D A@6 E F A@5 G ~@7 H A@3 I C A@6 C A@9 J A@6 E F A@5 G ~@7 A ~@3 K ~@2 L M A@4 C A@10 N
  A@6 E F A@5 G A@38 O P A@6 E F A@5 G A@16 Q R Q R Q S T Q ~@4 U L ~@6
>`.pickRestart({
  A: "~ x ~ x", B: "x!2 ~ x!3 ~ x!3 ~@6", C: "~@2 x ~@3 x!2", D: "~@2 x!6", E: "~ x!2 ~", F: "x!2 ~ x", G: "~ x!3 ~@4",
  H: "~@3 x", I: "~@2 x ~@2 x!3", J: "~@4 x ~@3 x!2 ~ x!3 ~ x", K: "~@3 x ~@4", L: "x!2 ~@14", M: "~ x", N: "~ x!7",
  O: "x!4 ~ x ~ x", P: "~ x!2 ~@3 x ~", Q: "x ~@2 x ~@2 x ~", R: "~ x ~@2 x ~ x ~", S: "~ x ~@2 x ~@2 x",
  T: "~@2 x ~@2 x ~@2", U: "~ x ~ x!3 ~ x ~@8",
})).gain(0.8)

// drums · low tom
const low_tom = s("lt").struct(`<
  ~@23 A ~@31 B ~@5 C ~@3 D ~@3 E ~@29 B ~@5 C ~@3 D ~@10 F G ~@23 B ~@5 C ~@39 D ~@7 B ~@5 C ~@24 H I J K ~@8
>`.pickRestart({
  A: "~@15 x", B: "~@11 x ~@4", C: "~@6 x!2", D: "~ x", E: "~@2 x!4 ~@2", F: "~@3 x", G: "x!2 ~@14",
  H: "~@9 x ~@3 x ~@2", I: "~ x ~ x ~ x ~ x ~@3 x ~@3 x", J: "~@3 x ~@3 x ~@3 x ~@3 x", K: "x ~@3 x ~@10 x",
})).gain(0.72)

// drums · hihat
const hihat = s("hh").struct(`<
  A B@2 C D A B@3 C E B@2 C F G A C E C H@2 I ~@9 J K@6 L K@6 M ~@15 N O P Q P R S ~@7 J K@6 L K@6 M ~@15 N O P Q P R P
  B N T P@3 U ~ V ~@30 W X B Y B@2 Z AA A B@6 AB B@2 C AC B AD B G W AE AF B@4 AG B@2 AF B@3 ~@52
>`.pickRestart({
  A: "~ x!7", B: "x!8", C: "x ~ x ~ x ~ x ~ x ~ x ~ x ~ x!2", D: "x!12 ~@4", E: "x!4 ~@2 x ~ x ~ x ~ x ~ x ~",
  F: "x!4 ~ x!4 ~ x ~ x ~ x ~", G: "x!7 ~", H: "x!16", I: "x!8 ~@8", J: "~ x!3", K: "x!4", L: "x!3 ~", M: "x!2",
  N: "~@2 x!4 ~@2", O: "x!4 ~@2 x!2", P: "x!2 ~ x!3 ~ x", Q: "x!2 ~@3 x ~ x", R: "x!2 ~ x ~@2 x!2", S: "x!2 ~@6",
  T: "x!2 ~@4 x!2", U: "x!2 ~ x ~@4", V: "~@13 x ~@2", W: "~@2 x!6", X: "x ~ x ~ x ~ x ~ x!4 ~@2 x ~",
  Y: "x!4 ~@2 x!6 ~@2 x!2", Z: "x!4 ~@4 x ~ x ~ x ~ x ~", AA: "x ~ x ~ x ~ x!6 ~@4", AB: "x ~ x ~ x ~ x ~ x!4 ~@4",
  AC: "x!4 ~@4 x ~@3 x ~ x ~", AD: "x ~ x ~ x ~ x ~ x ~ x!2 ~@2 x ~", AE: "x ~ x!2 ~@4 x ~@3 x ~ x ~",
  AF: "x ~ x!2 ~@2 x ~ x ~ x ~ x ~ x ~", AG: "x ~ x ~ x ~ x ~ x ~ x!2 ~@4",
})).gain(0.64)

// drums · mid tom
const mid_tom = s("mt").struct(`<
  ~@23 A ~@31 B ~@5 C ~@3 D ~@3 E ~@29 B ~@5 C ~@3 F ~@10 G H ~@23 B ~@5 C ~@39 I ~@7 B ~@5 C ~@24 J K L M ~@8
>`.pickRestart({
  A: "~@12 x!2 ~@2", B: "~ x", C: "~@4 x!2 ~@2", D: "~@3 x ~@4", E: "x!2 ~@6", F: "~@2 x!2 ~@4",
  G: "~@5 x ~ x ~@3 x ~@4", H: "~@11 x ~@4", I: "~@9 x ~@6", J: "~@2 x!2", K: "x!2 ~@2 x!2 ~@3 x ~@3 x ~@2",
  L: "~ x ~@3 x ~@3 x ~@2 x!2 ~@2", M: "~ x ~ x ~ x ~@2 x!2 ~@3 x ~@2",
})).gain(0.72)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@24 A B@6 C ~@14 D C ~@14 E F D@3 G@2 ~@21 D C ~@14 E F D@3 G D ~ E H D@3 G ~@2 A B@6 I ~@28 J K ~@7 K ~@3 L ~@3 K ~
  L ~@5 K ~@22 A B@6 I ~@16 M N O P Q ~ R S ~@4
>`.pickRestart({
  A: "~ x!3", B: "x!4", C: "x", D: "~ x ~ x", E: "~@3 x", F: "~ x", G: "~ x ~@2", H: "~ x!2 ~", I: "x!3 ~",
  J: "~@3 x ~@4", K: "~@7 x", L: "~@3 x ~ x ~@2", M: "~@9 x ~ x ~ x ~ x", N: "~ x ~ x ~@2 x ~ x ~@3 x ~ x ~",
  O: "~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~", P: "~@5 x ~@3 x ~@5 x", Q: "~ x ~ x ~@12", R: "~@6 x ~@2 x ~ x ~@2 x ~",
  S: "~ x ~@2 x ~@11",
})).gain(0.64)

// drums · open hat · soft notes
const open_hat_soft = s("oh").struct("<~@230 [~@7 x ~@8] ~@3 [~@5 x!2 ~ x!2 ~ x!3 ~ x] [x ~@2 x ~@12] ~@6>").gain(0.32)

// … 27 more lines

More by Big Mr.