Strudelify

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: edit a riff to change every repeat.

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

// bass · acoustic bass · "ACOU BASS" · soft notes
const bass_soft = note("<~@103 A B C D E C F G H B C D I C F G J@8 ~>".pickRestart({
  A: "~@3 b1", B: "bb1 ~ f2 ~", C: "bb1@4 ~@4 f2@5 ~@3", D: "f1@5 ~@3 c2@5 ~@3", E: "f1@4 g1@4 ab1@4 a1@3 ~",
  F: "bb1@5 ~@3 f2@4 ~@4", G: "f1@5 ~@3 c2@4 ~@4", H: "f1 ~ c2 b1", I: "f1@4 g1@4 ab1@3 ~ a1@3 ~",
  J: "[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 C D C E F D G C H I C@3 J K L M N O P Q R S T U V W X Y Z AA AB C AC AD@3 AE AF AE C@3 AG AH AI AD AJ AD AK AL@2
  AM AN AO AP AQ AR A B C D C E F D G C H I C@3 J K L M N O P Q AS S T U V AT AU Y Z AA AB C AC AV AW AX AY AZ BA AX AC
  AV BB ~@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 c4 ~ [a3,c4,f4]@3 ~ [a3,c4,f4]@2 c4 ~", // F
  D: "[a3,c4,f4]@3 ~ [a3,c4,f4]@2 ~@2 [a3,c4,f4]@2 c4 ~ [a3,c4,f4]@2 c4 ~", // F
  E: "[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
  F: "[a3,c4,f4]@3 ~ [a3,c4,f4] ~ c4 a3 [a3,c4,f4]@3 ~ [a3,c4,f4]@2 ~@2", // F
  G: "[a3,c4,f4]@3 ~ [a3,c4,f4]@2 c4 ~ [a3,c4,f4]@3 ~ [a3,c4,f4]@2 [a3,c4] ~", // F Am
  H: "[a3,c4,f4]@3 ~ [a3,c4,f4]@2 ~ c4 [a3,c4,f4]@3 ~ [a3,c4,f4]@2 c4 ~", // F
  I: "[a3,c4,f4]@3 ~ [a3,c4,f4] ~ c4 ~ [a3,c4,f4]@2 [a3,c4,f4] ~ [a3,c4,f4]@2 [a3,c4,f4] ~", // F
  J: "[a3,c4,f4]@3 ~ [a3,c4,f4]@2 c4 ~ [a3,c4,f4]@2 c4 ~ [a3,c4,f4]!3 ~", // F
  K: "[a3,d4,f4]@3 ~ [a3,d4,f4]@2 d4 ~ [a3,d4,f4]@3 ~ [a3,d4,f4]@2 d4 ~", // Dm
  L: "[a3,d4,f4]@3 ~ [a3,d4,f4]@2 d4 ~ [a3,d4,f4]@3 ~ [a3,d4,f4]@2 ~@2", // Dm
  M: "[a3,d4,f4]@3 ~ [a3,d4,f4]@2 d4 ~ [a3,d4,f4]@3 ~ [a3,d4,f4] ~@3", // Dm
  N: "[a3,d4,f4]@3 ~ [a3,d4,f4]@2 d4 ~ [a3,d4,f4]@2 d4 ~ [a3,d4,f4] ~ d4 ~", // Dm
  O: "[a3,d4,f4]@3 ~ [a3,d4,f4] ~ d4 ~ [a3,d4,f4]@3 ~ [a3,d4,f4] ~ d4 ~", // Dm
  P: "[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
  Q: "[a3,d4,f4]@3 ~ [a3,d4,f4] ~ d4 ~ [a3,d4,f4]@2 ~@2 [a3,d4,f4] ~ [a3,d4,f4] ~", // Dm
  R: "[a3,d4,f4]@3 ~ [a3,d4,f4]@2 [a3,d4,f4] ~ [a3,d4,f4]@2 d4 ~ [a3,d4,f4]@2 d4 ~", // Dm
  S: "[a3,d4,f4]@3 ~ [a3,d4,f4] ~ d4 ~ [a3,d4,f4]@3 ~ [a3,d4,f4]@2 [d4,f4] ~", // Dm
  T: "[a3,d4,f4]@3 ~ [a3,d4,f4]@2 d4 a3 [a3,d4,f4]@2 ~ [d4,f4] [a3,d4,f4] ~ d4 ~", // Dm
  U: "[a3,d4,f4]@3 ~ [a3,d4,f4]@2 [d4,f4] ~ [a3,d4,f4]@3 ~ [a3,d4,f4] ~ [a3,d4] ~", // Dm D5
  V: "[a3,d4,f4]@3 ~ [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4]@2 [a3,d4,f4] ~ [a3,d4,f4]@2 ~@2", // Dm
  W: "[bb3,d4,f4]@3 ~ [bb3,d4,f4]@2 ~ [bb3,f4] [bb3,d4,f4]@3 ~ [bb3,d4,f4] ~ d4 ~", // Bb Bb5 Bb
  X: "[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
  Y: "[a3,c4,f4]@3 ~ [a3,c4,f4]@2 [a3,c4] ~ [a3,c4,f4]@3 ~ [a3,c4,f4]@2 c4 ~", // F Am F
  Z: "[a3,c4,f4]@3 ~ [a3,c4,f4] ~ c4 ~ [a3,c4,f4]@2 c4 ~ [a3,c4,f4]@2 [c4,f4] a3", // F F5
  AA: "[bb3,d4,f4]@3 ~ [bb3,d4,f4]@2 [bb3,d4] ~ [bb3,d4,f4]@3 ~ [bb3,d4,f4]@2 ~ bb3", // Bb
  AB: "[bb3,d4,f4]@3 ~ [bb3,d4,f4]@2 [bb3,d4,f4] ~ [bb3,d4,f4]@3 ~ [bb3,d4,f4]@2 [bb3,d4] ~", // Bb
  AC: "[a3,c4,f4]@3 ~ [a3,c4,f4]@2 [a3,c4] ~ [a3,c4,f4]@3 ~ [a3,c4,f4] ~ [a3,c4,f4] ~", // F Am F
  AD: "[f3,bb3,d4]@3 ~ [f3,bb3,d4]@2 bb3 ~ [f3,bb3,d4]@3 ~ [f3,bb3,d4]@2 bb3 ~", // Bb
  AE: "[f3,bb3,d4]@3 ~ [f3,bb3,d4]@2 bb3 ~ [f3,bb3,d4]@3 ~ [f3,bb3,d4]@2 [f3,bb3] ~", // Bb Bb5
  AF: "[f3,bb3,d4]@3 ~ [f3,bb3,d4]@2 bb3 ~ [f3,bb3,d4]@4 [f3,bb3,d4]@2 bb3 ~", // Bb
  AG: "[a3,c4,f4]@3 ~ [a3,c4,f4]@2 c4 ~ [a3,c4,f4]@2 c4 ~ [a3,c4,f4]@2 [a3,c4] ~", // F Am
  AH: "[f3,bb3,d4]@3 ~ [f3,bb3,d4]@2 bb3 ~ [f3,bb3,d4]@3 ~ [f3,bb3,d4]@2 ~@2", // Bb
  AI: "[f3,bb3,d4]@3 ~ [f3,bb3,d4]@2 ~@2 [f3,bb3,d4]@2 [f3,bb3] ~ [f3,bb3,d4]@2 bb3 ~", // Bb Bb5 Bb
  AJ: "[f3,bb3,d4]@3 ~ [f3,bb3,d4]@2 bb3 ~ [f3,bb3,d4]@2 ~ bb3 [f3,bb3,d4]@2 bb3 ~", // Bb
  AK: "[f3,bb3,d4]@4 [f3,bb3,d4]@2 bb3 ~ [f3,bb3,d4]@2 ~@2 [f3,bb3,d4]@2 f3 ~", // Bb
  AL: "[g3,b3,d4,f4]@3 ~ [g3,b3,d4,f4]@2 b3 ~ [g3,b3,d4,f4]@3 ~ [g3,b3,d4,f4]@2 b3 ~", // G7
  AM: "[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
  AN: "[g3,b3,d4,f4]@3 ~ [g3,b3,d4,f4]@2 b3 ~ [g3,b3,d4,f4]@3 ~ [g3,b3,d4,f4]@2 g3 ~", // G7
  AO: "[g3,bb3,c4,e4]@3 ~ [g3,bb3,c4,e4]@2 bb3 ~ [g3,bb3,c4,e4]@3 ~ [g3,bb3,c4,e4]@2 bb3 ~", // C7
  AP: "[g3,bb3,c4,e4]@3 ~ [g3,bb3,c4,e4]@2 bb3 ~ [g3,bb3,c4,e4]@2 ~@2 [g3,bb3,c4,e4]@2 g3 ~", // C7
  AQ: "[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
  AR: "[g3,bb3,c4,e4]@3 ~ [g3,bb3,c4,e4]@3 ~ [g3,bb3,c4,e4]@3 ~ [g3,bb3,c4,e4]@4", // C7
  AS: "[a3,d4,f4]@3 ~ [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4]@2 d4 ~ [a3,d4,f4]@2 d4 ~", // Dm
  AT: "[bb3,d4]@3 ~ [bb3,d4,f4]@2 ~ [bb3,f4] [bb3,d4,f4]@3 ~ [bb3,d4,f4] ~ d4 ~", // Bb Bb5 Bb
  AU: "[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 Dm Bb
  AV: "[bb3,d4]@3 ~@2 bb3 ~ [bb3,d4,f4] [bb3,d4,f4]@3 ~ [bb3,d4,f4] ~ [bb3,d4] ~, ~@2 [bb3,d4,f4] ~@5", // Bb
  AW: "[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
  AX: "[a3,c4,f4]@3 ~ [a3,c4,f4]@2 [a3,c4] ~ [a3,c4,f4]@3 ~ [a3,c4,f4]@2 [a3,c4] ~", // F Am F Am
  AY: "[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
  AZ: "[bb3,d4,f4]@3 ~ [bb3,d4,f4]@2 [bb3,d4,f4] ~ [bb3,d4,f4]@3 ~ [bb3,d4,f4]@2 ~ bb3", // Bb
  BA: "[bb3,d4,f4]@3 ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4]@3 ~ [bb3,d4,f4]@2 [bb3,d4,f4] ~", // Bb
  BB: "[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 J K L M K N ~@2 I O C@2 I C E P I ~ Q R C S R T E ~ U V U W X Y C E@2 O Z AA U AB U AC AD AE AF AG
  AH AI AJ ~ A B C D E F G H I@2 J K L M K N ~@2 I O C@2 I C E P I ~ Q R C S R T E ~@10 AK AL AM AN AO AL AP AQ AR AL AS
  AN AO AL AT@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: "~@7 a3 ~@6 a3 ~",
  K: "~@6 [a3,f4] ~@9", L: "~@7 [a3,f4] ~@8", M: "~@7 a3 ~@6 [a3,f4] ~", N: "~@10 a3 ~@5", O: "~@11 a3 ~@4",
  P: "~@11 a3 ~@2 a3 ~", Q: "~@5 bb3 ~ d4 ~@6 bb3 ~", R: "~@6 f4 ~@9", S: "~@6 a3 ~@4 a3 ~@4", T: "~@14 f4 ~",
  U: "~@6 f3 ~@7 f3 ~", V: "~@6 f3 ~@8 f3", W: "~@15 d4", X: "~@6 [f3,d4] ~@7 f3 ~", Y: "~@7 f3 ~@8",
  Z: "~@6 f3 ~@7 bb3 ~", AA: "~@6 bb3 ~@7 f3 ~", AB: "~@6 f3 ~@3 f3 ~@3 f3 ~", AC: "~@10 f3 ~@5", AD: "~@6 d4 ~@7 g3 ~",
  AE: "~@7 g3 ~@8", AF: "~@6 [g3,d4] ~@7 d4 ~", AG: "~@6 g3 ~@3 g3 ~@5", AH: "~@6 [g3,c4] ~@7 g3 ~", AI: "~@11 g3 ~@4",
  AJ: "~@6 g3 ~@7 g3 ~", AK: "~@14 [bb3,d4,f4] ~",
  AL: "[a3,c4,f4]@3 ~ [a3,c4,f4]@2 [a3,c4] ~ [a3,c4,f4]@3 ~ [a3,c4,f4]@2 [a3,c4] ~", // F Am F Am
  AM: "[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
  AN: "[bb3,d4,f4]@3 ~ [bb3,d4,f4]@2 [bb3,d4,f4] ~ [bb3,d4,f4]@3 ~ [bb3,d4,f4]@2 ~ bb3", // Bb
  AO: "[bb3,d4,f4]@3 ~ [bb3,d4,f4]@2 [bb3,d4,f4] ~ [bb3,d4,f4]@3 ~ [bb3,d4,f4]@2 [bb3,d4,f4] ~", // Bb
  AP: "[a3,c4,f4]@3 ~ [a3,c4,f4]@2 [a3,c4] ~ [a3,c4,f4]@3 ~ [a3,c4,f4] ~ [a3,c4,f4] ~", // F Am F
  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] ~ [a3,c4] ~ [a3,c4,f4]@2 c4 a3 [a3,c4,f4]@2 [c4,f4] a3", // F Am F F5
  AT: "[[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 I F@2 J K D L K@2 B C M N@5 O@4 N@6 P@4 Q@4 A B@6 C B@5 D@2 E F@2 G H F@3 H F I F@2
  R K D L K@2 B C R K B C K@2 B C R K B S ~@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: "d3@2 ~ d3 f3 ~@2 f3 a3 ~@2 a3 f3 ~@2 f3", J: "~@3 bb2 d3 ~@2 d3 f3 ~@2 f3 g3 ~@2 g3",
  K: "bb2 ~@2 bb2 d3 ~@2 d3 f3 ~@2 f3 g3 ~@2 g3", L: "f4 ~@3 d4 ~@2 d4 c4 ~@2 c4 a3 ~@2 a3",
  M: "[bb2,f3] ~@3 [bb2,g3] ~@2 [bb2,g3] [bb2,f3] ~@2 [bb2,f3] [bb2,g3] ~@2 [bb2,g3]", // Bb5 Eb Bb5 Eb
  N: "[bb2,f3] ~@2 [bb2,f3] [bb2,g3] ~@2 [bb2,g3] [bb2,f3] ~@2 [bb2,f3] [bb2,g3] ~@2 [bb2,g3]", // Bb5 Eb Bb5 Eb
  O: "[f3,c4] ~@2 [f3,c4] [f3,d4] ~@2 [f3,d4] [f3,c4] ~@2 [f3,c4] [f3,d4] ~@2 [f3,d4]", // F5 Dm F5 Dm
  P: "[d3,g3] ~@2 [d3,g3] [e3,g3] ~@2 [e3,g3] [d3,g3] ~@2 [d3,g3] [e3,g3] ~@2 [e3,g3]", // G5 Em G5 Em
  Q: "[c3,g3] ~@2 [c3,g3] [c3,a3] ~@2 [c3,a3] [c3,g3] ~@2 [c3,g3] [c3,a3] ~@2 [c3,a3]", // C5 F C5 F
  R: "~@4 d3 ~@2 d3 f3 ~@2 f3 g3 ~@2 g3", S: "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)
// … 13 more lines

More by Elvis Presley