Strudelify
Eternity cover art

Eternity/The Road To Mandalay

Eternity

Robbie Williams

KeyB♭ majorTempo158 bpm
0:00/0:00
// Eternity — Robbie Williams
// 158 bpm, 4/4, key A# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: Full arrangement: all 165 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): guitar program 27.
setcpm(158/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@4 B@7 C@2 D@7 E@2 F@8 G H@6 I@4 J@8 K L M@8 N O@4 P@2 Q R S@4 T@8 U V W@5 X@4 ~@11 Y@3 Z@7 AA@8 AB@3 ~@11 AC@5 ~@11
  Y@3 AD AE@5 AF@5 ~
>`.pickRestart({
  A: "[~@32 [ab3,f4]@17 [ab3,eb4]@15, [gb1,bb3,db4,bb4] [ab2,c4], ~ ab4@2 ~]/4", // Db Ab5 Gb Ab
  B: "[~ bb3@14 ~@3 bb3@16 [f3,bb3,d4]@33 bb2@16 ~@9 [bb3,d4,f4]@8 g2@11 ~, ~ [bb1,f3,d4]@33 bb1 ~@32 [bb3,d4,f4]@22 ~@23, ~@83 bb1@16 ~@13]/7", // Bb
  C: "[~@12 [g3,bb3,d4]@7 bb2@2 [eb2,eb4]@11, g2@19 ~@2 [g3,bb3] ~@10]/2", // Gm Eb Gm
  D: "[~ eb2@3 ~@9 g3@4 ~@2 g2@2 ~@13 c3@5 ~@7 eb4@2 ~@2 c4@4 c4@2 ~@6 bb3@15 ~@2 [bb3,d4,f4]@8 g2@16 g2@8 ~, ~@5 eb2@15 ~ c2@32 ~@59, ~@13 [bb3,eb4]@8 ~@9 g3@24 bb2@33 [d3,g3,bb3]@25, ~@17 g3@4 c3@12 ~@13 g4@8 ~@58, ~@48 d4@6 ~@2 d4@13 ~@43]/7", // Bb Eb5 Gm
  E: "[~@6 bb2@2 eb2@7 ~ eb3@7 ~@5 g3@4, [bb3,d4]@8 [g3,bb3,eb4]@19 ~@5, ~ g4 ~@2 eb2@4, ~@24 eb3@7 ~]/2", // Bb Eb
  F: "[~ [eb3,bb3,eb4]@8 g3@8 ~@4 g3@4 [d2,gb3,a3,d4]@16 ~@5 eb4@4 ~@4 eb4@4 ~@12 b3@3 ~@5 eb4@4 ~@5 bb3@4 ~@4 bb3@4 ~@4 bb3@4 [g3,bb3]@6 ~@7 g2@4 [g3,bb3,d4,f4]@4, ~ g3 ~@7 d4@16 ~@17 c4@10 ~@6 c3@14 ~@35 g2@12 ~@9, ~@9 d2@14 ~@19 c2@30 ~@2 c2@32 ~@22, ~@9 a3@6 ~@2 a3@8 ~@25 g4@8 b3@8 g4@7 ~@10 [eb4,g4]@6 ~@10 [eb4,g4]@8 [d4,f4]@16 ~@5, ~@62 eb4@11 ~ bb3@8 ~@9 g3@16 ~@8 [g3,bb3]@8 ~@5]/8", // Eb5 D Gm Gm7 Eb Dm Gm
  G: "~@2 g3 [g1,bb3,d4,g4], ~@4 [d4,g4]@7 ~@5", // Gm G5
  H: "[~@4 [a1,c4,f4,a4]@8 [bb1,g3,bb3,d4]@8 ~ [d2,bb3,d4,f4]@7 ~@5 eb4@4 ~@4 eb4@4 ~@13 b3@4 ~@4 eb4@4 ~@4 bb3@4 ~@4 bb3@4 ~@4 bb3@4 ~ [f3,bb3,c4], ~@29 c2@30 ~@3 c2@32 ~@2, ~@29 c4@10 ~@6 c3@14 ~@37, ~@37 g4@8 b3@9 g4@7 ~@9 [eb4,g4]@6 ~@10 [eb4,g4]@8 ~@2, ~@49 eb4@11 ~@2 bb3@8 ~@8 g3@16 ~@2]/6", // F Gm Bb Fsus4 Eb
  I: "[~@3 f3@4 ~@20 f3@4 g3 a3@18 ~@6 [bb2,bb3,d4,f4]@6 ~@2, ~@7 [f3,bb3,c4]@8 [f3,bb3]@8 [bb3,eb4,f4]@7 ~ f4@25 ~@8, ~@11 f2@6 ~@2 f2@6 ~@6 f2@32 ~]/4", // Bb Fsus4 Bb5 Bbsus4
  J: "[[d4,f4]@12 bb3@3 ~ [bb3,d4,f4]@7 ~ bb3@7 ~ [bb3,d4,g4]@5 ~ bb3@2 [eb2,g3,bb3,eb4]@16 [g2,bb3,d4,g4]@16 [bb3,d4,g4]@8 [bb3,d4,g4]@8 ~@8 [eb3,g3]@8 ~@4 [bb3,eb4,g4]@12 [bb2,bb3,d4,f4]@8, bb2@23 ~ eb2@13 ~ [d4,g4]@11 ~@39 [bb3,eb4,g4]@16 ~@24, bb3@10 ~@14 [g3,eb4]@15 ~@33 g2@14 ~@2 eb2@14 ~@2 eb2@13 ~@11]/8", // Dm Bb Gm Eb Gm Eb Bb G5 …
  K: "[bb3,d4,f4]!2, bb2@7 ~", L: "[bb2,bb3,d4,f4]@4 [a3,c4,f4]@3 ~, ~ f2",
  M: "[[a3,c4,f4]@7 ~ [a3,c4,f4]@7 ~ [a3,c4,f4]@5 ~@3 [c4,eb4,g4,bb4]@3 ~ [c4,eb4,g4,bb4]@7 ~ [c2,c4,eb4,g4,bb4]@2 ~@2 [c2,c4,eb4,g4,bb4]@16 [c4,eb4,g4,bb4]@3 ~ [c4,eb4,g4,bb4]@7 ~ [c2,c4,eb4,g4,bb4]@2 ~@2 [c2,c4,eb4,g4,bb4]@16 [bb1,bb2,f3,bb3,d4]@32 [bb3,d4,f4]@7 ~, ~@8 f2@15 ~ c2@10 ~@22 c2@10 ~@62]/8", // F Cm7 Bb
  N: "[f5,bb5,c6]@2 ~@2 [f5,bb5,c6]@4 ~@4 c6@3 ~, [bb3,d4,f4]@7 ~ [bb3,d4,f4]@7 ~, ~@4 c4@3 ~@9", // Fsus4 Bb
  O: "[~@4 c4@2 ~@6 [g5,bb5,d6]@2 ~@2 [bb5,d6]@2 g5@3 ~@7 a5@4 g5@2 f5@2 eb5@2 f5@2 g3 ~@7 [f5,g5,bb5]@3 ~ [f5,g5,bb5]@7 ~ [eb3,f5]@4, bb5@4 ~@16 eb3@9 ~@3, [bb3,d4,f4]@6 ~@2 [g3,bb3,d4]@14 ~@2 [g3,bb3,d4]@16 bb3@23 ~]/4", // Gm Bb Gm7 Ebsus2 Bb Gm
  P: "[~@4 c5@4 [eb3,g3] ~@7 g4@3 ~ g4@3 ~ f4@8, [eb3,g3,bb3,eb5]@4 c3@11 ~, ~ eb5]/2", Q: "[c3,eb3]@8 [bb3,d4,f4]@7 ~",
  R: "[bb5,c6,f6]@2 ~@2 [bb5,c6,f6]@4 ~@4 c6@3 ~, [bb3,d4,f4]@7 ~ [bb3,d4,f4]@7 ~, ~@4 c4@3 ~@9", // Bbsus2 Bb
  S: "[~@4 g5@3 ~@5 [g5,bb5,d6]@2 ~@2 [bb5,d6]@8 ~@4 a5@4 g5@2 f5@2 eb5@2 f5@2 g3 ~@7 [f5,g5,bb5]@3 ~ [f5,g5,bb5]@7 ~ [eb3,f5]@4, bb5@4 ~@16 eb3@9 ~@3, [bb3,d4,f4]@6 ~@2 [g3,bb3,d4]@14 ~@2 [g2,g3,bb3,d4]@16 bb3@23 ~]/4", // Gm Bb Gm7 Ebsus2 Bb Gm
  T: "[~@4 c5@4 g3 ~@3 gb5@3 ~ [g3,a3,d4,gb5,a5]@8 [d2,gb3,a3,d6]@16 ~@4 eb4@4 ~@4 eb4@4 ~@12 b3@3 ~@5 eb4@4 ~@4 bb3@4 ~@4 bb3@4 ~@4 bb3@4 [g3,bb3]@6 ~@6 g2@4 [g3,bb3,d4,f4]@8, [eb3,g3,bb3,eb5]@8 d2@15 ~@17 c2@29 ~@3 c2@31 ~@25, ~@8 [a3,d4]@8 ~@8 [d4,a5] ~@15 c4@8 g4@8 [c3,b3]@13 ~@35 g2@12 ~@12, ~@60 eb4@11 ~ bb3@8 ~@8 g3@15 ~@9 [g3,bb3]@8 ~@8, ~@64 g4@7 ~@9 [eb4,g4]@6 ~@10 [eb4,g4]@8 [d4,f4]@16 ~@8]/8", // D Gm Gm7 Eb D5 Cmaj7 Gm Eb …
  U: "~@4 g3@4 [g1,bb3,d4,g4]@7 ~, [d4,g4]@7 ~@9", V: "[a1,c4,f4,a4] [bb1,g3,bb3,d4]",
  W: "[[d2,bb3,d4,f4]@7 ~@5 eb4@4 ~@4 eb4@4 ~@12 b3@4 ~@4 eb4@4 ~@4 bb3@4 ~@4 bb3@4 ~@4 bb3@4 f3@4 f3@4, ~@8 c2@29 ~@3 c2@31 ~@9, ~@8 c4@8 g4@8 c3@13 ~@43, ~@24 b3@8 g4@7 ~@9 [eb4,g4]@6 ~@10 [eb4,g4]@8 ~@8, ~@28 eb4@11 ~ bb3@8 ~@8 g3@15 ~ [bb3,c4]@6 ~@2]/5", // Bb Eb Bbsus2
  X: "[~@5 f3 [f2,f4]@8 ~@2, [f3,bb3,c4]@8 [f3,bb3]@8 [bb3,eb4,f4]@7 ~ a3@17 ~@23, ~@4 f2@6 ~@2 f2@6 ~@6 g3 ~@39]/4", // F Fsus4 Bb5 Bbsus4
  Y: "[~@8 [g3,bb3,c4] ~@3 [g3,bb3,c4]@6 ~@2 [g3,bb3,c4] ~@3 [g3,bb3,c4]@13 ~@3 [g3,bb3,c4] ~@3 [g3,bb3,c4]@4]/3", // C7
  Z: "[~@4 [g3,bb3,c4] ~@3 [g3,bb3,c4]@13 ~@3 bb3@16 [bb3,db4,f4]@16 bb3@16 c4@15 ~ g1 ~@3 g1@3 ~ g1 ~@3 g1@2 ~@2 g1@2 ~@2 g1@3 ~, ~@3 gb3@4 ~@4 [bb3,d4,f4]@3, ~@24 gb1@29 ~@3 [gb1,gb3]@31 ~@25]/7", // C7 Bbm Bb Gb
  AA: "[g1@2 ~@2 [g1,bb3]@3 ~ g1@2 ~@2 g1@3 ~ g1@2 ~@2 g1@2 ~@2 g1@2 ~@2 g1@3 ~ g1 ~@3 g1@3 ~ bb3@16 [bb3,db4,f4]@16 bb3@16 c4@15 ~ eb2@2 ~@2 eb2@3 ~ eb2@2 ~@2 eb2@2 ~@2 eb2@2 ~@2 eb2@2 ~@2, ~@8 [bb3,d4,f4]@18 ~@2 [bb3,d4,f4]@11 ~ gb3@32 ~@32 [bb3,d4,f4]@24, ~@40 gb1@29 ~@3 [gb1,gb3]@31 ~@25]/8", // Gm Bbm Bb Gb
  AB: "[eb2 ~@3 eb2@2 ~@2 [f2,a3,c4,f4]@31 ~@9]/3", // F
  AC: "[~@8 [g3,bb3,c4] ~@3 [g3,bb3,c4]@6 ~@2 [g3,bb3,c4] ~@3 [g3,bb3,c4]@13 ~@3 [g3,bb3,c4] ~@3 [g3,bb3,c4]@6 ~@2 [g3,bb3,c4] ~@3 [g3,bb3,c4]@13 ~@11]/5", // C7
  AD: "~@4 [g3,bb3,c4] ~@3 [g3,bb3,c4]@8", // C7
  AE: "[~@8 bb3@16 [bb3,db4,f4]@17 c4@19 ~ [c4,eb4]@19, ~@8 gb3@33 ~@39, ~@8 gb1@30 ~@3 [ab1,ab3]@39]/5", // Bbm Cm Ab
  AF: "[~@6 [bb1,bb3,d4,f4]@63 ~@11]/5", // Bb
})).s("gm_piano").gain(0.54)

// chords · piano
const piano_2 = note(`<
  ~@40 A@4 B@4 C@3 ~@4 D E@2 ~@24 F@5 ~@3 G@4 B@4 H I@2 J ~@20 A@4 B@4 H I@2 J ~@4 A@4 B@4 H I@2 J ~@4 K@5 L@6
>`.pickRestart({
  A: "[~ [bb3,d4,f4]@7]/4", B: "[[d4,g4] [f4,g4] [d4,f4,g4]@8 [bb3,eb4,f4]@6]/4",
  C: "[[d4,g4] [f4,g4]@3 [d4,f4,bb4]@14 ~@6]/3", D: "~@3 d4", E: "[f4 eb4@4 d4@11]/2",
  F: "[~@8 f4@4 eb4@8 d4@8 eb4@12 f4@4 eb4@16 d4@2 eb4@11 ~@7]/5", G: "[d4 f4 [bb3,d4,f4]@8 [bb3,d4,f4]@6]/4",
  H: "[d4,g4] [f4,g4]@3 f4@4", I: "[bb3@4 a3@2 g3@4 a3@4 f3 d3]/2", J: "c3@5 ~@3",
  K: "[~@8 bb4@16 ab4@17 f4@20 eb4@19]/5", L: "[~@6 [d4,f4]@79 ~@11]/6",
})).s("gm_piano").gain(0.05)

// chords · synth brass 2
const synth_brass_2 = note(`<
  ~@40 A@4 B@4 C@3 ~@4 D E@2 ~@24 F G H I@2 ~@3 J@4 B@4 K L@2 M ~@4 N@4 O@8 P@3 ~ A@4 B@4 K L@2 M ~@4 A@4 B@4 K L@2 M
  ~@4 Q@5 R@5 ~
>`.pickRestart({
  A: "[~ [bb3,d4,f4]@4 [bb3,d4,f4]@3]/4", B: "[[d4,g4]@4 [f4,g4]@3 ~ [d4,f4,g4]@32 [bb3,eb4,f4]@24]/4",
  C: "[d4@2 [f4,g4]@6 [d4,f4,bb4]@33 ~@7, g4 ~@47]/3", D: "~@12 d4 ~ d4@2", E: "[f4@2 eb4@5 ~@3 d4 ~ d4@15 ~@5]/2",
  F: "~@8 f4@3 ~ eb4@2 ~@2", G: "eb4@3 ~ d4 ~ d4@5 ~ eb4@2 eb4 ~", H: "~@8 f4@4 eb4@2 eb4 ~",
  I: "[~@4 eb4@2 ~@2 eb4@3 ~ d4@2 eb4@5 ~@13]/2", J: "[d4@3 ~ f4@4 [bb3,d4,f4]@32 [bb3,d4,f4]@24]/4",
  K: "d4 [f4,g4]@3 f4@3 ~, g4 ~@15", L: "[bb3@7 ~ a3@3 ~ g3@7 ~ a3@8 f3@2 d3@2]/2", M: "c3@5 ~@3",
  N: "[~ bb4@2 ab4@2 f4@2 eb4]/4", O: "[~ [bb3,d4]@8 bb4@2 ab4@2 f4@2 eb4]/8", P: "[~ [bb3,f4]@4 ~]/3",
  Q: "[~@8 bb4@16 ab4@17 f4@19 ~ eb4@19]/5", R: "[~@6 [d4,f4]@63 ~@11]/5",
})).s("gm_synth_brass_2").gain(0.38).pan(0.4)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  A@2 B@2 C@5 ~@21 D@3 ~@7 E@4 F@2 G H@5 I@5 ~ J@5 K L M@6 K N O@3 P@3 Q R S T@2 U@3 V W X Y@2 Z@3 AA AB AC AD@2 AE@3
  ~@3 AF@2 AG@2 AH AI AJ AI AK@2 AG@2 AL AM AN@4 Z@3 AO AB AP AD@2 AE@3 ~@3 AQ@2 Z@3 AR AB AS AT@2 AE@3 ~@3 AU@2 AV@4
  ~@5
>`.pickRestart({
  A: "[~ db5, ~@4 db4@21 ~@7, ~@8 f4@17 ~@7, ~@3 ab4@5]/2",
  B: "[~@17 ab4@15, ~@5 eb3@22 ~@5, ~@9 bb3@18 ~@5, ~@13 eb4@19]/2",
  C: "[~@14 c4@4 d4@3 ~ eb4@4 c4@3 ~@5 bb3@33 ~@13, ~ bb2@17 ~@14 bb2@33 ~@15, ~@5 f3@23 ~@5 f3@33 ~@14, ~@9 bb3@19 ~@2 d4@20 ~@30]/5",
  D: "[~@12 [bb3,g4]@8 [c4,a4]@7 ~ [d4,bb4]@8 ~ [f4,d5]@8 ~@3]/3", // Eb F Gm Dm
  E: "[~@8 [f3,bb3,d4,f4]@4 [bb3,d4]@4 [bb3,d4,f4]@4 [bb3,d4]@2 [bb3,d4,f4]@2 [f3,bb3]@4 [f3,bb3]@3 ~ [f3,bb3,d4]@4 [f3,bb3,d4]@3 ~ [eb3,bb3,d4,g4]@4 [bb3,d4,g4]@4 [bb3,d4,g4,bb4]@4 [d4,g4]@2 [d4,g4,bb4]@2 [bb3,d4]@4 [eb3,bb3,d4]@4, ~@3 f3@2 f3 ~ bb2@3 bb2@5 ~, ~@20 f4 ~@3 [d4,f4]@7 ~ f4@8 bb4@8 ~@4 bb3@4 [g4,bb4]@8, ~@44 eb3@11 ~@9]/4", // Bb Bb5 Bb Ebmaj7 Gm G5 Gm Bb …
  F: "[[bb3,d4,g4]@2 [bb3,d4,g4]@2 [f3,bb3,f4]@2 [f3,bb3,f4]@2 [f4,g4]@2 f4 [f3,f4,g4] [f3,bb3,f4]@2 [f3,bb3]@2, [eb3,bb4]@4 g4@4 [f3,bb3]@3 ~ g4@4, ~@12 d3@19 ~]/2", // Gm Bb5 Fsus2 Bb5 Eb5 Bb5
  G: "[f3,bb3,f4]@4 [f3,bb3,f4]@3 ~ [bb3,d4,f4,bb4]@4 [bb3,d4,f4]@4, g4@7 ~@9, ~ d3 eb3@2", // Bb5 Bb
  H: "[[bb3,d4,f4,bb4]@4 f4@2 [d4,f4,bb4]@2 [bb3,d4,f4,bb4]@3 ~ [bb3,d4,f4]@4 [bb3,d4,f4,bb4]@4 [bb3,d4,f4]@3 ~ [f3,bb3,d4,f4]@4 [bb3,d4]@4 [bb3,d4,f4]@4 [bb3,d4]@2 [bb3,d4,f4]@2 [f3,bb3]@4 [f3,bb3]@3 ~ [f3,bb3,d4]@4 [f3,bb3,d4]@3 ~ [f3,a3,c4]@4 [a3,c4]@4 [a3,c4]@4 ~@2 c4 ~ [a3,c4]@4 [f3,a3,c4]@4, eb3@2 ~ eb3@3 ~ f3@2 f3 ~ bb2@3 f2@5 ~, ~@4 bb3@4 ~@52 f3@11 ~@9, ~@4 bb4 ~@31 f4 ~@3 [d4,f4]@7 ~ f4@8 ~@12 a3@4 ~@8]/5", // Bb Bb5 Bb F Am F Dm
  I: "[[a3,c4]@4 [a3,c4]@4 [g3,bb3,c4,eb4]@14 ~@2 [g3,bb3,c4,eb4]@13 ~@3 [g3,bb3,c4,eb4]@13 ~@3 [g3,bb3,c4,eb4]@15 ~@9, f3 ~@9]/5", // Am Cm7
  J: "[~@8 [f3,bb3,d4,f4]@4 [bb3,d4]@4 [bb3,d4,f4]@4 [bb3,d4]@2 [d4,f4]@2 [f3,bb3]@4 f3@3 ~ [f3,bb3,d4]@4 [f3,bb3,d4]@3 ~ [g3,d4,g4]@4 [g3,d4,g4]@4 [g3,d4,g4]@4 [d4,g4]@2 [d4,g4]@2 [g3,d4]@4 [d3,g3]@3 ~ [g3,d4,g4]@4 g3@4 [g3,bb3,eb4]@4 [g3,bb3,eb4]@4, ~@12 f3@8 ~@4 [d4,f4]@7 ~ f4@8 bb3@16 bb3@16 ~@8, ~@28 bb2@12 g2@20 ~@4 d3@7 ~@9, ~@44 d3@11 ~ g4@8 ~@8 g4@8]/5", // Bb Dm Bb5 Bb G5 Eb Dm
  K: "[g3,bb3]@3 [eb4,g4] [g3,bb3,eb4]@2 [g3,bb3]@2, [eb4,g4] ~ g4@2", // Gm Eb Gm Eb
  L: "[g3,bb3,eb4]@4 [eb3,f3]@3 ~ [eb3,g3,bb3,eb4]@4 eb3@4, g4@7 ~@9", // Eb Ebsus2 Eb
  M: "[[eb3,g3,bb3,eb4]@4 bb3@2 [bb3,eb4]@2 [eb3,g3,bb3,eb4]@3 ~ [eb3,g3,bb3]@4 [eb3,g3,bb3,eb4]@4 [eb3,g3,bb3]@3 ~ [f3,bb3,d4,f4]@4 [bb3,d4]@4 [bb3,d4,f4]@4 [bb3,d4]@2 [d4,f4]@2 [f3,bb3]@4 [f3,bb3]@3 ~ [f3,bb3,d4]@4 [f3,bb3,d4]@3 ~ [g3,d4,g4]@4 [g3,d4,g4]@4 [g3,d4,g4]@4 [d4,g4]@2 [d4,g4]@2 [g3,d4]@4 [d3,g3]@3 ~ [g3,d4,g4]@4 [g3,g4]@4 [g3,bb3,eb4]@4 [g3,bb3,eb4]@4, ~@4 eb3@4 ~@4 c3@12 ~@4 f3@8 ~@4 [d4,f4]@7 ~ f4@8 bb3@16 bb3@16 ~@8, ~@44 bb2@12 g2@20 ~@4 d3@7 ~@9, ~@60 d3@11 ~ g4@8 ~@8 g4@8]/6", // Eb Eb5 Eb Bb Dm Bb5 Bb G5 …
  N: "[g3,bb3,eb4]@4 [eb3,f3,bb3]@3 ~ [d3,d4]@8, g4@7 ~ [g3,a3]@4 ~@4", // Eb Ebsus2 D Gsus2
  O: "[[g3,a3,d4]@4 a3@2 [a3,d4]@2 [gb3,a3]@4 [gb3,a3]@4 [gb3,a3,d4]@4 [gb3,a3]@3 ~ [g3,c4,eb4]@4 [c4,eb4]@4 [c4,eb4]@4 [c4,eb4]@2 eb4@2 [g3,b3]@4 g3@3 ~, ~@8 d4@7 ~@25 eb4@7 ~, ~@3 d3@3 ~ g3@2 ~@3]/3", // Gsus2 D5 Gbm D Gbm Cm G
  P: "[[g3,b3,eb4]@4 [g3,b3,eb4]@3 ~ [g3,eb4,g4]@4 [g3,g4]@4 [g3,eb4,g4]@4 [eb4,g4]@2 [eb4,g4]@2 [g3,eb4]@4 [g3,eb4]@4 [g3,eb4,g4]@4 g3@4 [g3,bb3,d4]@4 [g3,bb3,d4]@4, ~ bb3@2 bb3@2 ~, ~@5 g3 g4@2 ~@2 g4@2]/3", // Gaug Cm G Cm Eb Cm Gm
  Q: "[g3,bb3]@6 [d4,g4]@2 [g3,bb3,d4]@4 [g3,bb3]@3 ~, [d4,g4] ~ g4@2", // Gm G5 Gm G5
  R: "[g3,bb3,d4]@4 [eb3,f3]@3 ~ [g3,bb3,d4]@7 ~, g4@7 ~@9", S: "[a3,c4]@3 ~ [f3,bb3,d4]@4",
  T: "[[bb3,d4,f4]@8 [g3,c4,eb4]@4 [c4,eb4]@4 [c4,eb4]@4 [c4,eb4]@2 eb4@2 [g3,b3]@4 g3@3 ~, ~@12 g3@8 ~@4 eb4@7 ~]/2", // Bb Cm G
  U: "[[g3,b3,eb4]@4 [g3,b3,eb4]@3 ~ [g3,eb4,g4]@4 [g3,g4]@4 [g3,eb4,g4]@4 [eb4,g4]@2 [eb4,g4]@2 [g3,eb4]@4 [g3,eb4]@4 [g3,eb4,g4]@4 g3@4 [f3,bb3,c4]@4 [f3,bb3,c4]@4, ~ bb3@2 bb3@2 ~, ~@3 g4 ~ f4]/3", // Gaug Cm G Cm Eb Cm Fsus4
  V: "[f3,bb3]@6 [c4,f4]@2 [f3,bb3,d4]@4 [f3,bb3]@3 ~, [c4,f4] ~ f4@2", // Bb5 F5 Bb Bb5 F5
  W: "[f3,bb3,d4]@4 [f3,bb3]@3 ~ [f3,a3,c4]@7 ~, f4@7 ~@9", X: "[f3,a3,c4]@7 ~ [f3,a3,c4]@7 ~",
  Y: "[[f3,a3,c4]@7 ~ [f3,bb3,d4]@4 [bb3,d4]@4 [bb3,d4]@4 [bb3,d4]@2 [bb3,d4]@2 [f3,bb3]@4 [f3,bb3]@3 ~, ~@12 f3@8 f3@4 d4@7 ~]/2", // F Bb Bb5
  Z: "[[f3,bb3,d4]@4 [f3,bb3,d4]@3 ~ [g3,eb4]@4 [g3,eb4]@4 [g3,eb4]@4 eb4@2 eb4 ~ [g3,eb4]@4 [g3,eb4]@4 [g3,eb4]@4 [g3,eb4]@4 [g3,bb3,d4]@4 [g3,bb3,d4]@4, ~ bb3@2 bb3@2 ~, ~@5 g3 ~@6]/3", // Bb Cm Gm
  AA: "[g3,bb3]@6 [g3,d4]@2 [g3,bb3,d4]@4 [g3,bb3,d4]@3 ~, d4 ~@3", // Gm G5 Gm
  AB: "[g3,bb3,d4]@4 [g3,bb3,d4]@3 ~ [g3,bb3,eb4]@4 [g3,bb3,eb4]@4", // Gm Eb
  AC: "eb4@2 eb4 [g3,eb4] [g3,bb3,eb4]@2 [g3,bb3,eb4]@2, [g3,bb3]@3 ~@5", // Cm Eb Gm
  AD: "[eb4@4 eb4@2 [g3,eb4]@2 [f3,bb3,d4]@4 [bb3,d4]@4 [bb3,d4]@4 [bb3,d4]@2 [bb3,d4]@2 [f3,bb3]@4 [f3,bb3]@3 ~, [g3,bb3]@6 ~@6 f3@8 f3@4 d4@7 ~]/2", // Cm Bb Bb5 Gm
  AE: "[[f3,bb3,d4]@4 [f3,bb3,d4]@3 ~ [f3,c4]@4 [f3,c4]@4 [f3,c4]@4 c4@2 c4 ~ [f3,c4]@4 [f3,c4]@4 [f3,c4]@4 [f3,c4]@4 ~@8, ~ a3@2 a3@2 ~, ~@5 f3 ~@6]/3", // Bb F5
  AF: "[~@8 [gb3,bb3,db4]@4 [bb3,db4]@4 [bb3,db4]@4 [bb3,db4]@2 [bb3,db4]@2 [gb3,bb3]@4 [gb3,bb3]@3 ~, ~@12 gb3@8 gb3@4 db4@7 ~]/2", // Gb Bbm Gb
  AG: "[[gb3,bb3,db4]@4 [gb3,bb3,db4]@3 ~ [gb3,bb3,db4]@4 [bb3,db4]@4 [bb3,db4]@4 [bb3,db4]@2 [bb3,db4]@2 [gb3,bb3]@4 [gb3,bb3]@3 ~, ~@12 gb3@8 gb3@4 db4@7 ~]/2", // Gb Bbm Gb
  AH: "[gb3,bb3,db4]@4 [gb3,bb3,db4]@3 ~ [g3,bb3,d4]@4 [g3,bb3,d4]@4", // Gb Gm
  AI: "d4@4 d4@2 [g3,bb3,d4]@2 [g3,bb3,d4]@4 [g3,bb3,d4]@3 ~, [g3,bb3]@3 ~@5", // Gm
  AJ: "[g3,bb3,d4]@4 [g3,bb3,d4]@3 ~ [g3,bb3,d4]@4 [g3,bb3,d4]@4", // Gm
  AK: "[[g3,bb3,d4]@4 [g3,bb3,d4]@3 ~ [gb3,bb3,db4]@4 [bb3,db4]@4 [bb3,db4]@4 [bb3,db4]@2 [bb3,db4]@2 [gb3,bb3]@4 [gb3,bb3]@3 ~, ~@12 gb3@8 gb3@4 db4@7 ~]/2", // Gm Gb Bbm Gb
  AL: "[gb3,bb3,db4]@4 [gb3,bb3,db4]@3 ~ [g3,bb3,d4,f4]@4 [g3,bb3,d4,f4]@4", // Gb Gm7
  AM: "[d4,f4]@4 [d4,f4]@2 [g3,bb3,d4,f4]@2 [g3,bb3,d4,f4]@4 [g3,bb3,d4,f4]@3 ~, [g3,bb3]@3 ~@5", // Dm Gm7 Gm
  AN: "[[g3,bb3,d4,f4]@4 [g3,bb3,d4,f4]@3 ~ [f3,a3,c4]@32 [f3,bb3,d4]@4 [bb3,d4]@4 [bb3,d4]@4 [bb3,d4]@2 [bb3,d4]@2 [f3,bb3]@4 [f3,bb3]@3 ~, ~@44 f3@8 f3@4 d4@7 ~]/4", // Gm7 F Bb Bb5
  AO: "[g3,bb3]@6 [g3,bb3,d4]@2 [g3,bb3,d4]@4 [g3,bb3]@3 ~, d4 ~@3", // Gm
  AP: "[g3,bb3]@3 [g3,eb4] [g3,bb3,eb4]@2 [g3,bb3,eb4]@2, eb4 ~@3", // Gm Cm Eb
  AQ: "[~@8 [f3,bb3,d4]@4 [bb3,d4]@4 [bb3,d4]@4 [bb3,d4]@2 [bb3,d4]@2 [f3,bb3]@4 [f3,bb3]@3 ~, ~@12 f3@8 f3@4 d4@7 ~]/2", // Bb Bb5
  AR: "[g3,bb3]@6 [g3,d4]@2 [g3,bb3,d4]@4 [g3,bb3]@3 ~, d4 ~@3", // Gm G5 Gm
  AS: "eb4@2 eb4 [g3,bb3,eb4] [g3,bb3,eb4]@2 [g3,bb3,eb4]@2, [g3,bb3]@3 ~@5", // Eb Gm
  AT: "[[g3,bb3]@6 [g3,eb4]@2 [f3,bb3,d4]@4 [bb3,d4]@4 [bb3,d4]@4 [bb3,d4]@2 [bb3,d4]@2 [f3,bb3]@4 [f3,bb3]@3 ~, eb4@4 ~@8 f3@8 f3@4 d4@7 ~]/2", // Gm Cm Bb Bb5
  AU: "[~@4 [gb3,bb3,db4]@2 [bb3,db4]@2 [bb3,db4]@2 [bb3,db4]!2 [gb3,bb3]@2 [gb3,bb3]@2, ~@12 gb3@8 gb3@4 db4@7 ~]/2", // Gb Bbm Gb
  AV: "[[gb3,bb3,db4]@4 ~ [gb3,bb3,db4]@4 [ab3,c4,eb4]@4 ~ c4@4 [c4,eb4]@5 [c4,eb4]@2 ~ [c4,eb4]@2 ~ [ab3,c4]@5 [ab3,c4]@5 ~ [ab3,c4,eb4]@6 [ab3,c4,eb4]@7 ~@11, ~@13 ab3@9 ~ ab3@5 ~@36, ~@13 eb4@4 ~@12 eb4@10 ~@25]/4", // Gb Ab Cm Ab
})).s("gm_acoustic_guitar_steel").gain(0.28).pan(0.4)

// chords · acoustic guitar steel · soft notes
const acoustic_guitar_steel_2 = note(`<
  ~@43 A@2 B ~ C D ~@2 E@2 ~@6 F ~ G@3 H I J K ~ L@3 M N O P Q ~ R@2 S ~@2 P Q T U V O ~@6 W ~ X@2 ~@28 Y ~ Z X ~@12 AA
  ~@2 Z ~@18
>`.pickRestart({
  A: "[~@8 eb3@4 bb2@9 ~@3 d3@4 ~@4]/2", B: "~@6 bb3@2 ~@5 f4@3", C: "~@4 d4@2 ~@2 eb3@3 ~@5", D: "~@4 bb4@3 ~@9",
  E: "[~@2 c4 ~ f3@2 f2@6 d3@2 ~@2]/2", F: "~@4 f4 ~ bb3@2 ~@4 bb3@3 ~, ~ f3 ~@2",
  G: "[~@4 g3@4 d3@4 g2@8 [d4,g4]@4 eb3@4 ~@8 eb4@2 [g3,bb3]@2 ~@5 eb4@3, ~@12 d4@4 ~@12 eb3@19 ~]/3", // G5 Gm
  H: "~@4 [bb3,eb4]@3 ~@5 [g3,bb3]@4, ~ c3", I: "~@4 g3@2 g3@2 c3@3 ~@5, c3 ~, ~@4 eb4 ~@11", J: "~@4 eb4@3 ~@9",
  K: "~@4 f4 ~ bb3@2 ~@8, ~ f3 ~@2",
  L: "[~@4 g3@4 d3@4 g2@8 d4@4 eb3@4 ~@8 eb4@2 [g3,bb3]@2 ~@5 eb4@3, ~@12 d4@4 ~@12 eb3@19 ~]/3", // Gm
  M: "~@4 eb4@3 ~@5 [g3,a3]@4", N: "~@2 [g3,d4] g3 d3@2 ~@2, d3 ~", O: "~@4 d4@3 ~@9",
  P: "~@6 c4@2 ~@4 b3@3 ~, ~ g3 ~@2", Q: "~@3 eb4",
  R: "[~@4 [eb4,g4]@4 d3@4 ~@8 d4@2 [g3,bb3]@2 ~@4 d4@3 ~, ~@12 d3@19 ~]/2", S: "~@4 [bb3,d4]@3 ~@9", T: "~ g3 ~@2",
  U: "~ [eb4,g4] ~@2", V: "~@4 c4@2 [f3,bb3]@2 ~@4 d4@3 ~", W: "~@2 d4 bb3 ~@4", X: "~@3 bb3 ~@4",
  Y: "~@4 d4@2 ~@6 d4@3 ~", Z: "~@2 eb4 bb3 ~@4", AA: "~@4 d4@2 bb3@2 ~@4 d4@3 ~",
})).s("gm_acoustic_guitar_steel").gain(0.17).pan(0.4)

// chords · synth brass 2
const synth_brass_2_2 = note("<~@102 A@8 B@8 C@3 ~@13 D@5 ~@11 E@5 ~@10>".pickRestart({
  A: "[~@8 [bb3,eb4,g4] ~@3 [bb3,eb4,g4,bb4]@6 ~@2 [bb3,eb4,g4,bb4] ~@3 [bb3,eb4,g4,bb4]@14 ~@2 [bb3,bb4]@2 ~@2 [bb3,eb4,g4,bb4]@6 ~@2 [bb3,bb4]@2 ~@2 [bb3,eb4,bb4]@16 gb3@56, ~@8 bb4@2 ~@30 [eb4,g4] ~@11 [eb4,g4] ~@3 g4@13 ~@59]/8", // Eb Bb Eb Bb Eb5 Eb
  B: "[~ d4@8 gb3@7]/8", C: "[~ g3@4 ~]/3",
  D: "[~@8 [bb3,eb4,g4] ~@3 [bb3,eb4,g4,bb4]@6 ~@2 [bb3,eb4,g4,bb4] ~@3 [bb3,eb4,g4,bb4]@14 ~@2 [bb3,bb4]@2 ~@10 [bb3,bb4]@2 ~@2 eb2@7 ~ f2@8 ~@8, ~@8 bb4@2 ~@30 c2@8 d2@8 g4@13 ~@11, ~@40 [eb4,g4] ~@3 [bb3,eb4,g4,bb4]@6 ~@2 [eb4,g4] ~@3 [bb3,eb4,bb4]@16 ~@8]/5", // Eb Bb Eb Eb5
  E: "[~@8 [bb3,eb4,g4] ~@3 [bb3,eb4,g4,bb4]@6 ~@2 [bb3,eb4,g4,bb4] ~@3 [bb3,eb4,g4,bb4]@14 ~@2 [bb3,bb4]@2 ~@2 [bb3,eb4,g4,bb4]@6 ~@2 [bb3,bb4]@2 ~@2 [bb3,eb4,bb4]@16 ~@8, ~@8 bb4@2 ~@30 [eb4,g4] ~@11 [eb4,g4] ~@3 g4@13 ~@11]/5", // Eb Bb Eb Bb Eb5 Eb
})).s("gm_synth_brass_2").gain(0.32).pan(0.6)

// bass · electric bass finger
const bass = note(`<
  ~@58 A@8 B@4 C@8 D@3 E F@5 G H@8 I J K@3 L M@5 N@3 O P@3 Q N@3 R S T@2 U@6 I J K@3 V W@3 X Y@6 I J K@3 L M@5 N Z AA AB
  AC@5 ~
>`.pickRestart({
  A: "[d2@8 bb1@30 ~@2 g1@28 bb1@4 eb2@32 c2@16 c2 ~@3 c2@4]/8", B: "[~@2 f1 g1 bb1@15 ~ g1@12]/4",
  C: "[bb1@8 eb2@28 bb1@3 ~ d2@16 d1@16 c2@14 ~@2 c2 ~@3 c2@12 c2@14 g1 ~ c2 ~@3 c2@4]/8",
  D: "[~@4 d1@2 f1@2 g1@14 ~@2 g1 ~@3 g1@9 ~@3 g1@7 ~]/3", E: "a1@8 bb1@7 ~",
  F: "[d2@8 c2@14 ~@2 c2 ~@3 c2@12 c2@14 g1@2 c2@2 ~@2 c2@8 f1@2 g1@2 f1@2 ~@2 f1@2 ~@2]/5", G: "f1 ~ f1 ~ f1 ~ f1 ~",
  H: "[f1@4 c2@4 f2@20 d2@8 c2@4 bb1@15 ~ f1@2 g1@2 bb1@7 ~ f1@4 eb1@12 ~@2 eb1 ~ eb1 ~@3 eb1@7 ~ f1@4 g1@12 ~@2 f1 ~ g1@4 bb1@4]/8",
  I: "c2@2 d2@2 eb2@3 ~", J: "eb2@3 ~ eb2@2 d2@2", K: "[c2@4 f1@4 bb1@15 ~ bb1@2 ~@2 bb1@7 ~ f1@4 f1@8]/3",
  L: "f1@2 c2 d2 f2@2 d2@2",
  M: "[c2@3 ~ g1@3 ~ c2 ~@3 c2@6 ~@2 c2 ~@3 c2@15 ~ c2 ~@3 c2@6 ~@2 c2 ~@3 c2@15 ~ gb1@2 ~@2 gb1@2 ~@2]/5",
  N: "gb1 ~ gb1 ~ gb1 ~ gb1 ~", O: "gb1 ~ gb1 ~ g1 ~ g1 ~", P: "g1 ~ g1 ~ g1 ~ g1 ~", Q: "g1 ~ g1 ~ gb1 ~ gb1 ~",
  R: "gb1 ~ gb1 ab1 eb2 ~ eb2 ~", S: "eb2 ~ eb2 ~ eb2 ~ eb2 ~", T: "[eb2@2 ~@2 eb2@2 ~@2 f2@13 ~ c2@2 f2 ~@3 f2@4]/2",
  U: "[d2@4 f2@3 ~ bb1@15 ~ f1@2 g1@2 bb1@7 ~ f1@4 eb1@12 ~@2 eb1 ~ eb1 ~@3 eb1@7 ~ f1@4 g1@12 ~@2 f1 ~ g1@4 bb1@4]/6",
  V: "c2@2 f2 g2 f2@2 d2@2", W: "[c2@3 ~ g1@3 ~ c2 ~@3 c2@6 ~@2 c2 ~@3 c2@14 g1@2 c2@5 ~ g1@2]/3", X: "d2@7 ~ eb2@8",
  Y: "[f2@8 bb1@15 ~ f1@2 g1@2 bb1@7 ~ f1@4 eb1@12 ~@2 eb1 ~ eb1 ~@3 eb1@7 ~ f1@4 g1@12 ~@2 f1 ~ g1@4 bb1@4]/6",
  Z: "gb1@2 ~@3 gb1@2 ~@2 ab1@2 ~@2 ab1@2 ~", AA: "~@2 ab1@3 ~@2 ab1@2 ~@4 ab1@3", AB: "~@2 ab1@2 ~@4 ab1@3 ~@3 ab1@2",
  AC: "[~@6 bb1@63 ~@11]/5",
})).s("gm_electric_bass_finger").gain(0.54)

// other · lead 1 square
const lead_1_square = note("<~@87 A B C@2 ~@29 D@2 ~@43>".pickRestart({
  A: "f6@15 ~", B: "d6@7 ~ d6@8", C: "[c6@8 c6@13 ~@11]/2", D: "[~ d6@2 ~]/2",
})).s("gm_lead_1_square").gain(0.34)

// other · string ensemble 1
const string_ensemble_1 = note("<~@106 A@4 B@8 C@5 ~@11 D@5 ~@15 E@5 F@5 ~>".pickRestart({
  A: "[~@4 bb4 [c5,d5] [eb5,f5] [g5,ab5] bb5@16 ab5@16 f5@16 eb5@8, ~@8 a5 ~@55]/4", // Csus2 Ebsus2 Abmaj7
  B: "[~ g3@2 a3 bb3 c4 d4 bb3 g3 bb5@2 ab5@2 f5@2 eb5, ~ [bb4,f5]@8 ~@7]/8", C: "[~ [d4,bb4]@4 [f4,c5]@4 ~]/5",
  D: "[~@8 eb6@63 ~@9]/5", E: "[~@4 [bb4,c5] [d5,eb5] [f5,g5] [ab5,a5] bb5@16 ab5@17 f5@19 ~ eb5@19]/5",
  F: "[~@6 [d4,bb4,f5]@63 ~@11]/5", // Bb
})).s("gm_string_ensemble_1").gain(0.44).pan(0.4)

// chords · electric guitar clean
const electric_guitar_clean = note("<~@64 A@2 ~@99>".pickRestart({
  A: "[~@8 f4@15 ~@9]/2",
})).s("gm_electric_guitar_clean").gain(0.4)

// chords · string ensemble 2
const string_ensemble_2 = note("<~@74 A@7 B C@8 D@8 E@8 ~@4 F@2 G H I ~@7 D@8 J@8 D@8 E@8 ~@11>".pickRestart({
  A: "[~@8 c4@16 ~@8 d5@8 bb3@31 ~@13 d5@20 [d4,g4]@8, ~@8 c5@24 ~@8 eb5@43 ~@29, ~@12 b3@8 ~@16 g3@13 ~@7]/7", // G5
  B: "[c4,a4] [d4,bb4]", C: "[d5 c4@2 b3@2 bb4@3 g4 bb4@4 a4@3, f4@7 ~ c5@32 bb3@31 ~ f3@26 ~@30]/8",
  D: "[~ [d4,f4]@12 [bb3,eb4]@3]/8", E: "[~@8 [bb3,d4]@32 [a3,c4]@31 ~ bb5@56]/8", F: "[~ g3@2 a3]/2", G: "bb3 c4",
  H: "d4 bb3", I: "g3 ~", J: "[~@8 [bb3,d4]@32 [a3,c4]@31 ~ eb5@56]/8",
})).s("gm_string_ensemble_2").gain(0.34)
// … 86 more lines

More by Robbie Williams