Strudelify

Cats in the Cradle

Ugly Kid Joe

KeyE minorTempo76 bpm
0:00/0:00
// Cats in the Cradle — Ugly Kid Joe
// 76 bpm, 4/4, key E minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 4 overdriven guitar (copy of ch 3 distortion guitar)
// note: Full arrangement: all 81 bars on a 48-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): guitar program 27.
setcpm(76/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.

// chords · acoustic guitar steel
const acoustic_guitar_steel = note("<A@3 B@7 C@2 D@8 E@5 F G@5 H@8 I@7 J@2 K@8 L@5 M@2 N@6 O@5 ~@7>".pickRestart({
  A: "[~@2 b4@43 ~@4 b4@53 ~@6 [e4,e5]@2 ~ [d4,d5]@2 ~ [b3,b4]@3 [a#3,a#4]@3 [a3,a4]@3 ~@3 [g3,g4]@5 ~ [e3,e4]@11 ~, [e3,b3]@44 ~@4 [e3,e4]@55 ~@41, ~ e4@43 ~@3 b3@54 ~@43]/3", // E D B A# A G E E5 …
  B: "[[d3,d4]@4 ~@2 [f#3,f#4]@5 ~@2 [e3,e4]@22 ~ [e2,b2]@9 ~@3 e2@8 ~ [d3,b3]@2 ~ g4@5 [g3,g4]@2 ~@4 d3@3 ~ d3@5 [g3,b3,e4]@3 ~@13 e4@6 [e3,a3]@3 g3@2 ~ [b2,e3,g#3]@9 [b2,e3,a3,e4]@6 [b2,e3,g#3,e4]@9 [b2,e3]@9 ~@3 e2@8 ~ [d3,b3]@2 ~ g4@5 [g3,g4]@2 ~@4 d3@3 ~ d3@9 ~@18 a3 ~@5 [e3,g#3,b3]@8 ~ e3@5 ~ [e3,g#3]@8 ~@43 d4@5 ~@31 g3@3 ~@12 e3@3 ~@6 d4@6, ~@36 [e3,g#3]@19 ~@2 g3@8 ~@3 [a3,d4,g4]@6 [g3,d4,g4]@5 ~@10 a3@12 ~@4 e4@12 ~@15 [b3,e4]@8 ~ [b3,e4]@11 e4@2 ~@2 d4@8 ~@25 b3@3 e4@12 e4@2 ~@6 b3@15 ~@4 a3@11 ~ a3@11 ~ a3@11 ~ a3@8 ~@4 a3@11 ~ a3@11 ~ e3@15 g#3@7 ~@2 a3@9, ~@36 [b3,e4]@8 ~ [b3,e4]@11 e4@2 ~ d3@8 ~@19 e3@15 ~@43 b2@6 ~@5 d3@8 ~@20 e3@19 ~ e2@24 ~@73 e2@23 ~ g2@11 ~, ~@48 b2@6 ~@5 g2@20 ~@5 a2@24 [e2,b3]@24 e2 ~@22 g2@24 ~ a2@25 ~@8 b2@15 d3@11 ~ c#3@11 ~ b2@12 a2@11 ~ g2@12 f#2@11 ~@13 e4@12 ~@12, ~@60 d4@8 ~@24 b3@9 ~ b3@6 ~@24 g#3@16 ~@5 g3@8 ~@3 [a3,d4,g4]@6 [g3,d4,g4]@9 ~@7 a3@9 b3@6 ~@2 b2@9 [a3,e4]@6 e4@9 ~@7 d4@11 ~ d4@11 ~ d4@11 ~@13 d4@11 ~ d4@11 ~@4 g#3@6 b3@9 ~@12]/7", // D F# E E5 G Em A5 E …
  C: "[~@6 d4@6 ~ [b3,e4]@8 ~@13 [b3,e4]@5 ~@6 e4@3 [a3,e4]@6 ~ [b3,e4]@5 e3 e4@7 ~ e3 ~ [e2,b2] ~@9 [b2,d3,a3,c#4]@2 ~ [d4,f#4]@8 ~ d3@3, f#2@12 e2@48 [e2,b2,b3]@11 ~@25, ~@3 a3@9 ~ e3@27 b3@14 g#3@6 g#3@17 ~@3 [a3,e4]@2 ~@2 a3@12, ~@13 g#3@11 b2@36 ~@11 e3@7 ~@5 d3@9 ~@4, ~@22 [b3,e4]@11 a3@6 e4 [e3,a3]@8 e3@12 ~@8 [b3,e4]@11 ~@13 [d4,g4]@3 ~]/2", // E5 A5 E5 Bm7 D E5 A5 E5 …
  D: "[[d4,g4]@2 ~ [a2,d3]@4 g4 ~@4 g4@7 a3 [a3,g4]@5 ~ g3@4 d4@3 g3@3 ~@12 e4@5 a2 e4 ~ [d3,g3,e4]@2 ~@2 e4@5 e4@2 ~@2 e3@5 ~ e3@5 e4@3 ~@7 f#4 ~ g4@6 f#4@4 ~@6 [g2,d4]@8 ~@3 d3 ~@18 g3@3 ~@2 [b3,e4]@6 g#3@3 ~@6 g3@2 ~@16 d3@3 ~ [e3,g#3,b3,e4]@22 ~@4 b4@43 ~@4 b4@53 ~@6 [e2,b2]@9 ~@3 e2@8 ~ [d3,b3]@2 ~ g4@5 [g3,g4]@2 ~@4 d3@3 ~ d3@5 [g3,b3,e4]@3 ~@13 e4@6 [e3,a3]@3 [g3,e4]@3, ~@2 f#4@4 ~@2 g3@11 ~@6 g4@11 ~@9 b3@21 ~@2 b3@15 ~@7 d4@17 ~ g4@7 ~ [d4,g4]@12 b3@10 ~@3 g#3@8 b3@5 ~ d4@6 g3@12 g3@5 ~@73 b3@54 ~@7 [b3,e4]@8 ~ [b3,e4]@11 ~@3 d3@8 ~@19 e3@15 ~@7, ~@3 d4@17 d4@10 ~@12 a3@15 ~@11 [a3,e4]@6 [g#3,e4]@6 ~@9 a3@15 g3@3 ~ g3@17 g3@6 b2@20 ~@13 d4@9 ~@32 e4@43 ~@84 e4@2 ~@2 d4@8 ~@24 b3@9 ~ b3@6, ~@8 g4@3 g2@14 ~ g2@10 a2@17 e2@6 [e2,b2]@24 ~ a2@5 ~@30 f#2@9 ~@2 e3@22 [d3,g3]@6 d3@9 f#2@8 ~@4 [e2,b2]@24 ~@121 b2@6 ~@5 g2@20 ~@5 a2@24, ~@9 d3@21 d3@6 ~@3 e3@15 ~@5 [e3,g#3]@9 ~@19 d3@15 ~@3 d3@14 ~@4 d3@8 e2@24 ~ g2@12 ~@2 d3@5 ~@29 [e3,b3]@44 ~@4 [e3,e4]@55 ~@5 [e3,g#3]@19 ~@2 g3@8 ~@3 [a3,d4,g4]@6 [g3,d4,g4]@5 ~@10 a3@12 ~@7]/8", // G5 D5 A7 Em7 G5 E5 E E5 …
  E: "[[b2,e3,g#3]@9 [b2,e3,a3,e4]@6 [b2,e3,g#3,e4]@9 [b2,e3,g#3]@9 ~@3 e2@8 ~ [d3,b3]@2 ~ g4@5 [g3,g4]@2 ~@4 d3@3 ~ d3@9 ~@18 a3 ~@5 [e3,g#3,b3]@8 ~ e3@5 ~ [e3,g#3]@8 ~@43 d4@5 ~@31 g3@3 ~@12 e3@3 ~@18 d4@6, [e2,b3]@24 [b3,e4]@8 ~ [b3,e4]@11 e4@2 ~ g2@24 ~ a2@25 ~@8 b2@15 d3@11 ~ c#3@11 ~ b2@12 a2@11 ~ g2@12 f#2@11 ~@13 e4@12 ~@6 d4@11 ~@7, ~@24 e2 ~@11 b2 ~@8 g3@8 ~@3 [a3,d4,g4]@6 [g3,d4,g4]@9 ~@7 a3@9 b3@6 ~@2 b2@9 [a3,e4]@6 e4@9 ~@7 d4@11 ~ d4@11 ~ d4@11 ~@13 d4@11 ~ d4@11 ~@4 g#3@6 b3@9 ~@24, ~@47 d3@8 ~@20 e3@19 ~ e2@24 ~@73 e2@23 ~ g2@11 ~ f#2@12, ~@48 d4@8 ~@25 b3@3 e4@12 e4@2 ~@6 b3@15 ~@4 a3@11 ~ a3@11 ~ a3@11 ~ a3@8 ~@4 a3@11 ~ a3@11 ~ e3@15 g#3@7 ~@2 a3@11 ~ a3@9]/5", // E Esus4 E G E E5 Dsus4 G5 …
  F: "~ [b3,e4]@8 ~@13 [b3,e4]@5 ~@6 e4@3 [a3,e4]@6 ~ [b3,e4]@5, e2, ~ e3@27 b3@14 g#3@6, ~ g#3@11 b2@36, ~@10 [b3,e4]@11 a3@6 e4 [e3,a3]@8 e3@12", // E5 A5 E5 A5
  G: "[e3 e4@7 ~ e3 ~ [e2,b2] ~@9 [b2,d3,a3,c#4]@2 ~ [d4,f#4]@8 ~@4 [d4,g4]@2 ~ [a2,d3]@4 g4 ~@4 g4@7 a3 [a3,g4]@5 ~ g3@4 d4@3 g3@3 ~@12 e4@5 a2 e4 ~ [d3,g3,e4]@2 ~@2 e4@5 e4@2 ~@2 e3@5 ~ e3@5 e4@3 ~@7 f#4 ~ g4@6 f#4@4 ~@6 [g2,d4]@8 ~@3 d3 ~@18 g3@3 ~@2 [b3,e4]@6 g#3@3 ~@6 g3@2 ~@16 d3@3 ~ [e3,g#3,b3,e4]@22 ~@2, g#3@17 ~@3 [a3,e4]@2 ~@2 a3@20 g3@11 ~@6 g4@11 ~@9 b3@21 ~@2 b3@15 ~@7 d4@17 ~ g4@7 ~ [d4,g4]@12 b3@10 ~@3 g#3@8 b3@5 ~ d4@6 g3@12 g3@5 ~@26, [e2,b2,b3]@8 [b3,e4]@11 ~@13 [d4,g4]@3 ~@3 f#4@4 ~@2 g4@3 g2@14 ~ g2@10 a2@17 e2@6 [e2,b2]@24 ~ a2@5 ~@30 f#2@9 ~@2 e3@22 [d3,g3]@6 d3@9 f#2@8 ~@4 [e2,b2]@24 ~, ~@11 e3@7 ~@5 d3@9 ~ d3@6 d4@17 d4@10 ~@12 a3@15 ~@11 [a3,e4]@6 [g#3,e4]@6 ~@9 a3@15 g3@3 ~ g3@17 g3@6 b2@20 ~@13 d4@9 ~@31, ~@45 d3@21 d3@6 ~@3 e3@15 ~@5 [e3,g#3]@9 ~@19 d3@15 ~@3 d3@14 ~@4 d3@8 e2@24 ~ g2@12 ~@2 d3@5 ~@29]/5", // E5 Bm7 D G5 D5 A7 Em7 G5 …
  H: "[~@2 b4@43 ~@4 b4@53 ~@8 b4@22 [e2,b2]@9 ~@3 e2@8 ~ [d3,b3]@2 ~ g4@5 [g3,g4]@2 ~@4 d3@3 ~ d3@5 [g3,b3,e4]@3 ~@13 e4@6 [e3,a3]@3 g3@2 ~ [b2,e3,g#3]@9 [b2,e3,a3,e4]@6 [b2,e3,g#3,e4]@9 [b2,b3,e4]@9 ~@3 e2@8 ~ [d3,b3]@2 ~ g4@5 [g3,g4]@2 ~@4 d3@3 ~ d3@9 ~@18 a3 ~@5 [e3,g#3,b3]@8 ~ e3@5 ~ [e3,g#3]@8 ~@43 d4@5 ~@7 d4@6, [e3,b3]@44 ~@4 [e3,e4]@55 ~@6 [e3,e4]@23 [e3,g#3]@19 ~@2 g3@8 ~@3 [a3,d4,g4]@6 [g3,d4,g4]@5 ~@10 a3@12 ~@4 e4@12 ~@35 e4@2 ~@2 d4@8 ~@25 b3@3 e4@12 e4@2 ~@6 b3@15 ~@4 a3@11 ~ a3@11 ~ a3@11 ~ a3@8 ~@4 a3@9, ~ e4@43 ~@3 b3@54 ~@7 b3@24 [b3,e4]@8 ~ [b3,e4]@11 e4@2 ~ d3@8 ~@19 e3@15 ~@31 [e3,g#3]@14 ~@7 g3@8 ~@3 [a3,d4,g4]@6 [g3,d4,g4]@9 ~@7 a3@9 b3@6 ~@2 b2@9 [a3,e4]@6 e4@9 ~@7 d4@11 ~ d4@11 ~ d4@11 ~@19, ~@144 b2@6 ~@5 g2@20 ~@5 a2@24 [e2,b3]@24 e2 ~@11 b2@6 ~@5 g2@24 ~ a2@25 ~@8 b2@15 d3@11 ~ c#3@11 ~ b2@12 a2@11 ~ g2@11 ~, ~@156 d4@8 ~@24 b3@9 ~ b3@6 ~@33 [b3,e4]@11 ~@3 d3@8 ~@20 e3@19 ~ e2@24 ~@61]/8", // E5 G Em A5 E Esus4 E E5 …
  I: "[~@6 d4@6 ~ [b3,e4]@8 ~@13 [b3,e4]@5 ~@6 e4@3 [a3,e4]@6 ~ [b3,e4]@5 e3 e4@7 ~ e3 ~ [e2,b2] ~@9 [b2,d3,a3,c#4]@2 ~ [d4,f#4]@8 ~@4 [d4,g4]@2 ~ [a2,d3]@4 g4 ~@4 g4@7 a3 [a3,g4]@5 ~ g3@4 d4@3 g3@3 ~@12 e4@5 a2 e4 ~ [d3,g3,e4]@2 ~@2 e4@5 e4@2 ~@2 e3@5 ~ e3@5 e4@3 ~@7 f#4 ~ g4@6 f#4@4 ~@6 [g2,d4]@8 ~@3 d3 ~@18 g3@3 ~@2 [b3,e4]@6 g#3@3 ~@6 g3@2 ~@16 d3@3 ~ [e3,g#3,b3,e4]@22 ~@3 c4@14 ~@9 [d3,a3,d4]@10 ~@2, f#2@12 e2@48 [e2,b2,b3]@11 ~@34 d3@21 d3@6 ~@3 e3@15 ~@5 [e3,g#3]@9 ~@19 d3@15 ~@3 d3@14 ~@4 d3@8 e2@24 ~ g2@11 f#2@8 ~@4 [e2,b2]@24 ~@37, ~@3 a3@9 ~ e3@27 b3@14 g#3@6 g#3@17 ~@3 [a3,e4]@2 ~@2 a3@20 g3@11 ~@6 g4@11 ~@9 b3@21 ~@2 b3@15 ~@7 d4@17 ~ g4@7 ~ [d4,g4]@12 b3@10 ~@3 g#3@8 b3@5 ~ d4@6 g3@12 g3@5 ~@62, ~@13 g#3@11 b2@36 ~@11 e3@7 ~@5 d3@9 ~ d3@6 d4@17 d4@10 ~@12 a3@15 ~@11 [a3,e4]@6 [g#3,e4]@6 ~@9 a3@15 g3@3 ~ g3@17 g3@6 b2@20 ~@13 d4@9 ~@67, ~@22 [b3,e4]@11 a3@6 e4 [e3,a3]@8 e3@12 ~@8 [b3,e4]@11 ~@13 [d4,g4]@3 ~@3 f#4@4 ~@2 g4@3 g2@14 ~ g2@10 a2@17 e2@6 [e2,b2]@24 ~ a2@5 ~@30 f#2@9 ~@2 e3@22 [d3,g3]@6 d3@11 ~ d3@5 ~@29 [c3,g3]@23 ~@13]/7", // E5 A5 E5 Bm7 D G5 D5 A7 …
  J: "[[b2,f#3]@9 ~@2 e3 ~ e3@45 ~@3 c4@14 ~@9 [d3,a3,d4]@10 ~@2, ~@12 [e2,b2,e4]@48 [c3,g3]@23 ~@13]/2", // B5 D5 E5 C5
  K: "[[b2,f#3]@9 ~@2 e3 ~ e3@45 ~@2 [e2,b2,e3] [b3,c4] [b3,e4]@43 ~@3 [e2,b2]@9 ~@3 e2@8 ~ [d3,b3]@2 ~ g4@5 [g3,g4]@2 ~@4 d3@3 ~ d3@5 [g3,b3,e4]@3 ~@13 e4@6 [e3,a3]@3 g3@2 ~ [e2,b2,e3,g#3,b3]@23 [e2,g2,b2,e3,a#3] ~ e4@23 [e2,b2,e3,b3] ~@11 e2@8 ~ [d3,b3]@2 ~ g4@5 [g3,g4]@2 ~@4 d3@3 ~ d3@5 [g3,b3,e4]@3 ~@13 e4@6 [e3,a3]@3 g3@2 ~ [e2,b2,e3,g#3,b3]@23 [e2,g2,b2,e3,a#3] ~ e4@23 ~@30 d4@6, ~@12 [e2,b2,e4]@48 ~ [e3,g#3]@45 ~@2 [e3,g#3]@19 ~@2 g3@8 ~@3 [a3,d4,g4]@6 [g3,d4,g4]@5 ~@10 a3@12 ~@4 e4@27 ~@24 e4@8 ~ [b3,e4]@11 e4@2 ~@2 d4@8 ~@24 b3@9 ~ b3@6 ~@24 [a3,b3]@24 ~@3 a3@11 ~ a3@11 ~ a3@9, ~@108 [b3,e4]@8 ~ [b3,e4]@11 e4@2 ~ d3@8 ~@19 e3@15 ~@78 d3@8 ~@19 e3@15 ~@55 d3@11 ~ c#3@11 ~ b2@12, ~@120 b2@6 ~@5 g2@20 ~@5 a2@24 ~@60 b2@6 ~@5 g2@20 ~@5 a2@24 ~@84, ~@132 d4@8 ~@24 b3@9 ~ b3@6 ~@24 [a3,b3]@24 g#3@19 ~@2 g3@8 ~@3 [a3,d4,g4]@6 [g3,d4,g4]@5 ~@10 a3@12 ~@4 e4@27 ~@30 d4@11 ~ d4@11 ~@7]/8", // B5 E5 Cmaj7 E5 G Em A5 E …
  L: "[~@6 d4@5 ~@31 g3@3 ~@12 e3@3 ~@18 d4@6 ~ [e3,g#3,b3,e4]@47 ~@42 d4@5 ~@31 g3@3 ~@12 e3@3 ~@6 d4@6, a2@11 ~ g2@12 f#2@11 ~ e2@23 ~ g2@11 ~ f#2@12 e2@48 ~@72 e2@23 ~ g2@11 ~, ~@3 a3@8 ~@4 a3@11 ~ a3@11 ~ e3@15 g#3@7 ~@2 a3@11 ~ a3@9 ~@48 d3@11 ~ c#3@11 ~ b2@12 a2@11 ~ g2@12 f#2@11 ~@13 e4@12 ~@12, ~@18 d4@11 ~ d4@11 ~@4 g#3@6 b3@9 ~@75 a3@11 ~ a3@11 ~ a3@11 ~ a3@8 ~@4 a3@11 ~ a3@11 ~ e3@15 g#3@7 ~@2 a3@9, ~@48 e4@12 ~@6 d4@11 ~@61 d4@11 ~ d4@11 ~ d4@11 ~@13 d4@11 ~ d4@11 ~@4 g#3@6 b3@9 ~@12]/5", // E
  M: "[~@6 d4@5 ~@2 [b3,e4]@8 ~@12 [b3,e4]@6 [e3,a3]@6 e4@2 ~ e4@5 ~ [b3,e4]@5 ~@2 e4@7 ~ e3 ~ [e2,b2] ~@9 [b2,d3,a3,c#4]@2 ~ [d4,f#4]@8 ~ d3@3, f#2@11 e2@48 ~ [e2,b2,e3,b3]@11 ~@25, ~@3 a3@9 e3@27 e4@5 ~@3 e3@12 ~@9 [b3,e4]@11 ~@13 [d4,g4]@3 ~, ~@12 g#3@11 b2@36 ~@12 e3@7 ~@5 d3@9 ~@4, ~@21 [b3,e4]@11 a3@6 ~ b3@8 a3@6 g#3@6 ~ g#3@17 ~@3 [a3,e4]@2 ~@2 a3@12]/2", // E5 A5 E5 Bm7 D E5 G5 E5 …
  N: "[[d4,g4]@2 ~ [a2,d3]@4 g4 ~@4 g4@7 a3 [a3,g4]@5 ~ g3@4 d4@3 g3@3 ~@12 e4@5 a2 e4 ~ [d3,g3,e4]@2 ~@2 e4@5 e4@2 ~@2 e3@5 ~ e3@5 e4@3 ~@7 f#4 ~ g4@6 f#4@4 ~@6 [g2,d4]@8 ~@3 d3 ~@18 g3@3 ~@2 [b3,e4]@6 g#3@3 ~@6 g3@2 ~@16 d3@3 ~ [e3,g#3,b3,e4]@22 ~@27 e4@7 ~ e3 ~ [e2,b2] ~@9 [b2,d3,a3,c#4]@2 ~ [d4,f#4]@8 ~@4 [d4,g4]@2 ~ [a2,d3]@4 g4 ~@4 g4@7 a3 [a3,d4,g4]@4, ~@2 f#4@4 ~@2 g3@11 ~@6 g4@11 ~@9 b3@21 ~@2 b3@15 ~@7 d4@17 ~ g4@7 ~ [d4,g4]@12 b3@10 ~@3 g#3@8 b3@5 ~ d4@6 g3@12 g3@5 ~@50 g#3@17 ~@3 [a3,e4]@2 ~@2 a3@20 g3@11 ~@5, ~@3 d4@17 d4@10 ~@12 a3@15 ~@11 [a3,e4]@6 [g#3,e4]@6 ~@9 a3@15 g3@3 ~ g3@17 g3@6 b2@20 ~@13 d4@9 ~@63 [b3,e4]@11 ~@13 [d4,g4]@3 ~@3 f#4@4 ~@2 g4@3 g2@13, ~@8 g4@3 g2@14 ~ g2@10 a2@17 e2@6 [e2,b2]@24 ~ a2@5 ~@30 f#2@9 ~@2 e3@22 [d3,g3]@6 d3@9 f#2@8 ~@4 [e2,b2]@24 ~@25 [e2,b2,e3,b3]@11 ~@34 d3@15, ~@9 d3@21 d3@6 ~@3 e3@15 ~@5 [e3,g#3]@9 ~@19 d3@15 ~@3 d3@14 ~@4 d3@8 e2@24 ~ g2@12 ~@2 d3@5 ~@64 e3@7 ~@5 d3@9 ~ d3@6 d4@17 ~@4]/6", // G5 D5 A7 Em7 G5 E5 E E5 …
  O: "[~@2 g3@4 d4@3 g3@3 ~@12 e4@5 a2 e4 ~ [d3,g3,e4]@2 ~@2 e4@5 e4@2 ~@2 e3@5 ~ e3@5 e4@3 ~@7 f#4 ~ g4@6 f#4@4 ~@6 [g2,d4]@8 ~@3 d3 ~@18 g3@3 ~@2 [b3,e4]@6 g#3@3 ~@6 g3@2 ~@16 d3@3 ~ [e3,g#3,b3,e4]@46 ~@38, ~ g4@11 ~@6 a3@15 ~@11 [a3,e4]@6 [g#3,e4]@6 ~@9 a3@15 g3@3 ~ g3@17 g3@6 b2@20 ~@13 d4@9 ~@91, ~@2 g2@10 a2@17 e2@6 [e2,b2]@24 ~ a2@5 ~@30 f#2@9 ~@2 e3@22 [d3,g3]@6 d3@9 f#2@8 ~@4 [e2,b2]@47 ~@38, ~@6 d3@6 ~@3 e3@15 ~@5 [e3,g#3]@9 ~@19 d3@15 ~@3 d3@14 ~@4 d3@8 e2@24 ~ g2@12 ~@2 d3@5 ~@89, ~@21 b3@21 ~@2 b3@15 ~@7 d4@17 ~ g4@7 ~ [d4,g4]@12 b3@10 ~@3 g#3@8 b3@5 ~ d4@6 g3@12 g3@5 ~@86]/5", // Em7 G5 E5 E A5 C#m E5 G5 …
})).s("gm_acoustic_guitar_steel").gain(0.4).pan(0.6)

// bass · electric bass finger
const bass = note(`<
  A B@2 C ~@3 D E F G@8 H I J K L M N O P Q R S T U V@6 W X@7 Y@2 Z@2 AA@4 AB@2 AC@3 E F AD@7 AE@2 AF AG AH@2 ~@7
>`.pickRestart({
  A: "e2@7 ~ e2@7 ~", B: "[~ e2@21 ~@2 e2@36 e3@2 ~ d3@2 ~ b2@3 a#2@3 ~ a2@3 ~@3 g2@5 e2@11 ~]/2",
  C: "d2@4 ~@2 f#2@5 ~@2 e2@23 ~@12", D: "~@36 d2@11 ~", E: "c#2@11 ~ b1@12 a1@11 ~ g1@11 ~",
  F: "f#1@11 ~ e1@22 ~@2 g2@11 ~",
  G: "[f#2@11 ~ e2@47 ~ e1@3 ~@3 e1@8 ~@4 e1@3 b1@3 d2@4 ~@2 d2@13 ~@5 g2@6 ~@3 g2@8 ~ f#2@3 g2@3 a2@6 ~@3 a2@6 c#2@3 d2@3 d#2@3 e1@15 ~@3 e1@2 ~ b1@3 d2@16 ~@5 d2@3 g2@12 f#2@9 ~@3 e2@20 ~@4 g2@11 ~ f#2@8 ~ f#2@3 e2@24 e1@21 ~@3 e1@21 ~@4 e1@17 ~@3 a1@3 e2@3 a1@3 b1@6]/8",
  H: "e1@12 e2@3 a1@3 b1@6 e1@19 ~@2 e1@3", I: "g1@17 ~@4 g1@2 ~ a1@19 ~@2 e2@3",
  J: "e1@19 ~@2 e1@3 e2@16 ~@2 e2@3 f#2@3", K: "g2@14 ~@4 g2@2 ~ g#2@2 ~ a2@17 ~ a2@3 b2@3",
  L: "e2@19 ~@5 d2@11 ~ c#2@11 ~", M: "b1@12 a1@11 ~ g1@11 ~ f#1@11 ~", N: "e1@22 ~@2 g2@11 ~ f#2@11 ~", O: "e2@47 ~",
  P: "e1@3 ~@3 e1@8 ~@4 e1@3 b1@3 d2@4 ~@2 d2@13 ~@5", Q: "g2@6 ~@3 g2@8 ~ f#2@3 g2@3 a2@6 ~@3 a2@6 c#2@3 d2@3 d#2@3",
  R: "e1@15 ~@3 e1@2 ~ b1@3 d2@16 ~@5 d2@3", S: "g2@12 f#2@9 ~@3 e2@20 ~@4", T: "g2@11 ~ f#2@8 ~ f#2@3 e2@24",
  U: "e1@7 ~ e1@7 ~",
  V: "[~ e1@17 ~@3 a1@3 e2@3 a1@3 b1@6 e1@24 e2@9 a1@3 e2@3 a1@3 b1@6 e1@19 ~@2 e1@3 g1@17 ~@4 g1@2 ~ a1@19 ~@2 e2@3 e1@19 ~@2 e1@3 e2@16 ~@2 e2@3 f#2@3 g2@14 ~@4 g2@2 ~ g#2@2 ~ a2@17 ~ a2@3 b2@3 e2@19 ~@5 d2@11 ~]/6",
  W: "c#2@11 ~ b1@12 a1@11 ~ g2@11 ~",
  X: "[f#2@11 ~ e2@47 ~ e1@3 ~@3 e1@8 ~@4 e1@3 b1@3 d2@4 ~@2 d2@13 ~@5 g2@6 ~@3 g2@8 ~ f#2@3 g2@3 a2@6 ~@3 a2@6 c#2@3 d2@3 d#2@3 e1@15 ~@3 e1@2 ~ b1@3 d2@16 ~@5 d2@3 g2@12 f#2@9 ~@3 e2@20 ~@4 g2@11 ~ f#2@8 ~ f#2@3 e2@24 c2@22 ~@2 d2@10 ~@2]/7",
  Y: "[b1@12 e1@20 ~ e1@2 ~ e1@23 ~ c2@12 d2@3 e2@3 g2@6 d2@10 ~@2]/2", Z: "[b1@4 e1@15 ~ e1@6 ~ b1 e2@3 ~]/2",
  AA: "[a1@3 a#1@3 b1@6 e1@19 ~@2 f#1@3 g1@17 ~ g1@6 a1@15 c#2@3 d2@3 d#2@3 e2@45 ~@3 e1@19 ~@2 f#1@3 g1@17 ~ g1@6 a1@12]/4",
  AB: "[~@3 c#2@3 d2@3 d#2@3 e2@45 ~@3 d2@11 ~ c#2@11 ~ b1@12]/2",
  AC: "[a1@11 ~ g1@11 ~ f#1@11 ~ e1@22 ~@2 g2@11 ~ f#2@11 ~ e2@47 ~ d2@11 ~]/3",
  AD: "[f#2@11 ~ e2@47 ~ e1@3 ~@3 e1@8 ~@4 e1@3 b1@3 d2@4 ~@2 d2@13 ~@5 g2@6 ~@3 g2@8 ~ f#2@3 g2@3 a2@6 ~@3 a2@6 c#2@3 d2@3 d#2@3 e1@15 ~@3 e1@2 ~ b1@3 d2@16 ~@5 d2@3 g2@12 f#2@9 ~@3 e2@20 ~@4 g2@11 ~ f#2@8 ~ f#2@3 e2@24 e3 ~ e3 ~ e3 ~ e3 ~ e3 ~ e3 ~ e3@3 ~ e3@3 ~@2 e3@3 e1@3 ~@3 e1@6]/7",
  AE: "[~@6 e1@3 b1@3 d2@4 ~@2 d2@13 ~@5 g2@6 ~@3 g2@8 ~ f#2@3 g2@3 a2@6 ~@3 a2@6 c#2@3 d2@3 d#2@3 e1@12]/2",
  AF: "~@6 e1@2 ~ b1@3 d2@16 ~@5 d2@3 g2@12", AG: "f#2@9 ~@3 e2@20 ~@4 g2@11 ~", AH: "[f#2@8 ~ f#2@3 e2@48 ~@36]/2",
})).s("gm_electric_bass_finger").gain(0.45)

// chords · distortion guitar
const distortion_guitar = note("<~@45 A B@2 C@3 ~@10 D@2 E@2 F@6 G@8 ~@2>".pickRestart({
  A: "~@12 [c3,g3]@22 c#3@2 ~ a3@9 c#3 [c3,g3,g#3], ~@18 d3@5 ~", // C5 G#maj7
  B: "[[b2,f#3]@12 e2@47 ~ [c3,g3]@22 c#3@2 ~ a3@9 c#3 [c3,g3,g#3], ~@12 e3@37 ~@35 d3@10 ~@2, ~@12 b2 ~@83]/2", // B5 C5 G#maj7
  C: "[[b2,f#3] [e2,e3]@8 ~@3, ~@12 b2 ~@131]/3", // B5 E
  D: "[~@12 [e2,b2]@48 [e2,b2] ~@11 [e3,g#3]@6 ~@3 a2@3 [d3,a3,d4]@6 ~@3 [a3,d4,g4]@3, ~@60 e3@6 ~@3 [e2,b2]@9 ~@6 a2 ~@11]/2", // E5 E D5 Dsus4 E5
  E: "[~@3 [d3,d4]@9 [d3,g3,g4]@9 ~@3 [a3,d4]@6 [d3,g3]@3 ~@18 e3@3 a2@5 ~ [e2,e3]@18 a2@3 a2 ~@2 [a3,d4]@12, ~@3 [a2,a3]@5 ~@4 g2@84, ~@24 d3@5 ~@7 a2@18 e3 ~@5 b2@16 ~@5 d3@15, ~@39 e3@6 b3@14 ~@37, ~@42 a3@9 a3@8 ~@37]/2", // D G5 D5 G5 E D5 A
  F: "[~@12 g3@12 [f#2,d3]@11 ~ e2@23 ~ [d3,d4]@12 f#2@11 ~ [e2,b2,e3]@48 [e2,b2]@7 ~@5 g#3@5 ~@4 a2@3 [a3,d4]@6 ~@3 [a3,d4,g4]@3 ~@3 [d3,d4]@9 [d3,g3,g4]@12 [d3,a3,d4]@6 g3@3 ~@18 e3@3 [a2,e3]@6 e2@18 a2@3 a2 ~@2 [a3,d4]@19 ~@5 [g2,d3,g3]@12, ~ g2@4 g2@10 g2@8 ~, ~@12 d3 ~@11 g3@21 ~@27 b3@58 ~@14 e3@63 e3@3 a3@3 b3@14 ~ b2@16 ~@44, ~@36 e3@48 ~@48 e3@9 [e2,b2]@9 ~@6 a2 ~@14 [a2,a3]@5 ~@28 a2@15 a3@8 ~ e3@60, ~@36 b2@19 ~@17 d3@84 d3@15 ~@27 d3@51 d3@27 ~@12]/6", // D E5 D5 Dsus4 D G5 D5 A5 …
  G: "[f#2@9 ~@3 e2@23 ~ [d3,d4]@12 f#2@11 ~ [e2,b2]@48 ~@276, d3@3 ~ d3@28, g3@21 ~@27 b3@61 ~@275, ~ e3@4 e3@27, ~@12 b2@19 ~@5 g2@348]/8", // D E5
})).s("gm_distortion_guitar").gain(0.35).pan(0.3)

// other · sitar
const sitar = note("<A B@2 C ~@12 D E F ~@12 A G@2 ~@39 D H@2 ~@5>".pickRestart({
  A: "[e4,b4]@6 b3@3 e4@3 b4@6 e4@3 b3@3 c#5@3 b4@2 ~ a4@3 e4@3 a4@6 b3@3 e4@3", // E5
  B: "[f#4@6 b3@3 e4@6 f#4@6 b3@3 d4@3 b3@3 ~@3 b3@3 e4@18 ~@6 e5 ~@2 d5 ~@2 b4 ~@2 a#4 ~@2 a4 ~@5 g4@3 ~@3 e4@6 ~@6, ~@30 f#4@5 ~@61]/2",
  C: "d4 ~ f#4 ~ e4@8 ~@4", D: "~@12 [e4,b4]@6 b3@3 e4@3 b4@6 e4@3 b3@3 c#5@3 b4@2 ~ a4@3 e4@3",
  E: "a4@2 b3 e4 f#4@2 b3 e4@2 f#4@2 b3 d4 b3 ~ b3, ~@42 f#4@5 ~", F: "e4@3 ~@5",
  G: "[f#4@2 b3 e4@2 f#4@2 b3 d4 b3 ~ b3 e4@6 ~@14, ~@30 f#4@5 ~@61]/2",
  H: "[a4@8 ~@4 f#4@6 b3@3 e4@6 f#4@6 b3@3 d4@3 b3@3 f#4@5 ~ e4@12 ~@36, ~@10 b3@2 ~@35 b3@13 ~@36, ~@11 e4@2 ~@83]/2",
})).s("gm_sitar").gain(0.35)

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

// drums · rim
const rim = s("rim").struct("<~@18 A B@6 ~@9 C@5 D ~@10 E C ~ C D E C@2 ~@23>".pickRestart({
  A: "~@3 x", B: "~ x ~ x", C: "x!2", D: "x", E: "~ x",
})).gain(0.45)

// drums · snare
const snare = s("sd").struct("<~@10 A B C@4 ~@9 D E@4 F ~@8 G B C@5 H B I ~@12 G B C@4 J C@4 I ~@8>".pickRestart({
  A: "~@12 x!2 ~@2", B: "~ x", C: "x!2", D: "~@7 x!3 ~@6", E: "~ x ~ x", F: "~ x ~@2", G: "~@6 x ~@4 x!3 ~@2",
  H: "x ~@7 x ~ x!2 ~@4", I: "x", J: "x ~@11 x ~ x ~ x ~ x!2 ~ x ~@2 x ~@3 x ~@3 x ~@15",
})).gain(0.5)

// drums · low tom
const low_tom = s("lt").struct("<~@10 A B ~@13 C ~@13 A B ~@6 B ~@14 D ~@4 E ~@13>".pickRestart({
  A: "~@15 x", B: "~@3 x ~@12", C: "~@11 x ~@3 x", D: "~@4 x!2 ~@18", E: "~@2 x",
})).gain(0.45)

// drums · hihat
const hihat = s("hh").struct("<~@18 A B@3 C ~@10 D B@3 E ~@12 F E D B G ~@26>".pickRestart({
  A: "~@4 x!4", B: "x!8", C: "x!4 ~@4", D: "~@6 x!2", E: "x!6 ~@2", F: "~@2 x!6", G: "x!2 ~@6",
})).gain(0.25)

// drums · mid tom
const mid_tom = s("mt").struct("<~@11 A ~@13 B ~@13 C A ~@5 B A ~@13 D E ~@18>".pickRestart({
  A: "~ x ~@6", B: "~@7 x", C: "~ x", D: "~@8 x ~@6 x", E: "~ x!3 ~@20",
})).gain(0.45)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@11 A B C B D ~@6 E F G H I B I B J ~@6 K L M A B C B@2 N O P Q ~@2 R S ~ T U V W ~@4 A B C B@2 X B Y B@2 Z ~@8
>`.pickRestart({
  A: "~@3 x!5", B: "x!8", C: "x!2 ~ x!5", D: "x!6 ~@2", E: "~@4 x!4", F: "~ x ~@4 x ~@5 x ~@18 x ~@10 x ~@5",
  G: "~ x ~@4 x ~@35 x ~@5", H: "x ~@5 x ~@5 x ~@6 x ~@28", I: "~ x!7", J: "x!4 ~@4", K: "~@6 x!2",
  L: "x ~@5 x ~@6 x ~@4 x ~@5 x ~@23", M: "~@6 x ~@5 x ~@5 x ~@5 x ~@6 x ~@16", N: "x!2 ~ x!3 ~ x",
  O: "~@5 x ~@12 x ~@5 x ~@23", P: "~@3 x!3 ~ x", Q: "~@5 x ~@42", R: "~@3 x", S: "x!3 ~", T: "~ x!3",
  U: "x ~@11 x ~@5 x ~@5 x ~@5 x ~@6 x ~@4 x ~@5", V: "x ~@18 x ~@10 x ~@6 x ~@4 x ~@5", W: "~@5 x ~@2", X: "x!2 ~@5 x",
  Y: "x!6 ~ x", Z: "x!2 ~@6",
})).gain(0.3)

// drums · open hat · soft notes
const open_hat_soft = s("oh").struct("<~@23 A B ~@13 C D ~@16 E F ~@23>".pickRestart({
  A: "~@18 x ~@6 x ~@10 x ~@11", B: "~@2 x!5 ~", C: "~@5 x!3", D: "x", E: "~@6 x ~@6 x ~@10 x ~@23", F: "x!5 ~@3",
})).gain(0.2)

// drums · high tom
const high_tom = s("ht").struct("<~@11 A ~@13 B ~@14 A ~@5 C A ~@14 D ~@18>".pickRestart({
  A: "x!2 ~@14", B: "~@12 x!2 ~@2", C: "~@13 x ~@2", D: "x",
})).gain(0.45)

// drums · crash
const crash = s("cr").struct(`<
  ~@11 A ~ A ~ B ~@10 C ~ C ~ D ~@9 A ~ A ~ B E F E F ~@8 B ~@4 A ~ A ~ B@2 G@4 H ~@8
>`.pickRestart({
  A: "~ x ~@2", B: "~@3 x", C: "x", D: "~ x", E: "~@12 x ~@22 x ~@12", F: "x ~@10 x ~@36", G: "x!4", H: "x!2 ~@2",
})).gain(0.4)

stack(
  acoustic_guitar_steel, bass, distortion_guitar, sitar, kick, rim, snare, low_tom, hihat, mid_tom, open_hat,
  open_hat_soft, high_tom, crash
)

More by Ugly Kid Joe