Strudelify
Hound Dog cover art

1958 · Elvis' Golden Records

Hound Dog

Elvis Presley

KeyB♭ majorTempo200 bpm
0:00/0:00
// Hound Dog — Elvis Presley
// 200 bpm, 4/4, key A# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 161 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(200/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 · electric bass finger · "FINGERDBAS"
const bass = note(`<
  ~@2 A@4 B@2 A C D E F G H I A J B@2 I A D B I G A@4 K B I A D K I G A@4 B@2 A@2 D B A G A@3 L B@2 A@2 D K H G A@4 B@2
  A@2 M N O@2 ~@27 P@8 Q@4 R@8 S@4 T@8 U@4 V@8 S@4 W@8 X@4
>`.pickRestart({
  A: "bb1@4 ~@3 d2@3 ~ f2 g2@2 ~ f2", B: "eb2@4 ~@3 g2@3 ~ bb2 c3@3 bb2", C: "bb1@5 ~@2 d2@4 f2 g2@2 ~ f2, ~@12 a2 ~@3",
  D: "f2@5 ~@2 a2@4 c3 d3@2 ~ c3", E: "eb2@5 ~@2 g2@4 bb2 c3@3 bb2", F: "bb1@6 ~ d2@3 ~ f2 g2@3 [e2,f2]", G: "bb1 ~@7",
  H: "bb1@4 ~@3 d2@3 ~ f2 g2@3 f2", I: "bb1@5 ~@2 d2@4 f2 g2@2 ~ f2", J: "bb1@5 ~@2 d2@3 ~ f2 g2@3 f2",
  K: "eb2@5 ~@2 g2@3 ~ bb2 c3@2 ~ bb2", L: "bb1@3 ~@4 d2@3 ~ f2 g2@2 ~ f2", M: "f2@5 ~@2 a2@3 ~ c3 d3@2 ~ c3",
  N: "eb2@4 ~@3 g2@2 ~@2 bb2 c3@3 bb2", O: "[bb1@4 ~@3 eb2@4 ~ bb2@3 bb1@2 ~@15, ~@11 c3@2 ~@19]/2",
  P: "[~@8 bb1@4 ~@3 d2@3 ~ f2 g2@2 ~ f2 bb1@5 ~@2 d2@3 ~ f2 g2@2 ~ f2 bb1@5 ~@2 d2@3 ~ f2 g2@2 ~ f2 bb1@5 ~@2 d2@3 ~ f2 g2@3 f2 eb2@5 ~@2 g2@4 bb2 c3@3 bb2 eb2@5 ~@2 g2@3 ~ bb2 c3@3 bb2 bb1@5 ~@2 d2@4 f2 g2@2 ~ f2 bb1@5 ~@2 d2]/8",
  Q: "[~@3 f2 g2@2 ~ f2 f2@5 ~@2 a2@4 c3 d3@3 c3 eb2@5 ~@2 g2@4 bb2 c3@3 bb2 bb1@5 ~@2 d2@4 f2 g2@3 [e2,f2] bb1@2 ~@6, ~@4 a2 ~@59]/4", // Fmaj7
  R: "[~@8 bb1@4 ~@3 d2@3 ~ f2 g2@3 f2 bb1@5 ~@2 d2@4 f2 g2@2 ~ f2 bb1@5 ~@2 d2@3 ~ f2 g2@2 ~ f2 bb1@5 ~@2 d2@3 ~ f2 g2@3 f2 eb2@5 ~@2 g2@4 bb2 c3@3 bb2 eb2@5 ~@2 g2@3 ~ bb2 c3@3 bb2 bb1@5 ~@2 d2@4 f2 g2@2 ~ f2 bb1@5 ~@2 d2]/8",
  S: "[~@3 f2 g2@3 f2 f2@5 ~@2 a2@4 c3 d3@2 ~ c3 eb2@4 ~@3 g2@4 bb2 c3@3 bb2 bb1@5 ~@2 d2@4 f2 g2@2 ~ f2 bb1@2 ~@6]/4",
  T: "[~@8 bb1@4 ~@3 d2@3 ~ f2 g2@2 ~ f2 bb1@5 ~@2 d2@3 ~ f2 g2@2 ~ f2 bb1@5 ~@2 d2@3 ~ f2 g2@2 ~ f2 bb1@5 ~@2 d2@3 ~ f2 g2@3 f2 eb2@5 ~@2 g2@4 bb2 c3@2 ~ bb2 eb2@5 ~@2 g2@3 ~ bb2 c3@3 bb2 bb1@5 ~@2 d2@4 f2 g2@2 ~ f2 bb1@5 ~@2 d2]/8",
  U: "[~@3 f2 g2@2 ~ f2 f2@5 ~@2 a2@3 ~ c3 d3@2 ~ c3 eb2@4 ~@3 g2@4 bb2 c3@2 ~ bb2 bb1@6 ~ d2@3 ~ f2 g2@2 ~ f2 bb1@2 ~@6]/4",
  V: "[~@8 bb1@4 ~@3 d2@3 ~ f2 g2@2 ~ f2 bb1@5 ~@2 d2@3 ~ f2 g2@2 ~ f2 bb1@5 ~@2 d2@3 ~ f2 g2@2 ~ f2 bb1@5 ~@2 d2@3 ~ f2 g2@3 f2 eb2@5 ~@2 g2@4 bb2 c3@3 bb2 eb2@5 ~@2 g2@3 ~ bb2 c3@3 bb2 bb1@4 ~@3 d2@3 ~ f2 g2@2 ~ f2 bb1@5 ~@2 d2]/8",
  W: "[~@8 bb1@4 ~@3 d2@3 ~ f2 g2@2 ~ f2 bb1@5 ~@2 d2@3 ~ f2 g2@2 ~ f2 bb1@5 ~@2 d2@3 ~ f2 g2@2 ~ f2 bb1@3 ~@4 d2@3 ~ f2 g2@2 ~ f2 eb2@4 ~@3 g2@3 ~ bb2 c3@3 bb2 eb2@5 ~@2 g2@3 ~ bb2 c3@3 bb2 bb1@4 ~@3 d2@3 ~ f2 g2@2 ~ f2 bb1@5 ~@2 d2]/8",
  X: "[~@3 f2 g2@3 f2 f2@5 ~@2 a2@4 c3 d3@2 ~ c3 eb2@5 ~@2 g2@3 ~ bb2 c3@2 ~ bb2 bb1@4 ~@3 d2@3 ~ f2 g2@3 f2 bb1@2 ~@6]/4",
})).s("gm_electric_bass_finger").gain(0.4).pan(0.6)

// other · overdriven guitar · "OVERDRIVE"
const overdriven_guitar = note("<~@37 A B C D E D C D F G H I J ~@86 K L@2 M@2 N@2 O@2 P Q R S ~@12>".pickRestart({
  A: "~@4 ab4@3 bb4 db5@2 ~@2 db5@2 ~ bb4, ~@3 f4@2 ~@6 eb5@2 ~@3", B: "bb4@2 ~ ab4 bb4@10 ~@2",
  C: "~@3 f4 ab4@2 ~ bb4 db5@2 ~ eb5 db5@2 ~ bb4", D: "bb4@2 ~ ab4 bb4@12",
  E: "~@3 f4 ab4@2 ~ bb4 db5@2 ~ eb5 [db5,eb5]@2 ~ bb4", F: "~@3 bb4@2 ~@2 bb4 f4@3 g4 bb4@2 ~@2",
  G: "b4 c5 ~ f5 b4 c5 ~ f5 b4 c5 ~ f5 b4 c5 ~ f5", H: "bb4 c5 ~ eb5 bb4 c5 ~ eb5 bb4 c5 ~ eb5 bb4 c5 ~ eb5",
  I: "bb4@2 ~@2 bb4@2 ~ f4 db5 [c5,db5] ~@2 g4 f4 ~ g4, ~@11 bb4@2 ~@3", J: "bb4 ~@7", K: "~@11 f4 ab4@2 ~ bb4",
  L: "[db5@2 ~@2 db5@2 ~ bb4 bb4@2 ~ ab4 bb4@10 ~@5 f4 ab4@2 ~ bb4, ~@3 eb5@2 ~@27]/2",
  M: "[db5@2 ~ eb5 db5@2 ~ bb4 bb4@2 ~ ab4 bb4@14 ~ f4 ab4@2 ~ bb4]/2",
  N: "[db5@2 ~ eb5 [db5,eb5]@2 ~ bb4 bb4@2 ~ ab4 bb4@13 ~@2 f4 ab4@2 ~ bb4]/2", // Dbsus2
  O: "[db5@2 ~ eb5 db5@2 ~ bb4 bb4@2 ~ ab4 bb4@14 ~ bb4@2 ~@2 bb4]/2", P: "f4@3 g4 bb4@2 ~@2 b4 c5 ~ f5 b4 c5 ~ f5",
  Q: "b4 c5 ~ f5 b4 c5 ~ f5 bb4 c5 ~ eb5 bb4 c5 ~ eb5", R: "bb4 c5 ~ eb5 bb4 c5 ~ eb5 bb4@2 ~@2 bb4@2 ~ f4",
  S: "db5 [c5,db5] ~@2 g4 f4 ~ g4 bb4@2 ~@6, ~@3 bb4@2 ~@11", // Dbmaj7
})).s("gm_overdriven_guitar").gain(0.52).pan(0.6)

// chords · piano · "A.PIANO"
const piano = note(`<
  ~@2 A B C B D E B F G H I J K L K L M N K@2 O P Q@2 R B C B S T B@2 U V I J W@3 X Y@2 W Z AA AB AC J K@3 AD AE@2 K@2
  AF AG AH AI K@4 AE AJ K@2 O AK AL@2 ~@27 AM AN AO AP AQ AR AS AT AU AV AW AX AY AZ BA AZ BB BC BD BA BE BF BG@2 BH BI
  AO AP BJ BK BL AP BM BN BO AX BP BQ@2 BR BS BT BU BQ BV BW BX AX AY BA@2 BY BZ CA CB BA CC@3 CD
>`.pickRestart({
  A: "~@3 bb5@2 ~@3 [f5,bb5] ~@7, ~@3 f5 ~@12", B: "~@3 [bb4,f5,bb5] ~@4 [bb4,f5,bb5] ~@7",
  C: "~@4 [bb4,f5,bb5] ~@3 [bb4,f5,bb5] ~@7", D: "~@3 [db5,g5] ~@4 g5@2 ~@6, ~@8 db5 ~@7",
  E: "~@3 [db5,bb5] ~@4 [db5,bb5]@2 ~@6", F: "[bb4,bb5]@2 ~@2 [bb4,f5] ~@3 [bb4,f5] ~@7, f5 ~@3 bb5@2 ~@2 bb5@2 ~@6",
  G: "~@3 [eb5,a5] ~@4 [a4,a5] ~@7, ~@3 a4@2 ~@3 eb5@2 ~@6", H: "~@3 [db5,g5] ~@4 [g4,db5] ~@7, ~@3 g4@2 ~@3 g5@2 ~@6",
  I: "~ f5 ~ bb4 ~ f5 ~ bb4 ~ f5 ~ bb4 ~ f5 ~ bb4, bb5 ~ bb5 ~ bb5 ~ bb5 ~", J: "bb5 ~@15",
  K: "~@3 [bb5,f6,bb6] ~@4 [bb5,f6,bb6] ~@7", L: "~@4 [bb5,f6,bb6] ~@3 [bb5,f6,bb6] ~@7",
  M: "~@3 [db6,g6,bb6] ~@4 [db6,g6,bb6] ~@7", N: "~@4 [db6,eb6,g6] ~@3 [db6,eb6,g6] ~@7",
  O: "~@3 [a5,eb6,a6] ~@4 [a5,eb6,a6] ~@7", P: "~@3 [db6,eb6] ~@4 [db6,eb6,g6] ~@7, ~@3 g6@2 ~@11",
  Q: "[~ f6@2 ~@2 f6@2 ~@2 f6@2 ~@2 f6@2 ~ [f6,bb6]@2 ~@14, bb6@2 ~ bb5@2 ~@2 bb5@2 ~@2 bb5@2 ~@2 bb5@3 ~@14, ~@2 bb6 ~ bb6 ~ bb6 ~@9]/2", // Bb5
  R: "~@3 bb4 [f5,bb5] ~@3 [f5,ab5,bb5] ~@7", S: "~@3 [db5,g5,bb5] ~@4 [db5,g5,bb5] ~@7",
  T: "~@4 [db5,g5,bb5] ~@3 [db5,g5,bb5] ~@7", U: "~@4 [a4,eb5,a5] ~@3 [a4,eb5,a5] ~@7",
  V: "~@3 [g4,db5,eb5,g5] ~@4 [g4,db5,eb5,g5] ~@7", W: "~@3 [bb4,f5,bb5] ~@4 [bb4,f5,bb5] ~@3 [bb4,f5,bb5] ~@3",
  X: "~@3 [bb4,f5,ab5,bb5] ~@4 [bb4,f5,ab5,bb5] ~@3 [bb4,f5,ab5,bb5] ~@3", // Bb7
  Y: "~@3 [db5,eb5,g5,bb5] ~@4 [db5,eb5,g5,bb5] ~@3 [db5,eb5,g5,bb5] ~@3", // Eb7
  Z: "~@3 [bb4,f5,bb5] ~@4 [bb4,f5,ab5,bb5] ~@3 [bb4,f5,ab5,bb5] ~@3", AA: "~@3 [a4,eb5,a5] ~@4 [a4,eb5,a5] ~@7",
  AB: "~@3 [g4,db5,g5] ~@4 [g4,db5,g5] ~@7", // Gdim
  AC: "[bb4,f5,bb5] ~@3 [bb4,f5,bb5] ~@4 f5 ~ bb4 ~ f5 ~ bb4, ~@4 bb5 ~ bb5 ~", // Bb5
  AD: "~@3 [bb5,f6,g6,bb6] ~@4 [bb5,f6,g6,bb6] ~@7", AE: "~@3 [db6,eb6,bb6] ~@4 [db6,eb6,bb6] ~@7",
  AF: "~@4 a5 eb6 ~@2 eb6 ~@7, ~@7 a6@2 ~@7", AG: "~@4 g5 db6 ~@2 db6 ~@7, ~@7 g6@2 ~@7",
  AH: "~@3 [bb5,f6,bb6] ~@4 [bb5,f6,bb6] ~@3 [bb5,f6,bb6] ~@3", AI: "[bb5,f6,bb6] ~@15",
  AJ: "~@3 [db6,g6] ~@4 [db6,g6] ~@7", AK: "~@3 [g5,db6,g6] ~@4 [g5,db6,g6] ~@7",
  AL: "[~ f6@2 ~@2 f6@2 ~@2 f6@2 ~@2 f6@2 ~ bb6 ~@15, bb6@2 ~ bb5@2 ~@2 bb5@2 ~@2 bb5@2 ~@2 bb5@2 ~@15, ~@2 bb6 ~ bb6 ~ bb6 ~@9]/2",
  AM: "~@11 bb5@2 ~@3, ~@11 f5 ~@4", AN: "[f5,bb5] ~@10 [bb4,f5,bb5] ~@4", AO: "[bb4,f5,bb5] ~@11 [bb4,f5,bb5] ~@3",
  AP: "[bb4,f5,bb5] ~@10 [bb4,f5,bb5] ~@4", AQ: "[f5,bb5] ~@10 [db5,g5] ~@4, bb4 ~@7",
  AR: "g5@2 ~@9 [db5,bb5] ~@4, db5 ~@15", AS: "[db5,bb5]@2 ~@9 [bb4,f5] ~@4, ~@11 bb5@2 ~@3",
  AT: "[bb4,f5] ~@7 [bb4,bb5]@2 ~@2 [bb4,f5] ~@3, bb5@2 ~@6 f5 ~@3 bb5@2 ~@2", // Bb5 Bb Bb5
  AU: "[bb4,f5] ~@10 [eb5,a5] ~@4, bb5@2 ~@9 a4@2 ~@3", AV: "[a4,a5] ~@10 [db5,g5] ~@4, eb5@2 ~@9 g4@2 ~@3",
  AW: "[g4,db5] ~@8 f5 ~ bb4 ~ f5 ~ bb4, g5 ~@3 bb5 ~ bb5 ~", AX: "~ f5 ~ bb4 ~ f5 ~ bb4 bb5 ~@7, bb5 ~ bb5 ~@5",
  AY: "~@11 [bb5,f6,bb6] ~@4", AZ: "[bb5,f6,bb6] ~@11 [bb5,f6,bb6] ~@3", BA: "[bb5,f6,bb6] ~@10 [bb5,f6,bb6] ~@4",
  BB: "[bb5,f6,bb6] ~@10 [db6,g6,bb6] ~@4", BC: "[db6,g6,bb6] ~@11 [db6,eb6,g6] ~@3",
  BD: "[db6,eb6,g6] ~@10 [bb5,f6,bb6] ~@4", BE: "[bb5,f6,bb6] ~@10 [a5,eb6,a6] ~@4",
  BF: "[a5,eb6,a6] ~@10 [db6,eb6] ~@4, ~@11 g6@2 ~@3", // Adim Dbsus2
  BG: "[[db6,eb6,g6] ~@8 f6@2 ~@2 f6@2 ~@2 f6@2 ~@2 f6@2 ~ [f6,bb6]@2 ~@6, ~@8 bb6@2 ~ bb5@2 ~@2 bb5@2 ~@2 bb5@2 ~@2 bb5@3 ~@6, ~@6 bb6 ~ bb6 ~ bb6 ~@5]/2", // Eb7 Bb5
  BH: "~@11 bb4 [f5,bb5] ~@3", BI: "[f5,ab5,bb5] ~@10 [bb4,f5,bb5] ~@4", BJ: "[bb4,f5,bb5] ~@10 [db5,g5,bb5] ~@4",
  BK: "[db5,g5,bb5] ~@11 [db5,g5,bb5] ~@3", BL: "[db5,g5,bb5] ~@10 [bb4,f5,bb5] ~@4",
  BM: "[bb4,f5,bb5] ~@11 [a4,eb5,a5] ~@3", BN: "[a4,eb5,a5] ~@10 [g4,db5,eb5,g5] ~@4",
  BO: "[g4,db5,eb5,g5] ~@8 f5 ~ bb4 bb5 f5@2 bb4, ~@4 bb5 ~@3", BP: "~@11 [bb4,f5,bb5] ~@4",
  BQ: "[bb4,f5,bb5] ~@3 [bb4,f5,bb5] ~@6 [bb4,f5,bb5] ~@4", // Bb5
  BR: "[bb4,f5,bb5] ~@3 [bb4,f5,bb5] ~@6 [bb4,f5,ab5,bb5] ~@4", // Bb5 Bb7
  BS: "[bb4,f5,ab5,bb5] ~@3 [bb4,f5,ab5,bb5] ~@6 [db5,eb5,g5,bb5] ~@4", // Bb7 Eb7
  BT: "[db5,eb5,g5,bb5] ~@3 [db5,eb5,g5,bb5] ~@6 [db5,eb5,g5,bb5] ~@4", // Eb7
  BU: "[db5,eb5,g5,bb5] ~@3 [db5,eb5,g5,bb5] ~@6 [bb4,f5,bb5] ~@4", // Eb7 Bb5
  BV: "[bb4,f5,ab5,bb5] ~@3 [bb4,f5,ab5,bb5] ~@6 [a4,eb5,a5] ~@4", BW: "[a4,eb5,a5] ~@10 [g4,db5,g5] ~@4",
  BX: "[g4,db5,g5] ~@7 [bb4,f5,bb5] ~@3 [bb4,f5,bb5] ~@3", BY: "[bb5,f6,bb6] ~@10 [bb5,f6,g6,bb6] ~@4",
  BZ: "[bb5,f6,g6,bb6] ~@10 [db6,eb6,bb6] ~@4", CA: "[db6,eb6,bb6] ~@10 [db6,eb6,bb6] ~@4",
  CB: "[db6,eb6,bb6] ~@10 [bb5,f6,bb6] ~@4", // Eb7 Bb5
  CC: "[[bb5,f6,bb6] ~@11 a5 eb6 ~@2 eb6 ~@11 g5 db6 ~@2 db6 ~@10 [bb5,f6,bb6] ~@4, ~@15 a6@2 ~@14 g6@2 ~@15]/3", // Bb5
  CD: "[bb5,f6,bb6] ~@3 [bb5,f6,bb6] ~@3 [bb5,f6,bb6] ~@7", // Bb5
})).s("gm_piano").gain(0.29).pan(0.7)

// chords · electric guitar clean · "CLEAN GTR"
const electric_guitar_clean = note(`<
  ~@2 A B@3 C@2 B@2 D C B E B@3 F C@2 B@2 G C B H A B@3 C@2 B@2 I C B E B@4 C@2 J B D C B E B@4 C@2 K J D C B L B@4 C M
  B@2 D N O@2 ~@27 P B@3 Q C R B S T R U P B@3 V C R B S W R X P B@3 Q C R B S Y R U P B@3 Q C R Z S T R U P B@3 Q C AA
  B AB T AC AD
>`.pickRestart({
  A: "~@4 [d4,f4,bb4]@2 ~@6 [d4,f4,bb4] ~@3", B: "~@4 [d4,f4,bb4] ~@7 [d4,f4,bb4] ~@3",
  C: "~@2 [db4,eb4,g4,bb4] ~@3 [db4,eb4,g4,bb4] ~", D: "~@4 [c4,eb4,a4] ~@7 [c4,eb4,a4] ~@3", E: "[d4,f4,bb4] ~@7",
  F: "~@4 [d4,f4,bb4] ~@7 [d4,f4,bb4]@2 ~@2", G: "~@4 [c4,eb4,a4] ~@7 [c4,eb4,a4]@2 ~@2", H: "[d4,f4,bb4] ~@15",
  I: "~@2 [c4,eb4,a4] ~@3 [c4,eb4,f4,a4] ~", J: "~@4 [d4,f4,bb4] ~@7 [d4,f4,ab4,bb4] ~@3",
  K: "~@4 [d4,e4,f4,bb4] ~@7 [d4,f4,bb4] ~@3", L: "[d4,f4,ab4,bb4] ~@7",
  M: "~@4 [db4,eb4,g4,bb4] ~@7 [db4,eb4,g4,bb4]@2 ~@2", N: "~@4 [db4,eb4,g4,bb4]@2 ~@6 [db4,eb4,g4,bb4] ~@3",
  O: "[~@4 [d4,f4,ab4,bb4]@2 ~@2 [db4,eb4,g4,bb4]@5 ~@2 [d4,f4,bb4]@2 ~@15]/2", P: "~@6 [d4,f4,bb4] ~",
  Q: "~@4 [d4,f4,bb4] ~@7 [db4,eb4,g4,bb4]@2 ~@2", R: "~@2 [db4,eb4,g4,bb4] ~@3 [d4,f4,bb4] ~",
  S: "~@4 [d4,f4,bb4] ~@7 [c4,eb4,a4]@2 ~@2", T: "~@4 [c4,eb4,a4] ~@7 [db4,eb4,g4,bb4]@2 ~@2",
  U: "~@4 [d4,f4,bb4] ~@3 [d4,f4,bb4]@2 ~@6", V: "~@2 [d4,f4,bb4] ~@3 [db4,eb4,g4,bb4] ~",
  W: "~@2 [c4,eb4,a4] ~@3 [db4,eb4,g4,bb4] ~", X: "~@4 [d4,f4,bb4] ~@3 [d4,f4,bb4] ~@7",
  Y: "~@2 [c4,eb4,f4,a4] ~@3 [db4,eb4,g4,bb4] ~", Z: "~@4 [d4,f4,ab4,bb4] ~@7 [d4,f4,bb4] ~@3",
  AA: "~@4 [db4,eb4,g4,bb4]@2 ~@6 [d4,e4,f4,bb4] ~@3", AB: "~@4 [d4,f4,ab4,bb4] ~@7 [c4,eb4,a4] ~@3",
  AC: "~@4 [db4,eb4,g4,bb4]@2 ~@6 [d4,f4,bb4] ~@3", AD: "~@4 [d4,f4,bb4] ~@3 [d4,f4,ab4,bb4]@2 ~@6",
})).s("gm_electric_guitar_clean").gain(0.35).pan(0.2)

// other · alto sax
const alto_sax = note(`<
  ~@2 A B A B C D E B F G H B H B A B C D A B I C A B A B A B C D A B I C A B A B A B C D E B I C A B A B A J C D A B I
  C A B A B A B C D A B I C K ~@28 L@4 M@2 N@2 O@3 P Q@2 L@2 M@2 L@2 R@4 L@4 M@2 L@2 R@4 L@4 M@2 S@2 R@4 L@2 T@2 M@2 L@2
  R@4
>`.pickRestart({
  A: "bb2 ~@6 d3@3 ~ f3 g3@3 f3", B: "bb2 ~@15", C: "eb3 ~@6 g3@4 bb3 c4@3 bb3", D: "eb3 ~@15",
  E: "bb2 ~@6 d3@4 ~ g3@3 f3, ~@11 f3@2 ~@3", F: "f3 ~@6 a3@2 ~@2 c4 d4@3 c4",
  G: "eb3 ~@6 g3@2 ~@3 c4@3 bb3, ~@11 bb3@2 ~@3", H: "bb2@2 ~@5 d3 ~@3 f3 g3@3 f3", I: "f3 ~@6 a3@3 ~ c4 d4@3 c4",
  J: "bb2 ~@7", K: "bb2 ~@7 eb3@2 ~@5 bb2", L: "[~@8 bb2 ~@6 d3@3 ~ f3 g3@3 f3 bb2 ~@7]/2",
  M: "[~@8 eb3 ~@6 g3@4 bb3 c4@3 bb3 eb3 ~@7]/2", N: "[~@8 bb2 ~@6 d3@3 ~@2 g3@3 f3 bb2 ~@7, ~@19 f3@2 ~@11]/2",
  O: "[~@8 f3 ~@6 a3@2 ~@2 c4 d4@3 c4 eb3 ~@6 g3@2 ~@3 c4@3 bb3 bb2@2 ~@5 d3, ~@35 bb3@2 ~@11]/3",
  P: "~@3 f3 g3@3 f3 bb2 ~@7", Q: "[~@8 bb2 ~@6 d3@2 ~@2 f3 g3@3 f3 bb2 ~@7]/2",
  R: "[~@8 f3 ~@6 a3@3 ~ c4 d4@3 c4 eb3 ~@6 g3@4 bb3 c4@3 bb3 bb2 ~@6 d3@3 ~ f3 g3@3 f3 bb2 ~@7]/4",
  S: "[~@8 bb2 ~@6 d3@3 ~@2 g3@3 f3 bb2@2 ~@6, ~@19 f3@2 ~@11]/2", T: "[~@8 bb2 ~@6 d3@3 ~ f3 g3@3 f3 bb2@2 ~@6]/2",
})).s("gm_alto_sax").gain(0.35).pan(0.1)

// drums · kick
const kick = s("bd").struct(`<
  ~@2 A B A B A B A B A B A C A B A B A B A B A B A C A B A B A B A B A B A C A B A B A B A B A B A C A B A B A B A B A
  B A C A B A B A B A B A B A C A B A B D B E F A B D B A B G F A B A H A B A@2 D A ~ I J K J K J K J K J K@2 I J K J K
  J K J K J K@2 I J K J K J K J K J K@2 I J K J K J K J K J K@2 I J K J K J K J K J K@2
>`.pickRestart({
  A: "x ~@10 x ~@4", B: "x ~@6 x ~@3 x ~@4", C: "x", D: "x ~@2 x ~@4 x ~@2 x ~@4", E: "x ~@7 x ~@6 x",
  F: "~@3 x ~@4 x ~@2 x ~@4", G: "x ~@2 x ~@4 x ~@6 x", H: "x ~@7 x ~@2 x ~@4", I: "~ x", J: "~@3 x ~@4 x ~@6 x",
  K: "~@3 x ~@4 x ~@7",
})).gain(0.46)

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

// drums · hihat
const hihat = s("hh").struct(`<
  ~@2 A@10 B C A@11 C A@11 C A@11 C A@11 C A@11 C A@26 ~ D A@10 E D A@10 F D A@10 F D A@10 F D A@10 F
>`.pickRestart({
  A: "x ~@3 x ~@2 x!2 ~@3 x ~@2 x", B: "x ~@3 x ~@2 x!2 ~@2 x!2 ~@2 x", C: "x", D: "~@8 x ~@3 x ~@2 x",
  E: "x ~@2 x!2 ~@2 x!2 ~@7", F: "x ~@3 x ~@2 x!2 ~@7",
})).gain(0.31)

// drums · crash
const crash = s("cr").struct("<~@2 A ~@11 A ~@11 A ~@10 A@2 ~@62 B ~@11 B ~@11 B ~@10 B@2 ~@23>".pickRestart({
  A: "x", B: "~ x",
})).gain(0.26)

// drums · tambourine
const tambourine = s("tb").struct(`<
  ~@2 A@11 B A@11 B A@11 B A@11 B A@11 B A@11 B A@26 ~ C A@10 D C A@10 D C A@10 D C A@10 D C A@10 D
>`.pickRestart({
  A: "~ x ~ x", B: "x", C: "~@3 x", D: "~ x!2 ~",
})).gain(0.41)

stack(bass, overdriven_guitar, piano, electric_guitar_clean, alto_sax, kick, snare, hihat, crash, tambourine)

More by Elvis Presley