Strudelify
My Boy cover art

1975 · Elvis At Stax

My Boy

Elvis Presley

KeyD majorTempo91 bpm
0:00/0:00
// My Boy — Elvis Presley
// 91 bpm, 4/4, key D major. Source: mcgill + midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: duplicate parts dropped: ch 6 string ensemble 2 (copy of ch 5 acoustic guitar steel); ch 9 oboe (copy of ch 8 trumpet)
// note: Full arrangement: all 71 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(91/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@2 B C@2 D E F G H I J K L M N O P Q R S@2 B C@2 D E F G H I J K L M N O P Q T@6 U@6 V@8 W@8 X@3
>`.pickRestart({
  A: "[~@7 a3 ~@7 d4, ~@7 a4@7 a4@2, ~ d5, ~@8 d4@7 ~]/2", B: "~@3 c#4, e5, c#4@3 ~, a4@5 a4@3, ~@3 c#5@5",
  C: "[b3@3 ~@5 a4@5 ~@2 f#4, b4@6 b4@2 ~@5 a4@3, d5@5 d5@3 c#5@6 c#5@2, ~@3 b3@5 ~@8, ~@4 f#4@3 f#4@5 ~@4]/2",
  D: "b4!2 ~ f#5, b3, ~ [f#4,b4,c#5]", E: "~@3 f#5, b3@7 ~, b4 [f#4,b4], ~ f#5@2 ~",
  F: "~@7 g3, [d5,f#5], g3@7 ~, f#4@3 f#4, ~@5 b4@3", G: "e4@3 ~@4 f#3, f#3@7 ~, a4@5 a4@3, e5!2, ~@3 e4@3 e4@2",
  H: "e3@3 ~@4 e3, d5@3 d5, g4@5 g4@3, d4!2, ~@3 e3@4 ~",
  I: "~@2 [f#4,b4,c#5,f#5]@3 [b4,c#5] [b4,c#5,f#5] [f#4,b4,c#5,f#5], [f#2,f#3]", // F#sus4 Bsus2 F#sus4 F#
  J: "[f#4,a#4,c#5]@5 ~ [f#4,a#4,c#5]@5 ~ [f#4,b4,c#5]@5 ~ [f#4,a#4,c#5]@4 ~@2, f#3@11 ~", // F# F#sus4 F#
  K: "~@5 [f#5,b5,d6] f#5@5 [b4,d5,f#5] [b4,d5]@5 [f#4,b4,d5] [f#4,b4,d5]@6, [b2,b3,d4], f#4@17 ~@7, ~ [b5,d6]@3, ~ f#5", // Bm
  L: "~@5 [d5,g5,b5] g5@5 [b4,e5] [b4,e5]@5 [g4,b4,e5] [g4,b4,e5]@5 ~, [e3,b3,e4]@11 ~, g4@17 ~@7, ~@3 [d5,b5]@8 ~, ~@6 g5@5 ~", // G E5 Em E5 G
  M: "~@5 [e5,a5] [c#5,e5]@5 [a4,c#5,e5] [a4,c#5]@5 [e4,a4,c#5] [e4,a4,c#5]@5 ~, [a3,c#4]@23 ~, e4@17 ~@7, a4@11 ~ e5@11 ~, ~@6 a5@17 ~", // A5 C#m A
  N: "~@5 [c#5,f#5,a5] [c#5,f#5]@5 [c#5,f#5] [a4,c#5]@5 [f#4,a4,c#5] [f#4,a4,c#5]@5 ~, [d3,c#4]@23 ~, f#4@17 ~@7, a4@12 f#5@11 ~, ~@3 a5@8 ~", // F#m F#5 A F#m Dmaj7
  O: "b3@15 b3@3 ~@3 f#3@2 ~, f#3@7 ~, [d4,f#4]@18 [b3,d4,f#4]@5 ~", // D Bm
  P: "g#3@12 g#3@3 ~@5 [g#3,b3,d4,f4]@4, c#3@18 c#3@5 ~, [b3,d4,f4]@15 [g#3,b3,d4,f4]@5 ~@4", // G#dim Bdim G#dim
  Q: "~@5 [c#5,f#5,b5] [c#5,f#5]@5 [b4,c#5,f#5] [b4,c#5,f#5]@6 ~@3 f#3@2 ~, f#3@7 ~, [b3,c#4,f#4]@18 [b3,c#4,f#4,b4,c#5,f#5]@5 ~, ~@2 b5@5 ~", // F#sus4 F#5 Bsus2
  R: "[f#3,a#3,c#4,f#4,c#5,f#5] ~@2 [a#3,c#4]@3 [b3,d4]@3 [c#4,e4]@3, a#4 ~@5 f#3@3 ~@15", // F# A#m Bm C#m
  S: "[[a3,d4,f#4]@19 ~@2 a3@3 ~@21 d4@3, ~@7 a4@7 a4@2, ~ d5, ~@8 d4@7 ~]/2", // D
  T: "[[a#3,c#4,f#4,a#4,c#5]@6 [b3,d4]@6 [c#4,e4]@6 [a3,d4,f#4]@19 ~@2 a3@3 ~@21 d4@3 ~@18 c#4@6 b3@9 ~@15 a4@15 ~@6 f#4@3 [b3,b4]@6, [f#3,f#5] ~@12 a4@7 a4@2 a4@5 a4@3 b4@6 b4@2 ~@5 a4@3 ~@2, ~@14 d5@8 e5@8 ~@4 f#4@3 f#4@5 ~@6, ~@14 d4@7 ~ c#4@6 ~@5 b3@5 ~@10, ~@25 c#5@5 d5@5 d5@3 c#5@6 c#5@2 ~@2]/6", // F# Bm C#m D B F#
  U: "[b4@6 ~@6 f#5@6 ~@18 f#5@6 ~@21 g3@3 e4@10 ~@12 f#3@3 e3@9 ~@12 e3@3 ~@6 [f#4,b4,c#5,f#5]@9 [b4,c#5]@3 [b4,c#5,f#5]@3 [f#4,b4,c#5,f#5]@3 [f#3,f#4,a#4,c#5]@5, ~@6 [f#4,b4,c#5]@12 b3@21 ~@3 g3@21 ~@3 f#3@22 ~@12 e3@12 ~@3 [f#2,f#3]@24 ~@5, ~@18 b4@12 [f#4,b4]@12 f#4@18 f#4@6 ~@10 e4@9 e4@6 d4@12 d4@12 ~@29, ~@24 f#5@12 ~@6 [d5,f#5]@24 e5@13 e5@12 d5@18 d5@6 ~@29, ~@57 b4@9 a4@16 a4@9 g4@15 g4@9 ~@29]/6", // F#sus4 Bsus2 F#sus4 F# F#sus4 F# B5 D
  V: "[~ [f#4,a#4,c#5]@5 ~ [f#4,b4,c#5]@5 ~ [f#4,a#4,c#5]@4 ~@7 [f#5,b5,d6] f#5@5 [b4,d5,f#5] [b4,d5]@5 [f#4,b4,d5] [f#4,b4,d5]@6 ~@5 [d5,g5,b5] g5@5 [b4,e5] [b4,e5]@5 [g4,b4,e5] [g4,b4,e5]@5 ~@6 [e5,a5] [c#5,e5]@5 [a4,c#5,e5] [a4,c#5]@5 [e4,a4,c#5] [e4,a4,c#5]@5 ~@6 [c#5,f#5,a5] [c#5,f#5]@5 [c#5,f#5] [a4,c#5]@5 [f#4,a4,c#5] [f#4,a4,c#5]@5 ~ b3@15 b3@3 ~@3 f#3@2 ~ g#3@12 g#3@3 [g#3,b3,d4,f4]@3 ~ [g#3,b3,d4,f4]@3 ~@7 [c#5,f#5,b5] [c#5,f#5]@5 [b4,c#5,f#5] [b4,c#5,f#5]@6 ~@3 f#3@2 ~ [f#3,f#4,a#4,c#5]@5, ~@19 [b2,b3,d4]@24 [e3,b3,e4]@22 ~@2 [a3,c#4]@23 ~ [d3,c#4]@23 ~ f#3@21 ~@3 c#3@18 c#3@5 ~ f#3@21 ~@8, ~@19 f#4@17 ~@7 g4@17 ~@7 e4@17 ~@7 f#4@17 ~@7 [d4,f#4]@18 [b3,d4,f#4]@5 ~ [b3,d4,f4]@15 ~@9 [b3,c#4,f#4]@18 [b3,c#4,f#4,b4,c#5,f#5]@5 ~@6, ~@25 [b5,d6]@18 ~@12 g5@10 ~@8 a5@17 ~@7 a5@16 ~@56 b5@15 ~@8, ~@31 f#5@12 ~@6 [d5,b5]@16 ~@2 a4@11 ~ e5@11 ~ a4@12 f#5@11 ~@73 f#5@2 ~@3]/8", // F# F#sus4 F# Bm G E5 Em A5 …
  W: "[~ [f#4,a#4,c#5]@5 ~ [f#4,b4,c#5]@5 ~ [f#4,a#4,c#5]@4 ~@7 [f#5,b5,d6] f#5@5 [b4,d5,f#5] [b4,d5]@5 [f#4,b4,d5] [f#4,b4,d5]@6 ~@5 [d5,g5,b5] g5@5 [b4,e5] [b4,e5]@5 [g4,b4,e5] [g4,b4,e5]@5 ~@6 [e5,a5] [c#5,e5]@5 [a4,c#5,e5] [a4,c#5]@5 [e4,a4,c#5] [e4,a4,c#5]@5 ~@6 [c#5,f#5,a5] [c#5,f#5]@5 [c#5,f#5] [a4,c#5]@5 [f#4,a4,c#5] [f#4,a4,c#5]@5 ~ b3@15 b3@3 ~@3 f#3@2 ~ g#3@12 g#3@3 [g#3,b3,d4,f4]@3 ~ [g#3,b3,d4,f4]@4 ~@6 [c#5,f#5,b5] [c#5,f#5]@5 [b4,c#5,f#5] [b4,c#5,f#5]@6 ~@3 f#3@2 ~ [f#4,c#5,f#5]@2 ~@3, ~@19 [b2,b3,d4]@24 [e3,b3,e4]@22 ~@2 [a3,c#4]@23 ~ [d3,c#4]@23 ~ f#3@21 ~@3 c#3@18 c#3@5 ~ f#3@21 ~@8, ~@19 f#4@17 ~@7 g4@17 ~@7 e4@17 ~@7 f#4@17 ~@7 [d4,f#4]@18 [b3,d4,f#4]@5 ~ [b3,d4,f4]@15 ~@9 [b3,c#4,f#4]@18 [b3,c#4,f#4,b4,c#5,f#5]@5 ~@6, ~@25 [b5,d6]@18 ~@12 g5@10 ~@8 a5@17 ~@7 a5@16 ~@56 b5@15 ~@8, ~@31 f#5@12 ~@6 [d5,b5]@16 ~@2 a4@11 ~ e5@11 ~ a4@12 f#5@11 ~@73 a#4 ~@4]/8", // F# F#sus4 F# Bm G E5 Em A5 …
  X: "[~@4 f#3@3 [b3,d4]@3 e4@3 [a#3,c#4]@3 d4@3 [b2,f#3,b3]@22 ~@7 b5@23 ~, ~ [f#2,a#3,c#4]@5 ~ g2@6 f#2@6 d3@12 ~@14 d5@26 ~]/3", // Bm A#m B5 F#
})).s("gm_piano").gain(0.45)

// chords · piano · soft notes
const piano_soft = note("<~@4 A B C D ~@3 E ~@8 F ~@3 A B C D ~@3 E ~@8 G ~@2 H@3 I@2 ~@3 J ~@17 K@2>".pickRestart({
  A: "f#4 ~", B: "f#3@3 ~ f#4@3 f#3, ~@3 f#3@4 ~", C: "f#4!2 ~@2", D: "f#4@4 ~@3 b3", E: "~@5 [f#4,f#5] f#4 ~",
  F: "~@3 f#3@2 f#3@2 f#3", G: "~ f#3@2 f#3@2 f#3 ~@2", H: "[~@6 f#4@4 ~@4 f#3@3 ~ f#4@3 f#3 f#4@2, ~@17 f#3@4 ~@3]/3",
  I: "[f#4@2 ~@4 f#4@4 ~@3 b3 ~@2]/2", J: "~@10 [f#4,f#5]@3 f#4@3 ~@8",
  K: "[~@12 b6@3 ~, ~@5 c#5@7, ~@23 f#5@25, ~@26 c#6@3 f#6@16 ~@3, ~@29 d6@19]/2",
})).s("gm_piano").gain(0.28)

// bass · electric bass finger
const bass = note(`<
  A B C D E F G H I J K L M N O P Q R@2 S@2 B C D E F G H I J K L M N O P Q R@2 T@7 U V@5 W X@4 Y Z AA W AB@2 AC@2 Y Z
  AA AD@3
>`.pickRestart({
  A: "~@7 a1", B: "d2@7 a1", C: "d2@20 ~ d2@3", D: "c#2", E: "b1@20 ~ b1@3", F: "f#1@7 f#1",
  G: "b1@5 ~ b1@5 ~ b1@3 ~@3 b1@3 ~@3", H: "b1@3 ~@3 b1@3 ~@3 b1@2 ~ b1@6 a1@3", I: "g1@3 d2 g2@3 g2",
  J: "f#2@3 f#2 c#3@2 f#2@2", K: "e2@3 e2 b2@2 e2@2", L: "f#1@9 f#2@5 ~ f#2@6 c#2@3", M: "f#1@5 ~ f#1@6 g#1@6 a#1@6",
  N: "b1@5 ~ b1@5 ~ b1@3 c#2@3 d2@3 f#2@3, ~@11 f#1@2 ~@11",
  O: "e2@5 ~ e2@2 d2@3 ~ b1@3 a1@3 g1@3 e1@3, ~@5 b1@2 ~@4 d2@2 ~@11",
  P: "a1@4 ~@2 a2@5 ~ a1@3 b1@3 c#2@3 e2@3, ~@5 a1@2 ~@4 e2@2 ~@11",
  Q: "d2@5 ~ f#3@2 e3@2 ~ d3@2 ~@2 c#3@3 b2@3 a2@3, ~@5 a2@2 ~@7 d3@2 ~@8",
  R: "[g#2@5 ~ g#2@5 ~ g#2@5 ~ g#2@3 d#2 ~@2 c#2@5 ~ c#2@5 ~ c#2@2 ~ c#2@5 ~ c#2@3, ~@11 d#2@2 ~@4 d#2@2 ~@4 d2@2 ~@10 g#2@2 ~@11]/2",
  S: "[f#2@5 ~ f#2@5 ~ f#2 ~ f#2@3 ~ f#2 ~ f#2@3 ~ f#2@2 ~@22, ~@11 c#2@2 ~@4 c#2@2 ~@4 c#2@2 ~@23]/2",
  T: "[f#2@5 ~ f#2@5 ~ f#2 ~ f#2@3 ~ f#2 ~ f#2@3 c#2@2 ~@17 d2@21 a1@3 d2@20 ~ d2@3 c#2@24 b1@20 ~ b1@3 f#1@21 f#1@3 b1@5 ~, ~@11 c#2@2 ~@4 c#2@2 ~@149]/7",
  U: "b1@5 ~ b1@3 ~@3 b1@3 ~@3 b1@3 ~@3",
  V: "[b1@3 ~@3 b1@2 ~ b1@6 a1@3 g1@9 d2@3 g2@9 g2@3 f#2@9 ~ f#2@3 c#3@6 f#2@6 e2@9 e2@3 b2@6 e2@6 f#1@9 f#2@5 ~ f#2@6 c#2@3 f#1@5]/5",
  W: "~ f#1@6 g#1@6 a#1@6 b1@5",
  X: "[~ b1@4 f#1@2 b1@3 c#2@3 d2@3 f#2@3 e2@4 b1@2 ~ d2@3 d2@2 b1@3 a1@3 g1@3 e1@3 a1@4 a1@2 a2@4 e2@2 a1@3 b1@3 c#2@3 e2@3 d2@4 a2@2 ~ e3@2 ~ d3@2 ~ d3@2 c#3@3 b2@3 a2@3 g#2@5, ~@25 e2@2 ~@46 f#3@2 ~@21]/4",
  Y: "~ g#2@4 d#2@2 g#2@4 d#2@2 g#2@3 d#2 d2@2 c#2@5", Z: "~ c#2@4 g#2@2 c#2@2 ~ c#2@5 ~ c#2@3 f#2@5",
  AA: "~ f#2@4 c#2@2 f#2 f#2@3 c#2@2 f#2 f#2@3 c#2@2 f#1@5",
  AB: "[~ b1@4 f#1@2 b1@3 c#2@3 d2@3 f#2@3 e2@4 b1@2 ~ d2@3 d2@2 b1@3 a1@3 g1@3 e1@3 a1@4 a1, ~@25 e2@2 ~@21]/2",
  AC: "[~ a2@4 e2@2 a1@3 b1@3 c#2@3 e2@3 d2@4 a2@2 ~ e3@2 ~ d3@2 ~ d3@2 c#3@3 b2@3 a2@3 g#2@5, ~@25 f#3@2 ~@21]/2",
  AD: "[~ f#1@6 g1@6 f#1@6 b1@48 ~@5]/3",
})).s("gm_electric_bass_finger").gain(0.58)

// bass · electric bass finger · soft notes
const bass_soft = note("<~@6 A B ~@18 A B ~@18 C D ~@23>".pickRestart({
  A: "~@15 b1@2 b1 ~@3 b1@2 b1", B: "~@3 b1@2 b1 ~@3 b1@2 b1 ~@12", C: "~@9 b1@2 b1 ~@3 b1@2 b1 ~@3 b1@2 b1",
  D: "~@3 b1@2 b1 ~@18",
})).s("gm_electric_bass_finger").gain(0.29)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  A B@2 C D E F@2 G H I J K L M N O P Q R@2 B@2 C D E F@2 G H I J K L M N O P Q S T@7 U@5 V@8 W@8 ~@3
>`.pickRestart({
  A: "~@7 a2",
  B: "[~@18 e3@2 ~@25 d4@3, d3@7 a3@2 f#3@7, ~ f#3@4 d4@6 f#4@5, ~@3 a3@7 f#3@2 d3@12, ~@3 f#4@7 a3@3 d4 a3@2]/2",
  C: "~@7 a3, c#3, ~ e3@4 c#4@3, ~ a3@2 e3, ~@3 e4@5", D: "~@7 b3, b2, ~ f#3@5 f#3@2, ~@2 b3@3 b3@2 ~, ~@3 d4@5",
  E: "~@7 a3, f#2, ~ f#3@4 c#4@3, ~ a3@2 f#3, ~@3 f#4@5",
  F: "[~@15 b2, b2@8 b2@7 ~, ~ f#3@5 f#3@3 f#3@2 f#3@3 f#3@2, ~@2 b3@3 b3@2 b3@3 b3@3 b3@3, ~@3 d4@9 d4@4]/2",
  G: "~@7 g3, g2, ~ b3@5 b3@2, ~@2 d4@3 d4@3, ~@3 f#4@5", H: "~@7 c#4, f#2, ~ a3@4 f#3@3, ~ c#4@2 a3, ~@3 e4@5",
  I: "~@7 b3, e2, ~ b3@5 d4@2, ~@2 d4@3 g3@3, ~@3 g4@5", J: "~@7 b3, f#2, ~ f#3@7, ~ b3@2 c#4, ~@3 c#4@2 f#4@3",
  K: "[a#3,c#4]@5 ~ [a#3,c#4]@5 ~ [b3,c#4]@5 ~ [a#3,c#4]@6, f#4, f#3@11 ~ f#3@12", // A#m Bsus2 A#m
  L: "~@7 b2, b2@7 ~, ~ f#3@5 f#3@2, ~@2 b3@3 b3@3, ~@3 d4@5",
  M: "~@7 e3, e3@7 ~, ~ g3@5 g3@2, ~@2 b3@3 b3@3, ~@3 e4@5", N: "~@7 a2, a2@7 ~, ~ e3@5 e3@2, ~@2 a3@3 a3@3, ~@3 c#4@5",
  O: "~@7 d3, d3@7 ~, ~ f#3@5 f#3@2, ~@2 a3@3 a3@3, ~@3 c#4@5",
  P: "~@6 f#3 g#2, g#2@7 ~, ~ f#3@5 ~@2, ~@2 b3@3 b3@2 ~, ~@3 d4@4 ~",
  Q: "~@7 c#3, c#3@7 ~, ~ g#3@5 g#3@2, ~@2 b3@3 b3@3, ~@3 f4@5",
  R: "[~@12 [a#3,c#4] ~@11, f#3@21 f#3@5 ~@22, ~ b3@5 b3@2 ~@8, ~@2 c#4@3 c#4@3 ~@8, ~@3 f#4@4 ~@9]/2", // A#m
  S: "~@7 f#3, f#3@7 ~, ~ b3@5 b3@2, ~@2 c#4@3 c#4@3, ~@3 f#4@4 ~",
  T: "[~@36 e3@2 ~@25 d4@3 ~@21 a3@3 ~@21 b3@3 ~@21 a3@3 ~@27 f#3@3, ~@6 d3@7 a3@2 f#3@7 ~ e3@4 c#4@3 ~@2 b3@3 b3@2 ~@3 a3@4 f#3@2 ~ f#3@5 f#3@3 ~, ~@7 f#3@4 d4@6 f#4@5 ~@3 e4@5 ~@3 d4@5 ~@3 f#4@5 ~@3 d4@7, ~@12 a3@7 f#3@2 d3@12 c#3@12 b2@12 f#2@12 b2@12 b2@3, ~@9 f#4@7 a3@3 d4 a3@2 ~@2 a3@4 e3@2 ~ f#3@5 f#3@2 ~ f#3@4 c#4@3 ~@2 b3@3 b3@2 b3@3]/7",
  U: "[~@15 b2@3 ~@21 g3@3 ~@22 c#4@3 ~@21 b3@3 ~@21 b3@3 [f#3,a#3,c#4,f#4]@5, b3@9 b3@9 ~@3 b3@15 b3@6 ~@3 a3@13 f#3@9 ~@9 g4@15 ~@9 c#4@6 f#4@9 ~@5, ~@3 f#3@9 f#3@6 g2@24 f#2@25 e2@24 f#2@24 ~@5, ~@6 d4@12 ~@6 d4@9 d4@9 ~@7 c#4@12 a3@6 ~@3 b3@15 d4@6 ~@6 b3@12 c#4@6 ~@5, ~@27 f#4@15 ~@10 e4@15 ~@6 d4@9 g3@9 ~@3 f#3@21 ~@5]/5", // F#
  V: "[~ [a#3,c#4]@5 ~ [b3,c#4]@5 ~ [a#3,c#4]@6 ~@21 b2@3 ~@21 e3@3 ~@21 a2@3 ~@21 d3@3 ~@18 f#3@3 g#2@3 ~@21 c#3@3 ~@21 f#3@3 ~@3 a#3@2, ~@7 f#3@12 b2@21 ~@12 e4@15 ~@9 c#4@15 ~@6 a3@9 a3@9 ~@6 b3@9 b3@6 ~@9 b3@9 b3@9 ~@3 b3@15 b3@6 ~@5, ~@22 f#3@15 f#3@6 e3@21 ~@3 a2@21 ~@12 c#4@15 ~@9 d4@12 ~@12 f4@15 ~@6 c#4@9 c#4@9 ~@5, ~@25 b3@9 b3@9 ~@3 g3@15 g3@6 ~@3 e3@15 e3@6 d3@21 ~@3 g#2@21 ~@3 c#3@21 ~@12 f#4@12 ~@8, ~@28 d4@15 ~@6 b3@9 b3@9 ~@6 a3@9 a3@9 ~@3 f#3@15 f#3@6 ~@3 f#3@15 ~@9 g#3@15 g#3@6 f#3@21 ~@3 f#3@5]/8", // A#m Bsus2 A#m
  W: "[~ c#4@3 f#4@3 [b3,c#4]@3 f#4@3 [c#4,e4]@3 f#4@3 ~@21 b2@3 ~@21 e3@3 ~@21 a2@3 ~@21 d3@3 ~@18 f#3@3 g#2@3 ~@21 c#3@3 ~@21 f#3@3 ~@5, ~@19 b2@21 ~@12 e4@15 ~@9 c#4@15 ~@6 a3@9 a3@9 ~@6 b3@9 b3@6 ~@9 b3@9 b3@9 ~@3 b3@15 b3@6 ~@5, ~@22 f#3@15 f#3@6 e3@21 ~@3 a2@21 ~@12 c#4@15 ~@9 d4@12 ~@12 f4@15 ~@6 c#4@9 c#4@9 ~@5, ~@25 b3@9 b3@9 ~@3 g3@15 g3@6 ~@3 e3@15 e3@6 d3@21 ~@3 g#2@21 ~@3 c#3@21 ~@12 f#4@12 ~@8, ~@28 d4@15 ~@6 b3@9 b3@9 ~@6 a3@9 a3@9 ~@3 f#3@15 f#3@6 ~@3 f#3@15 ~@9 g#3@15 g#3@6 f#3@21 ~@8]/8", // Bsus2 C#m
})).s("gm_acoustic_guitar_steel").gain(0.38).pan(0.8)

// chords · string ensemble 2
const string_ensemble_2 = note(`<
  ~@8 A B C D@2 E F G H I J K L M@2 N O P Q@2 A B C D@2 E F G H I J K R@7 S@5 T@8 U@8 V@3
>`.pickRestart({
  A: "[g2,b3,f#4,b4]", B: "[f#2,a3,e4,a4]", C: "[e2,g3,d4,g4]",
  D: "[[f#2,b3]@8 a#3 ~ [c#4,f#4,a#4]@2 [d4,f#4,b4]@2 [e4,f#4,c#5]@2, [c#4,f#4,f#5]@9 ~ f#5@6]/2", // B5 F# Bm F#7 F#5
  E: "[b2,f#4,b4,d5,f#5]", F: "[e3,g4,b4,e5]", G: "[a2,e4,a4,c#5,e5]", H: "[d3,f#4,a4,c#5,f#5]",
  I: "[g#2,f#4,b4,d5,f#5]", J: "[c#3,g#4,b4,d5,f5]", K: "[f#2,f#3,b4,c#5,f#5]",
  L: "[a#4,c#5,f#5]@2 ~@4 [a#3,c#4]@5 ~ [b3,d4]@5 ~ [c#4,e4]@6, ~@6 f#4@17 ~", M: "[[d3,f#3,a3,d4]@47 ~]/2",
  N: "[c#3,e3,a3,c#4]", O: "[b2,f#3,b3,d4]", P: "[f#2,f#3,a3,c#4]", Q: "[[b2,f#3,b3,d4]@15 ~]/2",
  R: "[[a#3,c#4]@5 ~ [b3,d4]@5 ~ [c#4,e4]@6 [d3,f#3,a3,d4]@47 ~ [c#3,e3,a3,c#4]@24 [b2,f#3,b3,d4]@24 [f#2,f#3,a3,c#4]@24 [b2,f#3,b3,d4]@30, f#4@17 ~@151]/7", // A#m Bm C#m D A Bm F#m Bm
  S: "[~@18 [g2,b3,f#4,b4]@24 [f#2,a3,e4,a4]@25 [e2,g3,d4,g4]@24 [f#2,b3]@24 a#3@3 ~@2, ~@91 [c#4,f#4,f#5]@27 ~@2]/5", // Gmaj7 F#m7 Em7 B5 F#5
  T: "[~ [c#4,f#4,a#4]@6 [d4,f#4,b4]@6 [e4,f#4,c#5]@6 [b2,f#4,b4,d5,f#5]@24 [e3,g4,b4,e5]@24 [a2,e4,a4,c#5,e5]@24 [d3,f#4,a4,c#5,f#5]@24 [g#2,f#4,b4,d5,f#5]@24 [c#3,g#4,b4,d5,f5]@24 [f#2,f#3,b4,c#5,f#5]@24 [a#4,c#5,f#5]@5, ~ f#5@18 ~@168 a#3@3 ~@2]/8", // F# Bm F#7 Bm Em A Dmaj7 G#m7b5 …
  U: "[~ [c#4,f#4,a#4]@6 [d4,f#4,b4]@6 [e4,f#4,c#5]@6 [b2,f#4,b4,d5,f#5]@24 [e3,g4,b4,e5]@24 [a2,e4,a4,c#5,e5]@24 [d3,f#4,a4,c#5,f#5]@24 [g#2,f#4,b4,d5,f#5]@24 [c#3,g#4,b4,d5,f5]@24 [f#2,f#3,b4,c#5,f#5]@23 [f#3,a#4,c#5,f#5]@4 ~@2, ~ f#5@18 ~@173]/8", // F# Bm F#7 Bm Em A Dmaj7 G#m7b5 …
  V: "[[f#4,a#4,c#5]@6 ~ [g3,e4,b4,d5]@6 [f#3,e4,a#4,c#5]@6 [b3,d4,f#4,b4]@48 ~@5]/3", // F# Em7 F#7 Bm
})).s("gm_string_ensemble_2").gain(0.11)

// drums · rim
const rim = s("rim").struct("<[x!4] ~@70>").gain(0.43)

// drums · kick
const kick = s("bd").struct("<~@8 A@3 B C D@6 E ~@8 A@3 B C D@6 F ~@7 G H I@2 J K L@6 M N L@6 O P ~@2>".pickRestart({
  A: "x ~@2 x!2 ~@3", B: "x ~@2 x!2 ~@2 x", C: "x!4", D: "x ~@10 x!2 ~@2 x ~@5 x ~@2",
  E: "x ~@10 x ~@2 x ~@2 x ~@2 x ~@2 x", F: "x ~@2 x ~@2 x ~", G: "~@3 x", H: "~ x!2 ~@3 x ~",
  I: "~@4 x ~@2 x ~@11 x ~@4", J: "~@4 x ~@2 x ~@8 x ~@2 x ~@4", K: "~ x ~@5 x ~@5 x ~@5 x ~@4",
  L: "~@5 x ~ x ~@2 x ~@5 x ~@2 x ~@4", M: "~@4 x ~@8 x ~@5 x ~@4", N: "~@5 x ~@10 x ~@2 x ~@4",
  O: "~@5 x ~@2 x ~@2 x ~@5 x ~@6", P: "~@19 x ~@4",
})).gain(0.64)

// drums · snare
const snare = s("sd").struct("<~@11 A B C@6 D E ~@10 A B C@6 F ~@10 G H I J@5 K L M J@6 N ~@3>".pickRestart({
  A: "x!2 ~@4 x ~@5", B: "~@5 x ~@3 x ~@7 x ~@6", C: "~ x ~ x", D: "~ x!3", E: "x",
  F: "~@3 x ~@4 x ~@3 x ~@4 x ~@3 x ~@2", G: "~@19 x!2 ~@3", H: "~@7 x ~@15 x", I: "~@4 x ~@6 x ~@12",
  J: "~ x ~@11 x ~@10", K: "~ x ~@11 x ~@8 x ~", L: "~@2 x ~@4 x ~@3 x ~@4 x ~@5 x ~",
  M: "~ x!2 ~@4 x ~@2 x ~@2 x!2 ~@9", N: "~ x ~@5 x ~@5 x ~@5 x ~@4",
})).gain(0.71)

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@10 A B ~@18 A B ~@18 C D ~@19>".pickRestart({
  A: "~@22 x!2", B: "~@10 x!2 ~@12", C: "~@17 x!2 ~@5", D: "~@5 x!2 ~@17",
})).gain(0.21)

// drums · low tom
const low_tom = s("lt").struct("<~@7 A ~@3 B C ~@14 A ~@3 B C ~@6 D ~@7 E ~@2 F G H ~@6 I J ~@6 J ~@3>".pickRestart({
  A: "~@17 x!2 ~@5", B: "~@3 x ~@2 x ~@8 x ~@7 x", C: "~@2 x!2 ~@4 x ~@6 x ~@5 x ~ x", D: "~@23 x", E: "~@11 x!2 ~@11",
  F: "~@11 x", G: "~ x ~@8 x ~@6 x ~@2 x ~ x ~", H: "~@2 x ~@7 x ~@5 x!2 ~@6", I: "~@17 x ~ x ~@4", J: "~@2 x",
})).gain(0.5)

// drums · hihat
const hihat = s("hh").struct("<~ A@7 B C B C B ~@8 A@7 B C B C B ~@8 D@6 E B F G F H ~@6 I H ~@10>".pickRestart({
  A: "~ x ~ x", B: "x!8", C: "x!7 ~", D: "x!2", E: "x ~@3 x ~ x!2", F: "~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@5 x ~@2 x ~",
  G: "~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~", H: "~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@7", I: "~@19 x ~@2 x ~",
})).gain(0.21)

// drums · mid tom
const mid_tom = s("mt").struct("<~@7 A ~@3 B C ~@14 A ~@3 B C ~@6 D ~@7 E ~@2 F G H ~@6 I J ~@6 K ~@3>".pickRestart({
  A: "~ x", B: "~@3 x ~@2 x ~@8 x ~@4 x!2 ~@2", C: "x ~@2 x ~@2 x!2 ~ x!2 ~", D: "~@2 x ~@2 x ~@2", E: "~ x ~@2",
  F: "~@11 x", G: "~ x ~@8 x ~@3 x ~ x ~@2 x ~@4", H: "~ x ~@5 x!2 ~@4 x!2 ~@9", I: "~ x ~@8 x ~@13", J: "~ x ~@4",
  K: "~@7 x ~@4",
})).gain(0.5)

// drums · mid tom · soft notes
const mid_tom_soft = s("mt").struct("<~@7 [~ x ~ x ~@4] ~@19 [~ x ~ x ~@4] ~@18 [~@7 x] [~ x ~@6] ~@23>").gain(0.29)

// drums · open hat
const open_hat = s("oh").struct("<~@9 A ~ A ~@17 A ~ A ~@17 B ~ B ~@19>".pickRestart({
  A: "~@7 x", B: "~@2 x",
})).gain(0.14)

// drums · crash
const crash = s("cr").struct(`<
  ~@13 A ~ A ~ A ~ A@2 ~@12 A ~ A ~ A ~ A ~@12 B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~@2
>`.pickRestart({
  A: "x", B: "~@19 x ~@4",
})).gain(0.29)

// drums · ride
const ride = s("rd").struct("<~@8 A ~@4 B@7 ~@8 A ~@4 B@7 ~@7 C ~@4 D E@6 F D E@6 F G ~@2>".pickRestart({
  A: "x", B: "x!8", C: "~@3 x", D: "~@19 x ~@2 x ~", E: "~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~",
  F: "~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@7", G: "~ x ~@5 x ~@5 x ~@3 x!3 ~@4",
})).gain(0.43)

stack(
  piano, piano_soft, bass, bass_soft, acoustic_guitar_steel, string_ensemble_2, rim, kick, snare, snare_soft, low_tom,
  hihat, mid_tom, mid_tom_soft, open_hat, crash, ride
)

More by Elvis Presley