Strudelify

Girls! Girls! Girls!

Elvis Presley

KeyF majorTempo180 bpm
0:00/0:00
// Girls! Girls! Girls! — Elvis Presley
// 180 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: coarse tuning (RPN 2) transposes the affected channels
// note: Full arrangement: all 89 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(180/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 · "A.PIANO 2"
const piano = note(`<
  ~@20 A ~ A ~ A ~ A B C ~ C D A ~ A E F@2 G@2 H@4 ~@16 A I A I A I A B C J C K A I A E F@2 L@2 H@4 M@2 N@3
>`.pickRestart({
  A: "~@4 [a3,c4,d4,f4] ~@7 [a3,c4,d4,f4] ~@11", // Dm7
  B: "[a3,c4,d4,f4] ~@9 [a3,c4,d4,f4] ~@7 [a3,c4,d4,f4]@3 ~ [ab3,c4,d4,f4] ~", // Dm7 Dm7b5
  C: "~@4 [ab3,c4,d4,f4] ~@7 [ab3,c4,d4,f4] ~@11", D: "~@18 [ab3,c4,d4,f4]@3 ~ [a3,c4,d4,f4] ~",
  E: "[a3,c4,d4,f4] ~@9 [a3,c4,d4,f4] ~@13", F: "[[g3,b3,d4,f4]@7 ~]/2", G: "[[g3,bb3,c4,e4]@37 ~@11, b3 ~@47]/2",
  H: "~@4 [a4,c5,d5,f5] ~@7 [a4,c5,d5,f5] ~@11", // Dm7
  I: "[a3,c4,d4,f4] ~@9 [a3,c4,d4,f4] ~@7 [a3,c4,d4,f4]@3 ~ [a3,c4,d4,f4] ~", // Dm7
  J: "[ab3,c4,d4,f4] ~@9 [ab3,c4,d4,f4] ~@7 [ab3,c4,d4,f4]@3 ~ [ab3,c4,d4,f4] ~", // Dm7b5
  K: "[ab3,c4,d4,f4] ~@9 [ab3,c4,d4,f4] ~@8 ab3@3 [a3,c4,d4,f4] ~, ~@6 [c4,d4,f4] ~", L: "[[g3,bb3,c4,e4]@41 ~@7]/2",
  M: "[[a3,c4,d4,f4]@31 ~@11 [f6,g6,a6] [c6,d6,e6] [f5,g5,a5,b5] [c5,d5,e5] [g4,a4,b4] [d4,e4,f4]]/2", // Dm7 F C G7 C G Dm
  N: "[[b3,c4] [f2,f3]@65 ~@6, ~ c4 ~@70]/3", // Cmaj7 F
})).s("gm_piano").gain(0.25).pan(0.3)

// bass · acoustic bass · "ACOU BASS"
const bass = note(`<
  A@2 B C D E D F G H I J K D L M N@2 O P A@2 B C D B D F G H J G K Q L R N@2 S T U V W X Y Z AA@2 A@3 AB AC AA AD AA
  AE@2 AF AG AB A AH A AI AB AJ AK AL AM@2 AN A AO AJ AP N AQ AR AS AT AU AT AU AV@2 AW ~@2
>`.pickRestart({
  A: "f1@5 ~ a1@5 ~ c2@5 ~ d2@5 ~", B: "f1@5 ~ a1@5 ~ c2@5 ~ d2@6", C: "f1@5 ~ a1@6 c2@5 ~ d2@5 ~",
  D: "f1@5 ~ a1@6 c2@5 ~ d2@6", E: "f1@5 ~ a1@5 ~ c2@6 d2@6", F: "f2@5 ~ eb2@6 d2@5 ~ c2@6",
  G: "bb1@6 d2@5 ~ f2@5 ~ g2@5 ~", H: "bb1@6 d2@6 f2@5 ~ g2@6", I: "bb1@5 ~ d2@5 ~ f2@6 g2@5 ~",
  J: "bb1@5 ~ d2@5 ~ f2@5 ~ g2@5 ~", K: "f1@6 a1@6 c2@5 ~ d2@5 ~", L: "f1@6 a1@5 ~ c2@5 ~ d2@5 ~", M: "f1 a1 c2 d2",
  N: "g1@5 ~ a1@5 ~ bb1@5 ~ b1@5 ~", O: "c2@5 ~ d2@6 eb2@5 ~ e2@6", P: "c2@5 ~ bb1@5 ~ a1@5 ~ g1@6",
  Q: "f1@6 a1@6 c2@5 ~ d2@6", R: "f1@5 ~ a1@6 c2@6 d2@6", S: "c2@5 ~ d2@6 eb2@5 ~ e2@5 ~",
  T: "c2@5 ~ d2@5 ~ eb2@5 ~ e2@6", U: "f2@5 ~ e2@5 ~ d2@5 ~ c2@5 ~", V: "f2@5 ~ e2@5 ~ d2@5 ~ c2@4 ~@2",
  W: "f2@6 e2@5 ~ d2@5 ~ c2@5 ~", X: "f2@5 ~ eb2@5 ~ d2@6 c2@6", Y: "bb1@5 ~ d2@4 ~@2 f2@5 ~ g2@6",
  Z: "bb1@4 ~@2 d2@5 ~ f2@4 ~@2 g2@6", AA: "bb1@4 ~@2 d2@5 ~ f2@5 ~ g2@5 ~", AB: "f1@5 ~ a1@4 ~@2 c2@5 ~ d2@5 ~",
  AC: "bb1@5 ~ d2@5 ~ f2@4 ~@2 g2@6", AD: "bb1@5 ~ d2@4 ~@2 f2@4 ~@2 g2@5 ~", AE: "g1@5 ~ b1@5 ~ d2@5 ~ e2@5 ~",
  AF: "c2@5 ~ e2@5 ~ g2@4 ~@2 a2@4 ~@2", AG: "c2@4 ~@2 bb1@4 ~@2 a1@5 ~ g1@4 ~@2", AH: "f1@5 ~ a1@5 ~ c2@5 ~ d2@4 ~@2",
  AI: "f1@4 ~@2 a1@5 ~ c2@5 ~ d2@5 ~", AJ: "f1@5 ~ a1@5 ~ c2@4 ~@2 d2@5 ~", AK: "f2@6 eb2@5 ~ d2@5 ~ c2@5 ~",
  AL: "bb1@4 ~@2 d2@4 ~@2 f2@4 ~@2 g2@5 ~", AM: "bb1@5 ~ d2@5 ~ f2@4 ~@2 g2@5 ~",
  AN: "bb1@4 ~@2 d2@5 ~ f2@4 ~@2 g2@5 ~", AO: "f1@4 ~@2 a1@4 ~@2 c2@5 ~ d2@4 ~@2", AP: "f2@5 ~ a1@5 ~ c2@5 ~ d2@4 ~@2",
  AQ: "g1@5 ~ a1@5 ~ bb1@5 ~ b1@4 ~@2", AR: "c2@5 ~ d2@5 ~ eb2@4 ~@2 e2@5 ~", AS: "c2@5 ~ bb1@5 ~ a1@5 ~ g1@5 ~",
  AT: "f1@5 ~ a1@4 ~@2 c2@4 ~@2 d2@5 ~", AU: "f1@5 ~ a1@4 ~@2 c2@4 ~@2 d2@4 ~@2", AV: "[f2@47 ~]/2", AW: "f1 ~@3",
})).s("gm_acoustic_bass").gain(0.4)

// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note(`<
  A B C D E F G H I@2 J K F L B M N O P Q A B C D R F E H I@2 J K F L B M N O P Q 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 AO AR AS AT AU AV AW AX AY AZ BA BB BC BD BE BF BG BH BI BJ@2 BK ~@2
>`.pickRestart({
  A: "[a3,c4,f4]@4 ~@2 [a3,c4,f4]@3 ~ [a3,c4,f4] ~ [a3,c4,f4]@5 ~ [a3,c4,f4]@3 ~ [a3,c4] ~", // F Am
  B: "[a3,c4,f4]@5 ~ [a3,c4,f4]@3 ~ [a3,c4] ~ [a3,c4,f4]@5 ~ [a3,c4,f4]@3 ~ [a3,c4,f4] ~", // F Am F
  C: "[a3,c4,f4]@5 ~ [a3,c4,f4]@3 ~ [a3,c4,f4] ~ [a3,c4,f4]@5 ~ [a3,c4,f4]@3 ~@3", // F
  D: "[a3,c4,f4]@5 ~ [a3,c4,f4]@3 ~ [a3,c4] ~ [a3,c4,f4]@5 ~ [a3,c4,f4]@2 ~@2 c4 ~", // F Am F
  E: "[a3,c4,f4]@5 ~ [a3,c4,f4]@3 ~ [a3,c4] ~ [a3,c4,f4]@5 ~ [a3,c4,f4]@3 ~ [a3,c4] ~", // F Am F Am
  F: "[a3,c4,f4]@5 ~ [a3,c4,f4]@3 ~ [a3,c4,f4] ~ [a3,c4,f4]@5 ~ [a3,c4,f4]@3 ~ [a3,c4] ~", // F Am
  G: "[a3,c4,f4]@5 ~ [a3,c4,f4]@3 ~ [a3,c4] ~ [a3,c4,f4]@5 ~ [a3,c4,f4]@2 ~@2 [a3,c4] ~", // F Am F Am
  H: "[a3,c4,f4]@5 ~ [a3,c4,f4]@2 ~@2 [a3,c4,f4] ~ [a3,c4,eb4,f4]@5 ~ [a3,c4,eb4,f4]@2 ~@2 [a3,c4,eb4,f4] ~", // F F7
  I: "[bb3,d4,f4]@5 ~ [bb3,d4,f4]@3 ~ [bb3,d4,f4] ~ [bb3,d4,f4]@5 ~ [bb3,d4,f4]@3 ~ [bb3,d4,f4] ~", // Bb
  J: "[bb3,d4,f4]@5 ~ [bb3,d4,f4]@3 ~ [bb3,d4,f4] ~ [bb3,d4,f4]@5 ~ [bb3,d4,f4]@3 ~ [bb3,d4] ~", // Bb
  K: "[bb3,d4,f4]@5 ~ [bb3,d4,f4]@3 ~ [bb3,d4] ~ [bb3,d4,f4]@5 ~ [bb3,d4,f4]@2 ~@2 [bb3,d4,f4] ~", // Bb
  L: "[a3,c4,f4]@5 ~ [a3,c4,f4]@3 ~ [c4,f4] ~ [a3,c4,f4]@5 ~ [a3,c4,f4]@3 ~ [c4,f4] ~", // F F5 F F5
  M: "[a3,c4,f4]@5 ~ [a3,c4,f4]@3 ~ [a3,c4,f4] ~ [a3,c4,f4]@5 ~ [a3,c4,f4]@3 ~ [a3,c4,f4] ~", // F
  N: "[g3,b3,d4,f4]@5 ~ [g3,b3,d4,f4]@3 ~ [b3,d4] ~ [g3,b3,d4,f4]@5 ~ [g3,b3,d4,f4]@3 ~ [g3,b3,d4,f4] ~", // G7 Bm G7
  O: "[g3,b3,d4,f4]@5 ~ [g3,b3,d4,f4]@3 ~ [g3,b3,d4,f4] ~ [g3,b3,d4,f4]@5 ~ [g3,b3,d4,f4]@3 ~ [g3,b3,d4,f4] ~", // G7
  P: "[g3,bb3,c4,e4]@6 [g3,bb3,c4,e4]@3 ~ [g3,bb3,c4,e4] ~ [g3,bb3,c4,e4]@6 [g3,bb3,c4,e4]@2 ~@2 [g3,bb3,c4] ~, d4 ~@23", // C7
  Q: "[g3,bb3,c4,e4]@5 ~ [g3,bb3,c4,e4]@2 ~@2 [g3,bb3,c4,e4] ~ [g3,bb3,c4,e4]@3 ~ [g3,bb3,c4] ~ [g3,bb3,c4,e4]@3 ~ [g3,bb3,c4,e4] ~", // C7
  R: "[a3,c4,f4]@6 [a3,c4,f4]@3 ~ [a3,c4] ~ [a3,c4,f4]@5 ~ [a3,c4,f4]@3 ~ [a3,c4] ~", // F Am F Am
  S: "[a3,c4,f4]@5 ~ [a3,c4,f4]@3 ~ [a3,c4,f4] ~ [a3,c4,f4]@5 ~ [a3,c4,f4]@3 ~ [c4,f4] ~", // F F5
  T: "[a3,c4,f4]@5 ~ [a3,c4,f4]@3 ~ [c4,f4] ~ [a3,c4,f4]@5 ~ [a3,c4,f4]@3 ~ [a3,c4,f4] ~", // F F5 F
  U: "[a3,c4,f4]@5 ~ [a3,c4,f4]@3 ~ [c4,f4] ~ [a3,c4,f4]@5 ~ [a3,c4,f4]@3 ~ c4 ~", // F F5 F
  V: "[a3,c4,f4]@5 ~ [a3,c4,f4]@3 ~ c4 ~ [a3,c4,eb4,f4]@5 ~ [a3,c4,eb4,f4]@3 ~ [c4,eb4,f4] ~", // F F7
  W: "[f3,ab3,bb3,d4]@5 ~ [f3,ab3,bb3,d4]@3 ~ [ab3,bb3] ~ [f3,ab3,bb3,d4]@5 ~ [f3,ab3,bb3,d4]@3 ~ [f3,ab3,bb3] ~", // Bb7 Absus2 Bb7
  X: "[f3,ab3,bb3,d4]@4 ~@2 [f3,ab3,bb3,d4]@3 ~ [ab3,bb3] ~ [f3,ab3,bb3,d4]@5 ~ [f3,ab3,bb3,d4]@3 ~ [ab3,bb3] ~", // Bb7 Absus2 Bb7 Absus2
  Y: "[f3,ab3,bb3,d4]@5 ~ [f3,ab3,bb3,d4]@3 ~@3 [f3,ab3,bb3,d4]@4 ~@2 [f3,ab3,bb3,d4]@3 ~ ab3 ~", // Bb7
  Z: "[f3,ab3,bb3,d4]@5 ~ [f3,ab3,bb3,d4]@3 ~ ab3 ~ [f3,ab3,bb3,d4]@3 ~ [ab3,bb3] ~ [f3,ab3,bb3,d4]@3 ~ [ab3,bb3] ~", // Bb7 Absus2 Bb7 Absus2
  AA: "[f3,a3,c4,eb4]@5 ~ [f3,a3,c4,eb4]@3 ~ [f3,a3,c4] ~ [f3,a3,c4,eb4]@4 ~@2 [f3,a3,c4,eb4]@3 ~@3", // F7 F F7
  AB: "[f3,a3,c4,eb4]@4 ~@2 [f3,a3,c4,eb4]@3 ~@3 [f3,a3,c4,eb4]@5 ~ [f3,a3,c4,eb4]@3 ~ [a3,c4,eb4] ~", // F7 Adim
  AC: "[f3,a3,c4,eb4]@5 ~ [f3,a3,c4,eb4]@3 ~ [f3,a3,c4,eb4] ~ [f3,a3,c4,eb4]@3 ~@3 [f3,a3,c4,eb4]@3 ~ [f3,a3] ~", // F7 F
  AD: "[f3,a3,c4,eb4]@5 ~ [f3,a3,c4,eb4]@3 ~ [a3,c4] ~ [f3,a3,c4,eb4]@3 ~ [a3,c4,eb4] ~ [f3,a3,c4,eb4]@3 ~ [a3,c4] ~", // F7 Am F7 Adim F7 Am
  AE: "[f3,ab3,bb3,d4]@5 ~ [f3,ab3,bb3,d4]@3 ~ [ab3,bb3] ~ [f3,ab3,bb3,d4]@4 ~@2 [f3,ab3,bb3,d4]@3 ~ ab3 ~", // Bb7 Absus2 Bb7
  AF: "[f3,ab3,bb3,d4]@4 ~@2 [f3,ab3,bb3,d4]@3 ~ [ab3,bb3] ~ [f3,ab3,bb3,d4]@3 ~ [ab3,bb3] ~ [f3,ab3,bb3,d4]@3 ~ [ab3,bb3] ~", // Bb7 Absus2 Bb7 Absus2 Bb7 Absus2
  AG: "[f3,ab3,bb3,d4]@5 ~ [f3,ab3,bb3,d4]@3 ~ [ab3,bb3] ~ [f3,ab3,bb3,d4]@4 ~@2 [f3,ab3,bb3,d4]@3 ~ [ab3,bb3] ~", // Bb7 Absus2 Bb7 Absus2
  AH: "[f3,ab3,bb3,d4]@4 ~@2 [f3,ab3,bb3,d4]@3 ~ ab3 ~ [f3,ab3,bb3,d4]@3 ~ [f3,ab3,bb3] ~ [f3,ab3,bb3,d4]@3 ~ [f3,ab3,bb3,d4] ~", // Bb7
  AI: "[g3,b3,d4,f4]@5 ~ [g3,b3,d4,f4]@2 ~@2 b3 ~ [g3,b3,d4,f4]@4 ~@2 [g3,b3,d4,f4]@3 ~@3", // G7
  AJ: "[g3,b3,d4,f4]@4 ~@2 [g3,b3,d4,f4]@3 ~ [b3,f4] ~ [g3,b3,d4,f4]@3 ~ [g3,b3] ~ [g3,b3,d4,f4]@3 ~ [b3,d4,f4] ~, ~@6 [a3,c4,g4] ~@17", // G7 Bdim G7 G G7 Bdim Am7
  AK: "[g3,c4,e4]@4 ~@2 [g3,c4,e4]@3 ~ [c4,e4] ~ [g3,c4,e4]@4 ~@2 [g3,c4,e4]@3 ~ [g3,c4,e4] ~, ~@6 d4 ~@17", // C
  AL: "[g3,c4,e4]@4 ~@2 [g3,c4,e4]@3 ~ [c4,e4] ~ [g3,c4,e4]@3 ~ [c4,e4] ~ [g3,c4,e4]@2 ~@2 [g3,c4,e4] ~, ~@12 f4 ~@11", // C
  AM: "[a3,c4,f4]@4 ~@2 [a3,c4,f4]@3 ~ [c4,f4] ~ [a3,c4,f4]@4 ~@2 [a3,c4,f4]@3 ~ [a3,c4,f4] ~", // F F5 F
  AN: "[a3,c4,f4]@4 ~@2 [a3,c4,f4]@3 ~ [c4,f4] ~ [a3,c4,f4]@3 ~ [c4,f4] ~ [a3,c4,f4]@3 ~ [a3,c4,f4] ~", // F F5 F F5 F
  AO: "[a3,c4,f4]@5 ~ [a3,c4,f4]@3 ~ c4 ~ [a3,c4,f4]@4 ~@2 [a3,c4,f4]@3 ~ c4 ~", // F
  AP: "[a3,c4,f4]@4 ~@2 [a3,c4,f4]@3 ~ [c4,f4] ~ [a3,c4,f4]@3 ~ c4 ~ [a3,c4,f4]@3 ~ c4 ~", // F F5 F
  AQ: "[a3,c4,f4]@5 ~ [a3,c4,f4]@3 ~ [c4,f4] ~ [a3,c4,f4]@5 ~ [a3,c4,f4]@3 ~ [a3,c4] ~", // F F5 F Am
  AR: "[a3,c4,f4]@4 ~@2 [a3,c4,f4]@3 ~ c4 ~ [a3,c4,f4]@5 ~ [a3,c4,f4]@3 ~ [c4,f4] ~", // F F5
  AS: "[a3,c4,f4]@5 ~ [a3,c4,f4]@3 ~ c4 ~ [a3,c4,f4]@2 ~@2 [c4,f4] ~ [a3,c4,eb4,f4]@3 ~ [c4,eb4,f4] ~", // F F5 F7
  AT: "[bb3,d4,f4]@5 ~ [bb3,d4,f4]@3 ~ [bb3,d4,f4] ~ [bb3,d4,f4]@4 ~@2 [bb3,d4,f4]@3 ~ bb3 ~", // Bb
  AU: "[bb3,d4,f4]@4 ~@2 [bb3,d4,f4]@3 ~ [bb3,d4] ~ [bb3,d4,f4]@3 ~ bb3 ~ [bb3,d4,f4]@3 ~ bb3 ~", // Bb
  AV: "[bb3,d4,f4]@5 ~ [bb3,d4,f4]@3 ~ bb3 ~ [bb3,d4,f4]@5 ~ [bb3,d4,f4]@3 ~ bb3 ~", // Bb
  AW: "[bb3,d4,f4]@5 ~ [bb3,d4,f4]@3 ~ [bb3,d4,f4] ~ [bb3,d4,f4]@2 ~@2 [bb3,d4] ~ [bb3,d4,f4]@3 ~ [bb3,d4,f4] ~", // Bb
  AX: "[a3,c4,f4]@5 ~ [a3,c4,f4]@3 ~ c4 ~ [a3,c4,f4]@5 ~ [a3,c4,f4]@3 ~ c4 ~", // F
  AY: "[a3,c4,f4]@4 ~@2 [a3,c4,f4]@3 ~ [c4,f4] ~ [a3,c4,f4]@3 ~ c4 ~ [a3,c4,f4]@3 ~ [a3,c4] ~", // F F5 F Am
  AZ: "[a3,c4,f4]@5 ~ [a3,c4,f4]@3 ~ [c4,f4] ~ [a3,c4,f4]@4 ~@2 [a3,c4,f4]@3 ~@3", // F F5 F
  BA: "[a3,c4,f4]@5 ~ [a3,c4,f4]@3 ~ [a3,c4] ~ [a3,c4,f4]@3 ~ c4 ~ [a3,c4,f4]@2 ~@2 [c4,f4] ~", // F Am F F5
  BB: "[g3,b3,d4,f4]@5 ~ [g3,b3,d4,f4]@3 ~ [g3,b3,d4,f4] ~ [g3,b3,d4,f4]@5 ~ [g3,b3,d4,f4]@3 ~@3", // G7
  BC: "[g3,b3,d4,f4]@4 ~@2 [g3,b3,d4,f4]@3 ~ [b3,f4] ~ [g3,b3,d4,f4]@3 ~ b3 ~ [g3,b3,d4,f4]@3 ~ [b3,d4,f4] ~", // G7 Bdim G7 Bdim
  BD: "[g3,bb3,c4,e4]@5 ~ [g3,bb3,c4,e4]@3 ~ bb3 ~ [g3,bb3,c4,e4]@5 ~ [g3,bb3,c4,e4]@3 ~ bb3 ~", // C7
  BE: "[g3,bb3,c4,e4]@4 ~@2 [g3,bb3,c4,e4]@3 ~ bb3 ~ [g3,bb3,c4,e4]@3 ~@3 [g3,bb3,c4,e4]@3 ~ g3 ~", // C7
  BF: "[a3,c4,d4,f4]@5 ~ [a3,c4,d4,f4]@3 ~@3 [a3,c4,d4,f4]@5 ~ [a3,c4,d4,f4]@3 ~ c4 ~", // Dm7
  BG: "[a3,c4,d4,f4]@5 ~ [a3,c4,d4,f4]@3 ~@3 [a3,c4,d4,f4]@3 ~ c4 ~ [a3,c4,d4,f4]@3 ~ c4 ~", // Dm7
  BH: "[a3,c4,d4,f4]@5 ~ [a3,c4,d4,f4]@3 ~@3 [a3,c4,d4,f4]@4 ~@2 [a3,c4,d4,f4]@3 ~ [c4,d4] ~", // Dm7 Csus2
  BI: "[a3,c4,d4,f4]@5 ~ [a3,c4,d4,f4]@3 ~@3 [a3,c4,d4,f4]@3 ~@3 [a3,c4,d4,f4] ~@5", BJ: "[[a3,c4,d4,f4]@23 ~]/2",
  BK: "[a3,c4,d4,f4] ~@3", // Dm7
})).s("gm_acoustic_guitar_steel").gain(0.1).pan(0.8)

// chords · acoustic guitar steel · "STEEL GTR" · soft notes
const acoustic_guitar_steel_2 = note(`<
  A ~ B C D ~@7 A E ~@2 F ~@3 A ~ B C D ~@7 A E ~@2 F ~@3 C G E@2 H I J K L M N O P Q R S T U V W G X Y Z G AA E AB AC
  AD AE ~ Y AF AG AH AI AJ AK AL AM AN AO AP ~@5
>`.pickRestart({
  A: "~@22 f4 ~", B: "~@22 [a3,c4] ~", C: "~@22 a3 ~", D: "~@10 f4 ~@13", E: "~@10 a3 ~@11 a3 ~",
  F: "~@10 [g3,f4] ~@13", G: "~@10 a3 ~@13", H: "~@10 f3 ~@11 d4 ~", I: "~@10 [f3,d4] ~@11 f3 ~",
  J: "~@10 [f3,ab3,bb3] ~@11 [f3,bb3] ~", K: "~@10 [f3,bb3] ~@5 f3 ~@5 [f3,d4] ~", L: "~@10 eb4 ~@11 [f3,a3,c4] ~",
  M: "~@10 [f3,a3,c4,eb4] ~@11 f3 ~", N: "~@16 [f3,a3,c4] ~@5 [c4,eb4] ~", O: "~@10 f3 ~@5 f3 ~@5 [f3,eb4] ~",
  P: "~@10 f3 ~@11 [f3,bb3] ~", Q: "~@10 [f3,d4] ~@5 [f3,d4] ~@5 f3 ~", R: "~@10 f3 ~@11 f3 ~", S: "~@10 [f3,bb3] ~@13",
  T: "~@10 [g3,d4] ~@11 [g3,b3,d4,f4] ~", U: "~@10 [g3,d4] ~@5 [d4,f4] ~@5 g3 ~", V: "~@10 g3 ~@13",
  W: "~@10 g3 ~@5 g3 ~@7", X: "~@10 a3 ~@5 a3 ~@7", Y: "~@10 [a3,f4] ~@11 [a3,f4] ~", Z: "~@10 a3 ~@5 a3 ~@5 [a3,f4] ~",
  AA: "~@10 a3 ~@11 [a3,f4] ~", AB: "~@10 a3 ~@5 a3 ~@5 a3 ~", AC: "~@22 [d4,f4] ~", AD: "~@10 f4 ~@11 [d4,f4] ~",
  AE: "~@10 [d4,f4] ~@11 d4 ~", AF: "~@10 a3 ~@5 a3 ~@5 f4 ~", AG: "~@10 a3 ~@11 [a3,c4] ~", AH: "~@16 a3 ~@5 a3 ~",
  AI: "~@22 [g3,b3,d4,f4] ~", AJ: "~@10 [g3,d4] ~@5 [g3,d4,f4] ~@5 g3 ~", AK: "~@10 [g3,c4,e4] ~@11 [g3,c4] ~",
  AL: "~@10 [g3,c4,e4] ~@5 [g3,bb3] ~@5 [bb3,c4,e4] ~", AM: "~@10 [a3,c4,d4,f4] ~@11 [a3,d4,f4] ~",
  AN: "~@10 [a3,c4,d4] ~@5 [a3,d4,f4] ~@5 [a3,d4] ~", AO: "~@10 [a3,c4,d4,f4] ~@11 [a3,f4] ~",
  AP: "~@10 [a3,c4,d4] ~@5 [a3,c4,d4] ~@3 [a3,c4,d4,f4] ~ [a3,c4,d4,f4] ~", // D7 Dm7
})).s("gm_acoustic_guitar_steel").gain(0.05).pan(0.8)

// other · electric guitar muted · "MUTED GTR"
const electric_guitar_muted = note(`<
  A B@6 C D@4 B@4 E@2 F G A B H B@4 C D@4 B@4 E@2 F@2 I J@2 C K D@3 B@4 D@4 L@2 M G B@7 C D@4 B@3 N E@2 F G B@4 O ~ P
  ~@2
>`.pickRestart({
  A: "f2 ~@5 a2 ~@3 a2 ~ c3 ~@3 c3 ~ d3 ~@3 d3 ~", B: "f2 ~@3 f2 ~ a2 ~@3 a2 ~ c3 ~@3 c3 ~ d3 ~@3 d3 ~",
  C: "f3 ~@3 f3 ~ eb3 ~@3 eb3 ~ d3 ~@3 d3 ~ c3 ~@3 c3 ~", D: "bb2 ~@3 bb2 ~ d3 ~@3 d3 ~ f3 ~@3 f3 ~ g3 ~@3 g3 ~",
  E: "g2 ~@3 g2 ~ a2 ~@3 a2 ~ bb2 ~@3 bb2 ~ b2 ~@3 b2 ~", F: "c3 ~@3 c3 ~ d3 ~@3 d3 ~ eb3 ~@3 eb3 ~ e3 ~@3 e3 ~",
  G: "c3 ~@3 c3 ~ bb2 ~@3 bb2 ~ a2 ~@3 a2 ~ g2 ~@3 g2 ~", H: "f2@3 ~ f2 ~ a2 ~@3 a2 ~ c3 ~@3 c3 ~ d3 ~@3 d3 ~",
  I: "f3 ~@5 e3 ~@3 e3 ~ d3 ~@3 d3 ~ c3 ~@3 c3 ~", J: "f3 ~@3 f3 ~ e3 ~@3 e3 ~ d3 ~@3 d3 ~ c3 ~@3 c3 ~",
  K: "bb2 ~@5 d3 ~@3 d3 ~ f3 ~@3 f3 ~ g3 ~@3 g3 ~", L: "g2 ~@3 g2 ~ b2 ~@3 b2 ~ d3 ~@3 d3 ~ e3 ~@3 e3 ~",
  M: "c3 ~@3 c3 ~ e3 ~@3 e3 ~ g3 ~@3 g3 ~ a3 ~@3 a3 ~", N: "f3 ~@3 f3 ~ a2 ~@3 a2 ~ c3 ~@3 c3 ~ d3 ~@3 d3 ~",
  O: "f3 ~@23", P: "f2 ~@23",
})).s("gm_electric_guitar_muted").gain(0.35)

// drums · kick
const kick = s("bd").struct("<[x!2]!84 x ~ x ~@2>").gain(0.45)

// drums · snare
const snare = s("sd").struct(`<
  A@3 B A@3 C A@3 B A@3 B A@3 C A@3 B A@3 C A@3 B A@3 B A@3 C B@3 C A@3 B A@3 C A@7 C A B A B A@3 C A@5 B A B@4 C B@3 D
  ~@5
>`.pickRestart({
  A: "~ x ~ x", B: "~@3 x ~@4 x!2 ~@2", C: "~@3 x ~@4 x!2 ~ x", D: "~@3 x ~@4 x ~ x!2",
})).gain(0.5)

// drums · low tom
const low_tom = s("lt").struct("<~@85 [~@22 x!2] ~@3>").gain(0.3)

// drums · mid tom
const mid_tom = s("mt").struct("<~@85 [~@7 x] ~@3>").gain(0.3)

// drums · crash
const crash = s("cr").struct(`<
  A ~@7 A ~ A ~@5 A ~@3 A ~@7 A ~ A ~@5 A ~@3 A@5 ~@3 A ~@3 A ~@3 A ~@3 A ~@7 A ~@3 A ~@3 A ~@3 A@5 ~ A ~@2
>`.pickRestart({
  A: "x",
})).gain(0.45)

// drums · ride
const ride = s("rd").struct(`<
  A B@7 C B C D B E B F A B G H A B@7 C B C D B E B F A B G H I@3 J C B F G I E@2 G I G@3 I G@3 I F G K F G@3 I G@2 K L
  B@2 F L K G D I@4 ~@5
>`.pickRestart({
  A: "~@3 x ~ x!2 ~@2 x ~@2", B: "x!4", C: "~ x!3", D: "x ~@2 x ~@2 x ~ x!2 ~@2", E: "x ~@2 x ~ x!2 ~@2 x ~@2",
  F: "x ~@2 x ~@2 x ~@2 x ~ x", G: "x ~@2 x ~ x!2 ~@2 x ~ x", H: "x ~@2 x ~ x!2 ~@5", I: "~@3 x ~ x!2 ~@2 x ~ x",
  J: "~@3 x ~ x!2 ~ x!2 ~@2", K: "x ~@2 x ~ x!2 ~ x!2 ~ x", L: "~@3 x ~@2 x ~@2 x ~ x",
})).gain(0.5)

// drums · ride · soft notes
const ride_soft = s("rd").struct(`<
  A B C B C@9 D C E A C ~@2 A B C B C@9 D C E A C ~@6 C@2 F D ~ A@2 D ~@9 E ~@2 F ~@7 F C@2 F@2 ~@2 C ~@9
>`.pickRestart({
  A: "~@11 x", B: "~@5 x ~@2 x ~@2 x", C: "~@5 x ~@5 x", D: "~@2 x", E: "~@5 x ~@2 x ~@3", F: "~@5 x ~@6",
})).gain(0.25)

stack(
  piano, bass, acoustic_guitar_steel, acoustic_guitar_steel_2, electric_guitar_muted, kick, snare, low_tom, mid_tom,
  crash, ride, ride_soft
)

More by Elvis Presley