Strudelify

Too Much

Elvis Presley

KeyA♭ majorTempo118 bpm
0:00/0:00
// Too Much — Elvis Presley
// 118 bpm, 4/4, key G# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 76 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(118/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 E F G H I J K L M J N O E F G H I J K L M J N O P@4 Q R S T U V W X Y Z AA AB AC AD AE@2 AF AG AH AI E F G H I
  J K L M J N O AJ AK AL AM AN AO AP AQ AR AS AT AU
>`.pickRestart({
  A: "[eb2,bb2,eb6,eb7]@2 ~@2 [eb2,bb2,eb6,eb7] ~ [eb2,c3]@3 ~ eb2@2 [bb2,eb7]@2 ~@2 [eb2,bb2] ~ [eb2,c3]@2 ~@2 [eb2,c3,eb6,eb7] ~, ~@10 c3 ~ eb6 ~@5 [eb6,eb7] ~@5", // Eb5 Cm Eb5 Cm Eb
  B: "[db6,f6,ab6] ~ [db6,f6,ab6] ~ [db2,ab2,db6,f6,ab6] ~ [db6,f6,ab6] ~ [db6,f6,ab6] ~ [db2,bb2,db6,f6,ab6] ~ [db6,f6,ab6] ~ [db6,f6,ab6] ~ [db2,ab2,db6,f6,ab6] ~ [bb2,db6,f6,ab6] ~ [db6,f6,ab6] ~ [bb2,db6,f6,ab6] ~, [db2,ab2] ~@2 [db2,bb2] ~@2 [db2,ab2] ~@2 db2 ~@2", // Db Bbm7 Db Bbm7 Db Bbm7 Db5 Gb …
  C: "~ [ab4,ab5]@3 [ab2,eb3] ~ [ab2,f3]@3 ~ [ab2,f3,eb4,ab4,eb5] ~ [ab2,eb3,ab4,eb5,ab5]@3 ~ [ab2,eb3,eb4,ab4,eb5,ab5] ~ [ab2,f3]@2 ~ [ab2,f3] ~@2, [ab2,eb3,eb4,eb5]@3 ~@7 ab5@2 ~@12", // Ab Ab5 Db Fm7 Ab5 Db Ab5
  D: "[ab2,eb3,eb4,ab4,eb5]@2 ~@8 [ab2,eb3]@3 ~@11, ab5 ~@23", // Ab5
  E: "[ab2,eb3]@3 ~ [ab2,eb3] ~ [ab2,f3]@3 ~ [ab2,f3] ~ [ab2,eb3]@3 ~ [ab2,eb3] ~ [ab2,f3]@3 ~ [ab2,f3] ~", // Ab5 Db Ab5 Db
  F: "[ab2,eb3]@3 ~ [ab2,eb3] ~ [ab2,f3]@3 ~ [ab2,f3] ~ [ab2,eb3]@3 ~ [ab2,eb3] ~ [ab2,f3]@2 ~@2 ab2@2, ~@22 eb3 ~", // Ab5 Db Ab5 Db
  G: "[ab2,eb3]@3 ~ [ab2,eb3] ~ [ab2,f3]@3 ~ [ab2,f3] ~ [ab2,eb3]@3 ~ [ab2,eb3] ~ [ab2,f3]@3 ~ [ab2,eb3] ~", // Ab5 Db Ab5 Db Ab5
  H: "[ab2,eb3]@3 ~ [ab2,eb3] ~ [ab2,f3]@3 ~ [ab2,f3] ~ [ab2,eb3]@3 ~ [ab2,eb3] ~ [ab2,f3]@2 ~@2 [ab2,f3] ~", // Ab5 Db Ab5 Db
  I: "[db2,ab2]@3 ~ [db2,ab2] ~ [db2,bb2]@3 ~ [db2,bb2] ~ [db2,ab2]@3 ~ [db2,ab2] ~ [db2,bb2]@3 ~ [db2,bb2] ~", // Db5 Gb Db5 Gb
  J: "[db2,ab2]@3 ~ [db2,ab2] ~ [db2,bb2]@3 ~ [db2,bb2] ~ [db2,ab2]@3 ~ [db2,ab2] ~ [db2,bb2]@2 ~@2 [db2,bb2] ~", // Db5 Gb Db5 Gb
  K: "[ab2,eb3]@2 ~@2 [ab2,eb3] ~ [ab2,f3]@3 ~ [ab2,f3] ~ [ab2,eb3]@3 ~ [ab2,eb3] ~ [ab2,f3]@3 ~ [ab2,f3] ~", // Ab5 Db Ab5 Db
  L: "[ab2,eb3]@3 ~ [ab2,eb3] ~ [ab2,f3]@3 ~ [ab2,f3] ~ [ab2,eb3]@3 ~ [ab2,eb3] ~ [ab2,f3]@2 ~@2 ab2 ~", // Ab5 Db Ab5 Db
  M: "[eb2,bb2]@3 ~ [eb2,bb2] ~ [eb2,c3]@3 ~ [eb2,c3] ~ [eb2,bb2]@3 ~ [eb2,bb2] ~ [eb2,c3]@3 ~ [eb2,c3] ~", // Eb5 Cm Eb5 Cm
  N: "[ab2,eb3]@3 ~ [ab2,eb3] ~ [ab2,f3]@3 ~ [ab2,f3] ~ [ab2,eb3]@3 ~ [ab2,eb3] ~ [ab2,f3]@2 ~@2 ab2@2, ~@22 f3 ~", // Ab5 Db Ab5 Db
  O: "[ab2,eb3]@3 ~@7 [ab2,eb3]@3 ~@11", // Ab5
  P: "[c5,eb5,ab5] ~ [c5,eb5,ab5] ~ [ab2,eb3,c5,eb5,ab5] ~ [c5,eb5,ab5] ~ [c5,eb5,ab5] ~ [ab2,f3,c5,eb5,ab5] ~ [c5,eb5,ab5] ~ [c5,eb5,ab5] ~ [ab2,eb3,c5,eb5,ab5] ~ [c5,eb5,ab5] ~ [c5,eb5,ab5] ~ [ab2,f3,c5,eb5,ab5] ~, [ab2,eb3] ~@2 [ab2,f3] ~@2 [ab2,eb3] ~@2 [ab2,f3] ~@2", // Ab Fm7 Ab Fm7 Ab5 Db Ab5 Db
  Q: "[eb2,db6,ab6]@2 ~@2 [db2,ab2,db6] ~ [db2,bb2]@4 db2@2 [db2,ab2]@2 ~@2 [db2,ab2] ~ [db2,bb2,db6,f6]@3 ~ [db2,bb2] ~, ~@4 f6@2 ~@4 [db6,ab6]@7 ~@7, ~@10 bb2 ~@13", // Dbsus2 Db5 Gb Db5 Bbm Gb Db5
  R: "[db2,ab2,db6,ab6]@3 ~ [db2,ab2] ~ [db2,bb2,db6,f6]@3 ~ [db2,bb2] ~ [db2,ab2,db6,ab6]@3 ~ [db2,ab2,db6,f6] ~ [db2,bb2]@3 ~ [db2,bb2] ~", // Db5 Bbm Gb Db5 Db Gb
  S: "[ab5,c6,eb6]@3 ~ [ab2,eb3,ab5,c6,eb6] ~ [ab2,f3,ab5,db6,f6]@3 ~ [ab2,f3,ab5,db6,f6] ~ [ab2,eb3,ab5,c6,eb6]@3 ~ [ab2,eb3,ab5,c6,eb6] ~ [ab2,f3,ab5,db6,f6]@3 ~ [f3,ab5,db6,f6] ~, [ab2,eb3] ~@21 ab2@2", // Ab Db Ab Db Ab5
  T: "[ab2,eb3,ab5,c6,eb6]@3 ~ [ab2,eb3,ab5,c6,eb6] ~ [ab2,f3,ab5,db6,f6]@3 ~ [ab2,f3,ab5,db6] ~ [eb3,ab5,c6,eb6]@2 ~ eb3 [ab2,ab5,c6,eb6] ~ [ab2,f3,ab5,db6,f6]@3 ~ [ab2,f3,ab5,db6,f6] ~, ~@10 f6@2 ab2 ~@11", // Ab Db Ab Db
  U: "[eb2,bb2,db4,eb4,g4]@3 ~ [eb2,bb2,db4,eb4,g4] ~ [eb2,c3,db4,eb4,g4]@3 ~ [eb2,c3,db4,eb4,g4] ~ [eb2,bb2,db4,eb4,g4]@3 ~ [eb2,bb2,db4,eb4,g4] ~ [eb2,c3,db4,eb4,g4]@3 ~ [eb2,c3,db4,eb4,g4] ~", // Eb7 Cm Eb7 Cm
  V: "[db2,ab2,b3,db4,f4]@3 ~ [db2,ab2,b3,db4,f4] ~ [db2,bb2,b3,db4,f4]@3 ~ [bb2,b3,db4,f4] ~ [ab2,b3,db4,f4]@3 ~ [db2,ab2,b3,db4,f4] ~ [db2,bb2,b3,db4,f4]@2 ~@2 [db2,bb2,b3,db4,f4] ~, ~@10 db2@5 ~@9", // Db7 Bbm Db7 Bbm
  W: "[ab2,eb3,c4]@3 ~ [ab2,eb3,ab3,c4] ~ [ab3,c4,eb4]@2 ~@2 [ab2,f3,ab3,c4,eb4] ~ [ab2,eb3,ab3,c4,eb4]@3 ~ [ab2,eb3,ab3,c4,eb4] ~ [ab2,f3,ab3,c4,eb4]@2 ~@2 [ab2,f3] ~, eb4 ~@5 [ab2,f3]@4 ~@14", // Ab Fm7 Ab Fm7 Db
  X: "[ab2,eb3,ab3,c4]@3 ~@7 [ab2,eb3,ab3,c4,eb4]@4 ~@2 [eb2,bb2,eb4,g4,bb4,db5,eb5]@8, eb4 ~@23", // Ab Eb7
  Y: "[ab2,eb3,eb6,ab6] ~ [ab2,eb3]@2 [ab2,eb3]@2 [ab2,eb3]@2 [ab2,eb3]@2 [ab2,eb3]@2 [ab2,eb3]@2 ~@10, ~@2 [eb6,ab6] ~ [eb6,ab6] ~ [eb6,ab6] ~ [eb6,ab6] ~ [eb6,ab6] ~ [eb6,ab6] ~@11", // Ab5
  Z: "[ab2,eb3]!7 ~@5, [eb6,ab6] ~ [eb6,ab6] ~ [eb6,ab6] ~ [eb6,ab6] ~ [eb6,ab6] ~ [eb6,ab6] ~ [eb6,ab6] ~@11", // Ab5
  AA: "[eb6,ab6,eb7] ~ [eb6,ab6,eb7] ~ [eb6,ab6,eb7] ~ [eb6,ab6,eb7] ~ [eb6,ab6,eb7] ~ [eb6,ab6,eb7] ~ [eb6,ab6,eb7] ~ [eb6,ab6,eb7] ~ [eb6,ab6,eb7] ~ [eb6,ab6,eb7] ~ [eb6,ab6,eb7] ~ [eb6,ab6,eb7] ~, [ab2,eb3]!12", // Ab5
  AB: "[eb6,ab6,eb7] ~ [eb6,ab6,eb7] ~ [eb6,ab6,eb7] ~ [eb6,ab6,eb7] ~ [eb6,ab6,eb7] ~ [eb6,ab6,eb7] ~ [eb6,ab6,eb7] ~@11, [ab2,eb3]!7 ~@5", // Ab5
  AC: "[db2,ab2,f6,b6,eb7,ab7]@3 ~ [f6,b6,eb7,ab7]@2 [db2,bb2]@3 ~ [db2,bb2] ~ [db2,ab2,f6,b6,eb7,ab7]@3 ~ [db2,ab2,b6,eb7,ab7] f6 [db2,bb2]@3 ~ [db2,bb2] ~, ~@4 [db2,ab2] ~@19", // Db7 Fm7b5 Gb Db7 Abm Gb Db5
  AD: "[db2,ab2,b6,eb7,ab7]@3 ~ [db2,ab2,b6] ~ [db2,bb2]@3 ~ [db2,bb2] ~ [db2,ab2]@3 ~ [b6,eb7,f7]@2 [db2,bb2]@2 ~@2 [db2,bb2] ~, ~@4 [eb7,f7]@2 ~@4 [b6,eb7,ab7]@4 ~@2 [db2,ab2] ~@7", // Abm Db7 Gb Db5 Fm7b5 Gb Ebsus2 Abm …
  AE: "[ab6,c7,eb7] ~ [ab6,c7,eb7] ~ [ab2,eb3,ab6,c7,eb7] ~ [ab6,c7,eb7] ~ [ab6,c7,eb7] ~ [ab2,f3,ab6,c7,eb7] ~ [ab6,c7,eb7] ~ [ab6,c7,eb7] ~ [ab2,eb3,ab6,c7,eb7] ~ [ab6,c7,eb7] ~ [ab6,c7,eb7] ~ [ab2,f3,ab6,c7,eb7] ~, [ab2,eb3] ~@2 [ab2,f3] ~@2 [ab2,eb3] ~@2 [ab2,f3] ~@2", // Ab Fm7 Ab Fm7 Ab5 Db Ab5 Db
  AF: "[g6,bb6,db7,eb7] ~ [g6,bb6,eb7] ~ [eb2,bb2,g6,bb6,db7,eb7] ~ [g6,bb6,db7,eb7] ~ [g6,bb6,db7,eb7] ~ [eb2,c3,g6,bb6,db7,eb7] ~ [g6,bb6,db7,eb7] ~ [g6,bb6,db7,eb7] ~ [eb2,bb2,g6,bb6,db7,eb7] ~ [g6,bb6,db7,eb7] ~ [g6,bb6,db7,eb7] ~ [eb2,c3,g6,bb6,db7,eb7] ~, [eb2,bb2] ~@2 [eb2,c3] ~@2 [eb2,bb2] ~@2 [eb2,c3] ~@2", // Eb7 Eb Eb7 Eb5 Cm Eb5 Cm
  AG: "[f6,ab6,db7] ~ [f6,ab6,db7] ~ [db2,ab2,f6,ab6,b6,db7] ~ [f6,ab6,b6,db7] ~ [f6,ab6,b6,db7] ~ [db2,bb2,f6,ab6,b6,db7] ~ [f6,ab6,b6,db7] ~ [f6,ab6,b6,db7] ~ [db2,ab2,f6,ab6,b6,db7] ~ [f6,ab6,b6,db7] ~ [f6,ab6,b6,db7] ~ [db2,bb2,f6,ab6,b6,db7] ~, [db2,ab2] ~@2 [db2,bb2] ~@2 [db2,ab2] ~@2 [db2,bb2] ~@2", // Db Db7 Db5 Gb Db5 Gb
  AH: "[eb6,ab6,c7] ~ [eb6,ab6,c7] ~ [ab2,eb3,eb6,ab6,c7] ~ [eb6,ab6,c7] ~ [eb6,ab6,c7] ~ [ab2,f3,eb6,ab6,c7] ~ [eb6,ab6,c7] ~ [eb6,ab6,c7] ~ [ab2,eb3,eb6,ab6,c7] ~ [eb6,ab6,c7] ~ [eb6,ab6,c7] ~ [ab2,f3,eb6,ab6,c7] ~, [ab2,eb3] ~@2 [ab2,f3] ~@2 [ab2,eb3] ~@2 [ab2,f3] ~@2", // Ab Fm7 Ab Fm7 Ab5 Db Ab5 Db
  AI: "[eb6,ab6,c7] ~ [eb6,ab6,c7] ~ [eb3,eb6,ab6,c7] ~ [eb6,ab6,c7] ~ [eb6,ab6,c7] ~ [ab2,f3,eb6,ab6,c7] ~ [eb6,ab6,c7] ~ [eb6,ab6,c7] ~ [ab2,eb3,eb6,ab6,c7] ~ [eb6,ab6,c7] ~ [eb6,ab6,c7] ~ [ab2,f3,eb6,ab6,c7] ~, [ab2,eb3] ~ ab2 [ab2,f3] ~@2 [ab2,eb3] ~@2 [ab2,f3] ~@2", // Ab Fm7 Ab Fm7 Ab5 Db Ab5 Db
  AJ: "[ab2,eb3]@3 ~ [ab2,eb3] ~ [ab2,f3]@3 ~ [ab2,f3] ~ [ab2,eb3]@3 ~ [ab2,eb3] ~ [ab2,f3]@3 ~ [ab2,f3] ~, ~@4 [c4,eb4,f4,ab4] ~", // Ab5 Db Ab5 Db Fm7
  AK: "[ab2,eb3]@3 ~ [ab2,eb3] ~ [ab2,f3]@3 ~ [ab2,f3] ~ [ab2,eb3]@3 ~ [ab2,eb3] ~ [ab2,f3]@2 ~@2 ab2@2, ~@16 [c4,eb4,f4,ab4]@4 ~@2 eb3 ~", // Ab5 Db Ab5 Db Fm7
  AL: "[ab2,eb3]@3 ~ [ab2,eb3] ~ [ab2,f3]@3 ~ [ab2,f3] ~ [ab2,eb3]@3 ~ [ab2,eb3] ~ [ab2,f3]@3 ~ [ab2,eb3] ~, ~@4 [c4,eb4,f4,ab4] ~", // Ab5 Db Ab5 Db Ab5 Fm7
  AM: "[ab2,eb3]@3 ~ [ab2,eb3] ~ [ab2,f3]@3 ~ [ab2,f3] ~ [ab2,eb3]@3 ~ [c4,eb4,f4,ab4]@2 [ab2,f3]@2 ~@2 [ab2,f3] ~, ~@16 [ab2,eb3] ~@7", // Ab5 Db Ab5 Fm7 Db Ab5
  AN: "[db2,ab2]@3 ~ [db2,ab2] ~ [db2,bb2]@3 ~ [db2,bb2] ~ [db2,ab2]@3 ~ [db2,ab2] ~ [db2,bb2]@3 ~ [db2,bb2] ~, ~@16 [f3,b3,db4]@5 ~@3", // Db5 Gb Db5 Gb Db7
  AO: "[db2,ab2]@3 ~ [db2,ab2] ~ [db2,bb2]@3 ~ [db2,bb2] ~ [db2,ab2]@3 ~ [db2,ab2] ~ [db2,bb2]@2 ~@2 [db2,bb2] ~, ~@16 [f3,b3,db4]@5 ~@3", // Db5 Gb Db5 Gb Db7
  AP: "[ab2,eb3]@2 ~@2 [ab2,eb3] ~ [ab2,f3]@3 ~ [ab2,f3] ~ [ab2,eb3]@3 ~ ab2@2 [ab2,f3]@3 ~ [ab2,f3] ~, ~@4 [c4,eb4,f4,ab4] ~, ~@16 eb3 ~@7", // Ab5 Db Ab5 Db Fm7
  AQ: "[ab2,eb3]@3 ~ [ab2,eb3] ~ [ab2,f3]@3 ~ [ab2,f3] ~ [ab2,eb3]@3 ~ ab2@2 [ab2,f3]@2 ~@2 ab2 ~, ~@4 [c4,eb4,f4,ab4] ~, ~@16 eb3 ~@7", // Ab5 Db Ab5 Db Fm7
  AR: "[bb4,db5,eb5,g5] ~ [bb4,db5,eb5,g5] ~ [eb2,bb2,bb4,db5,eb5,g5] ~ [bb4,db5,eb5,g5] ~ [bb4,db5,eb5,g5] ~ [eb2,c3,bb4,db5,eb5,g5] ~ [bb4,db5,eb5,g5] ~ [bb4,db5,eb5] ~ [eb2,bb2,bb4,db5,eb5,g5] ~ [bb4,db5,eb5,g5] ~ [bb4,db5,eb5,g5] ~ [eb2,c3,bb4,db5,eb5,g5] ~, [eb2,bb2] ~@2 [eb2,c3] ~@2 [eb2,bb2] ~@2 [eb2,c3] ~@2", // Eb7 Eb5 Cm Eb5 Cm
  AS: "[ab4,b4,db5,f5] ~ [ab4,b4,db5] ~ [db2,ab2,ab4,b4,db5,f5] ~ [ab4,b4,db5,f5] ~ [ab4,b4,db5,f5] ~ [db2,bb2,ab4,b4,db5,f5] ~ [ab4,b4,db5,f5] ~ [ab4,b4,db5,f5] ~ [db2,ab2,ab4,b4,db5,f5] ~ [ab4,b4,db5,f5] ~ [ab4,b4,db5] ~ [db2,bb2,ab4,b4,db5,f5] ~, [db2,ab2] ~@2 [db2,bb2] ~@2 [db2,ab2] ~@2 [db2,bb2] ~@2", // Db7 Db5 Gb Db5 Gb
  AT: "[ab4,c5,eb5] ~ [ab4,c5,eb5] ~ [ab2,eb3,ab4,c5,eb5] ~ [ab4,c5,eb5] ~ [ab4,c5,eb5] ~ [ab2,f3,ab4,c5,eb5] ~ [ab4,c5,eb5] ~ [ab4,c5,eb5] ~ [ab2,eb3,ab4,c5,eb5] ~ [ab4,c5,eb5] ~ [ab4,c5,eb5] ~ [f3,ab4,c5,eb5] ~, [ab2,eb3] ~@2 [ab2,f3] ~@2 [ab2,eb3] ~@2 [ab2,f3] ~ ab2", // Ab Fm7 Ab Fm7 Ab5 Db Ab5 Db
  AU: "[ab2,eb3] ~@7", // Ab5
})).s("gm_piano").gain(0.38).pan(0.6)

// bass · acoustic bass · "ACOU BASS"
const bass = note(`<
  A B C D E F G H I J K H L M N O E P E Q I B C H A M N R E F G S T U V H W X Y R E P E Z I B C Z L M Y AA AB AC AD AE
  AF AG AH AI AJ AK Y AL E AM AN AO AP AQ AR AS L AT Y AU
>`.pickRestart({
  A: "eb2@5 ~ g2@5 ~ bb2@5 ~ c3@5 ~", B: "db2@5 ~ f2@5 ~ ab2@5 ~ bb2@4 ~@2", C: "ab1@5 ~ c2@5 ~ eb2@5 ~ f2@5 ~",
  D: "ab2@3 ~@7 ab2@3 ~@5 eb2@4 ~@2", E: "ab2@4 ~@2 f2@5 ~ eb2@5 ~ f2@5 ~", F: "ab2@5 ~ f2@5 ~ eb2@5 ~ c2@5 ~",
  G: "ab1@4 ~@2 c2@5 ~ eb2@5 ~ f2@5 ~", H: "ab2@5 ~ f2@5 ~ eb2@5 ~ c2@4 ~@2", I: "db2@5 ~ f2@5 ~ ab2@5 ~ bb2@5 ~",
  J: "b2@5 ~ bb2@5 ~ ab2@5 ~ f2@4 ~@2", K: "ab2@5 ~ c2@5 ~ eb2@5 ~ f2@5 ~", L: "eb2@5 ~ g2@5 ~ bb2@5 ~ c3@6",
  M: "db2@5 ~ f2@4 ~@2 ab2@5 ~ bb2@5 ~", N: "ab2@5 ~ c2@5 ~ eb2@4 ~@2 f2@5 ~", O: "ab2@3 ~@7 ab2@4 ~@4 eb2@4 ~@2",
  P: "ab2@5 ~ f2@5 ~ eb2@5 ~ f2@5 ~", Q: "ab2@5 ~ f2@5 ~ eb2@5 ~ ab2@5 ~", R: "ab2@3 ~@7 ab2@4 ~@2 eb1@6 ~@2",
  S: "ab2@5 ~ gb2@5 ~ f2@5 ~ eb2@4 ~@2", T: "db2@5 ~ f2@5 ~ ab2@5 ~ bb2@3 ~ bb2 ~",
  U: "b2@5 ~ bb2@5 ~ ab2@3 ~ ab2 ~ f2@4 ~@2", V: "ab1@5 ~ c2@5 ~ eb2@3 ~ eb2 ~ f2@5 ~",
  W: "eb2@5 ~ g2@3 ~ g2 ~ bb2@5 ~ c3@5 ~", X: "db2@3 ~ db2 ~ f2@4 ~@2 ab2@5 ~ bb2@5 ~",
  Y: "ab2@5 ~ f2@5 ~ eb2@4 ~@2 f2@5 ~", Z: "ab2@5 ~ f2@5 ~ ab2@5 ~ bb2@4 ~@2",
  AA: "ab2@4 ~@2 f2@5 ~ eb2@4 ~@2 f2@4 ~@2", AB: "ab2@4 ~@2 f2@5 ~ eb2@3 ~ eb2@2 f2@5 ~",
  AC: "ab2@5 ~ f2@5 ~ ab2@5 ~ f2@5 ~", AD: "ab2@4 ab2@2 f2@5 ~ ab2@3 ~ ab2@2 f2@5 ~",
  AE: "ab2@3 ~ ab2@2 f2@5 ~ eb2@3 ~ ab2@2 ab2@4 ~@2", AF: "db2@5 ~ f2@3 ~ f2 ~ ab2@5 ~ bb2@3 ~ bb2 ~",
  AG: "b2@3 ~ b2 ~ bb2@5 ~ ab2@5 ~ f2@4 ~@2", AH: "ab2@3 ~ ab2 ~ bb2@5 ~ b2@5 ~ bb2@5 ~",
  AI: "ab2@5 ~ f2@5 ~ ab2@5 ~ bb2@5 ~", AJ: "eb2@3 ~ eb2 ~ g2@5 ~ bb2@3 ~ bb2 ~ c3@5 ~",
  AK: "db2@3 ~ db2 ~ f2@4 ~@2 ab2@3 ~ ab2 ~ bb2@5 ~", AL: "ab2@3 ~@7 ab2@4 ~@4 eb1@5 ~",
  AM: "ab2@3 ~ ab2 ~ f2@5 ~ eb2@5 ~ f2@3 ~ f2 ~", AN: "ab2@4 ~@2 f2@3 ~ f2 ~ ab2@3 ~ ab2 ~ f2@5 ~",
  AO: "ab2@3 ~ ab2 ~ f2@5 ~ ab2@5 ~ bb2@4 ~@2", AP: "db2@3 ~ db2 ~ f2@5 ~ ab2@5 ~ bb2@5 ~",
  AQ: "db2@3 ~ db2 ~ f2@5 ~ ab2@5 ~ bb2@4 ~@2", AR: "ab2@3 ~ ab2 ~ c3@5 ~ eb3@5 ~ c3@5 ~",
  AS: "ab2@5 ~ c3@5 ~ eb3@5 ~ b2@5 ~", AT: "db2@5 ~ f2@4 ~@2 ab2@5 ~ f2@5 ~", AU: "ab2 ~@7",
})).s("gm_acoustic_bass").gain(0.44)

// other · electric guitar muted · "MUTED GTR"
const electric_guitar_muted = note(`<
  A B C D C@4 B@2 C@2 A B C D C@4 B@2 C@2 A B C D C@4 B@2 C@2 A B C D E@2 F E G H I J@2 K L M C@4 B@2 C@2 A B C D C@4
  B@2 C@2 A B C N
>`.pickRestart({
  A: "eb3@2 ~@2 eb3 ~ c4@2 ~@2 c4@2 bb3@2 ~@2 bb3 ~ c4@3 ~ bb3@2",
  B: "db3@2 ~@2 db3 ~ bb3@2 ~@2 bb3@2 ab3@2 ~@2 ab3@2 bb3@3 ~ ab3 ~",
  C: "ab2@2 ~@2 ab2 ~ f3@2 ~@2 f3@2 eb3@2 ~@2 eb3 ~ f3@3 ~ eb3 ~", D: "ab2@3 ~@7 ab2@3 ~@11",
  E: "[eb3,ab3] [e3,a3] [f3,bb3] [gb3,b3] [f3,bb3] [e3,a3] [eb3,ab3] ~@5", // Ab5 A5 Bb5 B5 Bb5 A5 Ab5
  F: "[eb3,ab3] [e3,a3] [f3,bb3] [gb3,b3] ~ a3 [eb3,ab3] [e3,a3] [f3,bb3] [gb3,b3] [f3,bb3] [e3,a3], ~@4 [f3,bb3] ~@7, ~@3 e3 ~@4", // Ab5 A5 Bb5 B5 Ab5 A5 Bb5 B5 …
  G: "db3@2 eb3@2 e3@2 f3@2 ~ bb3@3 b3@3 ~@9, ~@8 ab3@3 ~@13", H: "db3 eb3 e3 f3 ab3 bb3 b3 db4 d4 eb4 db4 d4",
  I: "eb4 db4 d4 eb4 db4 d4 eb4 db4 d4 eb4 gb4 g4",
  J: "[ab4@2 gb4@2 g4@2 ab4@2 gb4@2 g4@2 ab4@3 ~@9 b4@2 ~@2 bb4@3 ~ ab4@2 f4@2 eb4@2 f4@2 b3@4 ~@4, ~@11 ab4 ~@12, ~@23 bb4@2 ~@23]/2",
  K: "~@2 gb4 f4 e4 eb4 d4 db4 c4 b3 bb3 a3", L: "ab3@3 ~@3 c4@4 eb4 ~ c4 db4@3 eb4@3 ~@2 c4@3",
  M: "ab3@2 ~ b3@2 ab3 ~@6", N: "ab2 ~@7",
})).s("gm_electric_guitar_muted").gain(0.45).pan(0.4)

// chords · flute
const flute = note(`<
  ~@5 A ~ A ~ B ~ A ~@2 C D ~ A ~ A ~ E ~ F ~@2 G@2 ~ A ~ A ~ E ~ A ~@2 C H ~@13 A ~ A ~ B ~ A ~@2 C I ~ A ~ A ~ E ~ A
  ~@2 C J
>`.pickRestart({
  A: "~@2 [f3,ab3,c4]@3 [ab3,c4,eb4]@4 ~@3", B: "~@2 [f3,ab3,b3]@3 [ab3,b3,eb4]@3 ~@4", C: "~@3 ab3",
  D: "ab3@3 [eb3,f3,ab3,c4]@2 [f3,ab3,c4,eb4]@3 ~@4", E: "~@2 [f3,ab3,b3]@3 [ab3,b3,eb4]@4 ~@3",
  F: "~@2 [f3,ab3,c4]@4 [ab3,c4,eb4]@3 ~@3", G: "[~@16 ab3@6 ab3@8 [eb3,f3,ab3,c4]@4 [f3,ab3,c4,eb4]@5 ~@9]/2",
  H: "ab3@3 [eb3,f3,ab3,c4]@2 [f3,ab3,c4,eb4]@4 ~@3", I: "ab3@6 [eb3,f3,ab3,c4]@4 [f3,ab3,c4,eb4]@5 ~@9", J: "ab3 ~@23",
})).s("gm_flute").gain(0.16).pan(0.4)

// chords · flute
const flute_2 = note("<~@12 A B C D ~@8 A B C D ~@8 A B C D ~@20 A B C D ~@8 A B C ~>".pickRestart({
  A: "[db4,eb4,g4,bb4]", B: "[b3,db4,f4,ab4]", C: "[c4,f4,ab4]", D: "~@3 [eb4,f4,ab4,c5]@2 [f4,ab4,c5,eb5]@2 ~@5",
})).s("gm_flute").gain(0.3).pan(0.6)

// chords · flute · soft notes
const flute_soft = note("<~@14 A ~@11 A ~@11 A ~@23 A ~@11 A ~>".pickRestart({
  A: "eb4",
})).s("gm_flute").gain(0.15).pan(0.6)

// bass · baritone sax · "BARITONSAX"
const bass_2 = note(`<
  ~@4 A B A B C D E B ~@3 F A B A B C D E B ~@3 F A B A B C D E B ~@3 F ~@12 A B A B C D E B ~@3 F A B A B C D E B ~@3 G
>`.pickRestart({
  A: "~@11 eb2", B: "ab1@5 ~@19", C: "~@11 ab2", D: "db2@5 ~@19", E: "~@22 eb2 ~",
  F: "~@6 [ab1,ab2]@4 [ab1,ab2]@3 ~@11", G: "[ab1,ab2] ~@5",
})).s("gm_baritone_sax").gain(0.35).pan(0.3)

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

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

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@3 A ~@11 A ~@11 A ~@10 B C ~@23 A ~@12>".pickRestart({
  A: "~@4 x!2 ~@18", B: "~@16 x!2 ~@6", C: "~@4 x!2 ~@10 x!2 ~@6",
})).gain(0.27)

// drums · open hat
const open_hat = s("oh").struct(`<
  A@2 B ~ C D E F G A@2 H A I A J K A C H G A I L F I H J K A C I A@3 I C I H ~@12 J K A C H A@2 I F C I H J K I A D A@2
  E I C A H ~
>`.pickRestart({
  A: "x ~@2 x ~ x!2 ~@2 x ~ x", B: "x ~@2 x ~ x!2 ~@2 x ~@2", C: "x ~@2 x ~@2 x ~@2 x ~ x", D: "x ~@4 x!2 ~@2 x ~@2",
  E: "x!4", F: "x ~@2 x ~@2 x ~@4 x", G: "x ~ x!2 ~ x!2 ~@2 x ~ x", H: "x ~@2 x ~ x!2 ~@5", I: "x ~@2 x ~ x!2 ~@4 x",
  J: "~@11 x", K: "~@3 x ~ x!2 ~@2 x ~ x", L: "x ~@4 x!2 ~@2 x ~ x",
})).gain(0.38)

// drums · crash
const crash = s("cr").struct("<~@3 A ~@11 A B ~@10 A B ~@10 A ~@12 B ~@10 A B ~@11>".pickRestart({
  A: "x ~@4 x ~@6", B: "x",
})).gain(0.33)

// drums · ride
const ride = s("rd").struct("<~@40 [x!7 ~@5]!2 [x!12] [x ~@2 x ~ x!2 ~@2 x ~ x]!8 [x ~@2 x ~ x!5 ~@2] ~@24>").gain(0.44)

stack(
  piano, bass, electric_guitar_muted, flute, flute_2, flute_soft, bass_2, kick, snare, snare_soft, open_hat, crash, ride
)

More by Elvis Presley