Strudelify

Son of Your Father

Elton John

KeyE♭ majorTempo162 bpm
0:00/0:00
// Son of Your Father — John Elton
// 162 bpm, 4/4, key D# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 150 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(162/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 2"
const piano = note(`<
  A B C D@2 E@2 F@2 G@2 H I J K@2 L M N@2 O P Q@3 R@3 S T U V W@2 X Y@2 Z AA@2 AB AC AD@2 AE AF AG@2 AH@2 AI AJ AK AL AM
  AN@2 AO@2 K@2 L M N@2 O P Q@3 R@3 S T U V W@2 X Y@2 Z AA@2 AB AP AD@2 AE AQ AG@2 AH@2 AI AJ AK AL AM AN@2 AO@2 AR@2
  F@2 G@2 H I J K@2 L M N@2 O P AS AB AP AD@2 AE AQ AG@2 AH@2 AI AJ AK AL AM AT AK AL AM AU AK AL AV@2 AW@3 ~
>`.pickRestart({
  A: "~@12 gb3 g3 bb3 ~",
  B: "[eb2,eb3,g3,eb4]@2 [eb3,g3,bb3] ~ eb2@2 [eb3,c4,eb4]@2 eb2 ~ [eb3,g3,bb3,c4,eb4]@2 eb2@2 [eb3,g3,bb3,c4,eb4]@2, eb1@15 ~, ~@2 [c4,eb4]@2 ~@2 [g3,bb3] ~@9", // Eb Cm Cm7 Cm Gm
  C: "eb2@2 [g3,c4,eb4] ~ [eb2,eb3,g3,c4]@2 [gb3,bb3]@2 [eb2,g3]@2 eb3 ~ [eb2,eb3,ab3,c4]@2 [eb3,g3,bb3]@2, eb1@7 ~, ~@2 [eb3,bb3]@2 ~@2 eb3@4 ~@2 g3 ~@3", // Cm Gb Eb Ab Eb Eb5
  D: "[eb2@2 eb3 ~ [eb2,eb3,c4]@3 ~ [eb2,eb3,c4]@2 [eb3,g3,c4,eb4]@2 eb2 ~ [eb3,g3,bb3,c4,eb4]@2 eb2@2 [eb3,g3,bb3,c4,eb4]@2 [eb3,g3,c4] ~ [eb3,gb3,bb3]@2 eb2@2 eb3 ~ [eb2,eb3,ab3]@2 [eb3,g3,bb3]@2, eb1@15 ~, ~@4 [g3,bb3,eb4] ~@3 [g3,bb3,eb4] ~ bb3 ~@9 eb2@2 ~@2 g3 ~@3 c4 ~@3]/2", // Cm Cm7 Cm Ebm Ab5 Eb
  E: "[[eb3,gb3]@2 g3@2 eb3 ~@3 [eb3,gb3,bb3]@2 g3 ~ eb2 ~ [eb3,g3,bb3,c4,eb4]@2 ~@2 [g3,bb3,c4,eb4]@2 ~@4 [eb3,gb3]@2 g3@2 eb3@2 gb3 ~, eb1@11 ~@3 eb1@13 ~@5, bb3@5 ~@9 eb2@4 eb3@4 eb2@4 ~@2 eb2@4, ~@12 bb3@3 ~]/2", // Ebm Cm7 Ebm
  F: "[[ab2,ab3,b3]@2 c4@2 ab2 ~ ab2 ~ [ab3,b3,eb4]@2 c4 ~ ab2 ~ [ab3,c4,eb4,f4,ab4] ~@3 [c4,eb4,f4,ab4] ~ [c4,eb4,f4,ab4] ~ ab2 ~ [c4,eb4,f4,ab4] ~ [c4,eb4,f4,ab4]@2 ab2@2 [ab3,c4,eb4,f4,ab4] ~, ab1@11 ~@3 ab1@14 ~@4, eb4@5 ~@9 ab2@6 ~@12, ~@9 ab3 ~@2 ab3@2 ~@2]/2", // Abm Fm7
  G: "[[bb2,db4,f4]@2 d4@2 ~@2 bb2 ~ [bb3,d4,f4]@2 ~@2 [bb2,bb3] ~ [d4,f4,g4,bb4] ~@3 [bb3,g4,bb4]@3 ~ bb2 ~ [d4,f4,g4,bb4]@4 bb3@2 ~@2, bb1@5 ~@2 bb1@7 ~@2, bb3@5 ~@9 bb2@4 ~@10 bb2 ~@3, ~@14 bb3@3 ~ [d4,f4] ~@5 bb3@3 ~@5]/2", // Bbm Bb Gm7 Eb Gm7 Dm
  H: "[ab2,ab3,eb4]@2 c4 ~@3 ab2 ~ [c4,eb4] ~@3 ab2 ~ gb3@2, ab1@12 ~@2 ab2 ~, b3 ~@7 ab3@5 ~@3, ~@5 [c4,eb4]@2 ~", // Ab5 Cm
  I: "g3@2 [g3,eb4] ~ eb3 ~ [g3,eb4]@2 eb3 ~ [g3,eb4]@2 c4@2 gb3@2, eb2@3 ~", // Cm
  J: "g3@2 [g3,eb4]@2 eb3 ~ [g3,eb4]@2 eb3@2 [g3,eb4]@2 eb3@2 ~@2, eb2@3 ~, eb3 ~@15", // Cm
  K: "[db3@2 [eb3,gb3]@2 g3@2 eb3 ~ [eb3,bb3,db4]@3 ~ [db3,eb3,c4]@3 ~ [gb3,bb3]@2 g3 ~ bb2@2 [eb3,g3,c4,eb4]@2 db3 ~ [eb3,eb4]@2 [eb2,bb2] ~ eb3 ~, eb2@8 bb2 ~@3 eb2@10 ~@10, ~@2 bb3@4 ~@6 ab3 ~@3 [db3,eb3]@4 ~@2 bb3 ~@3 [g3,bb3,c4]@5 ~, ~@16 bb2 ~@11 db3@2 ~@2]/2", // Ebm Eb7 Cm Gb Cm Eb Eb5 Dbsus2 …
  L: "eb3@2 b3 ~ c4@3 ~ [eb3,gb3,ab3,c4] ~@3 [ab2,gb3,ab3,f4]@3 ~, ab2@5 ~@3 [ab2,eb4]@2 ~@6, ~@2 [ab3,eb4]@5 ~@5 [eb3,db4] ~@3", // Ab7 Db Ab5 Eb7
  M: "[eb3,b3]@2 c4 ~ eb3 ~ [ab3,c4,eb4,f4,ab4]@2 ~@2 [ab3,ab4]@2 eb3@2 ab3@2, [ab2,gb3,ab3,eb4] ~ gb3@2, ~@2 ab2 ~, ~@10 [c4,eb4,f4]@5 ~", // Abm Fm7 Ab Ab7 F7
  N: "[[bb3,d4,f4]@3 ~ [bb3,eb4,g4]@3 ~ g4@2 [d4,f4]@3 ~ [bb3,eb4,g4]@4 f3@2 [bb3,eb4,g4]@3 ~ g4@2 [bb2,ab3,d4,f4]@5 ~, ab3@7 ab3@5 ~@4, bb2@5 bb2@7 ~@4, f3@6 ~@2 [f3,bb3]@5 ~ f3 ~@9 [f3,bb3]@8, db4 ~@7 eb4 ~ db4 ~@13 eb4 ~ db4 ~@5]/2", // Bb Eb Dm Eb Bb7 Bb5
  O: "eb3@2 ab3@2 c4@2 ab3 ~ [eb3,ab3,c4,eb4]@4 [c4,eb4]@2 ab3 ~, ~ eb4@2 ~@5, ~@2 b3 ~@9 [ab2,ab3] ~@3", // Ab Cm Ab
  P: "bb2@2 ~@2 [c4,eb4]@2 ~@4 [g3,gb4]@2 ~@2 g3 ~, eb2@3 ~@5, ~ g3 ~@2, ~@4 bb3 ~@5 db4@4 ~@2", // Cm Gmaj7
  Q: "[[g3,bb3,c4,eb4]@2 ~@4 [g3,db4,gb4]@4 ~@2 [bb3,c4,eb4]@2 db4@2 d4@3 ~ [bb3,d4,f4]@2 ~@2 [bb3,f4,ab4]@2 ~@2 [bb3,eb4,g4]@2 ~@2 [bb3,db4,f4]@2 d4 ~ f3@2 [ab3,bb3,d4,f4,bb4]@3 ~@3 ab3@2 bb3@2, ~@6 c4 ~@3 g3@4 [bb3,f4]@5 ~@3 bb2@6 ~@2 bb2@17 ~, ~@22 ab3@4 f3@4 ab3@6 ~@6 [bb3,d4,f4,bb4]@5 ~]/3", // Cm7 Gb Cm7 Bb Bb7 Eb Bbm Bb7 …
  R: "[~@4 ab3 ~ eb3 ~ b3@2 ~@4 [g3,bb3,eb4]@2 ~@2 [g3,bb3,eb4]@2 bb2@2 ~@2 [gb3,eb4]@2 ~@2 [bb3,eb4]@3 ~ [g3,bb3,eb4]@4 ~@2 [gb3,eb4]@2 ~@6 [g3,bb3,eb4]@2, ab2@14 ~@2 eb2@15 ~ eb2@12 ~@4, ~@8 [ab3,eb4]@6 ~@12 g3@5 ~@9 g3@6 ~@2, ~@5 c4@2 ~@14 [bb3,eb4]@2 ~, ~@12 eb3@8 ~@2 eb3@4 ~@2 eb3@6 ~@2 eb3@7 ~ eb3@4]/3", // Eb Ebm Eb5 Eb Ebm Eb Ab5 Eb5
  S: "~@2 gb3@2 g3@3 ~ [g3,bb3,eb4]@3 ~ ab3@2 ab3 ~, ~ [bb3,eb4]@3 ~@2 [eb3,c4,eb4]@2", // Eb Eb5 Cm
  T: "[bb3,db4,f4]@2 d4 ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4]@3 ~ [bb3,d4,f4]@2 bb3 ~, [bb2,ab3]@15 ~", // Bbm Bb Bb7
  U: "[bb3,f4,ab4]@3 ~ [eb4,g4]@2 bb3 ~ [bb3,db4,f4]@2 ~@2 ab3@2 g3 ~, bb2@11 ~@5, ab3@9 ~ d4@5 ~, ~@4 bb3 ~@3 f3@7 ~", // Bb7 Eb Bbm
  V: "[g3,bb3,eb4]@3 ~ [g3,bb3]@2 ~@2 [g3,eb4]@2 bb3 ~ bb2@2 [ab3,c4,eb4]@2, eb2@3 ~, ~@3 eb3@5", // Eb Gm Cm Ab
  W: "[~@2 [ab3,c4]@4 eb3 ~@7 ab3 ~ [eb2,g3,bb3,eb4]@4 ~@4 [d3,g3,bb3]@5 ~@3, ab2@15 ~@9 [d2,d4,f4]@3 ~@5, ~@2 eb4@2 ~@4 [ab3,c4,eb4]@7 ~@17, ~@12 eb3@7 ~@13]/2", // Ab Eb Gm Dm Ab
  X: "[g3,bb3,c4]@5 ~@3 [bb2,g3,bb3,eb4]@8, [c3,eb4]@7 ~@9", // C7 Eb Cm
  Y: "[~@2 c4@2 eb3 ~ [ab3,c4,eb4]@3 ~@5 ab3 ~ [g3,bb3,eb4]@3 ~ g3@2 ~@6 eb3@2 bb3 ~, ab2@12 eb3@8 bb3 ~ eb3@6 ~@4, [gb3,ab3,b3,eb4]@4 ~@6 [ab3,c4,eb4]@5 ~ eb2@15 ~, ~@24 [g3,eb4]@7 ~, ~@13 bb3@2 ~]/2", // Ab Eb Abm7 Ab Cm
  Z: "[f3,db4]@2 d4 ~ [bb3,f4]@2 d4 ~@7 g3@2, ab3, bb2@3 bb2, [bb3,f4]@4 d4 ~@3 [f3,bb3,d4,f4]@8", // Db Bb5 Bb
  AA: "[[g3,bb3,eb4]@4 bb2@2 ~@2 gb3@2 g3@2 bb3 ~ [g3,bb3,eb4]@2 eb3 ~@7 [gb3,eb4]@4 [eb3,g3]@4, eb2@7 ~, eb3@3 ~@3 eb3@4 ~@8 [g3,bb3,eb4]@4 ~@6 eb4 ~@3, ~@10 eb3@3 ~@3]/2", // Eb Ebm Eb
  AB: "[g3,bb3,eb4]@2 ~@2 gb3 g3 ~ [f3,c4], ~@6 eb3@4 ~@4 a3 ~, ~@2 eb4 ~", // Eb F5
  AC: "~@2 f3@4 ~@2 ab3@2 a3@4 ab3 ~, ~ [a3,c4]@3 [f3,c4]@3 ~, ~@6 eb3@9 ~", // Am F5
  AD: "[[ab3,b3,eb4]@2 c4 ~ [c4,eb4] ~ [ab3,c4,eb4] ~ [gb3,ab3,c4,eb4]@5 ~ gb3@2 [eb3,g3]@5 ~ [ab3,c4,eb4]@4 [g3,eb4]@4 gb3 ~, ~@4 ab3@2 ~@8 eb4@7 ~ eb3@6 ~@4, ~@13 bb3@3]/2", // Abm Cm Ab Ab7 Eb Ab Cm
  AE: "gb3 ~@2 eb3 [g3,bb3,eb4]@2 eb3 [f3,ab3,c4], eb4@7 ~@9, eb3 bb2@2 ~, ~ g3@2 ~@5", // Eb Fm
  AF: "a3 ~ [f3,a3,c4]@2 [f3,a3,c4]@3 ~ ab3@2 ~@4 bb3 ~, ~@4 [f3,c4]@3 ~, ~@5 a3@2 ~, ~@3 eb3", // F F5
  AG: "[[f3,db4]@2 ~@2 f3@2 ~@2 [f4,ab4] ~ [bb3,f4,ab4]@2 ~@4 [bb3,db4]@2 d4@2 ~@2 [bb3,d4,f4]@2 ~@2 bb3@2 [f3,ab3]@2 bb3 ~, f4@7 ~@6 f3@7 bb2@8 ~@4, [ab3,bb3]@4 ~@2 ab3@9 ~@5 ab3@6 ~@6, ~@2 d4@6 bb3@2 ~@2 [bb3,eb4,g4]@2 ~@2 f4@5 ~ [g4,bb4]@4 [d4,f4,g4,bb4]@6]/2", // Db Fm Bb7 Bbm Bb Fm Absus2 Eb …
  AH: "[~@4 g3 ~@2 [a3,c4] ~ [f3,c4] ~@2 [a3,c4]@2 c3 ab3, eb2@10 bb3@4 ab3 ~ f2@10 ~@6, eb3@3 bb2@3 eb3@4 c3@2 f3 ~@3, ~@4 [g3,bb3,eb4]@4 eb4@5 ~@5 a3 ~@3 eb3@6 ~@4]/2", // Am F5 Am Eb
  AI: "[ab3,b3,eb4]@2 c4 ~ [c4,eb4] ~ [ab3,c4,eb4]@2 ~@2 ab3@2 gb3 ~ ab3 ~, ab2@3 ~, gb3@2 eb3 ~, ~@2 ab3 ~@2 c4@2 ~", // Abm Cm Ab
  AJ: "[g3,bb3]@3 ~ g3@2 ~@2 [ab3,c4]@2 bb3@2 eb3@2 g3 ~, eb2@3 ~, eb4@7 ~ eb4@7 ~, eb3@2 ~ bb2@3 ~@2, ~@10 g3 ~@5", // Gm Ab
  AK: "[eb3,g3,bb3,eb4]@7 ~ [d2,d3,g3,bb3,d4,f4]@7 ~, eb2@3 ~@13", AL: "~@4 [c3,g3,bb3,c4,eb4]@4 [bb2,g3,bb3,eb4]@7 ~",
  AM: "b3 c4 ~ [ab3,c4,eb4]@2 ab3 gb3 ab3, ab2@3 ~, [gb3,ab3,eb4]@4 eb3@11 ~, ~@5 [c4,eb4]@2 ~", // Ab Ab7 Cm
  AN: "[[eb3,g3,eb4]@3 ~ [eb3,ab3]@2 g3@2 bb3@2 eb3@2 ~@2 eb3@2 bb2@2 ~@2 bb2 ~@3 c3@4 [bb2,eb3]@4, eb2@29 ~@3, bb2@7 ~ bb2@7 ~@7 bb2@4 ~@6, ~@8 eb3 ~@9 eb3@5 ~@9]/2", // Eb Ab5 Eb5
  AO: "[~@4 [eb3,ab3]@2 g3 ~ [bb2,bb3]@2 eb3@2 bb2@2 eb3@2 ~@2 eb3@4 bb2@2 c3@3 ~ [bb2,eb3]@3 ~, eb2@7 ~, bb2@6 ~@2 eb3 ~@7 bb2@6 ~@10]/2", // Ab5 Bb Eb5
  AP: "~@2 f3@4 ~@2 a3@2 a3@4 ab3 ~, ~ [a3,c4]@3 [f3,c4]@3 ~, ~@6 eb3@9 ~", // Am F5
  AQ: "a3 ~ [f3,a3,c4]@2 [f3,a3,c4]@3 ~ a3@2 ~@4 bb3 ~, ~@4 [f3,c4]@3 ~, ~@5 a3@2 ~, ~@3 eb3", // F F5
  AR: "[[eb3,gb3]@2 g3@2 eb3 ~ eb2 ~ [eb3,gb3,bb3]@2 g3 ~ eb2 ~ [eb3,g3,bb3,c4,eb4]@2 ~@2 [g3,bb3,c4,eb4]@2 ~@4 [eb3,gb3]@2 g3@2 eb3@2 gb3 ~, eb1@11 ~@3 eb1@13 ~@5, [eb2,bb3]@5 ~@9 eb2@4 eb3@4 eb2@4 ~@2 eb2@4, ~@12 bb3@3 ~]/2", // Ebm Cm7 Ebm Eb5
  AS: "[g3,bb3,c4,eb4] ~@2 [g3,db4,gb4]@2 ~ [bb3,c4,eb4] [d4,f4], ~@6 c4 ~@3 g3@4 ~@2", // Cm7 Gb Cm7 Dm
  AT: "[eb3,g3,eb4]@3 ~ [eb3,ab3]@2 g3@2 bb3@2 eb3@2 ~@4, eb2@8 eb3 ~@7, bb2@7 ~ bb2@7 ~", // Eb Ab5
  AU: "[eb3,g3,eb4]@3 ~ eb3@3 ~ bb2@7 ~, eb2@5 ~@3, bb2@7 ~ bb3@2 ~@6, ~@8 eb3 ~@7", // Eb
  AV: "[[ab2,gb3,ab3,c4,eb4]@31 ~]/2", AW: "[eb2,bb2,eb3,g3,eb4]/3",
})).s("gm_piano").gain(0.35).pan(0.3)

// bass · fretless bass · "FRETLESS"
const bass = note(`<
  ~@5 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z AA@2 AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ AR AS AT
  AU AV AW AX@4 J K L M N O P Q R S T U V W X Y Z AA@2 AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ AR AS AT AU AV AW
  AX@4 A B C D E F G H I J K L M N O P Q R AI AJ AK AL AM AN AO AP AQ AR AS AT AU AV AW AY AU AV AW AY AU AV AZ@2 BA@3 ~
>`.pickRestart({
  A: "eb1@3 ~@3 bb1@2 eb2@3 ~@3 gb1@2", B: "g1 ~ g1@2 ~@2 g1@2 bb1 ~ bb1 ~ bb1@3 ~",
  C: "ab1@4 ~@2 ab1 ~ ab1 ~ ab1 ~@3 ab1@2", D: "~@2 ab1 ~ b1@2 b1@2 c2@2 db2@2 d2@2 eb2@2",
  E: "bb1@4 ~@2 bb1 ~ bb2@3 ~@3 bb1 ~", F: "~@2 bb2@4 ~@4 bb2@2 g2 ~ g2@2", G: "ab2@4 ~@2 eb2 ~ ab2 ~ ab2 ~@3 ab2 ~",
  H: "eb2 ~ eb2 ~@3 eb2 ~ eb2@2 eb1@2 gb1@2 g1@2", I: "eb1@4 ~@4 eb1@5 ~ g2@2", J: "~@2 bb1@2 g1@3 ~@3 g1@2 ab1@2 a1@2",
  K: "bb1 ~ bb1 ~ c2 ~ c2 ~ db2 ~ db2@2 d2@2 eb2@2", L: "ab1@4 ~@2 ab1 ~ ab1@3 ~@3 c2 ~",
  M: "~ c2 db2 d2 c2 db2 d2 eb2", N: "bb1@3 ~ bb1 ~ bb1 ~ bb2@2 f2@2 ~@2 bb2 ~",
  O: "~@2 bb2 ~ f2@3 ~@3 f2@2 bb1 ~ a1@2", P: "ab1@3 eb2 ab2 eb2 ab2 bb2", Q: "eb2@5 ~@3 eb2@4 ~@2 gb1@2",
  R: "g1 ~ g1@2 ab1 ~ ab1 ~ a1 ~ a1@2 bb1@3 ~", S: "bb2@3 ~@3 f2@2 bb2 ~@5 db2@2",
  T: "d2 ~ d2 ~ eb2@2 e2@2 f2@3 ~ f1 ~ f1@2", U: "ab1 ~@3 ab1@3 ~@3 ab1 ~ db2@2 d2@2",
  V: "eb2@3 ~@3 bb1@2 eb2@3 ~@3 eb2 ~", W: "eb2 ~@3 eb2@3 ~@3 eb2@2 g2@2 eb2@2", X: "eb2@5 ~ g1@3 ~ g1@2 ab1@2 a1@2",
  Y: "bb1@2 ~@2 bb2@2 f2@2 bb2 ~ bb2 ~ db2 ~ d2@2", Z: "~@2 d2@2 eb2@2 e2 ~ f2 ~ f2 ~ bb1@2 bb2@2",
  AA: "[eb2@6 ~@2 eb2@2 f2@2 g2@2 ab2@7 ~@3 ab2 ~ ab2@2 g2 ~ f2@2]/2", AB: "eb2 ~ d2 ~", AC: "c2@2 ~@2 bb1 ~@3",
  AD: "ab1@4 ~@2 ab1@3 ~ c2@2 db2@2 d2@2", AE: "eb2@3 ~ eb2 g2 ab2 a2", AF: "bb2@4 ~@4 bb2@2 f2@2 ~@2 bb2 ~",
  AG: "eb2@9 ~@3 bb2@2 eb3 ~", AH: "~@2 bb2@2 eb2@5 ~@3 bb1@4", AI: "eb1@4 ~@2 eb1@2 eb2@3 ~ eb1@2 e1@2",
  AJ: "f1 ~ f1 ~@3 f1 ~ f2@8", AK: "ab1@3 ~@3 ab1 ~ ab2@2 c2@2 db2@2 d2@2", AL: "eb2@2 eb2 ~@3 bb1@2 eb2@6 ~@2",
  AM: "eb2 ~ eb2 ~@3 bb1@2 eb2@3 ~ eb2@2 e2@2", AN: "f2 ~ f2 ~@3 c2 ~ f2@4 ~@4",
  AO: "bb2 ~ bb1@2 d2 ~ d2@2 eb2 ~ eb2@2 e2 ~ e2 ~", AP: "f2@2 f1@2 bb1 ~ bb1 ~ c2 ~ c2@2 db2@2 d2@2",
  AQ: "eb2@2 eb1 ~ g1 ~ g1@2 ab1 ~ ab1@2 a1@2 bb1@2", AR: "f2@2 f1 ~ a1 ~ a1@2 bb1 ~ bb1@2 b1@2 c2@2",
  AS: "bb1@2 ab1@2 ~@2 eb2@2 ab2@3 ~@3 ab2@2", AT: "eb2@2 bb1 ~@3 bb1@2 eb2@4 ~@4", AU: "eb2@5 ~@3 d2@4 ~@4",
  AV: "~@4 c2@2 ~@2 bb1@3 ~@5", AW: "ab1@7 ~@3 c2@2 db2@2 d2@2", AX: "[eb2 ~ eb2 ~ eb1@60]/4", AY: "eb2 ~ eb2 ~ eb1@12",
  AZ: "[ab1@31 ~]/2", BA: "eb1/3",
})).s("gm_fretless_bass").gain(0.4)

// other · clavinet
const clavinet = note(`<
  ~@5 A B C D E F G H ~ I J K L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH ~@19 I J K L M N O P Q R S T U V W X
  Y Z AA AB AC AD AE AF AG AH ~@19 A B C D E F G H ~ I J K L M N O P Q ~@28
>`.pickRestart({
  A: "eb2 ~ eb2 ~@3 eb2 ~ db3@2 eb3 ~ eb2 ~ eb2 ~", B: "~@2 eb2 ~ db2@2 eb2 ~ eb2 ~ eb2 ~ eb2@2 ~@2",
  C: "ab1@3 ~ ab1 ~ ab1 ~ gb2 ~ ab2 ~ ab1 ~ ab1 ~", D: "~@2 ab1 ~@3 ab1 ~ gb2@2 ab2 ~ ab1 ~ ab1 ~",
  E: "bb1@3 ~@3 bb1 ~ ab2 ~ bb2 ~ bb1 ~ bb1@2", F: "~@2 bb1 ~ bb1 ~ bb1 ~ ab2@2 bb2 ~ bb1 ~ bb2 ~",
  G: "ab1@3 ~ ab1 ~ ab1 ~ gb2 ~ ab2 ~ ab1 ~ ab2 ~", H: "eb2@3 ~@13", I: "eb2@2 ~@2 eb2 ~ eb2 ~ db3@2 eb3 ~ eb2 ~ eb3 ~",
  J: "eb2 ~ eb2 ~ db3@2 eb3 ~ eb2 ~ eb3 ~ eb2 ~ eb3 ~", K: "ab1@3 ~ ab1 ~ ab1 ~ gb2 ~ ab2 ~ ab1 ~@3",
  L: "~@2 ab2 ~ ab1 ~ ab1 ~ gb2 ~ ab2 ~ ab1@2 ab2 ~", M: "bb1@3 ~ bb1 ~ bb1 ~ ab2 ~ bb2 ~ bb1 ~ bb2 ~",
  N: "~@2 bb2 ~@3 bb1 ~ ab2 ~ bb2 ~ bb1 ~ bb2 ~", O: "ab1@3 ~ ab1 ~ ab1 ~ ab2@2 ~@2 ab1 ~ ab2 ~",
  P: "eb1 ~ eb2 ~ eb1 ~ eb1 ~ eb2 ~ eb1 ~ eb2 ~ eb1 ~", Q: "eb1 ~ eb2 ~ eb1 ~ eb2 ~ eb1 ~ eb1 ~ eb2 ~@3",
  R: "[bb1,f2]@4 ~@4 [bb2,d3,f3]@4 f2 ~ bb2 ~", S: "~@2 bb2 ~@3 [bb1,f2] ~ [bb2,f3]@4 f2 ~@3",
  T: "ab1 ~ ab1@2 eb2@2 ab2@2 b2@2 c3@2 ab2 ~ ab2 ~", U: "eb2@2 gb2@2 g2@2 eb2@2 bb2@2 ~@2 eb2@2 gb2 ~",
  V: "eb1@4 ~@2 eb2 ~ gb2@2 g2 ~ eb2@2 bb2 ~", W: "eb2@2 bb2 ~@3 eb2@2 [gb2,eb3]@2 g2 ~ eb2 ~ ab2 ~",
  X: "~@6 f2 ~ [bb2,db3,f3]@2 d3 ~ f2 ~ d3 ~", Y: "~@2 [bb2,f3] ~@3 f2 ~ [bb2,d3,f3] ~ [bb2,d3,f3] ~ f2 ~ [bb2,f3] ~",
  Z: "eb2@4 ~@2 eb2 ~ [gb2,eb3]@2 g2 ~ eb2 ~ g2 ~", AA: "~@2 bb2 ~ ab1 ~ eb2 ~ [ab2,eb3]@4 eb2@2 ab2 ~, ~@4 c3@3 ~",
  AB: "eb2 ~ d2 ~", AC: "c2@4 ~@4 bb1@3 ~@5", AD: "ab1 ~ ab1@2 eb2@2 ab2@2 ~@2 ab2 ~@3 ab2 ~",
  AE: "eb2@2 gb2 ~ eb2 ~ g2@2 bb2@2 eb2 ~ eb3@2 eb2@2", AF: "bb1@4 bb2 ~ f2 ~ [bb2,db3,f3]@2 d3 ~ f2@2 bb2 ~",
  AG: "eb1@5 ~ db2 ~ eb1 ~ eb2 ~ eb1 eb2 ~@2", AH: "eb1@2 db2@2 eb2@2 ~ eb1@3 ~@3 eb2 ~@2, ~@11 eb1@2 ~@3, ~@6 db2 ~",
})).s("gm_clavinet").gain(0.35).pan(0.8)

// chords · electric guitar muted · "MUTED GTR"
const electric_guitar_muted = note(`<
  ~@5 A B C D E F G@2 H I J K L E M N O P Q R S@2 T U V W T X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ ~@4
  AR AS AT I J K L E M N O P Q R S@2 T U V W T X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ ~@4 AR AS AT A B
  C D E F G@2 H I J K L E M N O P AF AG AH AI AJ AK AL AM AN AO AP AQ ~@16
>`.pickRestart({
  A: "~@4 g3 ~@5 bb3 ~@5", B: "[bb3,eb4] ~@5 [bb3,eb4] ~@5 [bb3,eb4]@2 eb4 ~", C: "~@4 c4 ~@5 [c4,eb4] ~@5",
  D: "c4 ~@5 [c4,eb4] ~@5 [c4,eb4] ~@3", E: "~@4 eb4 ~@3 db4@2 d4@2 ~@4", F: "eb4 ~@3 db4@2 d4@2 ~@2 bb3 ~@5",
  G: "[~@6 eb4@2 f4@3 eb4 f4@2 eb4@6 ~@12]/2", H: "~@2 db4@2 db4@2 db4@2 db4@2 db4@2 db4@2 db4 ~",
  I: "~@4 d4 ~@5 eb4 ~@5", J: "d4 ~@6 [bb3,eb4] ~@4 eb4@2 eb4 ~", K: "~@10 eb4 ~@5",
  L: "[c4,eb4] ~@5 [c4,eb4] ~@5 eb4@2 [c4,eb4] ~", M: "eb4 ~ db4 d4 ~@4", N: "~@10 f4@4 eb4 ~",
  O: "f4 ~ eb4@2 ~@4 eb4@2 eb4@2 ~@4", P: "~@2 gb3@4 bb3 ~ bb3@2 bb3 ~@5", Q: "~@4 bb3 ~@5 [bb3,d4] ~@5",
  R: "[bb3,d4] ~@5 [bb3,d4]@4 [bb3,d4]@2 ~@4", S: "[~@6 ab3 ~ db4@2 c4@2 ~@2 bb3@5 ~@7 bb3 ~@5]/2",
  T: "~@4 eb4 ~@5 [bb3,eb4] ~@5", U: "[bb3,eb4] ~@5 [bb3,eb4] ~@9", V: "~@4 db4@4 bb3 ~@7",
  W: "db4@2 c4@2 ~@2 bb3@6 bb3 ~@3", X: "~@2 b3 ~@3 [c4,eb4] ~@5 c4 ~@3", Y: "~ eb4@5 ~@2 bb3@6 ~@2, bb3@5 ~@11",
  Z: "[g3,c4]@4 ~@4 [f3,bb3]@5 ~@3", AA: "~@4 c4 ~@5 c4 ab3 ~@4", AB: "[g3,bb3] ~@5 [gb3,bb3] ~@9",
  AC: "~@4 bb3 ~@5 [f3,bb3] ~@5", AD: "~@3 bb3@2 eb4!3", AE: "~@6 e4@4 eb4 ~ f4@2 eb4@2", AF: "~@4 bb3 ~@5 bb3 ~@5",
  AG: "a3 ~@5 a3 ~@3 c4 ~@5", AH: "~@4 [c4,eb4] ~@5 [c4,eb4] ~@5", AI: "bb3 ~@5 [bb3,eb4] ~@9", AJ: "~@4 bb3@7 bb3 ~@4",
  AK: "a3 ~@5 [a3,c4] ~@9", AL: "~@10 f3@4 bb3 ~", AM: "~@2 bb3@2 ~@2 c4@3 ~ bb3 ~ c4@2 bb3 ~",
  AN: "~@4 bb3 ~@5 eb4 bb3 ~@4", AO: "a3 ~@6 [f3,a3,c4] ~@8", AP: "~@4 b3@6 [c4,eb4] ~@5",
  AQ: "[bb3,eb4] ~@5 [bb3,eb4] ~@5 eb4 ~@3", AR: "~@6 db4!2", AS: "~@8 db4@2 ~@2 db4@2 ~ db4",
  AT: "~@2 c4@2 ~@2 bb3@5 ~@5",
})).s("gm_electric_guitar_muted").gain(0.32)

// chords · electric guitar muted · "MUTED GTR" · soft notes
const electric_guitar_muted_2 = note(`<
  ~@5 A ~@5 B ~@2 C D E F ~@8 G H ~@5 I J ~@2 K ~@2 G L ~@2 M N ~@5 O ~@7 C D E F ~@8 G H ~@5 I J ~@2 K ~@2 G L ~@2 M N
  ~@5 O ~@7 A ~@5 B ~@2 C D E F ~@5 G L ~@2 M N ~@5 O ~@16
>`.pickRestart({
  A: "~@4 bb3 ~@5 g3 ~@5", B: "~ bb3@2 ~@5", C: "~@10 bb3 ~@5", D: "~@14 bb3 ~", E: "~@11 c4 ~@4", F: "~@6 c4 ~",
  G: "~@10 g3 ~@5", H: "~@4 bb3 ~@11", I: "~ g4@5 ~@2 [f3,d4]@6 ~@2", J: "eb4@4 ~@5 d4@3 ~@4", K: "~@4 f3 ~@11",
  L: "~@3 f3 ~@2 f3 ~@9", M: "~@4 g3@7 g3 ~@4", N: "c4 ~@9 c4 ~@5", O: "~@6 g3 ~@5 bb3 ~@3",
})).s("gm_electric_guitar_muted").gain(0.12)

// chords · harmonica
const harmonica = note(`<
  ~@12 A B ~@7 C D E F G H I J K L M N O P Q R S T U ~ V ~ W ~@2 X Y ~@7 Z AA AB AC ~@7 C D E F G H I J K L M N O P Q R
  S T U ~ V ~ W ~@2 X Y ~@7 Z AA AB AC ~@19 V ~ W ~@2 X Y ~@20
>`.pickRestart({
  A: "bb3@2 c4@2 [bb3,c4] ~ [g3,bb3,c4] ~ [bb3,c4,eb4] [bb3,eb4] ~ [bb3,c4] [bb3,c4,eb4] ~ [f3,bb3,d4] ~, ~@2 eb4 ~@5", // Bbsus2 C7 Cm7 Eb5 Bbsus2 Cm7 Bb
  B: "[c4,eb4] ~ [ab3,bb3,d4] ~ [eb4,g4,bb4] ~ [g3,bb3,c4] ~ [g3,bb3]@2 c4 ~@5, g4@2 ~@6 eb3 ~@7", // Cm Bb7 Eb C7 Gm
  C: "~@4 [g3,bb3,eb4] ~ [g3,bb3,c4] ~ [g3,bb3,c4] ~@3 [bb3,c4,f4] ~ [g3,bb3] ~, ~@4 eb4 ~@2 eb4", // Eb C7 Bbsus2 Gm
  D: "~@2 [g3,bb3,eb4] ~ [bb3,eb4,f4] ~@11, ~ gb4 ~@2", // Eb Bbsus4
  E: "[f3,ab3,bb3] ~@3 [f3,ab3] ~ ab3 ~ ab3@2 bb3 ~@5, ~@2 bb3 ~@5", // Bb7 Fm
  F: "~@2 [f3,ab3] ~ f3@2 ab3@2 bb3 ~ ab3 ~ ab3@2 bb3 ~, ~ bb3 ~@6", G: "~@4 ab3@8 bb3 ~@3",
  H: "g3@4 eb4 ~@3 eb4 ~ [bb3,eb4] ~@5", I: "~@6 bb3@2 g3@3 ~ bb3@2 eb4@2",
  J: "gb4@2 c4 ~ eb4@2 c4 ~ eb4@2 eb4 ~@3 eb4 ~", K: "~@2 bb3@2 bb3 ~ bb3@2 ~@4 bb3@2 [f3,ab3] ~, ~@12 ab3 ~@3",
  L: "ab3 ~ [f3,ab3,bb3] ~ [f3,bb3] ~ [f3,ab3,bb3] ~ [f3,ab3,bb3] ~ [f3,ab3] ~ [f3,ab3,bb3] ~ [f3,ab3] ~, ~@5 bb3 ~ bb3", // Bb7 Bb5 Bb7 Fm Bb7 Fm
  M: "eb4@4 ~@6 bb3 ~@5", N: "~ eb4 gb4 eb4 gb4 eb4 c4 eb4", O: "~@2 g4@2 f4 eb4 f4 eb4, ~@4 gb4 ~@11",
  P: "~ eb4 ~ eb4!3 ~ eb4!3 ~ eb4 eb4@3 ~", Q: "ab3@9 ~ ab3 ~ ab3 ~ ab3@2", R: "bb3@3 ~ bb3@2 c4@2 eb4 ~@3 c4@2 ~@2",
  S: "bb3@7 ~",
  T: "[eb4,gb4]@2 [bb3,db4,eb4] ~ [bb3,eb4] ~ [bb3,db4,eb4,gb4] ~ [bb3,db4] ~ [db4,eb4,gb4] ~ [db4,eb4] ~ [db4,eb4,gb4] ~, [bb3,db4] ~@15", // Ebm Eb7 Eb5 Ebm7 Bbm Ebm7 Dbsus2 Ebm7 …
  U: "[db4,eb4,gb4]@2 [bb3,db4,eb4] ~ [bb3,db4] ~ [db4,eb4,gb4]@2 bb3 ~ [bb3,db4,eb4] ~ bb3 ~ [bb3,db4,eb4] ~, ~@7 gb4", // Ebm7 Eb7 Bbm Ebm7 Eb7
  V: "~@12 [a3,c4] ~ [a3,c4] ~", // Am
  W: "~@2 [g3,bb3,c4] ~ [bb3,c4,eb4]@2 [g3,bb3,c4] ~ [bb3,c4,eb4]@2 [bb3,c4] ~ [g3,bb3,c4] ~ [bb3,c4,eb4] ~, ~@5 eb4 ~@2", // C7 Cm7 C7 Cm7 Bbsus2 C7 Cm7
  X: "~@4 [d4,f4] ~@3 [d4,f4] ~ [d4,f4,bb4] ~ [d4,f4] ~ ab4 ~, ~@4 bb4@3 ~ ab4@2 ~@6", // Dm Bb Dm
  Y: "[d4,f4] ~ [d4,f4] ~ [d4,f4] ~ [d4,f4] ~ [ab4,bb4] [f4,g4] [bb3,c4,d4] [f3,g3] [bb2,c3,d3] g2 ~@2, bb4 ~ ab4 ~@5", // Dm Absus2 Fsus2 Bb Fsus2 Bb
  Z: "~@4 [bb3,eb4]@2 [g3,bb3,c4] ~ [bb3,c4,eb4]@2 [bb3,c4,eb4]@2 [g3,bb3,c4] ~ [bb3,c4,eb4] ~, ~@4 c4 ~@11", // Eb5 C7 Cm7 C7 Cm7
  AA: "[g3,bb3,c4] ~ [g3,bb3,c4] ~ [bb3,c4,eb4]@2 [g3,bb3,c4] ~ [bb3,c4,eb4] ~ [bb3,c4,eb4]@2 [g3,bb3,c4] ~ [bb3,c4,eb4] ~", // C7 Cm7 C7 Cm7 C7 Cm7
  AB: "bb3@2 c4@2 [bb3,eb4]@2 c4 ~ [bb3,c4] ~ [bb3,c4] ~ [g3,bb3,c4] ~ [bb3,c4,eb4] ~, ~@4 c4 ~@3 eb4@2 eb4@2 ~@4", // Eb5 Bbsus2 C7 Cm7
  AC: "[bb3,c4] ~ [bb3,c4] ~ [bb3,c4] ~ [bb3,c4] ~ [f4,gb4] f4 eb4 ~ c4@2 eb4 ~, ~@2 eb4 ~@5", // Bbsus2 Gbmaj7
})).s("gm_harmonica").gain(0.3).pan(0.2)

// other · brass section · "BRASS 1"
const brass_section = note(`<
  ~@40 A B C D E F G ~@4 H I J K L@3 ~@27 A B C D E F G ~@4 H I J K L@3 ~ M@6 N@3 O P Q@2 R@2 S@3 A B C D E F G ~@4 H I
  J K T I J K T I J U@2 V@3 ~
>`.pickRestart({
  A: "bb3", B: "c4", C: "eb4@13 ~@3", D: "c5 bb4 ~ g4 ~ eb4@3, ~@6 gb4 ~@9", E: "bb3@6 c4@2 c4@2 eb4@3 ~@3",
  F: "a3@3 c4!2 f4 ~@2", G: "bb4", H: "~@2 bb4 ~@3 g4@2 ~@2 eb4@5 ~, ~@6 gb4 ~@9", I: "eb4@3 ~ f4@2 ~@2",
  J: "~@2 eb4 ~ eb4@4", K: "gb4", L: "[g4@11 ~@5]/3",
  M: "[eb4@23 ~ gb4@2 g4@2 bb4@2 ab4@19 ~ eb4@2 ~@2 gb4@2 ~@2 ab4@2 a4@2 bb4@33 ~]/6",
  N: "[~@4 gb4 f4 ~ eb4@15 c5 eb5, ~@44 bb4 ~@3]/3", O: "eb5@3 ~@5 eb4@4 ~@4",
  P: "~@2 bb4@2 ~@2 eb4 ~ bb4@2 g4@2 eb4@3 ~", Q: "~@2 c5@2 ~@2 eb4@2 c5@3 ~@5", R: "f4/2",
  S: "[~@4 gb4 f4 ~ eb4@16 ~]/3", T: "g4", U: "gb4/2", V: "g4/3",
})).s("gm_brass_section").gain(0.45)

// chords · trumpet
const trumpet = note(`<
  ~@51 A@2 B C D@3 ~@38 A@2 B C D@3 ~ E@3 F@3 G@3 H I J K L@2 M@3 ~@11 A@2 B C N O B C N O B P@2 Q@3 ~
>`.pickRestart({
  A: "[~@2 bb4@2 ~@2 g4@2 ~@8 [g3,bb3]@5 ~@3 [g3,bb3,d4,f4]@5 ~@3, ~@6 gb4 ~@3 eb4@11 ~@11]/2", // Gm Gm7
// … 169 more lines

More by Elton John