Strudelify
A Big Hunk O' Love cover art

1993

A Big Hunk O' Love

Elvis Presley

KeyC majorTempo168 bpm
0:00/0:00
// A Big Hunk O' Love — Elvis Presley
// 168 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 99 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(168/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.

// chords · piano
const piano = note(`<
  A B C D E F G H@2 I J K L M N O P ~@5 Q R S T U V W X Y@2 Z AA AB AC AD AE AF AG AH AI AJ ~@5 AK AL AM AN AO AP AQ AR
  AS AT AU@2 AV AW AX AY AZ BA BB BC AJ BD ~ BD AJ@2 BE BF BG BH BI BJ BK BL BM BN BO BP BQ BR BS BT BU BV BW BX BY BZ@3
  ~
>`.pickRestart({
  A: "[e5,a#5,d#6] ~ [e5,a#5,d#6] ~ [e5,a#5,d#6] ~ [e5,a#5,c6] ~ [g2,e5,a#5,d#6]@4 [a2,e5,a#5,d#6] ~ [g2,e5,g5] ~, c2 ~ e2@2 ~@4", // D# C7 D# C
  B: "[e5,a#5,d#6] ~ [e5,a#5,d#6] ~ [e2,d#6]@2 [e5,c6] ~ [g2,e5,a#5,d#6]@4 [a2,e5,a#5,d#6] ~ [e5,g5] ~, c2@2 ~@2 [e5,a#5] ~@9 g2@2", // D# Emaj7 C D# Em Edim
  C: "[e5,a#5,d#6] ~ [e5,a#5,d#6] ~ [e5,a#5,d#6] ~ c6 ~ [g2,e5,d#6]@4 [a2,e5,a#5,d#6] ~ [g5,d#6] ~, c2 ~ e2 ~ a#5 ~@2 g2", // D# C Cm
  D: "[a#5,d#6] ~ [e5,a#5,d#6] ~ [e5,d#6]@2 c6 ~ [g2,e5,a#5,d#6]@3 ~ [e5,a#5,d#6] ~ g2@2, c2 ~ e2@2 ~@2 a2 ~, ~@4 a#5 ~@9 g5 ~", // D#5 D# Emaj7 D#
  E: "[g5,c6] ~ [g5,c6] ~ e2@4 [g2,g5,c6]@4 [g5,a#5] ~ c6@2, c2@2 ~@2 a#5@2 ~@8 g5 ~, ~@4 g5 ~@7 e2@2 ~@2", // C5 Gm
  F: "c2@2 c6@2 e2@4 [g2,g5,c6]@4 [g5,a#5] ~ [g5,c6] ~, ~@2 g5 ~ a#5@2 ~@10, ~@4 g5 ~@7 e2@2 ~@2", // C5 Gm C5
  G: "[g5,c6] ~ [g5,c6] ~ [g5,a#5] ~@3 [g2,g5,c6]@3 ~ e2@2 c6@2, c2@2 ~@2 e2@4 ~@4 a#5 ~ g5 ~", // C5 Gm C5
  H: "[~@2 [g5,c6] ~ [e2,a#5]@3 ~ [g2,g5,c6]@3 ~ [e2,a#5]@2 ~@2 f2@2 d#5 ~ [f2,c6]@2 [d#5,g5] ~ f2@2 [g5,c6]@2 f2@2 d#5 ~, c2@4 g5 ~@7 g5 ~ [g5,c6]@4 ~@2 [d#5,g5] ~@5 d#5 ~@5]/2", // C5 Edim C5 Edim F5 D# C5 D#
  I: "f2@2 [g5,c6]@2 f2@2 d#5@2 f2@2 d#5 ~ [f2,g5,c6]@2 d#5 ~, g5 ~ d#5 ~@3 [g5,c6]@4 ~@6", // C5 Fsus2 C5
  J: "[g5,c6] ~ [g5,c6]@2 [e2,g5,a#5]@3 ~ [g2,g5,c6]@3 ~ [g5,a#5] ~ c6@2, c2@2 ~@10 e2@2 g5 ~", // C5 Edim C5 Gm
  K: "c2@2 c6@2 [e2,a#5]@4 [g5,c6]@2 ~@2 [g5,a#5] ~ c6@2, ~@2 g5 ~ g5 ~@3 g2@4 e2@2 g5 ~", // Edim C5 Gm
  L: "g2@2 g5@2 [g2,d5]@2 [g5,b5]@2 g2@2 d5 ~ [g2,g5,b5]@2 d5 ~, b5@5 ~@11, g5 ~@15", // G5 G
  M: "[g5,c6] ~ [g5,c6]@2 [f2,d#5]@3 ~ [f2,g5,c6]@4 f2@2 c6@2, f2@2 ~@6 d#5 ~@3 d#5 ~ g5 ~", // C5 F7 Fsus2
  N: "c2@2 [g5,c6]@2 [e2,a#5]@3 ~ [g2,g5,c6]@4 e2@2 [g5,c6] ~, ~@4 g5 ~@7 a#5 ~@3", // C5 Edim C5
  O: "~@2 c6@2 [e2,a#5]@3 ~ [g2,g5,c6]@4 [e2,a#5]@3 ~, c2 ~@3, ~@2 g5 ~ g5 ~@11", P: "[c2,g5,c6]@3 ~@13",
  Q: "[f2,g5,c6]@4 [f2,d#5]@2 ~@2 f2@2 d#5@2 [f2,g5,c6]@2 d#5 ~, ~@3 [g5,c6]@2 ~@3", // Fsus2 F7 Fsus2 C5
  R: "[f2,g5,c6]@4 f2@2 ~@2 f2@2 d#5 ~ [f2,g5,c6]@2 d#5 ~, d#5 ~@3 d#5 ~ [g5,c6]@4 ~@6", // Fsus2 C5
  S: "[c2,g5,c6]@3 ~ [e2,a#5]@2 ~@2 g2@2 a#5 ~ [e2,c6]@2 [g5,a#5] ~, ~@4 g5 ~ [g5,c6]@4 ~@2 g5 ~@3", // C5 Edim C Gm C5
  T: "[c2,g5,c6]@3 ~ [g5,a#5] ~ [g5,c6]@2 ~@2 [g5,a#5] ~ [e2,g5,c6]@2 a#5 ~, ~@2 e2 ~ g2@2 ~@2", // C5 Gm C5 Gm C
  U: "[g5,b5]@4 [g2,d5]@2 d5 ~ g2@2 d5 ~ [g2,g5,b5]@2 d5 ~, g2@3 ~@3 [g5,b5]@4 ~@6", // G G5 G
  V: "[f2,g5,c6]@2 d#5 ~ f2@2 d#5@2 ~@2 d#5 ~ [f2,g5,c6]@2 d#5 ~, ~@3 [g5,c6]@2 ~@3, ~@2 f2 ~", // Fsus2 C5
  W: "[c2,d#6]@2 e5@2 c2@2 ~@2 c2@2 e5 ~ [c2,a#5,d#6]@2 e5@2, a#5 ~@5 [a#5,d#6]@4 ~@6", // Cm Cm7 D#5
  X: "c2@2 g5@2 c2@2 [g5,c6] ~ c2@2 [e5,a#5,d#6] ~ [e5,a#5,d#6]@2 c6 ~, ~@2 c6 ~@13", // C5 D#
  Y: "[e5,a#5,d#6]@2 ~@2 c6 ~ [e5,a#5,d#6]@2 ~@2 [e5,a#5,d#6] ~ [a2,e5,a#5,d#6]@2 g2@2, c2@4 e2@4 g2@4 ~@2 c6 ~", // D#
  Z: "[c2,e5,a#5,d#6]@3 ~ e2@2 [e5,a#5,d#6]@2 ~@2 [e5,a#5,d#6] ~ [a2,e5,a#5]@2 [g2,c6] ~, ~@4 c6 ~@3 g2@4 d#6 ~@3", // C7 D# A C5
  AA: "[c2,e5,a#5,d#6]@3 ~ [e5,a#5,c6] ~ [e5,a#5] ~@3 c6 ~ [c6,d#6] ~ [g2,c6,f6] ~, ~@2 e2 d#6 g2@2 a2 ~", // C7 Edim Cm Csus4
  AB: "f#6 g6 [c6,g6] ~ a2@2 f6 ~ d#6@2 c6@2 d3@2 [c3,c6,f6] ~, f2@4 c6@5 ~ d6 ~ d#6 ~@3, c6@2 ~ g6@2 ~@3 c3@4 ~@4", // C5 F5
  AC: "[f2,c6,g6]@2 [c6,g6]!2 [a2,g6]@2 f6 ~ [c3,d#6]@2 c6@2 [d#6,e6] ~ [c3,c6,f6] ~, f#6 ~@3 c6@5 ~@3 d3@2 ~@2", // Fsus2 C5 A7 Cm Emaj7 F5
  AD: "[c6,g6] ~ [c6,g6] g6 g6@2 f6 ~ [c6,f6] ~ c6@2 [d#6,e6] ~ [g2,c6,f6] ~, c2@2 ~ c6@4 ~ e6@2 ~@6, ~@2 e2@2 g2@2 a2 ~", // C5 F5 Emaj7 Csus4
  AE: "[c6,g6] ~ [c6,g6]!2 [e2,c6]@2 [c6,f6] ~ [c6,e6] ~@3 [d#6,e6] ~ [g2,f6] ~, c2@2 ~@2 g6 ~@3 g2@2 c6@4 c6@2, ~@6 a2 ~", // C5 C F5 C Emaj7 G7
  AF: "[g2,d6,g6]@3 g6 ~ [d6,g6]@2 ~ [d6,g6]@2 ~ [c#6,d6] ~ [d6,g6] d3 ~, c#6 ~@2 d6@2 ~@3 [c#6,f#6] ~@2 g6@2 ~@3, ~@4 b2@3 ~ d3@3 ~ e3@2 ~@2", // G5 Dmaj7 G5 F#5
  AG: "[f2,d6,g6]@3 ~@2 [c6,g6]@2 ~ [c6,g6]@2 ~@3 e6 c3 ~, c#6 ~@2 [c6,g6]@2 ~@6 [c6,g6]@2 [c6,f6]@2 ~, ~@4 a2@4 c3@3 ~ d3@2 ~@2", // G7 C5 F5
  AH: "[c6,d#6] e6 d6 ~ [d#6,e6] ~ [c6,f6] ~ [c6,g6] ~ [c6,g6]!2 a2@2 [g2,f6] ~, c2@4 e2@2 ~@2 g2@4 g6 ~@3, ~ c6@2 ~@3 c6@2", // Cm Emaj7 F5 C5 G7
  AI: "[c2,e6]@2 ~@2 d#6 ~ d#6 ~ g2@4 a2@2 g2 ~, f6 ~ c6@11 ~@3, ~ e2 ~@2, ~@6 e6@7 ~@3", AJ: "c2@3 ~@13",
  AK: "[f2,g5,a5,c6]@2 d#5 ~ f2@2 [a5,c6]@2 f2 ~ d#5 ~ [f2,a5,c6]@2 d#5 ~, ~@6 [d#5,g5] ~@5 g5 ~@3", // F Am F D#
  AL: "[d#5,g5,a5,c6] ~ [d#5,g5,a5,c6] ~ f2@2 g5@2 f2@2 d#5 ~ [f2,g5,a5,c6]@2 d#5 ~, f2@2 ~@4 [a5,c6]@5 ~@5, ~@6 d#5 ~@5 d#5 ~@3", // Am7b5 F Am
  AM: "[c2,e5,g5,a5,c6]@3 ~ [e5,g5,a5,c6] ~ [a5,c6]@2 c2@2 e5 ~ [c2,g5,a5,c6]@2 e5 ~, ~@4 c2@2 [e5,g5] ~@9", // Am7 Am Am7 Em
  AN: "[c2,g5,a5,c6]@2 e5 ~ c2@2 [e5,g5]@2 c2@2 [e5,g5] ~ [c2,g5,a5,c6]@2 e5 ~, ~@6 [a5,c6]@5 ~@5", // Am7 Em Am7 Am
  AO: "[g2,g5,b5,d6]@2 f5 ~ g2@2 f5 g2@2 ~ f5 ~ [g5,b5,d6]@2 f5 ~, f5 ~@5 [b5,d6]@5 ~@5, ~@6 g5@3 ~@3 g2@4", // G Bm
  AP: "[f2,c6]@2 d#5 ~ f2@2 [d#5,g5] ~ f2@2 d#5 ~@2 d#5 ~@2, [g5,a5] ~@5 [a5,c6]@5 ~ [f2,g5,a5,c6]@3 ~", // F5 D# Gsus2 Am F
  AQ: "[c2,g5,a5,c6]@2 e5 ~ [e2,g5,a5,c6]@2 e5 ~ g2@2 [g5,a5,c6]@2 e5 ~ [g5,a5,c6] ~, ~@3 e2", // Am7
  AR: "[c2,g5,a5,c6]@2 e5 ~ e2@2 ~@2 g2@2 e5 ~ [e2,g5,a5,c6]@2 ~@2, ~@3 [g5,a5,c6]@2 ~@3", // Am7
  AS: "[e5,g5,a5,c6] ~@3 e2@3 ~ g2@3 ~ e2@3 ~, c2@3 ~@13", // Am7
  AT: "c2@4 ~@2 [e5,g5,a5,c6] ~ g2@3 ~ e2@2 [e5,g5,a5,c6] ~, ~ e2 ~@2", // Am7
  AU: "c2@3 ~ e2@3 ~@3 [e5,g5,a5,c6] ~ e2@3 ~, ~@2 g2 ~", // Am7
  AV: "f2@2 ~@2 f2@2 ~@2 f2@2 ~@2 f2 ~ [d#5,g5,a5,c6] ~, ~@4 [d#5,g5,c6]@7 ~@5", // Am7b5 Cm
  AW: "f2@2 ~@2 f2@2 ~@2 d#5@4 f2@3 ~, ~@4 [g5,a5,c6]@3 ~, ~@4 f2 ~@3", // Am7
  AX: "[e5,g5,a5,c6] ~@3 e2@3 ~ g2@2 [e5,g5,a5,c6] ~ e2@3 ~, c2@3 ~@13", // Am7
  AY: "c2@2 [e5,g5,a5,c6] ~ e2@2 e5@2 ~@2 e5 ~ [e2,g5,a5,c6]@2 ~@2, ~@3 [g5,a5,c6]@2 ~@3, ~@2 g2 ~", // Am7
  AZ: "[f5,g5,b5,d6] ~@3 g2 ~@3 d6@4 g2@4, g2@2 ~@6 [f5,g5,b5]@7 ~, ~@4 g2 ~@3", // G7
  BA: "f2@2 ~@2 f2@2 ~@2 [d#5,g5,a5,c6] ~@7, [d#5,g5,a5,c6]@6 ~@2 f2@7 ~", // Am7b5
  BB: "c2@4 e2@2 [e5,a#5,d#6]@2 g2@2 c6 ~ [e2,e5,a#5,d#6]@3 ~", // D#
  BC: "c2@2 [e5,a#5,d#6] ~ e2@2 [e5,a#5]@2 g2@2 [e5,a#5] ~ [e2,a#5,d#6]@3 ~, ~@6 d#6@5 ~@5", // D# Edim D#
  BD: "~@2 c2@2 d#2@2 e2@2 c2@3 ~@5", BE: "[c2,c3]@5 ~@3 [c2,c3]@4 ~@4",
  BF: "[c2,c3]@3 ~ [c2,c3]@2 ~@2 [c2,c3]@2 ~@2 [c2,c3]@3 ~", // C
  BG: "f2@2 [d#5,g5,a5,c6] ~ [f2,g5,a5,c6]@2 ~@2 [f2,d#5,g5,a5,c6]@2 ~ d#5 f2 ~ [a5,c6]@2, ~@4 d#5 ~@9 [d#5,g5] ~", // Am7b5 F F7 Am D#
  BH: "f2@2 d#5 ~ [d#5,g5,a5] ~ d#5 ~ [f2,d#5,g5,a5,c6]@2 ~@2 [d#5,g5,a5] ~ [e5,g5,a5,c6] ~, ~@2 [f2,c6] ~@3 [f2,c6] ~", // Am7b5 F7 Am7b5 Am7 F5
  BI: "c2@2 [e5,g5,a5,c6] ~ [e5,g5,a5,c6] ~@3 [e5,g5,a5,c6]@4 e2@2 [e5,g5,a5,c6] ~, ~@4 e2@3 ~ g2@3 ~@5", // Am7
  BJ: "c2@2 e5 ~ [e2,g5,a5,c6]@2 e5 ~ g2@2 e5 ~ e2@2 e5 ~, ~@4 e5 ~@5 [g5,a5,c6]@4 ~@2", // Am7
  BK: "[g2,g5,b5,d6]@2 f5 ~ [g5,b5] ~@3 [g2,b5,d6]@2 f5 ~ g2@2 [g5,a5] ~, f5 ~@3 g2@3 ~ [f5,g5] ~@7", // G Gsus2 Fsus2
  BL: "f2@2 [d#5,g5,a5,c6]@2 f2@2 d#5@2 f2@2 d#5 ~ f2@4, ~@3 [g5,a5,c6]@3 ~@2", // Am7b5 Am7
  BM: "c2@2 [e5,a#5,d#6] ~ [e2,e5,a#5,d#6]@2 c6 ~ [g2,e5,a#5,d#6]@3 ~ e2@2 [e5,a#5] ~, ~@12 c6 ~ d#6@2", // D# Edim
  BN: "~@2 [e5,a#5,d#6] ~ [e2,e5,a#5,d#6]@2 c6 ~ [g2,e5,a#5,d#6]@3 ~ e2@3 ~, c2 ~@3", // D#
  BO: "[f5,g5,d6] ~@3 [g2,g5,b5,d6]@2 ~ f5 g2@2 [f5,g5,b5,d6]@2 g2@2 [g5,a5]@2, [g2,b5]@2 ~@2 f5 ~@9 [d#5,c6] ~", // G7 G G7 Gsus2 G Cm
  BP: "f2@2 d#5 ~ f2@2 d#5 ~ f2@2 d#5 ~ [g5,c6] ~@3, ~@6 [g5,a5,c6]@5 ~ f2@4", // C5 Am7
  BQ: "c2@2 [e5,a#5,d#6] ~@3 c6 ~ [g2,a#5,d#6]@4 e2@2 [e5,a#5,d#6]@2, ~@4 [e5,a#5,d#6]@3 ~ e5@2 ~@2 c6 ~@3, ~@5 e2@3 ~@8", // D#
  BR: "c2@2 c6 ~ [e2,e5,a#5,d#6]@3 ~ [e5,c6] ~@3 e2@2 c6 ~, ~@4 g2 [e5,a#5,d#6]@2 ~", // D# C D#
  BS: "g2@2 [f5,g5,b5,d6] ~ g2 ~ [f5,g5]@2 g2@2 [f5,g5] ~ [g2,g5,b5,d6]@2 f5 ~, ~@6 [b5,d6]@5 ~@5", // G7 Fsus2 G Bm
  BT: "f2@2 [d#5,g5,a5,c6] ~ f2@2 ~@2 f2@3 ~ f2@4, ~@6 [d#5,g5,a5,c6]@7 ~@3", // Am7b5
  BU: "c2@2 [e5,a#5,d#6] ~ [e2,e5,a#5,d#6]@2 c6 ~ [g2,d#6]@2 [e5,a#5,c6] ~ e2@2 [e5,a#5,d#6]@2, ~@8 [e5,a#5] ~@7", // D# Cm C7 D# Edim
  BV: "c2@2 [e5,a#5] ~ e2@2 e5@2 g2@2 e5 ~ [e2,a#5,d#6]@2 e5 ~, ~@3 [a#5,d#6]@2 ~@3", // Edim D# D#5
  BW: "g2@2 ~@2 [g2,f5,g5,b5,d6]@3 ~ [g2,f5,g5,b5,d6]@3 ~ [g2,f5,g5,b5,d6]@3 ~", // G7
  BX: "[f2,d#5,g5,a5,c6]@3 ~ [f2,d#5,g5,a5,c6]@3 ~ [f2,d#5,g5,a5,c6]@2 ~@2 f2@3 ~", // F7
  BY: "[c2,c3]@3 ~ [e2,e3]@3 ~ [f2,f3]@3 ~ [f#2,f#3]@3 ~", // C E F F#
  BZ: "[g2@2 a2@2 [b2,b3]@2 [c3,c4]@3 ~@3 c2@36, g3 ~ a3 ~@45]/3", // B C
})).s("gm_piano").gain(0.35).pan(0.3)

// bass · acoustic bass
const bass = note(`<
  A@8 B C A D E C A@2 F G F G H I B C A@2 E C A@6 B C A D E C A@2 F G F G H I B C A D E C A@6 B C A D E C A@2 H J ~ J
  H@2 K I B C A@2 L C A D L C A D L C A@2 L C M N@3 ~
>`.pickRestart({
  A: "c2@2 e2@2 g2@2 a2 g2", B: "f2@3 ~ f2@3 ~ f2@2 d2@2 d#2@2 e2@2", C: "f2@3 ~ f2@3 ~ f2@2 a1@2 a#1@2 b1@2",
  D: "c2@4 e2@4 g2@4 a2@2 g2 ~", E: "g2@3 ~ g2@3 ~ g2@2 e2@2 f2@2 g2@2", F: "c2@3 ~@7 c2@2 d#2@2 f2@2",
  G: "f#2@2 g2@2 f2@2 d#2@2 c2@3 ~@5", H: "c2@3 ~@13", I: "c2@3 ~ c2@3 ~ c2@3 ~ c2@3 ~",
  J: "~@2 c2@2 d#2@2 e2@2 c2@3 ~@5", K: "c2@4 ~@4 c2@5 ~@3", L: "g2@3 ~ g2@2 ~@2 g2@2 d2@2 f2@2 g2@2",
  M: "c2@4 e2@3 ~ f2@4 f#2@3 ~", N: "[g2@2 a2@2 b2@2 c3@3 ~@3 c2@36]/3",
})).s("gm_acoustic_bass").gain(0.33)

// chords · electric guitar clean
const electric_guitar_clean = note(`<
  A B C D E F G ~ H I J K L M N O P Q P Q ~@2 R S J T U V W X Y B Z AA AB AC AD AE AF AG AH AI P Q P Q ~@2 AJ ~ AK AL AM
  AN AO AP AQ AR AS AT AU AV AW AX AY AZ BA BB ~ BC ~ BC ~@3 BD BE BF BG BH BI BJ BK BL ~@2 BM@2 BN BO BP BQ ~ BR BS
  BT@3 ~
>`.pickRestart({
  A: "[g4,c5] ~@5 [g4,c5]@3 b4 [f4,f#4] e4 ~@4", B: "[g4,c5]@2 ~@4 [g4,c5]@3 [f#4,b4] f4 ~@5",
  C: "[g4,c5]@2 ~@4 [g4,c5]@4 f#4 f4 ~@4", D: "[g4,c5]@2 ~@4 [g4,c5]@4 b4 ~@5",
  E: "[g4,c5]@2 ~@4 [g4,c5]@4 [f#4,b4] f4 ~@4", F: "[g4,c5]@2 ~@4 [g4,c5]@4 [f#4,b4] ~@5", G: "~ [c5,d#5]!6 c5",
  H: "[f4,a4]@2 ~@4 a4@2 a4@2 f4 ~@5, ~@3 f4@2 ~@3", I: "[a4,d#5] d#5 [a4,d5] [a4,c5] ~@4", J: "~ [c5,d#5]!7",
  K: "[c5,d#5]@2 [c5,d#5]@2 [c5,d#5]@4 c5@3 ~@5", L: "~@2 g4 ~@3 g4 ~", M: "~ g4 f4 g4 ~@2 f4 ~",
  N: "~@4 [b4,d5] [c5,d#5]@3 [b4,d5] [c5,d#5]@2 d5 [b4,d5] c5@2 ~", O: "[c5,d#5]@2 ~@2 g4 ~ a4 ~ g4@4 a4@2 ~@2",
  P: "~@10 c3@2 d#3@2 f3 ~", Q: "f#3 g3 f3 d#3 c3 ~@3", R: "~@2 [f4,a4] ~ [a4,c5]@2 a4 ~", S: "g4@6 ~ a4@2 ~@7",
  T: "[b4,d5] [c5,d#5]@3 [c5,d#5] ~@3 [g4,c5]@3 ~ a4@2 ~@2", U: "~@10 [b3,d4,g4]@2 ~@2 [c#4,f#4] ~",
  V: "g4!2 a4 g4 d#4 d4 c4 ~", W: "~@2 [g4,c5] [a4,c5] [g4,c5]!2 c5!2, ~@3 g4",
  X: "[g4,c5]@2 [g4,c5]@2 c5@2 c5@2 [g4,c5]@3 f#4 ~@4, ~ g4 ~@2", Y: "[g4,c5]@2 ~@4 [g4,c5]@3 f#4 f4 ~@5",
  Z: "[g4,c5]@2 [f#4,b4] [f4,a#4] ~@3 c5@2 f#4 ~@6, ~@6 g4@3 ~@7", AA: "[g4,c5]@2 b4 a#4 ~@2 [g4,c5]@3 b4 ~@6",
  AB: "[a4,c5]@2 g#4 [a#4,b4] ~@3 [a4,c5]@2 b4 ~@6", AC: "[a4,c5]@3 b4 ~@3 a4@3 ~@6, ~@6 c5@3 ~@7",
  AD: "[g4,c5]@2 f#4 ~@3 [g4,c5]@3 [f4,f#4,a#4,b4] ~@6", // C5 F#maj7
  AE: "[g4,c5]@2 [f#4,b4] f4 ~@3 c5@2 [f#4,a#4,b4] f4 ~@5, ~@6 g4@3 ~@7", AF: "[b4,d5]@3 ~@4 d5@4 ~@5, ~@3 b4@2 ~@3",
  AG: "[a4,c5]@3 [g#4,b4] ~@3 c5@3 ~@6, ~@6 a4@3 ~@7", AH: "[g4,c5]@2 [f#4,b4] f4 ~@3 [g4,c5]@3 [f4,f#4] ~@5",
  AI: "[g4,c5]@2 [f#4,b4] [f4,a#4] ~@2 [g4,c5]@3 b4 [f4,f#4] ~@5", AJ: "~@4 [d#4,g4]@2 g4 ~ a4@4 g4@2 ~@2",
  AK: "~@2 [b4,d5] [c5,d#5] [c5,d#5]@2 [c5,d#5]@2 [c5,d#5]@2 [c5,d#5]@2 [c5,d#5]@3 ~", // Bm Cm
  AL: "[c5,d#5]@2 [c5,d#5] ~ c5@2 a4 ~", AM: "[b4,d5]@6 [b4,d5]@6 [b4,d5] ~@3",
  AN: "~@2 c5 d#5 c5@2 a4 ~, ~@3 a4@2 ~@11", AO: "~@4 [g4,c5]@2 d#5 ~ [g4,c5]@4 a4@2 ~@2",
  AP: "[g4,c5]@2 ~@2 a4@2 g4@5 ~@5", AQ: "[g4,c5]@2 ~@2 f4@2 ~ [g4,c5]@3 f4@2 ~ g4@3, ~@3 c5",
  AR: "f4 [g4,c5]@2 f4 [g4,c5]!4", AS: "d#5 c5 [g4,d#5]@2 [g4,c5]@2 d5 ~, g4 ~@3",
  AT: "~@2 [g4,d#5] ~ [g4,d#5] ~ [g4,d#5] ~ [g4,d#5] ~ [g4,d#5] ~ [g4,d#5] ~ [g4,d#5] ~", // Cm
  AU: "[g4,d#5] ~ [g4,d#5] ~ [g4,d#5] ~ [g4,d5] ~ [g4,c5]@3 ~ [g4,d5] ~@3", // Cm G5 C5 G5
  AV: "[g4,d#5] ~ [g4,d#5] ~ [g4,d#5] ~ [g4,d5] ~ [g4,c5]@3 ~ [g4,d5]@2 ~@2", // Cm G5 C5 G5
  AW: "[g4,d#5]@2 c5 ~ [g4,d#5]@2 c5 ~ [g4,d#5]@2 c5 ~ [g4,d#5]@2 c5 ~", // Cm
  AX: "[g4,d#5] ~ [g4,d#5] ~ [g4,c5] ~ d5 ~ [g4,c5]@3 ~ [g4,d5] ~@3", AY: "[g4,d5]!5 g4 [g4,d5] [g4,c5]",
  AZ: "[a4,a#4,d5,d#5] ~ [g4,c5] [f4,a4]@2 d#4 ~@2", // D#maj7 C5 F
  BA: "[f#4,b4] [g4,c5]@3 [g4,c5]@2 [g4,c5]@4 c5@2 c5@2 [g4,c5] ~, ~@5 g4@2 ~", // B5 C5
  BB: "[f#4,b4] [g4,c5]!2 [g4,c5]@2 [g4,c5]!2 ~", BC: "~ c3 d#3 e3 c3 ~@3", BD: "c5!2 a#4!2 a4!2 g4 ~",
  BE: "a4@4 g4 ~@3 g4@4 a4@2 ~@2", BF: "~@2 c5@2 c5@2 c5@4 c5@2 a4 ~@3", BG: "[g4,c5] ~@2 [g4,d#5]@2 d#5 [g4,d#5] ~",
  BH: "[g4,c5]@4 [g4,d5] ~@3 c5@3 ~ d5@2 ~@2, ~@4 g4@3 ~", BI: "~@12 [a4,d5] [a#4,d#5]@3", BJ: "[g4,c5]@3 ~@13",
  BK: "~@2 [g4,d#5]@2 [g4,d#5]@2 [g4,d#5]@2 [g4,d#5]@3 ~@5", BL: "a4@2 g4@2 e4@2 g4 ~", BM: "[g4,c5]@2 ~@4 a4@5 ~@5",
  BN: "~@6 a4@5 ~@5", BO: "[g4,c5]@2 ~@4 a4@3 ~ a#4 a4 ~@4", BP: "~@4 d5 d#5@2 ~ c5@3 ~ a4 ~@3",
  BQ: "~@4 g#4 [a4,d#5]@3 c5@4 a4@2 ~@2", BR: "~@2 [a4,a#4,d5,d#5] ~ [g4,c5]@2 a4@2",
  BS: "~@4 [a4,d5] [a#4,d#5]@3 [g4,c5]@4 a4@2 ~@2", // D5 D#5 C5
  BT: "[[a#4,d#5]@2 [a4,d5]@2 ~ c#5 [g4,c5]@2 ~@4 [d#4,f#4,b4] [e4,c5]@23 ~@12, ~@4 g#4@2 ~@6 g4@23 ~@13]/3", // D#5 D5 C5 B C
})).s("gm_electric_guitar_clean").gain(0.44).pan(0.6)

// chords · electric guitar clean · soft notes
const electric_guitar_clean_2 = note(`<
  A B C D E F ~@8 G ~@14 H I J K L M N O P Q R S T ~@21 U ~@27 V ~@7
>`.pickRestart({
  A: "~@10 [a4,a#4] ~@5", B: "~@10 [e4,a4,a#4] [d#4,g#4] ~@4", C: "~@10 [a#4,b4] a4 ~@4",
  D: "~@10 f#4 [e4,f4,a4,a#4] ~@4", E: "~@10 a#4 [e4,a4] ~@4", F: "~@11 [d#4,e4,f4,a4,a#4] g#4 ~@3",
  G: "~@7 [b4,d5] ~@3 b4 ~@3 d5", H: "~@11 b4 [e4,f4,a4,a#4] [d4,d#4,g4,g#4] ~@2", I: "~@9 b4 [e4,a4,a#4] g#4 ~@4",
  J: "~@10 [e4,a4,a#4] d#4 ~@4", K: "~@9 b4 [e4,f4,a4,a#4] [d#4,g#4] ~@4",
  L: "~@2 f#4 f4 ~@5 f#4 [e4,f4,a4,a#4] g#4 ~@4", M: "~@3 g4 a4 ~@5 a#4 ~@5", N: "~@3 [g4,g#4] ~@6 b4 ~@5",
  O: "~@2 b4 [e4,f4,a#4] ~@6 [e4,a4] [g4,g#4] ~@4", P: "~@3 a#4 ~@6 [d#4,e4,g#4,a4] ~@5",
  Q: "~@2 [a#4,c#5] [g#4,a4,b4,c5] ~@6 c#5 [b4,c5] a#4 ~@3", R: "~@3 [g4,a#4] ~@6 [g4,g#4,a#4,b4] [f4,f#4,a4] e4 ~@3",
  S: "~@3 a#4 a4 ~@5 [a#4,b4] [e4,g#4,a4] ~@4", T: "~@3 a4 ~@2 c6 ~@3 a#4 e4 ~@4", U: "~@6 g4 ~@9", V: "~@4 d5 ~@11",
})).s("gm_electric_guitar_clean").gain(0.16).pan(0.6)

// chords · epiano1
const epiano1 = note(`<
  ~@22 A B C D E B F@2 ~@18 A B C D E B F@2 ~@20 A B C D E B F G E B F@2 E B F@2 ~@7
>`.pickRestart({
  A: "~@4 [f3,a3,c4,d#4] ~ [f3,a3,c4,d#4]@3 ~ [f3,a3,c4,d#4] ~ [f3,a3,c4,d#4] ~ [f3,a3,c4,d#4] ~", // F7
  B: "[f3,a3,c4,d#4]@15 ~", C: "~@4 [g3,a3,c4,e4] ~ [g3,a3,c4,e4]@3 ~ [g3,a3,c4,e4] ~ [g3,a3,c4,e4] ~ [g3,a3,c4,e4] ~",
  D: "[g3,a3,c4,e4]@13 ~@3", E: "[g3,b3,d4,f4]@3 [f#3,a#3,c#4,e4]",
  F: "~@2 [g3,a3,c4,e4] ~ [g3,a3,c4,e4]@3 ~ [g3,a3,c4,e4]@8", // Am7
  G: "~@2 [g3,a3,c4,e4] ~ [g3,a3,c4,e4]@3 ~ [g3,a3,c4,e4]@5 ~@3", // Am7
})).s("gm_epiano1").gain(0.33).pan(0.6)

// drums · kick
const kick = s("bd").struct(`<
  A@15 B C ~@5 A@7 C A@3 D A@7 E C ~@5 A@7 C A@3 E A@8 C ~@4 C F G A@7 H A@11 I ~@3
>`.pickRestart({
  A: "x!2", B: "x ~@4 x ~@2", C: "x", D: "x!2 ~@2", E: "x ~@2 x ~@4", F: "x!4", G: "~ x ~@2", H: "x ~ x ~@2 x ~@2",
  I: "~ x ~@4 x ~",
})).gain(0.44)

// drums · snare
const snare = s("sd").struct(`<
  A@15 B ~ C D C D E A@7 F A@3 G A@7 H ~ C D C D F A@7 F A@3 I A@7 J ~ C D C D@2 K L A@7 M A@3 N A@3 O A@2 P Q ~@3
>`.pickRestart({
  A: "~@2 x!2 ~@2 x ~", B: "~@2 x!3 ~ x ~ x ~@3 x ~ x ~", C: "~@5 x!3", D: "x", E: "~@2 x!3 ~ x ~ x ~ x ~ x ~ x ~",
  F: "~@2 x!3 ~ x ~ x ~ x!3 ~ x ~", G: "~@2 x ~@3 x!3 ~ x!3 ~ x ~", H: "~@2 x!3 ~@3 x ~ x!3 ~ x ~", I: "~ x!2 ~ x!4",
  J: "~@2 x!3 ~ x ~@3 x!3 ~ x ~", K: "x ~@7 x ~@2 x!2 ~ x ~", L: "x ~ x!3 ~ x!5 ~ x ~ x ~",
  M: "~@2 x ~@4 x!2 ~@2 x!4 ~", N: "~@2 x!3 ~ x ~@3 x ~ x ~ x ~", O: "~@4 x ~ x ~@2 x!4 ~ x ~", P: "~ x ~ x",
  Q: "x ~ x!2 ~@2 x ~",
})).gain(0.44)

// drums · crash
const crash = s("cr").struct("<~@30 A ~@11 A ~@13 A ~@3 A ~@7 A ~@4 A B C A ~@7 A ~@3 A ~@3 A ~ D E ~@3>".pickRestart({
  A: "x", B: "x!2", C: "~ x", D: "x ~@2 x", E: "~@3 x",
})).gain(0.33)

// drums · ride bell
const ride_bell = s("rd").struct(`<
// … 6 more lines

More by Elvis Presley