Strudelify

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: 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 Z AA AB AC AD AE AF AG AH AI AJ AK ~@5 AL AM AN AO AP AQ AR AS
  AT AU AV AW AX AY AZ BA BB BC BD BE AK BF ~ BG AK@2 BH BI BJ BK BL BM BN BO BP BQ BR BS BT BU BV BW BX BY BZ CA CB
  CC@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,d#6]@3 ~ e2@2 [e5,a#5] ~@3 [e5,a#5,d#6] ~ [a2,e5]@2 [g2,c6] ~, a#5 ~@3 c6 ~ d#6@2 g2@4 [a#5,d#6] ~@3", // C Edim D# A5 C5 D#5
  AB: "[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
  AC: "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
  AD: "[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
  AE: "[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
  AF: "[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
  AG: "[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
  AH: "[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
  AI: "[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
  AJ: "[c2,e6]@2 ~@2 d#6 ~ d#6 ~ g2@4 a2@2 g2 ~, f6 ~ c6@11 ~@3, ~ e2 ~@2, ~@6 e6@7 ~@3", AK: "c2@3 ~@13",
  AL: "[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#
  AM: "[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
  AN: "[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
  AO: "[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
  AP: "[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
  AQ: "[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
  AR: "[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
  AS: "[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
  AT: "[e5,g5,a5,c6] ~@3 e2@3 ~ g2@3 ~ e2@3 ~, c2@3 ~@13", // Am7
  AU: "c2@4 ~@2 [e5,g5,a5,c6] ~ g2@3 ~ e2@2 [e5,g5,a5,c6] ~, ~ e2 ~@2", // Am7
  AV: "c2@3 ~ e2@3 ~@3 [e5,g5,a5,c6] ~ e2@3 ~, ~@2 g2 ~", AW: "c2@4 e2@3 ~@3 [e5,g5,a5,c6] ~ e2@4, ~@2 g2 ~",
  AX: "f2@2 ~@2 f2@2 ~@2 f2@2 ~@2 f2 ~ [d#5,g5,a5,c6] ~, ~@4 [d#5,g5,c6]@7 ~@5", // Am7b5 Cm
  AY: "f2@2 ~@2 f2@2 ~@2 d#5@4 f2@3 ~, ~@4 [g5,a5,c6]@3 ~, ~@4 f2 ~@3", // Am7
  AZ: "[e5,g5,a5,c6] ~@3 e2@3 ~ g2@2 [e5,g5,a5,c6] ~ e2@3 ~, c2@3 ~@13", // Am7
  BA: "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
  BB: "[f5,g5,b5,d6] ~@3 g2 ~@3 d6@4 g2@4, g2@2 ~@6 [f5,g5,b5]@7 ~, ~@4 g2 ~@3", // G7
  BC: "f2@2 ~@2 f2@2 ~@2 [d#5,g5,a5,c6] ~@7, [d#5,g5,a5,c6]@6 ~@2 f2@7 ~", // Am7b5
  BD: "c2@4 e2@2 [e5,a#5,d#6]@2 g2@2 c6 ~ [e2,e5,a#5,d#6]@3 ~", // D#
  BE: "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#
  BF: "~@2 c2@2 d#2@2 e2@2 c2@3 ~@5", BG: "~@2 c2@2 d#2@2 e2 ~ c2@3 ~@5", BH: "[c2,c3]@5 ~@3 [c2,c3]@4 ~@4",
  BI: "[c2,c3]@3 ~ [c2,c3]@2 ~@2 [c2,c3]@2 ~@2 [c2,c3]@3 ~", // C
  BJ: "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#
  BK: "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
  BL: "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
  BM: "c2@2 e5 ~ [e2,g5,a5,c6]@2 e5 ~ g2@2 e5 ~ e2@2 e5 ~, ~@4 e5 ~@5 [g5,a5,c6]@4 ~@2", // Am7
  BN: "[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
  BO: "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
  BP: "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
  BQ: "~@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#
  BR: "[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
  BS: "f2@2 d#5 ~ f2@2 d#5 ~ f2@2 d#5 ~ [g5,c6] ~@3, ~@6 [g5,a5,c6]@5 ~ f2@4", // C5 Am7
  BT: "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#
  BU: "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#
  BV: "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
  BW: "f2@2 [d#5,g5,a5,c6] ~ f2@2 ~@2 f2@3 ~ f2@4, ~@6 [d#5,g5,a5,c6]@7 ~@3", // Am7b5
  BX: "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
  BY: "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
  BZ: "g2@2 ~@2 [g2,f5,g5,b5,d6]@3 ~ [g2,f5,g5,b5,d6]@3 ~ [g2,f5,g5,b5,d6]@3 ~", // G7
  CA: "[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
  CB: "[c2,c3]@3 ~ [e2,e3]@3 ~ [f2,f3]@3 ~ [f#2,f#3]@3 ~", // C E F F#
  CC: "[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@3 B A B@2 A C D A E F D G H I J I K L M C N A O F D A H B@3 A C D A E F D A H I K P K L M C N A O Q D A@3 E A@2 C D
  H O F D A@2 L R ~ R L S T M C D U A V W A E X W U E V W A@2 X D Y Z@3 ~
>`.pickRestart({
  A: "c2@2 e2@2 g2@2 a2 g2", B: "c2@3 ~ e2@4 g2@4 a2@2 g2@2", C: "f2@3 ~ f2@3 ~ f2@2 d2@2 d#2@2 e2@2",
  D: "f2@3 ~ f2@3 ~ f2@2 a1@2 a#1@2 b1@2", E: "c2@4 e2@4 g2@4 a2@2 g2 ~", F: "g2@3 ~ g2@3 ~ g2@2 e2@2 f2@2 g2@2",
  G: "c2@4 e2@3 ~ g2@3 ~ a2@2 g2@2", H: "c2@4 e2@4 g2@3 ~ a2@2 g2@2", I: "c2@3 ~@7 c2@2 d#2@2 f2@2",
  J: "f#2 g2 f2 d#2 c2 ~@3", K: "f#2@2 g2@2 f2@2 d#2@2 c2@3 ~@5", L: "c2@3 ~@13", M: "c2@3 ~ c2@3 ~ c2@3 ~ c2@3 ~",
  N: "f2@3 ~ f2@2 ~@2 f2@2 a1@2 a#1@2 b1@2", O: "c2@3 ~ e2@4 g2@4 a2@2 g2 ~", P: "c2@2 ~@3 c2 d#2 f2",
  Q: "g2@3 ~ g2@2 ~@2 g2@2 e2@2 f2@2 g2@2", R: "~@2 c2@2 d#2@2 e2@2 c2@3 ~@5", S: "c2 ~@3", T: "c2@4 ~@4 c2@5 ~@3",
  U: "c2@4 e2@3 ~ g2@4 a2@2 g2@2", V: "g2@3 ~ g2@2 ~@2 g2@2 d2@2 f2@2 g2@2", W: "f2@4 f2@3 ~ f2@2 a1@2 a#1@2 b1@2",
  X: "g2@3 ~ g2@3 ~ g2@2 d2@2 f2@2 g2@2", Y: "c2@4 e2@3 ~ f2@4 f#2@3 ~", Z: "[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 R Q ~@2 S T J U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL Q AL Q ~@2 AM ~ AN
  AO AP AQ AR AS AT AU AV AW AX AY AZ BA BB BC BD BE ~ BF ~ BF ~@3 BG BH BI BJ BK BL BM BN BO ~@2 BP@2 BQ BR BS BT ~ BU
  BV BW@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 ~ d#3@2 f3 ~", Q: "f#3 g3 f3 d#3 c3 ~@3", R: "~@10 c3 ~ d#3 ~ f3 ~", S: "~@2 [f4,a4] ~ [a4,c5]@2 a4 ~",
  T: "g4@6 ~ a4@2 ~@7", U: "[b4,d5] [c5,d#5]@3 [c5,d#5] ~@3 [g4,c5]@3 ~ a4@2 ~@2",
  V: "~@10 [b3,d4,g4]@2 ~@2 [c#4,f#4] ~", W: "g4!2 a4 g4 d#4 d4 c4 ~", X: "~@2 [g4,c5] [a4,c5] [g4,c5]!2 c5!2, ~@3 g4",
  Y: "[g4,c5]@2 [g4,c5]@2 c5@2 c5@2 [g4,c5]@3 f#4 ~@4, ~ g4 ~@2", Z: "[g4,c5]@2 ~@4 [g4,c5]@3 f#4 f4 ~@5",
  AA: "[g4,c5]@3 ~@3 [g4,c5]@3 [f#4,b4] f4 ~@5", AB: "[g4,c5]@2 [f#4,b4] [f4,a#4] ~@3 c5@2 f#4 ~@6, ~@6 g4@3 ~@7",
  AC: "[g4,c5]@2 b4 a#4 ~@2 [g4,c5]@3 b4 ~@6", AD: "[a4,c5]@2 g#4 [a#4,b4] ~@3 [a4,c5]@2 b4 ~@6",
  AE: "[a4,c5]@3 b4 ~@3 a4@3 ~@6, ~@6 c5@3 ~@7", AF: "[g4,c5]@2 f#4 ~@3 [g4,c5]@3 [f4,f#4,a#4,b4] ~@6",
  AG: "[g4,c5]@2 [f#4,b4] f4 ~@3 c5@2 [f#4,a#4,b4] f4 ~@5, ~@6 g4@3 ~@7", AH: "[b4,d5]@3 ~@4 d5@4 ~@5, ~@3 b4@2 ~@3",
  AI: "[a4,c5]@3 [g#4,b4] ~@3 c5@3 ~@6, ~@6 a4@3 ~@7", AJ: "[g4,c5]@2 [f#4,b4] f4 ~@3 [g4,c5]@3 [f4,f#4] ~@5",
  AK: "[g4,c5]@2 [f#4,b4] [f4,a#4] ~@2 [g4,c5]@3 b4 [f4,f#4] ~@5", AL: "~@10 c3@2 d#3@2 f3 ~",
  AM: "~@4 [d#4,g4]@2 g4 ~ a4@4 g4@2 ~@2", // D#
  AN: "~@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
  AO: "[c5,d#5]@2 [c5,d#5] ~ c5@2 a4 ~", AP: "[b4,d5]@6 [b4,d5]@6 [b4,d5] ~@3",
  AQ: "~@2 c5 d#5 c5@2 a4 ~, ~@3 a4@2 ~@11", AR: "~@4 [g4,c5]@2 d#5 ~ [g4,c5]@4 a4@2 ~@2",
  AS: "[g4,c5]@2 ~@2 a4@2 g4@5 ~@5", AT: "[g4,c5]@2 ~@2 f4@2 ~ [g4,c5]@3 f4@2 ~ g4@3, ~@3 c5",
  AU: "f4 [g4,c5]@2 f4 [g4,c5]!4", AV: "d#5 c5 [g4,d#5]@2 [g4,c5]@2 d5 ~, g4 ~@3",
  AW: "~@2 [g4,d#5] ~ [g4,d#5] ~ [g4,d#5] ~ [g4,d#5] ~ [g4,d#5] ~ [g4,d#5] ~ [g4,d#5] ~", // Cm
  AX: "[g4,d#5] ~ [g4,d#5] ~ [g4,d#5] ~ [g4,d5] ~ [g4,c5]@3 ~ [g4,d5] ~@3", // Cm G5 C5 G5
  AY: "[g4,d#5] ~ [g4,d#5] ~ [g4,d#5] ~ [g4,d5] ~ [g4,c5]@3 ~ [g4,d5]@2 ~@2", // Cm G5 C5 G5
  AZ: "[g4,d#5]@2 c5 ~ [g4,d#5]@2 c5 ~ [g4,d#5]@2 c5 ~ [g4,d#5]@2 c5 ~", // Cm
  BA: "[g4,d#5] ~ [g4,d#5] ~ [g4,c5] ~ d5 ~ [g4,c5]@3 ~ [g4,d5] ~@3", BB: "[g4,d5]!5 g4 [g4,d5] [g4,c5]",
  BC: "[a4,a#4,d5,d#5] ~ [g4,c5] [f4,a4]@2 d#4 ~@2", // D#maj7 C5 F
  BD: "[f#4,b4] [g4,c5]@3 [g4,c5]@2 [g4,c5]@4 c5@2 c5@2 [g4,c5] ~, ~@5 g4@2 ~", // B5 C5
  BE: "[f#4,b4] [g4,c5]!2 [g4,c5]@2 [g4,c5]!2 ~", BF: "~ c3 d#3 e3 c3 ~@3", BG: "c5!2 a#4!2 a4!2 g4 ~",
  BH: "a4@4 g4 ~@3 g4@4 a4@2 ~@2", BI: "~@2 c5@2 c5@2 c5@4 c5@2 a4 ~@3", BJ: "[g4,c5] ~@2 [g4,d#5]@2 d#5 [g4,d#5] ~",
  BK: "[g4,c5]@4 [g4,d5] ~@3 c5@3 ~ d5@2 ~@2, ~@4 g4@3 ~", BL: "~@12 [a4,d5] [a#4,d#5]@3", BM: "[g4,c5]@3 ~@13",
  BN: "~@2 [g4,d#5]@2 [g4,d#5]@2 [g4,d#5]@2 [g4,d#5]@3 ~@5", BO: "a4@2 g4@2 e4@2 g4 ~", BP: "[g4,c5]@2 ~@4 a4@5 ~@5",
  BQ: "~@6 a4@5 ~@5", BR: "[g4,c5]@2 ~@4 a4@3 ~ a#4 a4 ~@4", BS: "~@4 d5 d#5@2 ~ c5@3 ~ a4 ~@3",
  BT: "~@4 g#4 [a4,d#5]@3 c5@4 a4@2 ~@2", BU: "~@2 [a4,a#4,d5,d#5] ~ [g4,c5]@2 a4@2",
  BV: "~@4 [a4,d5] [a#4,d#5]@3 [g4,c5]@4 a4@2 ~@2", // D5 D#5 C5
  BW: "[[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 F G H ~@18 A I C J E F G K ~@20 A F C D E I G L E F G K E F G@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]@7 ~", 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: "[f3,a3,c4,d#4]@15 ~",
  G: "~@2 [g3,a3,c4,e4] ~ [g3,a3,c4,e4]@3 ~ [g3,a3,c4,e4]@8", // Am7
  H: "~@2 [g3,a3,c4,e4] ~ [g3,a3,c4,e4]@2 ~@2 [g3,a3,c4,e4]@7 ~", I: "[f3,a3,c4,d#4]", J: "[g3,a3,c4,e4]@7 ~",
  K: "~@2 [g3,a3,c4,e4] ~ [g3,a3,c4,e4]@3 ~ [g3,a3,c4,e4]@7 ~", // Am7
  L: "~@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)

// … 13 more lines

More by Elvis Presley