Strudelify

Johnny B. Goode

Buck Owens

KeyA majorTempo170 bpm
0:00/0:00
// Johnny B. Goode — Buck Owens
// 170 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 6 "MUTED GTR" electric guitar muted (copy of ch 4 "CLEAN GTR" electric guitar clean)
// note: Full arrangement: all 111 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(170/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 · piano · "HONKY TONK"
const piano = note(`<
  ~@3 A B C D E@2 F G H@2 I@2 J K@2 L M@2 N O P Q R S T U@3 V W@2 X Y@4 J K@2 L M@2 N O P Q R S T U@3 V W@2 X Z@3 AA AB
  AC AD AE AF AG AH AI AJ@2 AK AA AB AL AM AN@3 AO AP AQ@2 I@2 J AR@5 N O P Q R S T U@3 V W@2 X AS AT@2 ~
>`.pickRestart({
  A: "[a1,a2,e3,c#5,e5,a5] ~@15", B: "~@10 a5@2 ~ c6 c#6@2, ~@6 b5 ~",
  C: "[d6,a6]@2 d#6 e6!2 ~ e6!2 a6 d#6 e6!2 ~ e6!2 a6, d2@3 a6@2 ~ a6@2 ~@2 a6@5 ~, ~ f#2 a2 b2", // D5
  D: "d#6!2 e6 a5 ~ d#6 e6 a5 a6@2 e6 a5 ~ [d#6,e6] ~ a5, d2 f#2 a2 b2, ~ a6@2 ~@2 a6@2 ~ d#6 ~@3 a6@2 ~@2", // Emaj7
  E: "[d#6 ~ a5 e5 [d6,f#6] ~@3 c#6@2 a5 e5 [d6,f#6] ~ c6@2 a2@3 ~ [f#2,f#5]@3 e5 ~@4 c#2@3 e5, a1@4 c#2@3 ~ e2@4 f#2@4 ~@8 e2@4 ~@4, a6@2 ~@5 c6@2 ~@7 c#6@2 ~ a5@2 ~@4 [a5,e6]@6 ~, ~ e6@2 ~@4 e6@4 ~@3 e6@7 ~@7 f#5@2 ~@2]/2", // D F# A5
  F: "~@2 [e5,g#5,b5,c#6,e6] ~ g#1@4 [e5,g#5] [b5,c#6,e6] ~@2 c#2@4, e1 ~ b1 ~", // C#m7 E C#m7
  G: "e2@3 [e5,g#5,b5,c#6,e6] c#2@4 [g#5,b5,c#6,e6]@2 ~@2 g#1@4, ~@2 b1 ~", // C#m7
  H: "[a1@3 [e6,a6] c#2@4 ~ [e6,a6]@2 a5 ~ [d6,f#6]@2 c6 a2@3 a5 [f#2,f#5]@3 e5 ~@4 c#2@3 e5, ~@8 e2@4 f#2@3 e6@5 ~@5 [a5,e6]@5 ~@2, ~@8 c#6 ~@3 e2@2 f#5 ~]/2", // A5 D F# A5
  I: "[a1@3 a5 c#2@3 e5 ~ [a5,e6]@2 e5 ~ [a5,f#6]@2 ~@2 c#6@2 ~ f#2@3 e5 ~@4 c#2@3 e5, ~@3 e6@2 ~@3 e2@4 f#2@3 c6@2 ~@2 a5@2 ~@4 [a5,e6]@5 ~@2, ~@9 [c6,c#6] ~@5 e6@6 ~@7 f#5@2 ~@2, ~@8 a2@2 f#5 ~ e2@2 ~@2]/2", // A5 D A5 C#maj7
  J: "c6 c#6@2 e5 [a5,d6,f#6]@2 ~ e5 [d#6,a6] ~ [e6,a6]!2 ~ [e6,a6] ~ [e6,a6], a1@4 c#2@3 ~ e2@4 f#2@4, [a5,e6] ~@7", // D D#dim A5
  K: "[~ a6@2 d#6 g2@3 ~ f#2@3 ~ [e2,f#5]@3 ~@2 e5 ~ [b5,c6,e6] f#2@3 e5 [a2,c6,e6]@3 a5 b2@3 e5, a2@4 d6@2 ~ e6@6 ~@11 b5@2 ~@6, ~ e6 ~ a6@3 ~ c6@2 ~@2 a5@2 ~@2 e5@2 ~@11 f#5@2 ~@2, ~@4 c#6 ~@3 d2@2 ~@6]/2", // Esus2 Cmaj7 Am
  L: "c3@3 [b5,c6,e6] ~@2 e5 ~ b5 ~@3 [f#2,f#5]@3 e5, ~@4 b2@4 [a2,c6,e6]@5 ~@3, ~@11 a5@2 ~@3", // Cmaj7 F# Am
  M: "[[a1,c6,e6]@3 c#6 c#2@3 ~@4 d#5 f#2@3 ~ g2@3 ~ [f#2,f#4]@3 e4 [e2,e5]@3 ~ c#2@4, ~@4 a5@2 ~ f#5@2 ~ a5@3 ~@2 c5@2 ~@2 a4@2 ~@3 a4@2 ~ e4@2 ~@3, ~@8 [e2,e5]@4 d5@2 ~ e5@7 ~@10, ~@8 c#5 ~@7]/2", // Am F# E
  N: "~@2 [e5,g#5] [b5,c#6,e6] g#1@4 [g#5,b5,c#6,e6] ~@3 c#2@4, e1 ~ b1 ~", // E C#m7
  O: "~@2 [e5,g#5] [b5,c#6,e6] c#2@3 g#5 ~ [b5,c#6]@2 a5 b5 ~ c6 c#6, e2 ~ b1 g#1, ~@4 e6 ~@3", // E C#m7 Bsus2
  P: "~@2 d#6 e6 ~ e6 [e6,a6]!2 ~ [e6,a6]!2 ~ e6!2 ~ [e6,a6], a1 c#2 e2 f#2, ~ [d6,a6]@2 a6@2 ~@7 a6@2 ~@2", // A5 D5
  Q: "[a2,a6]@3 d#6 d6@2 ~@2 e2@3 ~ f#5@2 e5 ~, e6 ~@3 f#2@3 e6@5 c#2@4, ~@6 c6@2 c#6@2 ~ a5@2 ~@3", // A
  R: "a1@3 [a5,e6] c#2@4 ~ [a5,e6]@3 f#5@2 e5 ~, ~@2 e2 f#2", // A5
  S: "a2@3 [a5,e6] f#2@4 ~@5 f#5@2 e5, ~@2 e2 c#2, ~@9 [a5,e6]@5 ~@2", // A5
  T: "~ [a5,c#6,e6]@2 e5 ~ f#6@2 ~@2 c#6@2 e5 [a5,f#6]@2 ~ e5, a1@4 c#2@3 e6@4 ~@5, ~ c6 ~@3 a5@6 ~@5, ~@7 c6@2 ~@7, ~@8 e2@4 f#2@3 ~", // A D
  U: "[~ [a5,e6]@2 e5 f#6 a5@2 f#6 ~ c#6@2 ~ e2@3 ~ d2@3 [b5,c6,e6] f#2@3 e5 [b5,c6,e6]@2 ~@2 b2@3 ~@2 f5 f#5 ~ d6@2 [e5,f5,f#5] ~@4 f#5 ~ f#5@2 e5, a2@4 g2@3 c6@2 ~@2 a5@2 ~@14 [b5,c6,e6]@2 ~@2 [b5,c6,e6]@2 ~@7 d6@2 f5@2 d6@2 ~@2, ~ c6 ~@5 e6@7 ~@18 e5@2 ~@7 e5@2 ~@5, ~@8 f#2@4 f#5@2 ~ e5@3 ~@6 a2@3 ~@5 c3@4 b2@4 a2@4 f#2@4]/3", // A5 Cmaj7
  V: "~ [a5,e6]@2 e5 c#2@3 ~ e2@3 ~ f#2@3 e5, a1@4 f#6 ~@2 e6@6 ~@3, ~ c6 ~@2 a5@2 ~ c6@2 ~@2 a5@2 ~@3, ~@4 c#6 ~ f#5 ~", // A5
  W: "[[e6,a6]@2 ~ a5 [d6,f#6]@2 ~@3 c#6@2 ~ [c#2,e5]@3 ~@2 g5 g#5 ~ g5@2 g#5 e6 ~ g#5 ~@3 g#5@2 e6, g2@3 ~ f#2@3 e6@7 ~@5 e6@2 ~@6 e6@2 ~@3, ~@7 c6@2 ~@2 a5@2 ~@2 f#5@2 ~@7 g5@2 ~@2 g5@2 ~@2, ~@2 e2 ~ e1 g#1 b1 c#2]/2", // A5 D C#m
  X: "g5 g#5@2 ~ g5 g#5@2 [g5,e6] ~ g#5@2 ~ g#1@3 e5, e2@3 e6@2 ~@6 e6@4 ~, ~ c#2 b1 ~", // C
  Y: "[[a5,e6]@2 ~@2 c#2@4 [e6,a6]@2 ~ a5 ~ g#6 ~ c6 ~ c#6@2 a5 ~ f#5@2 e5 [e2,a5,e6]@4 c#2@3 ~ a1@3 a5 c#2@3 e5 ~ [a5,e6]@2 e5 ~ [a5,f#6]@2 ~@2 c#6@2 ~ f#2@3 e5 ~@4 c#2@3 e5, a1@4 ~@4 e2@3 ~ f#2@4 a2@4 f#2@4 ~@16 e2@4 f#2@3 c6@2 ~@2 a5@2 ~@4 [a5,e6]@5 ~@2, ~@12 [d6,f#6]@2 ~ e6@6 ~@7 f#5@2 ~ e5@2 ~@2 e6@2 ~@4 [c6,c#6] ~@5 e6@6 ~@7 f#5@2 ~@2, ~@24 a2@2 f#5 ~ e2@2 ~@2]/4", // A5 D A5 D C#maj7
  Z: "[[a5,e6]@2 ~@2 c#2@4 [e6,a6]@2 ~ a5 ~ g#6 ~ c6 ~ c#6@2 a5 ~ f#5@2 e5 [e2,a5,e6]@4 c#2@3 ~ a2@12 ~@4, a1@4 ~@4 e2@3 ~ f#2@4 a2@4 f#2@4 ~@24, ~@12 [d6,f#6]@2 ~ e6@6 ~@7 f#5@2 ~ e5@2 ~@15]/3", // A5 D
  AA: "d2@3 ~", AB: "a1 ~ a1 ~", AC: "a1@4 b1@4 c2@4 c#2@3 a5",
  AD: "[d#6,a6] ~ [e6,a6]!2 e6!2 ~ a5 ~@2 [e6,a6]!2 [e6,a6]@2 ~ a5, d2@4 f#2@4 a2@4 b2@3 ~, ~@2 a6 ~@5", // D#dim A5
  AE: "[d#6,a6] a6 e6 a5 [d#6,a6] ~ [e6,a6] a5 d#6 a6 [e6,a6] a5 ~ a6 ~ [e6,a6], d2 f#2 a2 b2", // D#dim A5
  AF: "a1@3 [a5,c#6,e6,f#6,g#6] c#2@4 [a5,c#6,e6,f#6] ~@3 f#2@4, ~@2 e2 ~", // Amaj7 F#m7
  AG: "c6 c#6 ~ e5 [f#2,a5]@3 ~ [e2,c#6]@3 ~@2 f#5@2 e5, a2@4 ~@3 c6@2 ~@2 a5@2 ~@3, [a5,e6]@2 ~@2 f#6 ~@2 e6@8 ~, ~@3 c#2", // F#m C#m A5
  AH: "e1@3 [e5,g#5,b5,c#6,e6] g#1@4 [e5,g#5,b5,c#6,e6]@2 ~@2 c#2@4, ~@2 b1 ~", // C#m7
  AI: "e2@3 [e5,g#5,b5,c#6,e6] c#2@4 [e5,g#5,e6]@2 ~@2 g#1@4, ~@2 b1 ~, ~@8 [b5,c#6] ~@7", // C#m7 E Bsus2
  AJ: "[a1@4 c#2@3 e5 c6 c#6 ~ e5 [a5,f#6]@2 ~@3 c#6@2 ~ c#2@3 ~ e2@4 f#2@3 e5, ~@8 e2@4 f#2@3 c6@2 ~@2 a5@2 ~@2 [a5,e6]@6 ~@3, ~@8 [a5,e6]@2 ~@5 e6@6 ~@11, ~@8 a1@2 f#5 ~@3 f#5 ~]/2", // D A5
  AK: "a2@3 ~", AL: "a1@4 b1@4 c2@3 a5 b5 c6 ~ c#6, ~@3 c#2",
  AM: "~ d#6 ~ e6!3 ~ e6 [a5,a6] d#6 ~ e6!3 ~@2, a6@8 ~ a6@7, [d2,d6] f#2 a2 b2", // A D
  AN: "[a5 d#6 ~ e6 [f#2,e6,a6]@4 [a2,e6,a6]@3 a5 [b2,d6]@3 [c6,f6] [a1,c#6]@3 [e5,a5] [d6,f#6] ~@2 c6 [e2,c#6]@3 [e5,a5] [d6,f#6] ~@2 c6 [a2,c#6]@3 a5 [f#2,f#5]@3 e5 [e2,a5,e6]@4 [c#2,f#5]@3 e5, [d2,a6]@4 a5 ~@7 a6 ~@2 e6@4 ~ c#2@3 e6@4 ~ f#2@3 e6@7 ~@10]/3", // F#m7 A5 Bm F5 A A5 D C#m …
  AO: "e1@3 [e5,g#5,b5,c#6,e6] g#1@4 [e5,g#5,b5,c#6,e6] ~@3 c#2@4, ~@2 b1 ~", // C#m7
  AP: "e2@3 [e5,g#5,b5,c#6,e6] c#2@4 [e5,g#5,b5,c#6,e6] ~@3 g#1@4, ~@2 b1 ~", // C#m7
  AQ: "[[a1,e6]@4 c#2@4 [e2,e6,a6]@4 [f#2,d6,f#6]@3 c6 [a1,c#6]@3 a5 [c#2,f#5]@3 ~ e2@4 [f#2,f#5]@3 e5, a6 ~@14 e6@7 ~ [a5,e6]@7 ~@2]/2", // A5 D A F#5 F# A5
  AR: "[~ a6@2 d#6 g2@3 ~ f#2@3 ~ [e2,f#5]@3 ~ d2@3 ~@2 [f5,f#5]@2 d6 ~ d#5 ~@2 b2@3 ~@3 d6 ~ e5@2 f5@2 [f#5,d6]@2 ~@3 [f5,f#5]@2 ~ [a1,c6,e6]@3 c#6 c#2@3 ~@4 d#5 f#2@3 ~ g2@3 ~ [f#2,f#4]@3 e4 [e2,e5]@3 ~ c#2@4, a2@4 d6@2 ~ e6@6 ~@13 f5@2 d6 ~@3 f5@2 ~@9 e5@2 ~@7 a5@2 ~ f#5@2 ~ a5@3 ~@2 c5@2 ~@2 a4@2 ~@3 a4@2 ~ e4@2 ~@3, ~ e6 ~ a6@3 ~ c6@2 ~@2 a5@2 ~@2 e5@2 ~@2 e5@2 ~@4 e5@2 f#5@2 ~@2 e5@2 f#5@2 ~@12 d6@2 ~@11 d5@2 ~ e5@7 ~@10, ~@8 c#6@2 ~@10 f#2@4 a2@4 ~@4 c3@4 b2@4 a2@3 ~ f#2@4 ~@8 [e2,e5]@4 ~@4 c#5@2 ~@14]/5", // Esus2 F#maj7 D F#maj7 Am F# E
  AS: "[a5,c#6]@2 ~ a5 c#2@3 e5 [a5,c#6]@2 ~@2 f#2@3 e5, a1@3 c#6@2 ~@6 [a5,c#6]@2 ~@3, ~@4 f#5@2 ~@2 e2@3 ~ f#5@2 ~@2", // A
  AT: "[[a5,c#6] ~@2 [a5,c#6] [e2,f#5]@3 [a5,c#6]@10 ~@15, a2@3 ~@4 a1@24 ~, ~@7 f#5 ~@24]/2", // A Esus2 A
})).s("gm_piano").gain(0.13)

// bass · acoustic bass · "ACOU BASS"
const bass = note(`<
  ~@3 A ~ B@2 C D E F C D C D C G B H C I E F C D C D C G B H C I E F C D C D C G B H C I E F C D C D C G B H C I E F C
  D J K L M B@2 C D E F C@2 J K L M B@2 C D E F C@3 D C G B H C I E F C D C D C G B H C I E F C N@2 ~
>`.pickRestart({
  A: "a1 ~@7", B: "d2 f#2 a2 b2", C: "a1 c#2 e2 f#2", D: "a2 f#2 e2 c#2", E: "e1 g#1 b1 c#2", F: "e2 c#2 b1 g#1",
  G: "a2 g2 f#2 e2", H: "c3 b2 a2 f#2", I: "g2 f#2 e2 c#2", J: "a2@3 ~", K: "d2@3 ~", L: "a1 ~ a1 ~", M: "a1 b1 c2 c#2",
  N: "[a2@3 ~ e2@2 a1@24 ~@2]/2",
})).s("gm_acoustic_bass").gain(0.36)

// chords · overdriven guitar · "OVERDRIVE"
const overdriven_guitar = note(`<
  A B C D E F G F H I J K L ~@12 M ~ M ~ M ~ M ~ N ~@15 O ~ O ~ O ~ P ~ Q R ~ S T@2 U V W X Y Z AA AB@2 AC T@2 U AD AE
  AF AG AH AI AJ AK AL ~@12 AM ~ AM ~ AM ~ AM ~ AM ~ AN AO@2 ~
>`.pickRestart({
  A: "~@10 b3@2 e4@2 f#4 ~", B: "[d#4,g#4] [e4,a4]!2 [d#4,g#4] [e4,a4]!2 [d#4,g#4] [e4,a4]",
  C: "[e4,a4] g4 f#4 e4 c4 c#4 a3!2", D: "[d#3,g#3] [e3,a3]!6 [a3,c#4]",
  E: "[a3,c#4]@2 [c#4,e4]@2 [c#4,f#4]@2 ~ c#4@2 ~ a3@2 f#3@2 ~@2, ~@3 [c#4,e4] ~@4", F: "d4 ~ e4 d4 ~ e4 d4 ~",
  G: "[e4,a4] d4 ~ e4 d4 ~ e4 ~", H: "e4 d4 ~ e4 d4 ~ [e4,a4] ~", I: "d4 ~ a4 g4 f#4 e4 b4 a4",
  J: "g4 f#4 e4 d4 c4 ~ a4 g4, ~@5 c#4 ~@2, ~@11 e4@2 ~@3", K: "~ [e4,a4] d4 [e4,a4] d4 [e4,a4] d4 c4", L: "a3 ~@7",
  M: "~@2 [d#4,f#4]@2 [e4,g4]@2 [e4,g4]@2 [e4,g4]@2 [e4,a4]@5 ~", N: "~ [d#4,f#4] [e4,g4]!3 [e4,a4]@2 [d4,f#4]",
  O: "~ [d#4,f#4] [e4,g4]!2 [d#4,f#4] [e4,g4] [d#4,f#4] ~", P: "~ [d#4,f#4] [e4,g4]!2 [d#4,f#4] [e4,g4]!2 ~",
  Q: "~ [e4,g4] [d#4,e4,f#4,g4] [d#4,f#4] [e4,g4] [d#4,f#4] [e4,g4] [d#4,f#4]", R: "[e4,g4] [d#4,f#4] ~@6",
  S: "~@10 [f#3,g3] ~ e4@2 d4@2", T: "[e4,a4]@2 [e4,a4]@2 [e4,a4]@2 [e4,a4]@2 [e4,a4]@2 [d4,f#4] ~ [c4,e4]@2 a3 ~",
  U: "[e4,a4]@2 [d4,f#4] ~ [c4,e4]@2 a3 ~ [e4,a4]@2 [d4,f#4] ~ [c4,e4]@2 a3 ~", // A5 D C A5 D C
  V: "[e4,a4] [a3,d4] [e4,a4] [a3,d4] [e4,a4] [a3,d4] [e4,a4] [a3,d4]", W: "~ d4 ~ a4 g4 a4 b4 a4",
  X: "g4 ~ f#4@2 [e4,a4]@2 d4@2 c4@2 [c#4,e4]@2 a4@2 a4 ~", Y: "a4 f#4 e4 c#4 [e4,a4] a4!3",
  Z: "a4@2 f#4@2 e4@2 c#4@2 [e4,a4]@2 f#4 ~ e4@2 c#4@2", AA: "a4 [e4,a4]!4 [d4,f#4] c4 a3",
  AB: "[~@2 [d4,f#4]@2 ~@2 [d4,f#4]@3 ~ [d4,f#4]@3 ~ [d4,f#4]@4 [d4,f#4] ~@5 [c#4,f4]@2 [c4,e4]@2 a3@2 a3@2]/2", // D C# C
  AC: "[c4,e4] [e3,a3]@2 ~@5", AD: "[c4,e4] ~ [d4,f#4]@2 [d4,f#4]@2 [d4,f#4]@3 ~ [d4,f#4]@4 ~@2",
  AE: "~@2 [d4,g4] ~ [e4,a4] [d4,g4] ~ [e4,a4]", AF: "[d4,g4]@2 ~@2 [e4,a4]@2 [d4,g4]@2 ~@2 [e4,a4]@2 [d4,g4] ~@3",
  AG: "[e4,a4] ~ [d4,g4] ~ [e4,a4] [d4,g4] ~ [e4,a4]", AH: "[d4,g4] ~ [e4,a4] [d4,g4] ~ [e4,a4]!3",
  AI: "[g4,c5] [e4,a4] [f#4,b4] [e4,a4] [d#4,g4] [d4,f#4] [c4,e4] a3", // C5 A5 B5 A5 D# D C
  AJ: "[d4,g4] [e4,a4] [d4,g4] [e4,a4] [d4,g4] [e4,a4] [d4,g4] c4", // G5 A5 G5 A5 G5 A5 G5
  AK: "~@2 [e3,a3] ~ [e4,a4]@2 ~@2 [e4,a4]@2 [e4,a4]@2 [d4,f#4]@2 c4@2", AL: "a3@3 ~@13",
  AM: "~ [d#4,f#4] [e4,g4]!3 [e4,a4] [e4,g4] ~", AN: "[a2,e3,a3]@2 [a2,e3,a3]@2 ~@4 [a2,e3,a3]@2 [a2,e3,a3] ~@5",
  AO: "[[a2,e3,a3]@2 [a2,e3,a3] ~@3 [a2,e3,a3]@25 ~]/2", // A5
})).s("gm_overdriven_guitar").gain(0.37)

// chords · electric guitar clean · "CLEAN GTR"
const electric_guitar_clean = note(`<
  ~@5 A B C D E@2 D@2 C D C D A B C D E@2 D@2 C D C D A B C D E@2 D@2 C D C D A B C D E@2 D@2 C D C D A B C D E@2 D@2 F
  G H I A B C D E@2 D@2 F G H I A B C D E@2 D@2 C D C D A B C D E@2 D@2 C D C D A B C D E@2 D J@2 ~
>`.pickRestart({
  A: "[d3,a3]!2 [d3,b3]!2 [d3,a3]!2 [d3,b3]!2", B: "[d3,a3]!2 [d3,b3]!2 [d3,c4]!2 [d3,b3]!2",
  C: "[a2,e3]!2 [a2,f#3]!2 [a2,e3]!2 [a2,f#3]!2", D: "[a2,e3]!2 [a2,f#3]!2 [a2,g3]!2 [a2,f#3]!2",
  E: "[e2,b2]!2 [e2,c#3]!2 [e2,d3]!2 [e2,c#3]!2", F: "[a2,e3]@3 ~", G: "[a2,d3]@3 ~", H: "[a2,e3] ~ [a2,e3] ~",
  I: "a2 b2 c3 c#3", J: "[[a2,e3]!2 [a2,f#3] [a2,e3]@12 ~]/2",
})).s("gm_electric_guitar_clean").gain(0.25)

// drums · kick
const kick = s("bd").struct("<~@3 A ~ B@56 A@2 B ~ B@8 A@2 B A B@15 C B@15 D ~@2>".pickRestart({
  A: "x", B: "x!2", C: "~ x ~@2 x ~@3", D: "x ~ x!2 ~@4",
})).gain(0.29)

// drums · snare
const snare = s("sd").struct("<~@3 A B C@56 A@2 D A C@8 A@2 D A C@31 E ~@2>".pickRestart({
  A: "x", B: "~@3 x", C: "~ x ~ x", D: "x!2", E: "~ x ~@2",
})).gain(0.29)

// drums · crash
const crash = s("cr").struct("<~@5 A ~@55 A@2 B A@2 ~@7 A@2 B A@2 ~@30 C ~@2>".pickRestart({
  A: "x", B: "x!2", C: "~ x!2 ~",
})).gain(0.24)

// drums · ride
const ride = s("rd").struct("<~@5 A@56 B@2 C B A@8 B@2 C B A@31 D ~@2>".pickRestart({
  A: "x!8", B: "x", C: "x!2", D: "x!5 ~@3",
})).gain(0.24)

stack(piano, bass, overdriven_guitar, electric_guitar_clean, kick, snare, crash, ride)

More by Buck Owens