Strudelify

Let Me Be There

Elvis Presley

KeyE♭ majorTempo125 bpm
0:00/0:00
// Let Me Be There — Elvis Presley
// 125 bpm, 4/4, key Eb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 90 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(125/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.

// other · piano · "Piano (Melody Doubled)"
const piano = note(`<
  ~ A@2 B C@3 D E@3 B F G@2 H I J@6 K L M@2 N O@6 P@2 Q R@2 B S@3 D T A@2 B U@3 V I J@6 K W M@2 N X@5 J@6 K L M@2 N X@5
  Y@3 Z@2
>`.pickRestart({
  A: "[~@3 bb2!2 c3 eb3 g3@5 ~@4]/2", B: "~@3 eb3 f3 g3 f3 eb3",
  C: "[f3@2 eb3@2 eb3@5 ~ ab2@2 c3@2 bb2@8 ~@2 bb2@2 c3@2 eb3@2 g3@6 ~@12]/3", D: "~@3 bb2 g3!2 ab3 g3",
  E: "[g3@3 ~ f3@16 ~@4 bb2@2 c3@2 eb3@2 g3@10 ~@8]/3", F: "f3 eb3 eb3@2 ~ ab2 c3 bb2",
  G: "[bb2@3 ~ bb2 c3 eb3 g3@5 ~@4]/2", H: "~@3 bb2 g3 f3 eb3 c3", I: "eb3 f3 eb3@6",
  J: "[~@8 g3@2 bb3@3 ~ bb3@5 ~ bb3@3 ~ bb3@2 bb3@3 ~ c4@5 ~ bb3@3 ~ g3@2 f3@3 ~ eb3@5 ~ eb3@3 ~ eb3@2 c3@3 ~ ab3@10 ~@2 g3@2 bb3@2 bb3@5 ~ bb3@3 ~ bb3@2 bb3@3 ~ c4@2]/6",
  K: "~ bb3@3 ~ g3 ab3 g3", L: "f3", M: "[~@8 g3@2 bb3@3 ~ bb3@5 ~ bb3@3 ~ bb3@2 bb3@3 ~ c4@2]/2",
  N: "~@2 bb3@3 ~ g3@3 ~ f3@2 eb3@2 c3@2",
  O: "[eb3@3 ~ eb3@3 ~ eb3@2 c3@3 ~ ab3@10 ~@2 g3@2 bb3@2 bb3@5 ~ g3@3 ~ f3@2 eb3@2 c3@2 bb2@6 ~@2 bb2@2 g3@2 f3@2 eb3@2 f3@5 ~ eb3@3 ~ c3@2 bb2@2 g2@2 eb2@5 ~ bb2@3 ~ bb2@2 c3@2 eb3@3 ~]/6",
  P: "[[bb2,eb3,g3]@3 ~@5 g3@2 f3@2 eb3@2 [bb2,d3,f3]@6 ~@4 gb3@2 g3@2 gb3@2 f3@2]/2", // Eb Bb
  Q: "eb3@3 ~ db3@2 bb2 ~ ab2@3 ~ gb2@3 ~", R: "[eb2@2 ~@2 bb2 c3 eb3 g3@5 ~@4]/2",
  S: "[f3 eb3 eb3@2 ~ ab2 c3 bb2@4 ~ bb2 c3 eb3 g3@5 ~@4]/3", T: "g3@3 ~ f3@4 ~@8",
  U: "[f3@2 eb3@2 eb3@5 ~ ab2@2 c3@2 bb2@6 ~@2 bb2@2 bb2@2 c3@2 eb3@2 g3@14 ~@4]/3", V: "~@3 bb2 g3 ~ eb3 c3",
  W: "f3@15 ~",
  X: "[eb3@3 ~ eb3@3 ~ eb3@2 c3@3 ~ ab3@10 ~@2 g3@2 bb3@2 bb3@5 ~ g3@3 ~ f3@2 eb3@2 c3@2 bb2@6 ~@2 bb2@2 g3@2 f3@2 eb3@2 f3@5 ~ eb3@12]/5",
  Y: "[~@8 g3@2 bb3@3 ~ bb3@5 ~ g3@3 ~ f3@2 eb3@2 c3@2 bb2@6 ~@2 bb2@2 g3@2 bb3@2 g3@2 f3@2]/3", Z: "[~ eb3@15]/2",
})).s("gm_piano").gain(0.65).pan(0.4)

// chords · piano
const piano_2 = note(`<
  ~@2 A@2 B C D@2 E@2 F G H I J K D@2 L@2 M@2 L@2 N O C G P@2 J Q L@2 R O S R A@2 T R L@2 U@2 F V W J X Y A@2 D@2 Z@2
  L@2 AA AB X AC M@2 J Y R@2 D@2 P@2 A@2 AD O I V Z@2 R AB F AE J O J AF
>`.pickRestart({
  A: "[bb3@13 ~@9 bb3@4 ~@2 eb5@4, eb2@13 bb3@3, [eb4,g4]@15 eb4@17, ~@13 g3@19, ~@7 bb3 g4@8]/2", // Eb
  B: "[eb4,ab4,c5]@10 ~@3 c5@2 ~, ab2, ~@5 c4@3, ~@11 eb4@5, ~@12 ab4@3 ~", // Ab
  C: "[bb3,eb4,g4]@10 ~@3 g4@2 ~, eb2, ~@5 g3@3, ~@11 bb3@5, ~@12 eb4@3 ~", // Eb
  D: "[bb3@7 ~ bb3@3 ~@3 g4@2, eb2, g4@13 g3@3, eb4@23 bb3@9, g3@13 ~ g3@8 g3@2 eb4@8]/2",
  E: "[bb5@15 ~@15 bb3@2, bb2, ~@15 f3@17, ~@25 bb3@3 f4@4, ~@13 d4@3]/2", F: "[bb3,g4]@3 ~ [bb3,g4]@4, eb2, ~@3 g3@5",
  G: "bb3@5 ~@2 db4, [eb2,g3], db4@3 bb3, eb4 ~@9 eb3@6", H: "[c4,eb4]@13 ~@2 ab4, [ab2,ab4,c5], ~@13 c4@3, ~@7 eb4",
  I: "bb3 ~@5 [bb3,g4]@2, eb2, g4@3 eb4@5, eb4@2 bb3@3 g3@3, ~ g3@3 g4@2 ~@2", // Eb
  J: "eb4@5 ~@2 g4, [eb2,bb3], g4 ~@9 g3@6, ~@3 eb4", // Eb5
  K: "bb3 ~@5 [bb3,f4]@2, bb2, f4@3 d4@5, d4@2 bb3@3 f3@3, ~ f3@3 f4@2 ~@2", // Bb5
  L: "[bb5@15 ~@15 bb3@2, eb2, ~@15 g3@17, ~@25 bb3@3 g4@4, ~@13 eb4@3]/2",
  M: "[eb4@13 ~@9 eb4@4 ~@2 ab5@4, ab2@13 eb4@3, [ab4,c5]@15 ab4@17, ~@13 c4@19, ~@7 eb4 c5@8]/2", // Ab
  N: "c4 ~@5 [c4,a4]@2, f2, a4@3 f4@5, f4@2 c4@3 a3@3, ~ a3@3 a4@2 ~@2", // F
  O: "[f3,bb3]@13 ~@2 d4, [bb2,d4,f4], ~@13 f3@3, ~@7 bb3", // Bb5 Bb
  P: "[eb6@15 ~@15 eb4@2, ab2, ~@15 c4@17, ~@25 eb4@3 c5@4, ~@13 ab4@3]/2",
  Q: "[bb3,d4,f4]@10 ~@3 f4@2 ~, bb2, ~@5 f3@3, ~@11 bb3@5, ~@12 d4@3 ~", R: "g4@2 eb5 g4, [eb2,g3,bb3,eb4]",
  S: "~@3 g4 ~@3 c5, [eb2,eb4] [ab2,ab4], bb3!2 eb4!2, ~ g3@3 ~ c4@3", T: "[eb4,c5]@3 ~ [eb4,c5]@4, ab2, ~@3 c4@5",
  U: "[bb3@7 ~ bb3@3 ~@3 f4@2, bb2, f4@13 f3@3, d4@23 bb3@9, f3@13 ~ f3@8 f3@2 d4@8]/2",
  V: "[g3,bb3]@13 ~@2 db4, [eb2,db4,eb4], ~@13 g3@3, ~@7 bb3", // Gm Eb7
  W: "eb4 ~@5 [eb4,c5]@2, ab2, c5@3 ab4@5, ab4@2 eb4@3 c4@3, ~ c4@3 c5@2 ~@2", // Cm
  X: "[g3,bb3]@13 ~@2 eb4, [eb2,eb4,g4], ~@13 g3@3, ~@7 bb3", Y: "d4@5 ~@2 f4, [bb2,bb3], f4 ~@9 f3@6, ~@3 d4",
  Z: "[eb4@7 ~ eb4@3 ~@3 c5@2, ab2, c5@13 c4@3, ab4@23 eb4@9, c4@13 ~ c4@8 c4@2 ab4@8]/2",
  AA: "a4@2 f5 a4, [f2,a3,c4,f4]", AB: "f4@2 d5 f4, [bb2,f3,bb3,d4]",
  AC: "g3 ~@6 eb4, eb2, eb4@3 [g3,db4], db4@2 g3@2 db4 eb3@3, bb3 eb3@2 bb3@5", // Gdim
  AD: "[a3,c4]@13 ~@2 f4, [f2,f4,a4], ~@13 a3@3, ~@7 c4", AE: "c5@2 ab5 c5, [ab2,c4,eb4,ab4]",
  AF: "[eb2,g3,bb3,g4] ~@3", // Eb
})).s("gm_piano").gain(0.32).pan(0.1)

// chords · acoustic guitar steel · "Guitar"
const acoustic_guitar_steel = note(`<
  ~@2 A@2 B C D@2 E@2 C F G H I J A@2 K@2 L@2 K@2 M N H O P@2 C J Q@2 I N R I K@2 S C A@2 T@2 H U G V H W Q@2 A@2 X@2
  Y@2 Z J H AA X@2 C J V C A@2 L@2 K@2 AB W C U L@2 C W H G V N I AC
>`.pickRestart({
  A: "[~@15 bb3, eb3@3 bb3@2 g3@2 g3@2 g3@7, bb3 eb4@2 [bb3,eb4]@2 eb4@2 [eb4,g4], eb4@4 g4@10 ~@5 bb3@3 bb3@4 bb3@4 ~@2, ~ g3@3 eb3@3 ~ eb3@4 eb3@4]/2", // Eb5 Eb
  B: "~ eb3 ~ eb3 ~@3 ab3, ab2@7 ~ ab2@8, c4@2 [ab3,c4]@3 eb3 c4@2, ~@11 ab3@3 ~@2", // Ab
  C: "~ bb3 ~ bb3 ~ bb3 ~ bb3, eb3@7 ~ eb3@6 ~@2, ~@2 [eb4,g4]@3 ~ [eb4,g4]@2", // Eb
  D: "[[bb3,g4] g3 ~ g3 ~@3 g3 ~ g3 ~ g3 ~@3 g4, eb2@6 ~@2 eb2@6 ~@2 eb2@7 ~ eb2@8, ~@2 [bb3,g4]@3 g3 g4@3 ~@4 g3@3, ~@11 bb3@8 ~ [bb3,g4]@8 bb3@4]/2", // Eb
  E: "[~@15 f3, bb2@3 f3@2 d3@2 d3@2 d3@7, f3 bb3@2 [f3,bb3]@2 bb3@2 [bb3,d4], bb3@4 d4@10 ~@5 f3@3 f3@4 f3@4 ~@2, ~ d3@3 bb2@3 ~ bb2@4 bb2@4]/2", // Bb5 Bb
  F: "[g3,db4] eb3 ~ eb3 ~@3 eb3, eb2@7 ~ eb2@8, ~@2 [g3,db4]@3 eb3 db4@2, ~@11 g3@5", // Gdim
  G: "~ eb3 ~ eb3 ~ eb3 ~ eb3, ab2@7 ~ ab2@6 ~@2, ~@4 [ab3,c4]@7 ~ [ab3,c4]@4", // Ab
  H: "~ bb3 ~ bb3 ~@3 eb4, eb3@7 ~ eb3@8, g4@2 [eb4,g4]@3 bb3 g4@2, ~@11 eb4@3 ~@2", // Eb
  I: "~ bb3 ~ bb3 ~ bb3 ~ bb3, eb3@7 ~ eb3@6 ~@2, ~@4 [eb4,g4]@7 ~ [eb4,g4]@4", // Eb
  J: "~ f3 ~ f3 ~ f3 ~ f3, bb2@7 ~ bb2@6 ~@2, ~@4 [bb3,d4]@7 ~ [bb3,d4]@4", // Bb
  K: "[~@15 bb3, eb3@8 eb3@7 ~ eb3@7 ~ eb3@8, [eb4,g4] [eb4,g4]@2 [eb4,g4]@2 [eb4,g4]@2 [eb4,g4], ~ bb3@2 bb3@2 bb3@2 bb3@2 bb3@2 bb3@2 bb3@2 ~]/2", // Eb
  L: "[~@15 eb3, ab2@3 eb3@2 c3@2 c3@2 c3@7, eb3 ab3@2 [eb3,ab3]@2 ab3@2 [ab3,c4], ab3@4 c4@10 ~@5 eb3@3 eb3@4 eb3@4 ~@2, ~ c3@3 ab2@3 ~ ab2@4 ab2@4]/2", // Ab5 Ab
  M: "~ c4 ~ c4 ~ c4 ~ c4, f3@7 ~ f3@6 ~@2, ~@2 [f4,a4]@3 ~ [f4,a4]@2", // F
  N: "~ f3 ~ f3 ~ f3 ~ f3, bb2@7 ~ bb2@6 ~@2, ~@2 [bb3,d4]@3 ~ [bb3,d4]@2", // Bb
  O: "g3 eb3 ~ eb3 ~ eb3 ~ eb3, db4@5 ~@3, eb2@7 ~ eb2@6 ~@2, ~@4 g3@5 ~@3 [g3,db4]@4", // Gdim
  P: "[~@15 eb3, ab2@8 ab2@7 ~ ab2@7 ~ ab2@8, [ab3,c4] [ab3,c4]@2 [ab3,c4]@2 [ab3,c4]@2 [ab3,c4], ~ eb3@2 eb3@2 eb3@2 eb3@2 eb3@2 eb3@2 eb3@2 ~]/2", // Ab
  Q: "[~ bb3 ~ bb3 ~ bb3 ~ bb3 ~@3 bb3 ~@2 [eb4,g4]@2, eb3@7 ~ eb3@6 ~@2 eb3@6 ~@2 eb3@5 ~@3, ~@4 [eb4,g4]@7 ~ [eb4,g4]@6 g3@2 [eb4,g4]@7 ~@5, ~@19 bb3@3 ~@4 bb3@6]/2", // Eb
  R: "~ bb3 ~ bb3 ~ eb3 ~ eb3, eb3@7 ~ ab2@7 ~, ~ [eb4,g4] ~ [ab3,c4]", // Eb Ab
  S: "~ eb3 ~ eb3 ~ eb3 ~ eb3, ab2@7 ~ ab2@8, ~@4 [ab3,c4]@7 ~ [ab3,c4]@4", // Ab
  T: "[~@15 f3, bb2@8 bb2@7 ~ bb2@7 ~ bb2@8, [bb3,d4] [bb3,d4]@2 [bb3,d4]@2 [bb3,d4]@2 [bb3,d4], ~ f3@2 f3@2 f3@2 f3@2 f3@2 f3@2 f3@2 ~]/2", // Bb
  U: "~@2 eb3@2 ~@2 eb3@2 ~@5 bb3 ~ g3, eb2@3 ~ eb2@4, ~@2 [g3,db4]@3 eb3@3, ~@6 g3 db4", // Gdim
  V: "~ bb3 ~ bb3 ~ bb3 ~ bb3, eb3@7 ~ eb3@8, ~@4 [eb4,g4]@7 ~ [eb4,g4]@4", // Eb
  W: "~ f3 ~ f3 ~@3 bb3, bb2@7 ~ bb2@8, d4@2 [bb3,d4]@3 f3 d4@2, ~@11 bb3@3 ~@2", // Bb
  X: "[~ eb3 ~ eb3 ~ eb3 ~ eb3 ~@3 eb3 ~@2 [ab3,c4]@2, ab2@7 ~ ab2@6 ~@2 ab2@6 ~@2 ab2@5 ~@3, ~@4 [ab3,c4]@7 ~ [ab3,c4]@6 c3@2 [ab3,c4]@7 ~@5, ~@19 eb3@3 ~@4 eb3@6]/2", // Ab
  Y: "[~ bb3 ~ bb3 ~ bb3 ~ bb3 ~ bb3 ~ bb3 ~ bb3 ~ bb3, eb3@7 ~ eb3@6 ~@2 eb3@6 ~@2 eb3@6 ~@2, ~@4 [eb4,g4]@6 ~@2 [eb4,g4]@6 ~@2 [eb4,g4]@5 ~@3 [eb4,g4]@4]/2", // Eb
  Z: "~ c4 ~ c4 ~ c4 ~ c4, f3@7 ~ f3@6 ~@2, ~@4 [f4,a4]@7 ~ [f4,a4]@4", // F
  AA: "~ eb3 ~ eb3 ~ eb3 ~ eb3, eb2@7 ~ eb2@6 ~@2, ~@2 [g3,db4]@3 ~ [g3,db4]@2", // Gdim
  AB: "~ c4 ~ c4 ~@3 f4, f3@7 ~ f3@8, a4@2 [f4,a4]@3 c4 a4@2, ~@11 f4@3 ~@2", AC: "[eb3,bb3,eb4,g4] ~@3",
})).s("gm_acoustic_guitar_steel").gain(0.4).pan(0.8)

// bass · fretless bass · "Bass"
const bass = note(`<
  ~@2 A@2 B A C D E F D@2 G D A H C D I J K L M N O P Q@2 K L R S M N R S T Q C D G D U V E F D@2 G D@2 H U V W X K Y I
  J Z S Q R K L Q S Q R U V AA G A@2 AB H D@2 AC AD A H D G R S Q AE
>`.pickRestart({
  A: "eb2@5 ~ eb2 ~ eb2@8", B: "ab2@5 ~ ab2 ~ ab2@8", C: "eb2@8 eb2@5 ~ eb2 ~", D: "eb2@7 ~ eb2@8", E: "bb1!2",
  F: "bb1@4 bb1@3 bb1", G: "ab2@7 ~ ab2@8", H: "bb1@7 ~ bb1@8", I: "eb2@5 ~ eb2@2 bb1@6 bb1@2",
  J: "eb2@5 ~ eb2@2 bb1@4 eb2@3 ~", K: "ab2 eb2", L: "ab2@6 ab2@2 eb2@7 ~", M: "eb2 bb1", N: "eb2@5 ~ eb2@2 bb1@8",
  O: "f2@8 c2@7 ~", P: "bb1@6 bb1@2 f1@5 ~ f1 ~", Q: "eb2@8 bb1@7 ~", R: "eb2@6 eb2@2 bb1@5 ~ bb1 ~", S: "bb1@8 f1@7 ~",
  T: "eb2@6 eb2 ~ ab2@6 ab2 ~", U: "eb2!2", V: "eb2@4 eb2@3 eb2", W: "eb2@5 ~ eb2@2 bb1@5 ~ bb1@2",
  X: "eb2@5 ~ eb2@2 bb1@5 ~ bb1 ~", Y: "ab2@5 ~ ab2@2 eb2@8", Z: "f2@6 f2@2 c2@5 ~ c2 ~", AA: "ab2@8 ab2@5 ~ ab2 ~",
  AB: "f2@5 ~ f2 ~ f2@8", AC: "ab2!2", AD: "ab2@4 ab2@3 ab2", AE: "eb2 ~@3",
})).s("gm_fretless_bass").gain(0.36).pan(0)

// chords · string ensemble 1 · "Strings"
const string_ensemble_1 = note(`<
  ~@18 A@2 B@2 A@2 C D E F B@2 G D H@2 G D I J ~@16 H@2 B@2 K@2 L D J M B@2 G N G@2 ~@16 O P G Q
>`.pickRestart({
  A: "[~ bb5@2 g5, [eb6,g6]]/2", B: "[eb6@23 ~ c6@7 ~, c7@31 ~]/2", C: "f6@8 a6@4 f6@3 ~, a5@15 ~", D: "[f5,d6]",
  E: "g5 bb5, eb6", F: "~ eb6, [g5,db6]", G: "[g5,eb6]", H: "[~@7 g5, [eb6,g6]]/2", I: "[g5,g6] [c6,ab6]",
  J: "~ g6, [g5,eb6]", K: "[bb5@23 ~ g5@7 ~, g6@31 ~]/2", L: "a5 c6, f6", M: "db6@8 eb6@4 db6@3 ~, g5@15 ~",
  N: "d6@8 f6@4 d6@3 ~, f5@15 ~", O: "eb6@8 g6@4 eb6@3 ~, g5@15 ~", P: "f5 bb5, d6", Q: "[g5,eb6] ~@3",
})).s("gm_string_ensemble_1").gain(0.24).pan(0.9)

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

// drums · rim
const rim = s("rim").struct("<A B C@7 ~ C@7 D ~@7 D ~@11 D C@7 ~ C@7 ~@16 E C@7 ~ C@7 ~@5>".pickRestart({
  A: "x!2", B: "x!4", C: "~ x ~ x", D: "~ x ~@2", E: "~@4 x ~@2 x ~ x ~@2 x ~@3",
})).gain(0.64)

// drums · snare
const snare = s("sd").struct("<~@9 A ~@7 B C@6 D B C@11 B ~@7 A ~@8 C@2 D C D C@2 E C@7 ~@17 C@2 ~@2>".pickRestart({
  A: "~@3 x ~@2 x ~@9", B: "~ x", C: "~ x ~ x", D: "~@4 x ~@2 x ~@4 x ~@3", E: "~@4 x ~@7 x!2 ~ x",
})).gain(0.64)

// drums · low tom
const low_tom = s("lt").struct("<~@9 A ~@35 A ~@39 B ~@2 B ~>".pickRestart({
  A: "~@14 x!2", B: "~@7 x",
})).gain(0.48)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@2 A@2 B@3 A@2 C A@5 B@2 A D B A B E F E A D B A B A B A G E B E A@7 H C A@2 B@2 A@3 I D B E B J B A K D B A B A@2 E
  A@8 I A@7 L D B L M
>`.pickRestart({
  A: "x!4", B: "x ~ x!3 ~ x ~", C: "x!2 ~@14", D: "x!5 ~ x ~", E: "x!3 ~ x ~ x ~", F: "x ~@3 x ~@3 x!2 ~@2 x ~@3",
  G: "x ~@3 x ~ x ~ x!2 ~@2 x ~@3", H: "x ~@3 x!2 ~@2 x ~@3 x ~@3", I: "x!2 ~@2", J: "x ~ x ~ x ~@3 x ~@3 x!2 ~@2",
  K: "x!3 ~", L: "x!2 ~ x", M: "x",
})).gain(0.56)

// drums · hihat · soft notes
const hihat_soft = s("hh").struct(`<
  ~@2 A@2 B@3 A@2 C A D A@3 B E B F G A B H G I A F B A B A B A G J B C B A D A@3 I K C A L B@2 A@3 M F B J G I B A@2 F
  B A B A B J N A@4 I A@2 M A@6 I O F B O ~
>`.pickRestart({
  A: "~ x ~ x ~ x ~ x", B: "~ x ~@3 x ~ x", C: "~@3 x ~@4", D: "~ x ~ x ~ x ~@2", E: "~@2 x ~@4 x ~@2 x ~@3 x ~",
  F: "~@5 x ~ x", G: "~ x ~@3 x ~@2", H: "~@3 x ~ x ~@2", I: "~@3 x ~ x ~ x", J: "~@3 x ~@3 x",
  K: "~@2 x ~@3 x ~@3 x!2 ~@2 x ~", L: "~@6 x ~@3 x!2 ~@2 x ~", M: "~ x ~@6", N: "~@2 x ~@3 x ~@6 x ~@2",
  O: "~ x ~ x ~@4",
})).gain(0.24)

// drums · mid tom
const mid_tom = s("mt").struct("<~@9 A ~@7 B ~@7 B ~@11 B ~@7 A ~@7 C ~@23 C ~@7 D ~@2 D ~>".pickRestart({
  A: "~@3 x", B: "~@7 x", C: "~@8 x ~@4 x!2 ~", D: "~@7 x ~@2 x ~@2 x ~@2",
})).gain(0.48)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@9 A ~ B ~@5 C ~ B ~@2 B D ~@9 B E ~ F C ~ B ~@3 G ~ A ~ G ~@8 E B ~@9 C E F ~@4 G ~@9 G ~@5
>`.pickRestart({
  A: "~@2 x ~@2 x ~@10", B: "~@7 x", C: "~@3 x ~@4", D: "~@3 x ~@3 x", E: "~@5 x ~@2", F: "~@5 x ~ x", G: "~ x ~@6",
})).gain(0.56)

// drums · high tom
const high_tom = s("ht").struct("<~@9 A ~@7 B ~@7 B ~@11 B ~@7 A ~@7 C ~@23 C ~@7 D ~@2 D ~>".pickRestart({
  A: "~@4 x!2 ~@2", B: "~@11 x ~@4", C: "~@6 x ~@4 x!2 ~@3", D: "~ x!2 ~",
})).gain(0.56)

// drums · crash
const crash = s("cr").struct("<~@2 A ~@15 A ~@7 A ~@27 A ~@7 A ~@23 A ~@3>".pickRestart({
  A: "x",
})).gain(0.48)

// drums · ride
const ride = s("rd").struct("<~@10 A ~@27 A ~@7 A ~@23 A ~@7 A ~@11>".pickRestart({
  A: "x",
})).gain(0.48)

stack(
  piano, piano_2, acoustic_guitar_steel, bass, string_ensemble_1, kick, rim, snare, low_tom, hihat, hihat_soft, mid_tom,
  open_hat, high_tom, crash, ride
)

More by Elvis Presley