Strudelify
Viva Las Vegas cover art

1964 · Elvis At the Movies

Viva Las Vegas

Elvis Presley

KeyF majorTempo198 bpm
0:00/0:00
// Viva Las Vegas — Elvis Presley
// 198 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 128 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): JAZZ GTR.
setcpm(198/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, A@4 for four bars: edit a riff to change every repeat.

// bass · acoustic bass · "ACOU BASS"
const bass = note(`<
  A@7 B A@7 C D E@2 F E@3 F E@3 G H@2 A I H@2 A J K@5 L M@3 N K@5 O P Q@3 R S R T A@7 B A@7 C D E@2 F E@3 F E@3 G H@2 A
  I H@2 A J H@2 A I H@2 A@2 ~@24
>`.pickRestart({
  A: "f1 ~ c2 ~", B: "f2@3 ~ c2@3 ~ d2@4 c2@3 ~", C: "f1@4 c2@3 ~ f2@4 e2@4", D: "d2@5 ~@3 a1@5 ~@3", E: "d2 ~ a1 ~",
  F: "d2@4 ~@4 a1@4 c2@3 ~", G: "d2@4 ~@4 a1@3 ~ d2@3 ~", H: "bb1@4 ~@4 f2@5 ~@3", I: "f1@4 g1@4 ab1@4 a1@3 ~",
  J: "f1 ~ c2 b1", K: "bb1 ~ f1 ~", L: "bb1@5 ~@3 d2@5 ~@3", M: "f2@5 ~@3 c2@4 ~@4", N: "f1@3 ~ g1@3 ~ ab1@3 ~ a1@3 ~",
  O: "bb1@5 ~@3 f1@4 gb1@3 ~", P: "g1@5 ~@3 d2@5 ~@3", Q: "g1@3 ~ d2@3 ~", R: "c2 ~ g1 ~", S: "c2@4 ~@4 g1@3 ~ bb1@3 ~",
  T: "c2@3 ~ bb1@3 ~ a1@3 ~ g1@4",
})).s("gm_acoustic_bass").gain(0.28)

// bass · acoustic bass · "ACOU BASS" · soft notes
const bass_soft = note("<~@103 A B@2 C D B@2 C E B@2 C D B@2 C F@8 ~>".pickRestart({
  A: "~@3 b1", B: "bb1@4 ~@4 f2@5 ~@3", C: "f1@5 ~@3 c2@5 ~@3", D: "f1@4 g1@4 ab1@4 a1@3 ~", E: "f1 ~ c2 b1",
  F: "[f1 ~ c2 b1@29]/8",
})).s("gm_acoustic_bass").gain(0.09)

// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note(`<
  A B A C A D E C F A@2 G A@3 H I J@2 K L M N O P Q R S T U V W X Y A Z AA@3 AB AC AB A@3 AD AE AF AA AG AA AH AI@2 AJ
  AK AL AM AN AO A B A C A D E C F A@2 G A@3 H I J@2 K L M N O P Q R S AP U V W X Y A Z AQ AR AS AT AU AV AS Z AQ AW
  ~@22
>`.pickRestart({
  A: "[a3,c4,f4]@3 ~ [a3,c4,f4]@2 c4 ~ [a3,c4,f4]@3 ~ [a3,c4,f4]@2 c4 ~", // F
  B: "[a3,c4,f4]@3 ~ [a3,c4,f4]@2 ~ c4 [a3,c4,f4]@2 c4 ~ [a3,c4,f4]@2 c4 ~", // F
  C: "[a3,c4,f4]@3 ~ [a3,c4,f4]@2 ~@2 [a3,c4,f4]@2 c4 ~ [a3,c4,f4]@2 c4 ~", // F
  D: "[a3,c4,f4]@3 ~ [a3,c4,f4]@2 [a3,c4] f4 [a3,c4,f4] ~ [a3,c4] ~ [a3,c4,f4]@2 [c4,f4] ~", // F Am F Am F F5
  E: "[a3,c4,f4]@3 ~ [a3,c4,f4] ~ c4 a3 [a3,c4,f4]@3 ~ [a3,c4,f4]@2 ~@2", // F
  F: "[a3,c4,f4]@3 ~ [a3,c4,f4]@2 c4 ~ [a3,c4,f4]@3 ~ [a3,c4,f4]@2 [a3,c4] ~", // F Am
  G: "[a3,c4,f4]@3 ~ [a3,c4,f4] ~ c4 ~ [a3,c4,f4]@2 [a3,c4,f4] ~ [a3,c4,f4]@2 [a3,c4,f4] ~", // F
  H: "[a3,c4,f4]@3 ~ [a3,c4,f4]@2 c4 ~ [a3,c4,f4]@2 c4 ~ [a3,c4,f4]!3 ~", // F
  I: "[a3,d4,f4]@3 ~ [a3,d4,f4]@2 d4 ~ [a3,d4,f4]@3 ~ [a3,d4,f4]@2 d4 ~", // Dm
  J: "[a3,d4,f4]@3 ~ [a3,d4,f4]@2 d4 ~ [a3,d4,f4]@3 ~ [a3,d4,f4]@2 ~@2", // Dm
  K: "[a3,d4,f4]@3 ~ [a3,d4,f4]@2 d4 ~ [a3,d4,f4]@2 d4 ~ [a3,d4,f4] ~ d4 ~", // Dm
  L: "[a3,d4,f4]@3 ~ [a3,d4,f4] ~ d4 ~ [a3,d4,f4]@3 ~ [a3,d4,f4] ~ d4 ~", // Dm
  M: "[a3,d4,f4]@3 ~ [a3,d4,f4]@2 [a3,d4] f4 [a3,d4,f4]@2 d4 [a3,f4] [a3,d4,f4]@2 d4 ~", // Dm D5 Dm
  N: "[a3,d4,f4]@3 ~ [a3,d4,f4] ~ d4 ~ [a3,d4,f4]@2 ~@2 [a3,d4,f4] ~ [a3,d4,f4] ~", // Dm
  O: "[a3,d4,f4]@3 ~ [a3,d4,f4]@2 [a3,d4,f4] ~ [a3,d4,f4]@2 d4 ~ [a3,d4,f4]@2 d4 ~", // Dm
  P: "[a3,d4,f4]@3 ~ [a3,d4,f4] ~ d4 ~ [a3,d4,f4]@3 ~ [a3,d4,f4]@2 [d4,f4] ~", // Dm
  Q: "[a3,d4,f4]@3 ~ [a3,d4,f4]@2 d4 a3 [a3,d4,f4]@2 ~ [d4,f4] [a3,d4,f4] ~ d4 ~", // Dm
  R: "[a3,d4,f4]@3 ~ [a3,d4,f4]@2 [d4,f4] ~ [a3,d4,f4]@3 ~ [a3,d4,f4] ~ [a3,d4] ~", // Dm D5
  S: "[a3,d4,f4]@3 ~ [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4]@2 [a3,d4,f4] ~ [a3,d4,f4]@2 ~@2", // Dm
  T: "[bb3,d4,f4]@3 ~ [bb3,d4,f4]@2 ~ [bb3,f4] [bb3,d4,f4]@3 ~ [bb3,d4,f4] ~ d4 ~", // Bb Bb5 Bb
  U: "[bb3,d4,f4]@3 ~ [bb3,d4,f4]@2 [bb3,d4] ~ [bb3,d4,f4]@2 [bb3,d4] f4 [bb3,d4,f4]@2 [bb3,d4,f4] ~", // Bb
  V: "[a3,c4,f4]@3 ~ [a3,c4,f4]@2 [a3,c4] ~ [a3,c4,f4]@3 ~ [a3,c4,f4]@2 c4 ~", // F Am F
  W: "[a3,c4,f4]@3 ~ [a3,c4,f4] ~ c4 ~ [a3,c4,f4]@2 c4 ~ [a3,c4,f4]@2 [c4,f4] a3", // F F5
  X: "[bb3,d4,f4]@3 ~ [bb3,d4,f4]@2 [bb3,d4] ~ [bb3,d4,f4]@3 ~ [bb3,d4,f4]@2 ~ bb3", // Bb
  Y: "[bb3,d4,f4]@3 ~ [bb3,d4,f4]@2 [bb3,d4,f4] ~ [bb3,d4,f4]@3 ~ [bb3,d4,f4]@2 [bb3,d4] ~", // Bb
  Z: "[a3,c4,f4]@3 ~ [a3,c4,f4]@2 [a3,c4] ~ [a3,c4,f4]@3 ~ [a3,c4,f4] ~ [a3,c4,f4] ~", // F Am F
  AA: "[f3,bb3,d4]@3 ~ [f3,bb3,d4]@2 bb3 ~ [f3,bb3,d4]@3 ~ [f3,bb3,d4]@2 bb3 ~", // Bb
  AB: "[f3,bb3,d4]@3 ~ [f3,bb3,d4]@2 bb3 ~ [f3,bb3,d4]@3 ~ [f3,bb3,d4]@2 [f3,bb3] ~", // Bb Bb5
  AC: "[f3,bb3,d4]@3 ~ [f3,bb3,d4]@2 bb3 ~ [f3,bb3,d4]@4 [f3,bb3,d4]@2 bb3 ~", // Bb
  AD: "[a3,c4,f4]@3 ~ [a3,c4,f4]@2 c4 ~ [a3,c4,f4]@2 c4 ~ [a3,c4,f4]@2 [a3,c4] ~", // F Am
  AE: "[f3,bb3,d4]@3 ~ [f3,bb3,d4]@2 bb3 ~ [f3,bb3,d4]@3 ~ [f3,bb3,d4]@2 ~@2", // Bb
  AF: "[f3,bb3,d4]@3 ~ [f3,bb3,d4]@2 ~@2 [f3,bb3,d4]@2 [f3,bb3] ~ [f3,bb3,d4]@2 bb3 ~", // Bb Bb5 Bb
  AG: "[f3,bb3,d4]@3 ~ [f3,bb3,d4]@2 bb3 ~ [f3,bb3,d4]@2 ~ bb3 [f3,bb3,d4]@2 bb3 ~", // Bb
  AH: "[f3,bb3,d4]@4 [f3,bb3,d4]@2 bb3 ~ [f3,bb3,d4]@2 ~@2 [f3,bb3,d4]@2 f3 ~", // Bb
  AI: "[g3,b3,d4,f4]@3 ~ [g3,b3,d4,f4]@2 b3 ~ [g3,b3,d4,f4]@3 ~ [g3,b3,d4,f4]@2 b3 ~", // G7
  AJ: "[g3,b3,d4,f4]@3 ~ [g3,b3,d4,f4]@2 b3 ~ [g3,b3,d4,f4]@3 ~ [g3,b3,d4,f4]@2 [g3,b3] ~", // G7 G
  AK: "[g3,b3,d4,f4]@3 ~ [g3,b3,d4,f4]@2 b3 ~ [g3,b3,d4,f4]@3 ~ [g3,b3,d4,f4]@2 g3 ~", // G7
  AL: "[g3,bb3,c4,e4]@3 ~ [g3,bb3,c4,e4]@2 bb3 ~ [g3,bb3,c4,e4]@3 ~ [g3,bb3,c4,e4]@2 bb3 ~", // C7
  AM: "[g3,bb3,c4,e4]@3 ~ [g3,bb3,c4,e4]@2 bb3 ~ [g3,bb3,c4,e4]@2 ~@2 [g3,bb3,c4,e4]@2 g3 ~", // C7
  AN: "[g3,bb3,c4,e4]@3 ~ [g3,bb3,c4,e4]@2 [bb3,c4] ~ [g3,bb3,c4,e4]@3 ~ [g3,bb3,c4,e4]@2 bb3 ~", // C7 Bbsus2 C7
  AO: "[g3,bb3,c4,e4]@3 ~ [g3,bb3,c4,e4]@3 ~ [g3,bb3,c4,e4]@3 ~ [g3,bb3,c4,e4]@4", // C7
  AP: "[bb3,d4]@3 ~ [bb3,d4,f4]@2 ~ [bb3,f4] [bb3,d4,f4]@3 ~ [bb3,d4,f4] ~ d4 ~", // Bb Bb5 Bb
  AQ: "[bb3,d4]@3 ~@2 bb3 ~ [bb3,d4,f4] [bb3,d4,f4]@3 ~ [bb3,d4,f4] ~ [bb3,d4] ~, ~@2 [bb3,d4,f4] ~@5", // Bb
  AR: "[bb3,d4,f4]@3 ~ [bb3,d4,f4]@2 [bb3,d4,f4] ~ [bb3,d4,f4]@2 bb3 [d4,f4] [bb3,d4,f4]@2 [bb3,d4,f4] ~", // Bb Dm Bb
  AS: "[a3,c4,f4]@3 ~ [a3,c4,f4]@2 [a3,c4] ~ [a3,c4,f4]@3 ~ [a3,c4,f4]@2 [a3,c4] ~", // F Am F Am
  AT: "[a3,c4,f4]@3 ~ [a3,c4,f4] ~ [a3,c4] ~ [a3,c4,f4]@2 c4 a3 [a3,c4,f4]@2 [c4,f4] a3", // F Am F F5
  AU: "[bb3,d4,f4]@3 ~ [bb3,d4,f4]@2 [bb3,d4,f4] ~ [bb3,d4,f4]@3 ~ [bb3,d4,f4]@2 ~ bb3", // Bb
  AV: "[bb3,d4,f4]@3 ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4]@3 ~ [bb3,d4,f4]@2 [bb3,d4,f4] ~", // Bb
  AW: "[bb3,d4,f4]@3 ~ [bb3,d4,f4]@2 [bb3,d4,f4] ~ [bb3,d4,f4]@2 bb3 [d4,f4] [bb3,d4,f4]@2 ~@2", // Bb Dm Bb
})).s("gm_acoustic_guitar_steel").gain(0.11).pan(0.8)

// chords · acoustic guitar steel · "STEEL GTR" · soft notes
const acoustic_guitar_steel_2 = note(`<
  A B C D E F G H I@2 E J K L J M ~@2 I N C@2 I C E O I ~ P Q C R Q S E ~ T@3 U V W C E@2 N X Y T Z T AA AB AC AD AE AF
  AG AH ~ A B C D E F G H I@2 AI J@2 L J M ~@2 I N C@2 I C E O I ~ P Q C R Q S E ~@10 AJ AK AL AM AN AK AO AP AQ AK AR
  AM AN AK AS@8 ~
>`.pickRestart({
  A: "~@7 a3 ~@7 a3", B: "~@7 a3 ~@2 a3 ~@5", C: "~@14 a3 ~", D: "~@7 c4 ~@2 a3 ~@3 a3 ~", E: "~@6 a3 ~@7 a3 ~",
  F: "~@11 f4 ~@2 a3 ~", G: "~@7 f4 ~@6 c4 ~", H: "~@6 c4 ~@3 a3 ~@3 [a3,f4] ~", I: "~@6 a3 ~@9", J: "~@6 [a3,f4] ~@9",
  K: "~@7 [a3,f4] ~@8", L: "~@7 a3 ~@6 [a3,f4] ~", M: "~@10 a3 ~@5", N: "~@11 a3 ~@4", O: "~@11 a3 ~@2 a3 ~",
  P: "~@5 bb3 ~ d4 ~@6 bb3 ~", Q: "~@6 f4 ~@9", R: "~@6 a3 ~@4 a3 ~@4", S: "~@14 f4 ~", T: "~@6 f3 ~@7 f3 ~",
  U: "~@15 d4", V: "~@6 [f3,d4] ~@7 f3 ~", W: "~@7 f3 ~@8", X: "~@6 f3 ~@7 bb3 ~", Y: "~@6 bb3 ~@7 f3 ~",
  Z: "~@6 f3 ~@3 f3 ~@3 f3 ~", AA: "~@10 f3 ~@5", AB: "~@6 d4 ~@7 g3 ~", AC: "~@7 g3 ~@8", AD: "~@6 [g3,d4] ~@7 d4 ~",
  AE: "~@6 g3 ~@3 g3 ~@5", AF: "~@6 [g3,c4] ~@7 g3 ~", AG: "~@11 g3 ~@4", AH: "~@6 g3 ~@7 g3 ~", AI: "~@7 a3 ~@6 a3 ~",
  AJ: "~@14 [bb3,d4,f4] ~", AK: "[a3,c4,f4]@3 ~ [a3,c4,f4]@2 [a3,c4] ~ [a3,c4,f4]@3 ~ [a3,c4,f4]@2 [a3,c4] ~",
  AL: "[a3,c4,f4]@3 ~ [a3,c4,f4] ~ [a3,c4] ~ [a3,c4,f4]@2 c4 a3 [a3,c4,f4]@2 [a3,c4,f4] ~", // F Am F
  AM: "[bb3,d4,f4]@3 ~ [bb3,d4,f4]@2 [bb3,d4,f4] ~ [bb3,d4,f4]@3 ~ [bb3,d4,f4]@2 ~ bb3", // Bb
  AN: "[bb3,d4,f4]@3 ~ [bb3,d4,f4]@2 [bb3,d4,f4] ~ [bb3,d4,f4]@3 ~ [bb3,d4,f4]@2 [bb3,d4,f4] ~", // Bb
  AO: "[a3,c4,f4]@3 ~ [a3,c4,f4]@2 [a3,c4] ~ [a3,c4,f4]@3 ~ [a3,c4,f4] ~ [a3,c4,f4] ~", // F Am F
  AP: "[bb3,d4]@3 ~@2 bb3 ~ [bb3,d4,f4] [bb3,d4,f4]@3 ~ [bb3,d4,f4] ~ [bb3,d4] ~, ~@2 [bb3,d4,f4] ~@5", // Bb
  AQ: "[bb3,d4,f4]@3 ~ [bb3,d4,f4]@2 [bb3,d4,f4] ~ [bb3,d4,f4]@2 bb3 [d4,f4] [bb3,d4,f4]@2 [bb3,d4,f4] ~", // Bb Dm Bb
  AR: "[a3,c4,f4]@3 ~ [a3,c4,f4] ~ [a3,c4] ~ [a3,c4,f4]@2 c4 a3 [a3,c4,f4]@2 [c4,f4] a3", // F Am F F5
  AS: "[[a3,c4,f4]@3 ~ [a3,c4,f4]@2 [a3,c4] ~ [a3,c4,f4]@3 ~ [a3,c4,f4] ~ [c4,f4] ~@113, ~@7 a3@57]/8", // F Am F F5
})).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 B@5 D@2 E F@2 G H F@3 H F@4 I J D K J@2 B C L M@5 N@4 M@6 O@4 P@4 A B@6 C B@5 D@2 E F@2 G H F@3 H F@4 Q J D K
  J@2 B C Q J B C J@2 B C Q J B R ~@20
>`.pickRestart({
  A: "f3 ~@3 a3 ~@2 a3 c4 ~@2 c4 d4 ~@3", B: "f3 ~@2 f3 a3 ~@2 a3 c4 ~@2 c4 d4 ~@2 d4",
  C: "f4 ~@2 f4 d4 ~@2 d4 c4 ~@2 c4 a3 ~@2 a3", D: "f3 ~@2 f3 a3 ~@2 a3 c4 ~@2 c4 d4 ~@3",
  E: "f4 ~@2 f4 c4 ~@2 c4 d4 ~@2 d4 a3 ~@2 a3", F: "d3 ~@2 d3 f3 ~@2 f3 a3 ~@2 a3 f3 ~@2 f3",
  G: "d3 ~@2 d3 f3 ~@2 f3 a3 ~@2 a3 f3 ~@3", H: "d3 ~@2 d3 a2 ~@2 a2 c3 ~@2 c3 db3 ~@2 db3",
  I: "~@3 bb2 d3 ~@2 d3 f3 ~@2 f3 g3 ~@2 g3", J: "bb2 ~@2 bb2 d3 ~@2 d3 f3 ~@2 f3 g3 ~@2 g3",
  K: "f4 ~@3 d4 ~@2 d4 c4 ~@2 c4 a3 ~@2 a3",
  L: "[bb2,f3] ~@3 [bb2,g3] ~@2 [bb2,g3] [bb2,f3] ~@2 [bb2,f3] [bb2,g3] ~@2 [bb2,g3]", // Bb5 Eb Bb5 Eb
  M: "[bb2,f3] ~@2 [bb2,f3] [bb2,g3] ~@2 [bb2,g3] [bb2,f3] ~@2 [bb2,f3] [bb2,g3] ~@2 [bb2,g3]", // Bb5 Eb Bb5 Eb
  N: "[f3,c4] ~@2 [f3,c4] [f3,d4] ~@2 [f3,d4] [f3,c4] ~@2 [f3,c4] [f3,d4] ~@2 [f3,d4]", // F5 Dm F5 Dm
  O: "[d3,g3] ~@2 [d3,g3] [e3,g3] ~@2 [e3,g3] [d3,g3] ~@2 [d3,g3] [e3,g3] ~@2 [e3,g3]", // G5 Em G5 Em
  P: "[c3,g3] ~@2 [c3,g3] [c3,a3] ~@2 [c3,a3] [c3,g3] ~@2 [c3,g3] [c3,a3] ~@2 [c3,a3]", // C5 F C5 F
  Q: "~@4 d3 ~@2 d3 f3 ~@2 f3 g3 ~@2 g3", R: "f4 ~@2 f4 d4 ~@2 d4 c4 ~@2 c4 a3 ~@3",
})).s("gm_electric_guitar_muted").gain(0.22)

// other · electric guitar muted · "MUTED GTR" · soft notes
const electric_guitar_muted_2 = note(`<
  A ~@12 A@2 ~@3 B ~@11 A C ~@28 A ~@12 A@2 ~@3 B ~@11 A C ~@15 D E@2 F G H E F G E@2 F I@8 ~
>`.pickRestart({
  A: "~@15 d4", B: "~@15 f3", C: "~@3 f4 ~@12", D: "~@15 a3", E: "bb2 ~@2 bb2 d3 ~@2 d3 f3 ~@2 f3 g3 ~@2 g3",
  F: "f3 ~@2 f3 a3 ~@2 a3 c4 ~@2 c4 d4 ~@2 d4", G: "f4 ~@2 f4 d4 ~@2 d4 c4 ~@2 c4 a3 ~@2 a3",
  H: "~@4 d3 ~@2 d3 f3 ~@2 f3 g3 ~@2 g3", I: "[f4 ~@2 f4 d4 ~@2 d4 c4 ~@2 c4 a3 ~@2 a3@113]/8",
})).s("gm_electric_guitar_muted").gain(0.09)

// drums · kick
const kick = s("bd").struct("<[x!2]!27 [x ~ x!2] [x!2]!31 [x ~ x!2] [x!2]!27 [x ~ x!2] [x!2]!16 ~@24>").gain(0.5)

// drums · kick · soft notes
const kick_soft = s("bd").struct("<~@104 [x!2]!16 ~@8>").gain(0.15)

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

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

// drums · low tom
const low_tom = s("lt").struct("<~@35 A ~@9 B ~@49 A ~@7 A ~@7 A ~@7 A ~@8>".pickRestart({
  A: "~@15 x", B: "~@11 x!2 ~@3",
})).gain(0.45)

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

// drums · crash · soft notes
const crash_soft = s("cr").struct("<~@106 A ~ B ~ A ~ C ~ A ~ B ~ A ~@9>".pickRestart({
  A: "x", B: "x!2 ~@2", C: "~ x ~@2",
})).gain(0.15)

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

// drums · ride · soft notes
const ride_soft = s("rd").struct(`<
  ~@3 A ~@9 B ~@23 C@4 ~ D@2 B ~@18 A ~@9 B ~@30 E F G H E I G J E F G H E I G J ~@8
>`.pickRestart({
  A: "~@11 x ~@4", B: "~@15 x", C: "~@7 x ~@7 x", D: "~@7 x ~@8", E: "~@2 x!2", F: "x ~@3 x ~@2 x!2 ~@3 x ~@2 x",
  G: "~ x!3", H: "x ~@3 x ~@3 x ~@2 x!2 ~@2 x", I: "x ~@2 x!2 ~@3 x ~@3 x ~@2 x", J: "x ~@2 x!2 ~@3 x ~@7",
})).gain(0.2)

stack(
// … 3 more lines

More by Elvis Presley