Strudelify

Kissin' Cousins

Elvis Presley

KeyG majorTempo152 bpm
0:00/0:00
// Kissin' Cousins — Elvis Presley
// 152 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: coarse tuning (RPN 2) transposes the affected channels
// note: Full arrangement: all 76 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(152/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 · "A.PIANO 1"
const piano = note(`<
  A B C D A E F G H I J K L M N O P Q R S T@2 U V A B C D A E F G H W X K L M N O P Q Y Z AA@2 AB AC AD@2 AE AF AG@2 AH
  AI AJ@2 AK ~@17
>`.pickRestart({
  A: "c2@3 ~ e2@3 [g3,c4,e4] g2@3 ~ a2@3 [g3,c4,e4], ~@3 [g3,c4,e4]@3 ~@5 [g3,c4,e4]@3 ~@2", // C
  B: "g2@3 ~ e2@3 [b3,d4] d2@3 ~ e2@3 [g3,b3,d4], ~@3 [g3,b3,d4]@4 ~@4 [g3,b3,d4]@3 ~@2", // Bm G
  C: "c2@3 ~ e2@3 [g3,c4,e4] g2@3 ~ a2@3 [g3,c4,e4], ~@3 [g3,c4,e4]@4 ~@4 [g3,c4,e4]@3 ~@2", // C
  D: "g2@3 ~ e2@3 [b3,d4] d2@3 ~ e2@3 [g3,b3,d4], ~@3 [g3,b3,d4]@3 ~@5 [g3,b3,d4]@3 ~@2", // Bm G
  E: "g2@3 ~ e2@3 [g3,b3,d4] d2@3 ~ b1@3 [g3,b3,d4], ~@3 [g3,b3,d4]@3 ~@5 [g3,b3,d4]@3 ~@2", // G
  F: "a1@3 ~ b1@3 [g3,c#4,e4] c2@3 ~ c#2@3 [g3,c#4,e4], ~@3 [g3,c#4,e4]@3 ~@5 [g3,c#4,e4]@3 ~@2", // C#dim
  G: "d2@3 ~ e2@3 [a3,c4,d4,f#4] f2@3 ~ f#2@3 [a3,c4,d4,f#4], ~@3 [a3,c4,d4,f#4]@4 ~@4 [a3,c4,d4,f#4]@3 ~@2", // D7
  H: "g2@3 ~ e2@4 [b3,d4,e4,g4] ~@3 [b3,d4,e4,g4] ~@3, ~@3 [b3,d4,e4,g4]@5 d2@3 ~ b1@3 ~", // Em7
  I: "[c2,a#3,d4,e4,g4]@3 [a#3,d4,e4,g4] e2@3 [a#3,d4,e4,g4] g2@3 ~ [a2,a#3,d4,e4,g4]@3 [b3,d4,e4,g4]", // C7 Em7b5 Em7
  J: "g2@3 [b3,d4,e4,g4] e2@3 ~ [b4,d5,e5,g5]@2 ~ [b3,d4,e4,g4] e2@4, ~@8 d2@3 ~@5", // Em7
  K: "[b3,d4,e4,g4] ~@3 [b4,d5,e5,g5]@2 ~ [b3,d4,e4,g4] d2@3 ~ c#2@4, g2@4 e2@3 ~@9", // Em7
  L: "c2@3 ~ e2@4 [a#3,d4,e4,g4]@2 ~ [a#3,d4,e4,g4] a2@3 ~, ~@3 [a#3,d4,e4,g4]@5 g2@3 ~@5", // Em7b5
  M: "[a#3,d4,e4,g4]@2 ~ [a#3,d4,e4,g4] a2@3 [a#3,d4,e4,g4] g2@4 [e2,a#3,d4,e4,g4]@3 [b3,d4,e4,g4], a#2@3 ~@13", // Em7b5 Em7
  N: "g2@3 [b3,d4,e4,g4] e2@3 ~ [d2,b4,d5,e5,g5]@3 [b3,d4,e4,g4] e2@2 ~@2", // Em7
  O: "[b3,d4,e4,g4] ~@3 [b4,d5,e5,g5]@2 ~ [b3,d4,e4,g4] d2@3 ~ c#2@3 ~, g2@4 e2@3 ~@9", // Em7
  P: "c2@3 [c#5,d5,g5] g5!2 ~ [d5,g5] [c#5,d5,g5] [d5,g5] ~ [d5,g5]!3 ~ [d5,g5], ~@4 e2@4 g2@4 a2@3 ~", // G G5 G G5
  Q: "d5 c#5 ~ c5 a#4 b4 ~ g4 d2@3 d4 c#2@4, [g2,g5]@2 e2@2 e4 ~@3", // G
  R: "c2@3 [c#5,d5,g5] [d5,g5]!2 ~ [d5,g5] [c#5,d5,g5] ~@2 [d5,g5]!3 ~ [e2,d5,g5], ~@4 e2@3 ~ g2@3 ~ a2@3 ~", // G G5 G G5 Em7
  S: "c#5!2 ~ c5 a#4 b4 ~ g4 [d2,e4]@3 g4 e2@3 d#2, [g2,g5]@4 e2@3 ~@9, d5 ~@7", // Dsus2 G
  T: "[d2@3 ~ f#2@3 ~ a2@3 ~ f#2@2 ~@2 d2@4 f#2@3 ~ c2@4 e2@3 [b3,d4,e4,g4], [a3,d4,e4,f#4]@18 ~@5 [a#3,d4,e4,g4]@7 ~@2]/2", // Em7 D Em7b5
  U: "g2@3 ~ e2@3 ~ [b4,d5,e5,g5] ~@3 [b3,d4,e4,g4] ~@3, ~@3 [b3,d4,e4,g4]@5 d2@3 ~ b1@3 ~", // Em7
  V: "[b4,d5,e5,g5] ~@3 [b1,b3,d4,e4]@3 [b4,d5,e5,g5] d2@3 ~ e2@3 ~, g1@3 ~ g4 ~@11", // Em7 E7 Em7
  W: "[a#3,d4,e4,g4]@2 ~ [a#3,d4,e4,g4] e2@3 [a#3,d4,e4,g4] g2@3 ~ [a2,a#3,d4,e4,g4]@3 [b3,d4,e4,g4], c2@3 ~@13", // Em7b5 Em7
  X: "g2@3 [b3,d4,e4,g4] e2@3 ~ [b4,d5,e5,g5]@2 ~ [b3,d4,e4,g4] e2@3 ~, ~@8 d2@3 ~@5", // Em7
  Y: "c2@3 [c#5,d5,g5] [d5,g5]!2 ~ [d5,g5] [c#5,d5,g5] ~@2 [d5,g5]!3 ~ [e2,d5,g5], ~@4 e2@4 g2@3 ~ a2@3 ~", // G G5 G G5 Em7
  Z: "[c#5,d5] c#5 ~ c5 a#4 b4 ~ g4 [d2,e4]@3 g4 e2@3 d#2, [g2,g5]@4 e2@3 ~@9", // Dmaj7 Dsus2 G
  AA: "[d2@4 f#2@3 ~ a2@3 ~ f#2@2 ~ d#2 d2@4 f#2@3 ~ [c2,g2]@4 e2@3 [b3,d4,e4,g4], [a3,d4,e4,f#4]@18 ~@5 [a#3,d4,e4,g4]@7 ~@2]/2", // C5 Em7 D Em7b5
  AB: "g2@3 ~ e2@4 [b4,d5,e5,g5] ~@3 [b3,d4,e4,g4] ~@3, ~@3 [b3,d4,e4,g4]@5 d2@3 ~ b1@3 ~", // Em7
  AC: "[b4,d5,e5,g5] ~@3 [b3,d4,e4,g4] ~@2 [b4,d5,e5,g5] d2@3 ~ e2@3 ~, g1@3 ~ b1@3 ~@9", // Em7
  AD: "[d2@3 ~ f#2@4 a2@4 f#2@4 d2@4 c#2@3 ~ c2@4 e2@2 ~ [g2,b3,d4,e4,g4], [a3,d4,e4,f#4]@18 ~@5 [a#3,d4,e4,g4]@7 ~@2]/2", // Em7 D Em7b5
  AE: "g1@3 ~ b1@3 ~ [b4,d5,e5,g5] ~@3 [b3,d4,e4,g4] ~@2 g2, ~@3 [b3,d4,e4,g4]@5 d2@3 ~ e2@2 ~@2", // Em7
  AF: "[b4,d5,e5,g5] ~@3 [b3,e4,g4]@2 ~ [b4,d5,e5,g5] c2@3 ~ c#2@4, g1@4 b1@3 ~@9, ~@4 d4 ~@11", // Em7 Em Em7
  AG: "[d2@3 ~ f#2@4 a2@4 f#2@4 d2@3 ~ c#2@3 ~ c2@4 e2@2 ~ [g2,b3,d4,e4,g4], [a3,d4,e4,f#4]@18 ~@5 [a#3,d4,e4,g4]@7 ~@2]/2", // Em7 D Em7b5
  AH: "g1@3 ~ b1@4 [b4,d5,e5,g5] ~@3 [b3,d4,e4,g4] ~@2 g2, ~@3 [b3,d4,e4,g4]@5 d2@3 ~ e2@3 ~", // Em7
  AI: "[b4,d5,e5,g5] ~@3 [b3,d4,g4] ~@2 [b4,d5,e5,g5] c2@3 ~ c#2@4, g1@4 b1@3 ~@9, ~@2 e4 ~@5", // Em7 G Em7
  AJ: "[d2@4 f#2@4 a2@4 f#2@4 d2@4 c#2@3 ~ c2@4 e2@3 [g2,b3,d4,e4,g4], [a3,d4,e4,f#4]@18 ~@5 [a#3,d4,e4,g4]@7 ~@2]/2", // Em7 D Em7b5
  AK: "g1@3 ~ b1@4 ~@8, ~@3 [b3,d4,e4,g4]@5 ~@8", // Em7
})).s("gm_piano").gain(0.3).pan(0.3)

// chords · piano · "A.PIANO 1" · soft notes
const piano_soft = note("<~ A ~ A ~@10 B ~ C ~ D ~@6 A ~ A ~@10 B ~ C ~ D ~@15 E F G@2 H I J@2 K L ~@8>".pickRestart({
  A: "~@7 g3 ~@7 d2", B: "~@15 d2", C: "~@4 d5!2 ~@9 e2", D: "~@9 d5 ~@6",
  E: "~@8 [b4,d5,e5,g5] ~@3 [b3,d4,e4,g4] ~@2 g2, ~@4 d2@2 e2 ~", // Em7
  F: "[b4,d5,e5,g5] ~@3 [b3,d4,g4] ~@2 [b1,b4,d5,e5,g5] c2@2 ~ c2 c#2@2 ~ c#2, g1@2 ~ g1@2 ~@11, ~@2 [b1,e4] ~@5", // Em7 G Em7 E5
  G: "[d2@3 ~ f#2@4 a2@4 d2@3 ~ d2@4 c#2@3 ~ c2@4 a#1 a1 ~ [g#1,b3,d4,e4,g4], [a3,d4,e4,f#4]@18 ~@5 [a#3,d4,e4,g4]@7 ~@2]/2", // E7 D Em7b5
  H: "g1@3 ~ b1@3 ~ [b4,d5,e5,g5] ~@3 [b3,d4,e4,g4] ~@3, ~@3 [b3,d4,e4,g4]@5 d2@3 ~ e2@4", // Em7
  I: "[b4,d5,e5,g5] ~@2 g1 [b3,d4,g4] ~@2 [b4,d5,e5,g5] c2@2 ~@2 c#2@2 ~ c#2, g1@2 ~@2 [b1,e4]@2 ~ b1@2 ~@2 c2@2 ~@3", // Em7 G Em7 E5
  J: "[d2@3 ~ f#2@3 ~ a2@4 f#2@3 ~ d2@4 c#2@3 ~ c2@3 ~ a#1 a1@2 [g#1,b3,d4,e4,g4], [a3,d4,e4,f#4]@18 ~@5 [a#3,d4,e4,g4]@7 ~@2]/2", // E7 D Em7b5
  K: "g1@3 ~ b1@3 ~ [b4,d5,e5,g5] ~@3 [b3,d4,e4,g4] ~@3, ~@3 [b3,d4,e4,g4]@5 d2@4 e2@4", // Em7
  L: "[b4,d5,e5,g5] ~@3 [b3,d4,g4] ~@2 [b4,d5,e5,g5] d2@4 e2@4, g1@3 ~ b1@3 ~@9, ~@2 e4 ~@5", // Em7 G Em7
})).s("gm_piano").gain(0.11).pan(0.3)

// bass · acoustic bass · "ACOU BASS"
const bass = note(`<
  A B C D E F G H I C J K L M N O P Q R S T U V W A B C D E F G H X C J K Y M Z AA AB Q R S AC AD V AE AF AG AH AI AF AJ
  AK AI AL AM AN AO ~@16
>`.pickRestart({
  A: "c2@3 ~ e2@3 ~ g2@4 a2@4", B: "g2@4 e2@4 d2@3 ~ e2@3 d2", C: "c2@4 e2@3 ~ g2@3 ~ a2@3 ~",
  D: "g2@3 ~ e2@4 d2@4 e2@3 ~", E: "c2@4 e2@4 g2@3 ~ a2@4", F: "g2@4 e2@3 ~ d2@4 b1@3 ~", G: "a1@4 b1@3 ~ c2@3 ~ c#2@4",
  H: "d2@4 e2@4 f2@3 ~ f#2@4", I: "g2@3 ~ e2@4 d2@3 ~ b1@4", J: "g2@4 e2@3 ~ d2@4 e2@4", K: "g2@4 e2@4 d2@3 ~ c#2@4",
  L: "c2@3 ~ e2@3 ~ g2@4 a2@3 ~", M: "a#2@4 a2@4 g2@4 e2@3 ~", N: "g2@3 ~ e2@3 ~ d2@4 e2@2 ~ d2",
  O: "g2@4 e2@4 d2@4 c#2@3 ~", P: "c2@4 e2@4 g2@3 ~ a2@3 ~", Q: "g2 e2 d2 c#2", R: "c2@4 e2@4 g2@4 a2@3 e2",
  S: "g2@4 e2@3 ~ d2@3 ~ e2@3 d#2", T: "d2@4 f#2@3 ~ a2@3 ~ f#2@2 ~@2", U: "d2@4 f#2@3 ~ c2@4 e2@3 ~",
  V: "g2@3 ~ e2@4 d2@3 ~ b1@3 ~", W: "g1@4 b1@3 ~ d2@3 ~ e2@3 ~", X: "g2@4 e2@4 d2@3 ~ b1@4",
  Y: "c2@4 e2@3 ~ g2@4 a2@4", Z: "g2@3 ~ e2@3 ~ d2@3 ~ e2@2 ~ d2", AA: "g2@4 e2@4 d2@3 ~ c#2@3 ~",
  AB: "c2@4 e2@4 g2@4 a2@3 ~", AC: "d2@4 f#2@3 ~ a2@3 ~ e2@2 ~ d#2", AD: "d2@4 f#2@3 ~ g2@4 e2@3 ~",
  AE: "g1@3 ~ b1@3 ~ d2@3 ~ e2@3 ~", AF: "d2@3 ~ f#2@4 a2@4 f#2@4", AG: "d2@3 ~ c#2@4 c2@4 e2@2 ~ g2",
  AH: "g1@4 b1@3 ~ d2@3 ~ e2@2 ~ g2", AI: "g1@4 b1@4 c2@3 ~ c#2@4", AJ: "d2@3 ~ c#2@3 ~ c2@4 e2@2 ~ g2",
  AK: "g1@4 b1@4 d2@3 ~ e2@3 g2", AL: "d2@4 f#2@4 a2@4 f#2@3 ~", AM: "d2@4 c#2@4 c2@4 e2@3 g2",
  AN: "g1@4 b1@4 d2@4 e2@2 ~ g2", AO: "g1 ~ b1 ~@5, ~@3 g1@2 ~@11",
})).s("gm_acoustic_bass").gain(0.35)

// bass · acoustic bass · "ACOU BASS" · soft notes
const bass_soft = note("<~@3 A ~@12 B ~@10 A ~@12 B ~@18 C D E F G H I F J@8 ~>".pickRestart({
  A: "~@15 d2", B: "~@15 e2", C: "~@7 b1 c2@2 ~ c2 c#2@2 ~ c#2", D: "d2@3 ~ f#2@4 a2@4 d2@3 ~",
  E: "d2@4 c#2@4 c2@4 a#1 a1 ~ g#1", F: "g1@4 b1@3 ~ d2@4 e2@4",
  G: "g1@2 ~ g1 b1@2 ~@2 c2@2 ~@2 c#2@2 ~ c#2, ~@7 b1@2 ~@2 c2@2 ~@3", H: "d2@3 ~ f#2@4 a2@4 f#2@4",
  I: "d2@4 c#2@4 c2@3 ~ a#1 a1@2 g#1", J: "[g1@3 ~ b1@4 d2@4 e2@116]/8",
})).s("gm_acoustic_bass").gain(0.15)

// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note(`<
  A B A C A D E F G H@2 I J K L M N O P Q R S T U A B A C A D E F G H@2 I J K L V N O W Q R S U@2 X@3 Y Z@3 AA AB@3 ~@17
>`.pickRestart({
  A: "[g3,c4,e4]@3 ~ [g3,c4,e4]@2 ~ g3 [g3,c4,e4]@3 ~ [g3,c4,e4]@2 ~ g3", // C
  B: "[g3,b3,d4]@3 ~ [g3,b3,d4]@3 g3 [g3,b3,d4]@2 ~ g3 [g3,b3,d4]@2 ~ g3", // G
  C: "[g3,b3,d4]@3 ~ [g3,b3,d4]@2 ~ g3 [g3,b3,d4]@2 ~@2 [g3,b3,d4]@2 ~ g3", // G
  D: "[g3,b3,d4]@3 ~ [g3,b3,d4]@2 ~ g3 [g3,b3,d4]@2 ~ g3 [g3,b3,d4]@2 ~ g3", // G
  E: "[g3,c#4,e4]@3 ~ [g3,c#4,e4]@2 ~ g3 [g3,c#4,e4]@3 ~ [g3,c#4,e4]@2 ~ g3", // C#dim
  F: "[a3,c4,f#4]@3 ~ [a3,c4,f#4]@3 ~ [a3,c4,f#4]@2 ~ a3 [c4,f#4]@3 a3, ~@12 a3 ~@3", // F#dim Cdim
  G: "[b3,d4,e4,g4]@3 ~ [b3,d4,e4,g4]@3 ~ [b3,d4,e4,g4]@2 ~@2 [b3,d4,e4,g4]@2 ~@2", // Em7
  H: "[[a#3,d4,e4,g4]@3 ~ [a#3,d4,e4,g4]@3 ~ [a#3,d4,e4,g4]@3 ~ [a#3,d4,e4,g4]@2 ~ [b3,d4,e4,g4]@5 [b3,d4,e4,g4]@3 ~ [b3,d4,e4,g4]@2 ~@2 [b3,d4,e4,g4]@3 b3]/2", // Em7b5 Em7
  I: "[b3,d4,e4,g4]@2 ~@2 [b3,d4,e4,g4]@2 ~ b3 [b3,d4,e4,g4]@3 ~ [b3,d4,e4,g4]@3 b3", // Em7
  J: "[a#3,d4,e4,g4]@2 ~@2 [a#3,d4,e4]@3 ~ [a#3,d4,e4,g4]@3 ~ [a#3,d4,e4,g4]@2 a#3 ~, ~@4 g4 ~@11", // Em7b5
  K: "[a#3,d4,e4,g4]@2 ~@2 [a#3,d4,e4,g4]@3 ~ [a#3,d4,e4,g4]@3 ~ [a#3,d4,e4,g4]@2 ~ a#3", // Em7b5
  L: "[b3,d4,e4,g4]@3 ~ [b3,d4,e4,g4]@3 ~ [b3,d4,e4,g4]@3 ~ [b3,d4,e4,g4]@3 b3", // Em7
  M: "[b3,d4,e4,g4]@3 ~ [b3,d4,e4,g4]@3 ~ [b3,d4,e4,g4]@2 ~ b3 [b3,d4,e4,g4]@3 b3", // Em7
  N: "[a#3,d4,e4,g4]@2 ~@2 [a#3,d4,e4,g4]@2 ~@2 [a#3,d4,e4,g4]@2 a#3 ~ [a#3,d4,e4,g4]@3 a#3", // Em7b5
  O: "[b3,d4,e4,g4]@2 ~@2 [b3,d4,e4,g4]@3 ~ [b3,d4,e4,g4]@3 ~ [b3,d4,e4,g4]@2 ~@2", // Em7
  P: "[a#3,d4,e4,g4]@2 ~@2 [a#3,d4,e4]@3 ~ [d4,g4] d4@2 ~ [d4,e4,g4]@3 a#3, ~@4 g4 ~@3 [a#3,e4]@3 ~ a#3 ~@3", // Em7b5 G5 Em7 A#dim
  Q: "[b3,d4,e4,g4]@2 ~@2 [b3,d4,e4,g4]@3 ~ [b3,d4,e4,g4]@3 ~ [b3,d4,e4,g4]@3 ~", // Em7
  R: "[a3,c4,f#4]@3 ~ [a3,c4,f#4]@3 ~ [a3,c4,f#4]@3 ~ [a3,c4,f#4]@3 ~", // F#dim
  S: "[a3,c4,f#4]@3 ~ [a3,c4,f#4]@3 ~ [a#3,d4,e4,g4]@3 ~ [a#3,d4,e4,g4]@3 ~", // F#dim Em7b5
  T: "[b3,d4,e4,g4]@3 ~ [b3,d4,e4,g4]@2 ~ b3 [b3,d4,e4,g4]@3 ~ [b3,d4,e4,g4]@3 b3", // Em7
  U: "[b3,d4,e4,g4]@3 ~ [b3,d4,e4,g4]@2 ~ b3 [b3,d4,e4,g4]@3 ~ [b3,d4,e4,g4]@2 ~ b3", // Em7
  V: "[b3,d4,e4,g4]@3 ~ [b3,d4,e4,g4]@3 ~ [b3,d4,e4,g4]@2 ~ b3 [b3,d4,e4,g4]@2 ~ b3", // Em7
  W: "[a#3,d4,e4,g4]@2 ~@2 [a#3,d4,e4]@3 ~ d4!2 ~@2 [d4,e4,g4]@3 a#3, ~@4 g4 ~@3 [a#3,e4,g4]@3 ~ a#3 ~@3", // Em7b5 Em7 Edim
  X: "[[c4,e4,f#4,a4]@3 ~ [c4,e4,f#4,a4]@3 ~ [c4,e4,f#4,a4]@2 ~ c4 [c4,e4,f#4,a4]@2 ~ [c4,e4,f#4,a4]@4 c4 [c4,e4,f#4,a4]@2 ~ [a#3,d4,e4,g4]@3 ~ a#3 [a#3,d4,e4,g4]@2 ~ [b3,d4,e4,g4]@4 b3 [b3,d4,e4,g4]@3 ~ [b3,d4,e4,g4] ~@3 [b3,d4,e4,g4]@3 ~, ~@31 f#4 ~@16]/3", // F#m7b5 Em7b5 Em7
  Y: "[b3,d4,e4,g4] ~@3 [b3,d4,e4,g4]@2 ~ b3 [b3,d4,e4,g4]@2 ~ b3 [d4,e4,g4]@3 b3, ~@12 b3 ~@3", // Em7
  Z: "[[c4,e4,f#4,a4]@3 ~ [c4,e4,f#4,a4]@2 ~@2 [c4,e4,f#4,a4]@3 ~ e4@2 ~ [c4,e4,f#4]@4 ~ e4 ~@2 [a#3,d4,e4,g4]@4 a#3 [a#3,d4,e4,g4]@2 ~ [b3,d4,e4,g4]@4 b3 [b3,d4,e4,g4]@3 ~ [b3,d4,e4,g4] ~@3 [b3,d4,e4,g4]@3 b3, ~@11 c4@3 ~ a4@6 ~@27, ~@19 c4@3 ~ d#4 ~@24]/3", // F#m7b5 Em7b5 Em7
  AA: "[b3,d4,e4,g4]@3 ~ [b3,d4,e4,g4]@3 b3 [b3,d4,e4,g4] ~@2 b3 [b3,d4,e4,g4]@2 ~ b3", // Em7
  AB: "[[c4,e4,f#4,a4]@3 ~ [c4,e4,f#4,a4]@3 ~ [c4,e4,f#4,a4]@3 ~ e4@2 ~ [c4,e4]@4 ~ e4 ~@2 [d4,e4,g4]@4 a#3 [a#3,d4,e4,g4]@2 ~ [b3,d4,e4,g4]@4 ~ [b3,d4,e4,g4]@3 ~@9, ~@11 c4@3 ~ [f#4,a4]@6 ~@2 [c#4,d#4] ~@24, ~@19 c4@3 ~ a#3@2 ~@6 [a3,a#3] ~@16]/3", // F#m7b5 C Em7 Em7b5 Em7 F#m C#sus2 A#maj7
})).s("gm_acoustic_guitar_steel").gain(0.16).pan(0.8)

// chords · acoustic guitar steel · "STEEL GTR" · soft notes
const acoustic_guitar_steel_2 = note("<~@3 A ~@7 B ~@15 A ~@7 B ~@22 C D E F G H I J K L M@8>".pickRestart({
  A: "~@11 g3 ~@4", B: "~@11 b3 ~@4", C: "~@8 [b3,d4,e4,g4] ~@3 [b3,d4,e4,g4]@3 b3",
  D: "[b3,d4,e4,g4]@2 ~@2 [b3,d4,e4,g4]@3 b3 [b3,d4,e4,g4]@2 ~ b3 [b3,d4,e4,g4]@3 b3, ~@4 c4 ~@11", // Em7
  E: "[c4,e4,f#4,a4]@3 ~ [c4,e4,f#4,a4]@3 ~ [c4,e4,f#4,a4]@3 ~ [c4,e4,f#4,a4]@3 c4", // F#m7b5
  F: "[c4,e4,f#4,a4]@3 c4 [c4,e4,f#4,a4]@3 c4 [a#3,d4,e4,g4]@3 ~ [d4,e4,g4]@3 a#3, ~@12 a#3 ~@3", // F#m7b5 Em7b5 Em7
  G: "[b3,d4,e4,g4]@3 ~ [b3,d4,e4,g4]@3 ~ [b3,d4,e4,g4] ~@3 [b3,d4,e4,g4]@3 ~", // Em7
  H: "[b3,d4,e4,g4] ~@3 [b3,d4,e4,g4]@3 ~ [b3,d4,e4,g4]@2 ~ b3 [d4,e4,g4]@3 b3, ~@12 b3 ~@3", // Em7
  I: "[c4,e4,f#4,a4]@3 ~ [c4,e4,f#4,a4]@2 ~ c4 [c4,e4,f#4,a4]@3 c4 [c4,e4,f#4,a4]@2 ~ c4", // F#m7b5
  J: "[c4,e4,f#4,a4]@2 ~@2 [c4,e4,f#4,a4]@2 ~@2 [a#3,d4,e4,g4]@3 ~ [a#3,d4,e4,g4]@3 ~", // F#m7b5 Em7b5
  K: "[b3,d4,e4,g4]@3 ~ [b3,d4,e4,g4]@2 ~ b3 [b3,d4,e4,g4]@3 ~ [b3,d4,e4,g4]@3 b3", // Em7
  L: "[b3,d4,e4,g4]@3 ~ [b3,d4,e4,g4]@2 b3 ~ [b3,d4,e4,g4]!2 ~@2 [b3,d4,e4,g4]@2 ~ b3", M: "[c4,e4]/8",
})).s("gm_acoustic_guitar_steel").gain(0.06).pan(0.8)

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

// drums · kick · soft notes
const kick_soft = s("bd").struct("<~@55 A B C D E B C D C B F D G ~@8>".pickRestart({
  A: "~@8 x ~@2 x ~ x ~@2", B: "x!2", C: "x ~@7 x ~@6 x", D: "~@3 x ~@4 x ~@7", E: "x ~ x!2", F: "x ~@6 x ~@3 x ~@3 x",
  G: "x ~@2 x ~ x ~@2 x ~@2 x ~ x ~@2",
})).gain(0.15)

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

// drums · snare · soft notes
const snare_soft = s("sd").struct("<A@2 ~ A ~@3 B ~@11 C ~@4 A@2 ~ A ~@3 B ~@11 C ~@12 D E D F D@7 ~@9>".pickRestart({
  A: "~@11 x ~@4", B: "~@5 x ~@10", C: "~@9 x ~@6", D: "~ x ~ x", E: "~@4 x ~@6 x!2 ~@3", F: "~@4 x ~@4 x ~ x ~ x ~ x",
})).gain(0.2)

// drums · low tom
const low_tom = s("lt").struct("<~@11 A ~@5 A ~@17 A ~@5 A ~@13 B ~@11 C ~@8>".pickRestart({
  A: "~@13 x ~ x", B: "~@12 x ~@2 x", C: "~@4 x ~@2 x ~@7 x",
})).gain(0.4)

// drums · mid tom
const mid_tom = s("mt").struct("<~@55 [~@9 x ~@6] ~@11 [~ x ~@7 x ~@2 x ~@3] ~@8>").gain(0.05)

// drums · crash
const crash = s("cr").struct(`<
  A ~@7 A B ~@4 A ~@5 A ~ C@2 A ~@7 A B ~@4 A ~@5 A ~ C@2 A ~ C@2 A ~ C@2 A ~@19
>`.pickRestart({
  A: "x", B: "~@15 x", C: "~ x ~ x",
})).gain(0.4)

// drums · crash · soft notes
const crash_soft = s("cr").struct("<~@58 A@2 B ~ A@2 B ~ A@2 ~@8>".pickRestart({
  A: "~ x ~ x", B: "x",
})).gain(0.15)

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

// drums · ride · soft notes
// … 11 more lines

More by Elvis Presley