Strudelify

Island Girl

Elton John

KeyD minorTempo140 bpm
0:00/0:00
// Island Girl — Elton John
// 140 bpm, 4/4, key D minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 129 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(140/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 · "tk1"
const piano = note(`<
  ~ A B C B D@2 E@2 F G H@2 I@6 J K L@2 M@2 N@2 O@2 P Q R S T U V W X Y Z ~ A B C B AA@2 AB@2 AC@4 AD@3 AE AF AG J K L@2
  M@2 N@2 O@2 P Q R S T U V W X Y Z ~ A B C B AH@2 AI AJ AK AL AM AN AO@2 AP AQ AR AK AS AT L@2 M@2 N@2 O@2 P Q R S T U
  V W X Y X Y X Y A B C B A AU
>`.pickRestart({
  A: "[f2,f4,a4,d5] ~ [f2,f4,a4,d5] ~ [e2,f4,a4,d5]@2 ~@2 [d2,f4,a4,d5] ~ [c2,f4,a4,d5] ~@3 [bb1,f4,bb4,d5]@2", // Dm Dm7 Bb
  B: "~@2 [f1,f4,bb4,d5] ~ [f1,f4,bb4,d5] ~ [f1,f4,bb4,d5] ~ [f1,f4,bb4,d5] ~ [f1,f4,bb4,d5] ~ [f1,f4,bb4,d5] ~ [f4,bb4,d5] ~, ~@7 f1", // Bb
  C: "[f2,f4,a4,d5] ~ [f2,f4,a4,d5] ~ [e2,f4,a4,d5]@2 ~@2 [d2,f4,a4,d5] ~ [c2,f4,a4,d5]@2 ~@2 [bb1,f4,bb4,d5]@2", // Dm Dm7 Bb
  D: "[[d1,f4,a4,d5] ~@7 d1 ~@7 d1 ~ d1@2 ~@2 [f4,a4,d5]@2 d1 ~ [e4,g4,c5] ~ [d2,e4,g4,c5]@4, ~@2 d1@4 ~@4 d1@5 ~@11 d1@4 ~@2, ~@4 [d2,f4,a4,d5]@7 ~ d2@7 ~ d2@7 ~@5]/2", // Dm C Dm
  E: "[f1 ~ f1@2 ~@4 f1@2 ~@6 f1 ~ f1@2 ~@4 f1 ~ f1@2 [f2,bb4,d5]@4, [d4,f4,bb4]@15 ~ [f4,bb4,d5]@6 f4@10, ~@4 f2@6 f1@5 ~@7 [bb4,d5]@5 ~@5, ~@12 f2@7 ~ f2@7 ~@5]/2", // Bb
  F: "g1 ~ g1@2 ~@4 g1 ~@3 [g2,e4]@4, [g4,c5]@13 ~@3, e4@11 ~@5, c4@8 ~@2 [g1,c4]@5 ~, ~@4 g2@7 ~@5", // C C5
  G: "a1 ~ a1@2 ~@2 c4@2 a1 ~ [a1,c4]@2 [a2,c4,f4,a4]@4, [c4,f4,a4]@6 [f4,a4]@5 ~@5, ~@4 a2@5 ~@7", // Am F
  H: "[bb1 ~ bb1@2 [f4,bb4,eb5]@2 ~@2 eb5@2 [bb1,d5]@2 ~@2 [f4,bb4,c5]@2 bb1 ~ [f4,bb4] ~ [f4,bb4,d5] ~ [f4,bb4,d5]@2 bb1 ~ bb1@2 bb2 ~@3, ~@2 bb2@2 [f4,bb4]@2 ~@3 bb1 ~@6, ~@8 bb1 ~ bb2 ~ bb2@7 ~ bb2@7 ~@5]/2", // Ebsus2 Bb Fsus4 Bb5 Bb Bb5
  I: "[d1 ~ d1@2 ~@4 d1 ~ d1@2 ~@4 d1 ~ d1@2 ~@2 [f4,a4,d5]@2 d1@2 [d1,e4,g4,c5]@2 ~@4 f1@2 f1@2 [f2,d4,f4,bb4,d5]@4 [f1,d4] ~ [f1,d4,f4,bb4,d5]@2 ~@6 [d4,f4,bb4] ~ [f4,bb4,d5]@4 f1 ~@7 f1 ~ f1@2 [f4,a4,c5]@4 f1 ~ [f1,f4,a4,c5]@2 ~@4 g1 ~ g1@2 [g2,g4,c5]@4 [g1,e4] ~@3 g2@4, [f4,a4,d5]@4 d2@7 ~ d2@7 ~ d2@4 ~@4 d2@4 ~@12 f2@4 f1@5 ~@5 [f1,d4,f4,bb4,d5]@4 [f4,a4,c5]@6 ~@10 [e4,g4,c5]@5 ~ e4@3 ~@3 [g4,c5]@4 ~@2, ~@6 [f4,a4,d5]@8 [f4,a4,d5]@7 ~@9 [d4,f4,bb4]@5 ~@11 [d4,f4,bb4]@4 ~@2 [f2,d4]@7 ~ f2@5 ~@3 f2@7 ~ f2@4 ~@10 [g1,e4]@6]/6", // Dm C Bb Dm Bb F C5 C …
  J: "[ab1,eb5,g5,bb5] ~ [eb5,g5,bb5] ~ [eb5,g5,bb5] ~ [eb5,g5,bb5] ~ [ab1,eb5,g5,bb5] ~ [eb5,g5,bb5] ~ [eb5,g5,bb5] ~ [eb5,g5,bb5] ~, ~@2 ab1@2 ab2@5 ~ ab1@2 ab2@2 ~@2", // Eb
  K: "[ab1,ab2,eb5,g5,bb5]@2 ~@2 [eb5,g5,bb5] ~@3 [eb4,g4,bb4] ~@3 [eb1,eb2,eb4,g4,bb4]@3 ~, ~@2 [ab1,ab2] ~ [eb1,eb2] ~@3", // Eb Ab Eb
  L: "[~@2 f4 ~ [f4,bb4,eb5]@3 ~ f4@2 [f4,d5] ~@3 [f4,bb4,c5]@6 ~@2 [f4,bb4,c5]@4 f4 ~ [f4,bb4,d5]@3 ~, ~@8 bb4@5 ~@19, ~@8 eb5 ~@23]/2", // Ebsus2 Dm Fsus4 Bb
  M: "[~@4 [f4,d5]@2 ~@2 [a4,d5] ~ [f4,a4,c5] ~@3 [f4,a4,c5]@7 ~@3 [g4,bb4,eb5]@3 ~ [g4,bb4,eb5]@3 ~, ~@4 a4 ~@3 f4@2 ~@22]/2", // Dm D5 F Eb
  N: "[~@2 f4 ~ [f4,bb4,eb5]@2 ~@2 [f4,eb5] ~ [f4,d5] ~@3 [f4,bb4,c5]@5 ~@3 [f4,bb4,c5]@4 f4 ~ [f4,bb4,d5]@4, ~@4 bb4 ~@11]/2", // Ebsus2 F7 Dm Fsus4 Bb
  O: "[~@4 [f4,a4,c5]@2 ~@2 [f4,a4,c5]@4 ~@2 [f4,a4,c5]@5 ~@3 [a4,c5]@4 f4 ~ [f4,a4,c5]@2 ~@2, ~@22 f4@3 ~@7]/2", // F Am F
  P: "d5@5 ~ d5@9 ~, [f4,bb4]@15 ~", Q: "[f4,a4,d5]@6 [f4,a4,d5]@9 ~", R: "[ab4,d5]@6 [ab4,d5]@7 ~@3, f4@3 ~",
  S: "[eb4,g4,bb4]@5 ~ [g4,bb4]@9 ~, ~@6 eb4@7 ~@3", T: "[f4,bb4,d5]@6 [f4,bb4,d5]@9 ~",
  U: "[f4,ab4,d5]@5 ~ [f4,ab4,d5]@8 ~@2", V: "[eb4,g4,bb4]@5 ~ [g4,bb4]@10, ~@6 eb4@7 ~@3",
  W: "[e4,bb4,c5]@6 [bb4,c5]@9 ~, ~@6 e4@7 ~@3", X: "[f4,bb4,d5]@5 ~ [f4,bb4,d5]@9 ~",
  Y: "[eb4,g4,bb4]@3 ~ [eb4,a4,c5]@3 ~", Z: "[d4,f4,bb4]@13 ~@3",
  AA: "[d1 ~@7 d1 ~@7 d1 ~ d1@2 ~@2 [a4,d5,f5]@2 d1 ~ [g4,c5,e5] ~ g4@2 [f4,bb4] ~, [f4,a4,d5] ~, ~@2 d1@4 ~@4 d1@5 ~@11 d1@4 ~@2, ~@4 d2@7 ~ d2@7 ~ d2@7 ~ [d2,c5,e5]@4]/2", // Dm C Bb5 Dm C
  AB: "[f1 ~ f1@2 ~@4 f1@2 ~@6 f1 ~ f1@2 ~@2 [f4,bb4,d5]@2 f1 ~ f1@2 f2@4, [f4,bb4,d5]@12 f2@7 ~ f2@7 ~@5, ~@4 f2@6 f1@5 ~@11 [f4,bb4,d5]@5 ~]/2", // Bb
  AC: "[g1 ~ g1@2 ~@4 g1 ~@7 a1 ~ a1@2 a2@4 a1 ~ [a1,f4,a4]@2 a2@2 ~@2 bb1 ~ bb1@2 [f4,bb4,eb5]@3 ~ eb5@2 [bb1,d5]@2 ~@4 bb1 ~ [f4,bb4,d5] ~ [f4,d5]@4 bb1 ~ bb1@2 bb2 ~@3, [e4,g4,c5]@12 g2@4 ~@20 bb2@4 bb1 ~ bb2 ~ bb2@7 ~ [bb2,bb4]@7 ~@5, ~@4 g2@6 g1@4 [c4,f4,a4]@10 ~@6 [f4,bb4]@5 ~@5 [f4,bb4]@5 ~ [f4,bb4,c5]@4 bb1@2 ~@6 [f4,bb4,d5]@6]/4", // Dm Ebsus2 Bb Dm C Bb F Bb5 …
  AD: "[d1 ~ d1@2 ~@4 d1 ~ d1@2 ~@4 d1 ~ d1@2 ~@2 [a4,d5,f5]@2 d1@2 [d1,g4,c5,e5]@2 ~@4 f1@2 f1@2 f2@4 f1 ~ f1@2 f2@4, ~@4 d2@7 ~ d2@7 ~ d2@4 ~@4 d2@4 ~@16, ~@5 [f4,bb4,d5]@3]/3", // Dm C Bb
  AE: "f1@4 ~@2 [f4,bb4,d5]@2 f1 ~ f1@2 f2@4, ~@4 f2@6 [f4,bb4,d5]@5 ~", // Bb
  AF: "f1 ~ f1@2 ~@2 [f4,a4,c5]@2 f1 ~ f1@2 f2@4, [f4,a4,c5]@4 f2@6 [f4,a4,c5]@5 ~", // F
  AG: "g1 ~ g1@2 ~@4 g1 ~ [e4,g4,c5]@2 g2@4, [e4,g4,c5]@4 g2@5 ~ g1@6, ~@3 [e4,g4,c5]@2 ~@3", // C
  AH: "[[f4,a4,d5]@22 [f4,a4,d5] ~ [f4,a4,d5]@2 d4@2 [e4,g4,c5]@2 c4@2, d4@25 ~@7]/2", AI: "[bb3,d4,f4,bb4]@7 ~",
  AJ: "~@6 [d4,f4,bb4]@3 ~ [d4,f4,bb4]@5 ~", AK: "[e4,g4,c5]@9 ~ [e4,g4,c5]@4 ~@2", AL: "[c4,f4,a4]@10 [c4,f4,a4]@5 ~",
  AM: "[bb3,d4,f4] ~ [bb3,d4]@5 ~ [bb3,d4] ~ [bb3,d4,f4]@2 ~@4, ~ g4@3 ~@4", // Bb
  AN: "[bb3,d4,f4]@2 [bb3,d4,g4]@5 ~ [bb3,g4]@2 [bb3,f4]@2 ~@4, ~@2 d4 ~", // Bb Gm Eb Bb5
  AO: "[[f4,a4,d5]@21 ~ [f4,a4,d5]@3 ~ [e4,g4,c5]@4 ~@2]/2", AP: "[d4,f4,bb4]@7 ~@3 [d4,f4,c5]@4 [d4,bb4] ~",
  AQ: "[d4,f4,bb4]@9 ~ [d4,f4,bb4]@5 ~", AR: "[c4,f4,a4]@9 ~ [f4,a4]@5 ~, ~@10 c4@3 ~@3",
  AS: "~@4 [eb4,g4]@3 ~@5 [eb4,g4,bb4]@4", AT: "~@8 [eb4,g4,bb4]@3 ~ [eb4,g4,bb4]@3 ~",
  AU: "~@2 [f1,f4,bb4,d5] ~ [f1,f4,bb4,d5] ~ [f1,f4,bb4,d5] ~ [f1,f4,bb4,d5] ~ [f1,f4,bb4,d5] ~@5", // Bb
})).s("gm_piano").gain(0.31)

// bass · fretless bass · "tk2"
const bass = note(`<
  ~ A B A C D E F G H I J K L M N O@2 P Q R S T U@2 V W X Y Z AA AB AC Z AD AC AE AF AG AH ~ A B A C D E F G H I J K L M
  N O@2 P Q R S T U@2 V W X Y Z AA AB AC Z AD AC AE AF AG AH ~ A B A C D E F G H I J K L M N O@2 P Q R S T U@2 V W X Y Z
  AA AB AC Z AD AC AE AF AG AF AG AF AG A B A C A AI
>`.pickRestart({
  A: "f2@2 f2@2 e2@2 ~@2 d2@2 c2 ~@3 bb1@2", B: "~ f1!7", C: "~@2 f1@2 f1@2 f1@2 f1@2 f1@2 f1@2 f1 ~",
  D: "d2@4 ~@2 d2 ~ d2 ~ d2 ~ d2 ~ d2 ~", E: "d2@2 d2@2 d2@2 d2@2 d2 ~ c2@2 c2@2 c2 ~",
  F: "f1@2 f1@2 f2@2 f1!2 f1@2 f1@2 f2@2 f1!2", G: "f1!2 f2 f1!3 f2 f1", H: "g1@2 g1@2 g1 ~ g1!2 g1@2 g1@2 ~@2 g1!2",
  I: "a1@2 a1@2 ~@2 a1!2 a1@2 a1@2 ~@2 a1!2", J: "bb1@2 bb1@2 ~@2 bb1!2 bb1@2 bb1@2 ~@2 bb1!2",
  K: "bb1@2 bb1@2 ~@2 bb1!2 bb1@2 a1@2 bb1 ~ c2@2", L: "d2@2 d2@2 ~@2 d2!2 d2@2 d2@2 ~@2 d2!2",
  M: "d2@2 d2@2 d2@2 d2@2 d2 ~ c2@2 c2@2 c2@2", N: "f1@2 f1@2 f1 ~ f1!2 f1@2 f1@2 ~@2 f1!2",
  O: "f1@2 f1@2 ~@2 f1!2 f1@2 f1@2 ~@2 f1!2", P: "g1@2 g1@2 ~@2 g1!2 g1@2 g1@2 ~@2 g1!2",
  Q: "ab1 ~ ab1@2 ab1@2 ab1@2 ab1@2 ab1@2 c2@2 eb2@2", R: "ab2 ~ ab2 ~ eb2 ~ eb2 ~",
  S: "bb1@2 f1@2 g1@2 bb1@3 ~ f1@2 g1@2 bb1@2", T: "~@2 f1@2 g1@2 bb1 ~ d2@2 eb2@2 e2@2 f2 ~",
  U: "[f1!2 f1@2 f1@2 f1 f1@2 f1!2 ~ eb2 ~ eb2 ~]/2", V: "bb1 f1 g1 bb1 ~ f1 g1 bb1",
  W: "~@2 f1@2 g1@2 bb1 ~ d2@2 eb2@2 e2@2 f2@2", X: "f1@2 ~@2 f1@2 f1!2 f1@2 f1@2 f1 ~ f1!2",
  Y: "f1@2 f1@2 f1@2 f1 ~ f1@2 f1@2 f1@2 f1 ~", Z: "bb1@4 ~@2 bb1 ~ bb1@4 ~@2 bb1 ~", AA: "a1@4 ~@2 a1 ~ a1@4 ~@2 a1 ~",
  AB: "ab1@4 ~@2 ab1 ~ ab1@4 ~@2 ab1 ~", AC: "eb2@4 ~@2 eb2 ~ eb2@4 ~@2 eb2 ~", AD: "bb1@4 ~@2 bb1 ~ bb1@4 c2@2 d2@2",
  AE: "c2@4 ~@2 c2 ~ c2@5 ~ c2 ~", AF: "f1@4 ~@2 f1 ~ f1@4 ~@2 f1 ~", AG: "g1@4 ~@2 g1 ~ a1@4 ~@2 a1 ~",
  AH: "bb1@13 ~@3", AI: "~ f1!5 ~@2",
})).s("gm_fretless_bass").gain(0.31)

// chords · sitar · "tk3"
const sitar = note(`<
  A B A B ~@2 C@3 ~ D@2 ~@2 E@2 ~@5 F@2 ~@2 G@2 ~@6 H ~@6 A B A B ~@2 C@3 ~ D@2 ~@2 E@2 ~@5 F@2 ~@2 G@2 ~@6 H ~@6 A B A
  B ~@2 I@2 ~@2 I@2 ~@2 I@2 ~@5 F@2 ~@2 G@2 ~@6 H ~@10 A B A B ~
>`.pickRestart({
  A: "~@12 c4 e4 [f4,g4,a4] b4", B: "[f4,a4,d5]@3 ~",
  C: "[~@16 bb4@17 ~@15, ~@14 bb3@19 ~@15, ~@15 d4@14 ~@19, ~@8 f4@7 ~@9]/3",
  D: "[~@15 [d4,f4]@7 ~@10, ~@14 bb3@13 ~@5, ~@15 bb4@12 ~@5]/2", // Dm
  E: "[~@16 bb4@13 ~@3, ~@14 bb3@13 ~@5, ~@15 [d4,f4]@9 ~@8]/2", F: "[~@14 [d4,f4,bb4]@13 ~@5]/2",
  G: "[~@14 [d4,f4,bb4]@17 ~]/2", H: "~@12 [f4,bb4,d5] ~@3", I: "[~@15 [d4,f4,bb4]@9 ~@8, ~@7 bb3@5 ~@4]/2",
})).s("gm_sitar").gain(0.2)

// chords · sitar · "tk3" · soft notes
const sitar_soft = note("<A ~ A ~@37 A ~ A ~@37 A ~ A ~@41 A ~ A ~@2>".pickRestart({
  A: "~@12 d4 ~@3",
})).s("gm_sitar").gain(0.07)

// chords · acoustic guitar steel · "tk7"
const acoustic_guitar_steel = note(`<
  ~@10 A@3 ~@6 B C D@2 E F G H I@2 J@3 K L M N O P Q R ~ S T U V@2 ~@4 A@3 ~@6 B C D@2 E F G H I@2 J@3 K L M N O P Q R ~
  S T U V@2 ~@14 W D@2 E F G H I@2 J@3 K L M N O P X P Y P Q ~@6
>`.pickRestart({
  A: "[~@15 bb3@3 [f3,bb3,d4] [f3,bb3]@3 ~@2, ~@5 f3@5 ~@6, ~@8 bb3@7 ~@9, ~@17 d4@19 ~@2 d4@9 ~]/3", // Bb Bb5
  B: "~@2 eb4 ~ [bb3,eb4] ~ [bb3,eb4,g4] ~ [bb3,eb4,g4] ~ [eb4,g4] ~ [eb4,g4] ~ [bb3,eb4,g4] ~", // Eb5 Eb
  C: "[bb3,eb4,g4] ~ [bb3,eb4,g4] ~@5", // Eb
  D: "[[f4,bb4] [f4,bb4]@2 [d4,f4,bb4]!2 [d4,f4,bb4]@2 [f3,d4,f4,bb4] [d4,f4,bb4] [d4,f4,bb4]@2 [bb3,d4,f4,bb4] [d4,f4,bb4] [f3,d4,f4,bb4]@2 [f3,d4,f4,bb4], f3@7 ~ f3@3 f3@2 ~@3, bb3@8 bb3@10 ~@6 bb3@7 ~, d4@3 ~@13]/2", // Bb5 Bb
  E: "[f4,a4] [f4,a4]@2 [a3,c4,f4,a4]!2 [f3,a3,c4,f4,a4]@2 [c4,f4,a4], f3@5 ~@3, [a3,c4]@3 ~@5", // F Am
  F: "[c4,f4,a4]@2 [c4,f4,a4]@5 ~ [eb3,bb3,eb4,bb4]@4 [eb3,bb3,eb4,g4,bb4]@3 ~, a3 ~, f3@3 ~@5", // F Eb5 Eb
  G: "[f4,bb4] [f4,bb4]@2 [f3,bb3,d4,f4,bb4] [f4,bb4] [f4,bb4]@2 [bb2,f3,d4,f4,bb4], bb2@7 ~, [f3,bb3,d4]@3 ~ bb3@4, ~@4 [f3,d4]@3 ~", // Bb5 Bb Bb5 Bb Dm
  H: "[f4,bb4] [f4,bb4]@2 [d4,f4,bb4]!2 [bb3,d4,f4,bb4]@2 [bb3,d4,f4,bb4], [bb2,f3,bb3,d4]@3 bb3@2 ~@3, ~@6 f3 ~ [bb2,f3]@6 ~@2", // Bb5 Bb Bb5
  I: "[f4 [f4,a4]@2 [a3,c4,f4,a4] [c4,f4,a4] [f4,a4]@2 a4 a4 [f4,a4]@2 [c4,f4,a4] [a3,c4,f4,a4] [c4,f4,a4]@2 [a3,c4,f4,a4], f3@4 [f3,a3]@4 f3@7 ~, [a3,c4]@3 ~@2 c4@3 a3@4 ~@4, a4 ~@13 f4@4 ~@14, ~@8 c4@3 ~@5]/2", // F Am
  J: "[[f3,f4,bb4] [f3,f4,bb4]@2 [f3,d4,f4,bb4] [f4,bb4] [f4,bb4]@2 [f3,bb3,d4,f4] [d4,f4] a4!2 [a3,d4,f4,a4] [f3,d4,f4,a4] [d4,f4]@2 [a3,d4,a4] [d4,ab4] ab4!2 [d4,f4,ab4]!2 [f4,ab4]@2 f4, bb3@4 [f3,bb3,d4]@3 ~ bb2@16, d4@3 ~@4 bb4@2 [d4,f4]@2 ~@2 a4 ~ f4@2 [d4,f4]@2 ~@2 d4@3, ~@16 f3@8 ~@2 f3@6 f3@5 ~@3 [f3,bb3]@8, ~@8 a3@3 ~ a3@3 ~ bb3@4 ~@4]/3", // Bb5 Bb Bb5 Bb Dm D5 Ddim Fm …
  K: "[eb4,g4,bb4] [eb4,g4,bb4]@2 [eb4,g4,bb4] [eb3,bb3,eb4,g4,bb4] [g4,bb4]@2 [g4,bb4], bb3 ~, eb3@3 ~@2 [eb3,bb3,eb4]@3", // Eb Gm Eb5
  L: "[bb3,d4,f4,bb4] [d4,f4,bb4]@2 [d4,f4,bb4]!2 [f4,bb4]@2 [f4,bb4], f3@6 f3 ~ [f3,bb3]@8, ~ bb3@3 ~ d4@3", // Bb Bb5
  M: "[bb3,f4,ab4] [bb3,f4,ab4]@2 [bb3,d4,f4,ab4]!2 [bb3,d4,f4,ab4]@2 [bb3,d4,f4,ab4], f3@4 f3@3 ~, d4@3 ~@5", // Bb7
  N: "[eb4,g4] [g4,bb4]@2 [eb4,g4,bb4]!2 [g4,bb4]@2 [g4,bb4], eb3 bb3, ~@4 eb3@3 ~, ~@5 eb4@3", // Eb Gm Eb Gm
  O: "[e4,g4] [e4,g4]@2 [bb3,e4,g4] [e4,g4] [e4,g4]@2 [g3,bb3,e4,g4], [c3,g3] c3, bb3@3 ~ [g3,bb3]@3 ~", // Em Edim Em Edim C5 Gm
  P: "[f3,d4,f4,bb4] [f3,d4,f4,bb4]@2 [d4,f4] [f3,f4] [f3,f4,bb4]@2 [bb3,d4,f4,bb4], bb3@7 ~, ~@3 bb4@2 ~@3, ~ bb2, ~@4 d4@3 ~", // Bb Dm F Bb5 Bb
  Q: "[g3,bb3,eb4,g4]@7 ~ [f3,a3,c4,f4,a4]@7 ~", R: "[bb3,d4,f4,bb4]", S: "[f3,a3,d4]@15 ~",
  T: "~@2 [f3,bb3,c4]@4 [bb3,c4]@3 ~ [f3,bb3,c4]@5 ~", U: "[f3,a3], d4@13 ~@3",
  V: "[~@2 [f3,bb3,c4]@4 [f3,bb3,c4]@3 ~ [f3,c4]@3 ~ c4@2 [a3,d4]@10 ~@6, ~@5 bb3@3 ~@8, ~@7 f3@6 ~@3]/2", // Fsus4 F5 D5
  W: "[bb3,eb4,g4] ~ [bb3,eb4,g4] ~ [bb3,eb4,g4] ~ [bb3,eb4,g4] ~", // Eb
  X: "[g3,bb3,eb4,g4]@7 ~ [f3,a3,c4,f4,a4]@6 [f3,a3,c4,f4]@2", // Eb F
  Y: "[g3,bb3,eb4,g4]@7 ~ [f3,a3,c4,f4,a4]@6 [a3,c4,f4,a4]@2", // Eb F
})).s("gm_acoustic_guitar_steel").gain(0.22).pan(0.4)

// chords · acoustic guitar steel · "tk7" · soft notes
const acoustic_guitar_steel_2 = note(`<
  ~@11 A@2 ~@6 B ~ C@2 D E ~ F ~ G H I J K L@2 M ~ N ~ O ~@2 P ~@8 A@2 ~@6 B ~ C@2 D E ~ F ~ G H I J K L@2 M ~ N ~ O ~@2
  P ~@18 C@2 D E ~ F ~ G H I J K L@2 M ~ N ~ N ~ N ~@7
>`.pickRestart({
  A: "[~@14 f3@6 ~@9 f3@3, ~@28 bb3@3 ~]/2", B: "[bb3,eb4,g4] ~ [bb3,g4] ~ g4 ~@5 bb3 ~ bb3 ~@3",
  C: "[~@9 bb3@2 ~@5, bb2@31 ~]/2", D: "~@7 a3", E: "~@2 g4 ~", F: "~@6 bb2 ~@9", G: "~@5 a3@2 ~", H: "bb2",
  I: "~@6 a4 ~", J: "~@3 f3 ~@3 ab4", K: "~@3 eb3 ~@4", L: "[~@3 bb2@10 bb2@2 ~]/2",
  M: "~@2 bb3!2 ~@3 eb3, ~ eb4@2 ~@5", N: "~ bb2@2 ~@5", O: "f3", P: "~@6 f3@3 ~@7",
})).s("gm_acoustic_guitar_steel").gain(0.12).pan(0.4)

// chords · electric guitar clean · "tk8"
const electric_guitar_clean = note(`<
  ~@23 A B ~@2 C D ~@8 E F G ~@23 A B ~@2 C D ~@8 E H G ~@23 A B ~@2 C D ~@8 E F E F E F ~@6
>`.pickRestart({
  A: "~@2 [f4,a4]!3 [c4,f4,a4] ~ [c4,f4,bb4], ~@2 c4@3 ~@3", // F Fsus4
  B: "~ [f4,bb4] f4 ~ [bb3,eb4,g4] ~ [bb3,eb4] ~, ~ c4@2 ~@5", C: "~@2 [f4,a4]!4 ~ [c4,f4,bb4], ~ c4@2 ~",
  D: "~ [f4,bb4] [c4,f4,a4]@2 ~ [f4,a4]@2 [f4,a4]", E: "[bb4,d5] ~ [a4,c5] ~ [g4,bb4] ~ [f4,a4] ~",
  F: "[bb3,eb4,g4]@2 ~@2 [bb3,eb4,g4]@2 ~@4 [a3,c4,f4,a4]@3 ~@3", G: "[f4,bb4,d5]",
  H: "[bb3,eb4,g4]@2 ~@2 [bb3,eb4,g4]@2 ~@4 [a3,c4,a4]@3 ~@3", // Eb Am
})).s("gm_electric_guitar_clean").gain(0.2).pan(0.6)

// chords · electric guitar clean · "tk8" · soft notes
const electric_guitar_clean_2 = note("<~@24 A ~@3 B ~@35 A ~@3 B ~@9 C ~@25 A ~@3 B ~@20>".pickRestart({
  A: "~@2 a4 ~@3 g4 ~", B: "~ c4 ~@3 c4@3", C: "~@10 f4@3 ~@3",
})).s("gm_electric_guitar_clean").gain(0.05).pan(0.6)

// other · marimba · "tk9"
const marimba = note(`<
  ~@20 A B@3 C D@3 E F G H I J K L M N O@2 ~@20 A B@3 C D@3 P F G Q I J K L M N O@2 ~@20 A B@3 C D@3 P F G Q I J K L M N
  R N R N R ~@6
>`.pickRestart({
  A: "~@2 eb4 g4", B: "[bb4 f4 g4 bb4@2 f4 g4 bb4@2 f4 g4 bb4@2 ~ g4 a4@2 eb4 f4 a4@2 eb4 f4 bb4, ~@13 f4@2 ~@9]/3",
  C: "~@2 bb4@2 a4@2 ~@2 eb4@4 g4@3 ~",
  D: "[bb4 f4 g4 bb4@2 f4 g4 bb4@2 ~ g4 bb4@2 f4 g4 a4@2 eb4 f4 a4@2 eb4 f4 a4, ~@9 f4@2 ~@13]/3",
  E: "~@2 eb4@2 f4@2 a4@3 ~ a4@2 f4 ~@3",
  F: "bb4 d5 bb4 [bb4,d5] d5 bb4 [bb4,d5] d5 bb4 [bb4,d5] d5 bb4 [bb4,d5] d5 [bb4,d5] bb4", // Bb
  G: "c5 a4 c5 a4 [a4,c5] c5 a4 [a4,c5] c5 a4 [a4,c5] c5 a4 [a4,c5] c5 a4", // Am
  H: "c5 ab4 [ab4,c5]!2 c5 ab4 [ab4,c5] c5 ab4 [ab4,c5] c5 [ab4,c5] ab4 c5 ab4 ~", // Ab
  I: "bb4 g4 bb4 [g4,bb4] g4 [g4,bb4] bb4 g4 [g4,bb4] bb4 [g4,bb4] g4 bb4 g4!2 ~, ~@13 bb4@2 ~", // Gm
  J: "d5 bb4 [bb4,d5] d5 [bb4,d5] bb4 [bb4,d5] d5 bb4 [bb4,d5] d5 bb4 [bb4,d5] d5 [bb4,d5] bb4", // Bb
  K: "c5 ab4 c5!2 ab4 [ab4,c5] c5 [ab4,c5] ab4 [ab4,c5] c5 ab4 [ab4,c5] c5 ab4 ~", // Ab
  L: "bb4 g4 [g4,bb4] bb4 g4 [g4,bb4] bb4 g4 bb4 [g4,bb4] g4 bb4 [g4,bb4] g4 [g4,bb4] ~", // Gm
  M: "g4 [e4,g4] e4 [e4,g4] g4 e4 [e4,g4] g4 e4 [e4,g4] g4 e4 [e4,g4] ~@3", // Em
  N: "[f4,d5]!3 f4 [f4,d5]!2 f4 [f4,d5] ~ f4 d5 [f4,d5] f4 [f4,d5] ~@2", // Dm
  O: "[[g4,eb5]@2 ~@2 [g4,eb5]@2 ~@2 [a4,f5] ~ [a4,f5]@3 ~@2 [bb4,d5]@13 ~@4]/2", // Cm Dm Bb
  P: "~@4 f4@2 a4@3 ~ a4@2 f4 ~@3, ~@3 eb4@3 ~@10",
  Q: "c5 ab4 [ab4,c5]!2 c5 ab4 [ab4,c5] c5 ab4 [ab4,c5] c5 [ab4,c5] ab4 c5 ~@2", // Ab
  R: "[g4,eb5]@2 ~@2 [g4,eb5]@2 ~@2 [a4,f5] ~ [a4,f5]@3 ~@3", // Cm Dm
})).s("gm_marimba").gain(0.18).pan(0.4)

// other · marimba · "tk11"
const marimba_2 = note("<~@85 A B C D ~@4 E F G H I J K L ~@28>".pickRestart({
  A: "~@12 d5!2 a4!2", B: "f4!2 d4!2 f4!2 a4!2 d5!2 ~@6", C: "~@8 bb5!2 f5 ~ d5 ~ bb4 ~, ~@11 f5@2 ~@3",
  D: "f4!2 d4 ~ bb3 ~ f3 ~ d3 d3@2 ~@5, ~@7 f3@2 ~@7",
  E: "~@3 f4 ~@2 f4 a4 ~@2 a4 ~@2 a4@2 f5, f3@2 d4@2 ~ d4@2 ~ d4@3 ~ f4@3 ~, ~ a3@2 ~ a3@3 ~@2 f4@2 d5@2 ~@3",
  F: "a5 ~@15",
  G: "~@2 d4 f4 bb3 d4 f4 bb4 ~@2 bb4 d5 ~@2 d5 f5, f3@2 ~@7 f4@2 ~ f4@2 ~@2, ~ bb3@2 ~@5 d4@2 ~@3 bb4@2 ~",
  H: "bb5@2 ~@12 g4 ab4", I: "a4@2 f5 ~ bb4 g5 ~@2 ab5 ~@2 a5 ~@2 bb4 b4, ~@7 b4@2 ~ c5@2 ~@4",
  J: "c5@2 a5@2 d5 bb5 ~ eb5 b5@2 ~ c6@2 ~@3, ~@5 e5 ~@2", K: "g5 ~ c6 ~ bb5@2 g5 ~ g5@2 c6 ~ bb5 ~ g5 ~",
  L: "eb6 ~@15",
})).s("gm_marimba").gain(0.24)

// other · marimba · "tk11" · soft notes
const marimba_soft = note("<~@87 [~@13 d5 ~ bb4] [~@3 d4 ~ bb3 ~@10] ~@4 [~@14 d5 ~] ~@35>").s("gm_marimba").gain(0.14)

// other · marimba · "tk12"
const marimba_3 = note("<~@86 A ~ B ~@4 C D E F ~@32>".pickRestart({
  A: "~@2 f4 d4 a4 f4 d5 a4 f5 d5 a5 f5 d6 ~@3", B: "~@10 d5 f5 bb5@2 ~@2, ~@4 f4 ~@3, ~@9 bb4@2 ~@5",
  C: "~@4 a4 ~ d5 ~ f5@2 a5@2 d6@2 f6 ~", D: "a6 ~@7", E: "bb6@2 f6@2 d6@2 bb5 ~ f5@2 d5@2 bb4 ~ f4 ~", F: "d4 ~@15",
})).s("gm_marimba").gain(0.24).pan(1)

// chords · whistle · "tk14"
const whistle = note("<~@85 A@2 B@2 C@2 D@2 E@2 F@2 G@2 H I ~@28>".pickRestart({
  A: "[[a5,d6]@25 ~ [a5,c6]@6]/2", B: "[[g5,bb5]@7 [bb5,d6]]/2", C: "[g5@4 a5@3 g6, c6@7 ~]/2", D: "[d6,f6]/2",
  E: "[d6@13 c6@3, a5@31 ~]/2", F: "[[g5,bb5]@7 d6]/2", G: "[a5 g5, c6]/2",
  H: "[g5,bb5]@2 [a5,c6] [g5,bb5] ~ [a5,c6] [g5,bb5] [b5,eb6], ~@2 eb5 ~", I: "[eb6,g6]@13 ~@3",
})).s("gm_whistle").gain(0.18)
// … 81 more lines

More by Elton John