Strudelify

Nothing 'Bout Me

Sting

KeyE♭ majorTempo95 bpm
0:00/0:00
// Nothing 'Bout Me — Sting
// 95 bpm, 4/4, key D# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 82 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(95/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 · rock organ · "LEAD(ECHO)"
const rock_organ = note("<~@23 A ~@11 B ~ C D E F G H I J@2 ~@15 K ~ L ~ M ~ N ~ O P Q ~@10>".pickRestart({
  A: "g5@6 ~@2 g5@6 ~@2 g5@2 ~ c5@2 ~ eb5@5 ~ c5@3 ~", B: "g5@6 ~@2 g5@5 ~@3 g5@3 c5@2 ~ eb5@5 ~ c5@4", C: "g5 ~@31",
  D: "~ c5 eb5 ~ c5@2 ~@2", E: "b4@3 ~@4 a4@2 ~ eb4@2 ~@4", F: "~@2 f4 ~ eb5@2 ~@2 c5@4 ~@4",
  G: "b4@4 db5@4 bb4@2 gb4 ~@5", H: "~@2 eb4 ~ eb5@4 c5 ~@6 eb4", I: "b4@4 db5@2 db5 bb4@5 ~@4",
  J: "[~@2 eb4 ~ eb5@2 ~@2 c5@4 ~@3 eb5@2 ~@3 eb5@2 g5@2 ~@4 eb5@3 ~]/2",
  K: "g5@6 ~@2 g5@5 ~@3 g5@2 ~ c5@2 ~ eb5@5 ~ c5@2 ~@2", L: "g5@6 ~@2 g5@5 ~@3 g5@2 ~ c5@2 ~ eb5@5 ~@2 c5@2 ~",
  M: "g5@5 ~@3 g5@4 ~@4 g5@2 c5@2 ~@2 eb5@5 ~ c5@2 ~@2", N: "g5@5 ~@3 g5@4 ~@3 g5@2 ~ c5@2 ~@2 eb5@6 c5@3 ~",
  O: "g5@5 ~@3 g5@10 c5@2 ~@2 eb5@5 ~ c5@3 ~", P: "~@14 c5 ~", Q: "g5@20 ~@2 eb5@4 ~@2 c5 ~@3",
})).s("gm_rock_organ").gain(0.46).pan(0.9)

// other · rock organ · "LEAD(ECHO)" · soft notes
const rock_organ_soft = note("<~@38 A B C D E ~ F G@3 ~@34>".pickRestart({
  A: "~ c5 ~@4 eb5@2 ~@6 eb4@2", B: "~@3 db5@2 db5@2 ~@2 db4 ~@6", C: "~@3 f4 ~@2 eb5@2 ~@6 eb4@2", D: "~@11 eb4@5",
  E: "~@3 eb4 ~@5 eb5@3 ~@4", F: "~@3 eb4 ~@2 eb5@2 ~@6 bb4 ~", G: "[~@2 bb4@2 eb5@4 ~@23 eb5@34 ~@31]/3",
})).s("gm_rock_organ").gain(0.26).pan(0.9)

// other · trumpet · "trumpets"
const trumpet = note("<~@37 A@3 B@2 C@3 D@2 ~@7 E ~ F ~ F ~@4 G H@4 I@3 J K@2 L M N O P Q R S>".pickRestart({
  A: "[~@27 c5@2 ~@2 eb5@21 ~@4 c5@3 bb4 ~@3 eb4@18 ~@7 bb4@3 c5 ~@2 f5@2, ~@13 bb4 ~@34]/3",
  B: "[~@2 eb5@19 ~@3 c5@3 bb4 ~@2 eb4@23 ~@7 c5@2 ~@2, ~@59 bb4@2 ~@3]/2",
  C: "[eb5@21 ~@3 c5@3 bb4 ~@3 eb4@21 ~@4 bb4@2 ~ c5 ~@3 f5@2 ~ eb5@24 ~@6]/3",
  D: "[db5 ~@3 db5@3 ~@5 b4@3 ~ bb4@2 ~ bb4@2 ~@3 g4@3 ~ eb4@19 ~@17]/2", E: "~@8 eb5@4 ~@2 eb5 ~@17",
  F: "~@8 eb5@5 ~ eb5 ~@17", G: "~@27 c5 ~@4, ~@13 bb4 ~@2",
  H: "[eb5@16 ~@8 c5@2 ~ bb4 ~@2 eb4@18 ~@8 bb4@3 c5@2 ~@2 f5@2 ~@2 eb5@16 ~@5 c5@3 bb4 ~@2 eb4@22 ~@8 c5 ~@3, ~@123 bb4@2 ~@3]/4",
  I: "[eb5@21 ~@3 c5@2 ~ bb4 ~@3 b4 ~@24 bb4@2 ~ c5 ~@3 f5@2 ~ eb5@21 ~@9, d5 ~@29 eb4@18 ~@48]/3",
  J: "~@27 bb4 c5 ~@3", K: "[eb5@17 ~@7 c5@3 bb4 ~@3 eb4@15 ~@4 c5@2 ~@3 bb4 c5@2 ~ [bb4,c5] ~@4]/2",
  L: "eb5@2 ~ eb5 ~@8 c5@2 eb5 ~@4 gb5 ~@2 gb5 ~@3 gb5 f5@3 eb5 ~",
  M: "~@2 gb5 ~@4 eb5@4 ~@3 gb5 ~@5 eb5 ~@3 eb5@2 ~@2 c5@2 eb5 ~, ~@6 f5@2 ~@11 f5@2 ~@11",
  N: "~@2 eb5 ~ c5@2 ~@2 eb5 ~@2 c5 ~@3 eb5 ~@12 ab5@4", O: "~@4 g5 ~@3 f5@2 ~ g5 ~@2 eb5 ~@3 c5@2 ~@2 bb4@5 ~ c5 ~@3",
  P: "~@8 g4@3 ~@3 g4 ~@3 f4@2 eb4@2 ~@2 f4@2 eb4 ~ c4@2 eb4 ~",
  Q: "~@2 f4@4 ~@2 eb4@2 ~@2 f4@2 ~@2 eb4@2 ~@2 f4@2 ~@2 eb4@2 ~@2 f4@2 ~ eb4",
  R: "~@3 a4@3 ~@2 g4@2 ~@6 g4@2 ~@4 g4@2 ~@2 bb4 ~@3 bb4 ~", S: "~@3 g4 ~@28",
})).s("gm_trumpet").gain(0.4).pan(0.3)

// other · trombone · "trombones"
const trombone = note("<~@38 A B C D E F G H@2 ~@7 I ~ I ~ J ~@5 K L M ~ N O P Q R F S T U V W@2 X Y>".pickRestart({
  A: "~@4 eb3@2 ~@3 bb3 ~@2 c4@2 ~@2 db4@6 ~ c4@5 ~@2 bb3 ~", B: "~@2 eb4@5 ~ eb4@2 ~@22",
  C: "~@4 eb3@2 ~@2 bb3 ~@3 c4@2 ~@2 db4@6 ~@2 c4@5 ~ bb3 ~", D: "~@2 eb4@6 eb4@3 ~@21",
  E: "~@4 eb3@2 ~@2 bb3 ~@3 c4@2 ~@2 db4@7 ~ c4@5 ~ bb3 ~", F: "~@2 eb4@5 ~ eb4@3 ~@21",
  G: "~@4 eb3@2 ~@2 bb3@2 ~@2 c4@2 ~@2 db4@7 ~ c4@7 ~", H: "[~@4 db4@4 ~@4 c4@3 ~@5 bb3@2 ~@2 g3@6 eb3@17 ~@17]/2",
  I: "~@8 eb3@5 ~ eb3@2 ~@16", J: "~@9 e3@2 ~@3 eb3@2 ~@16, ~@8 eb3@3 ~@21",
  K: "~@4 eb3 ~@3 bb3 ~@3 c4@2 ~@2 db4@6 ~@2 c4@5 ~ bb3 ~", L: "~ eb4@2 ~ eb4@2 ~@10",
  M: "~@4 eb3@2 ~@2 bb3@2 ~ c4@2 ~@3 db4@7 ~ c4@5 ~ bb3 ~, ~@8 c4 ~@7",
  N: "~@4 eb3@2 ~@2 bb3 ~@3 [b3,c4]@2 ~@2 db4@6 ~@2 c4@5 ~ bb3 ~", O: "~@2 eb4@5 ~ eb4@5 ~@19",
  P: "~@4 eb3@3 ~ bb3@2 ~@2 c4@2 ~@2 db4@6 ~@2 c4@5 ~ bb3@2", Q: "~@3 db4@4 ~@25",
  R: "~@4 eb3@2 ~@2 bb3@2 ~@3 c4@2 ~@2 d4@5 ~@2 c4@4 ~@2 bb3@2, ~@16 db4@7 ~@9",
  S: "~@4 eb3@2 ~@2 bb3 ~@3 c4@2 ~@2 db4@7 ~ c4@6 bb3@2", T: "~@2 eb3@13 ~@17",
  U: "~@4 eb3@2 ~@2 bb3 ~@3 c4@2 ~@2 db4@6 ~@2 c4@4 ~@2 bb3 ~",
  V: "~@2 eb4@4 ~@2 eb4 ~@6 eb4 ~@2 eb4 ~ c4@2 eb4 f4@2 ~ eb4 ~@5",
  W: "[~@4 eb4 ~@3 eb4@2 ~ g4 ~@2 gb4 ~@3 gb4 ~@3 gb4@2 ~ f4@2 eb4 c4 ~@2 eb4@2 ~ c4@2 bb3 ~@3 ab3@2 ~ g3@2 ~@3 g3@2 ~ g3@5 ~ g3@5 ~@2]/2",
  X: "g3@5 ~ g3@9 ~@5 g3@4 ~@2 g3@5 ~", Y: "g3@3 ~@29",
})).s("gm_trombone").gain(0.5).pan(0.7)

// chords · electric guitar muted · "guitar muted"
const electric_guitar_muted = note(`<
  ~@4 A B C D A E C F G H I J K J K L M N O P A Q R S T U V W V X@2 Y@2 Z AA AB AA AC@2 AD AE AF AG AH AI AJ AK AL AM AN
  AO AP AQ AR AS AT AU O AV AW AX AY AZ AX BA BB ~@12
>`.pickRestart({
  A: "~@8 [eb3,bb3] ~@7 [eb3,bb3]@5 ~ [eb3,bb3] ~@9", // Eb5
  B: "~@8 [eb3,bb3] ~@7 [eb3,bb3]@4 ~@2 [eb3,bb3] ~@5 c4 ~ [eb3,bb3] ~", // Eb5
  C: "~@8 [eb3,bb3] ~@7 [eb3,bb3]@4 ~@2 [eb3,bb3] ~@9", // Eb5
  D: "~@8 [eb3,bb3] ~@7 [eb3,bb3]@4 ~@2 [eb3,bb3] ~@5 [eb3,c4]@2 ~ [eb3,bb3]", // Eb5 Cm Eb5
  E: "~@8 [eb3,bb3] ~@7 [eb3,bb3]@4 ~@2 [eb3,bb3] ~@4 [eb3,bb3,c4] ~ eb3 bb3 ~", // Eb5 Cm7
  F: "~@8 [eb3,bb3] ~@7 [eb3,bb3]@5 ~@2 [eb3,bb3] ~@4 [eb3,c4]@2 ~ [eb3,bb3]", // Eb5 Cm Eb5
  G: "~@8 [eb3,bb3]@2 ~@6 [eb3,bb3]@5 ~ [eb3,bb3] ~@9", // Eb5
  H: "~@2 [eb3,bb3] ~@5 [eb3,bb3]@3 ~@5 [eb3,bb3]@5 ~ [eb3,bb3] ~@4 [eb3,bb3] ~ eb3@2 [f3,c4], ~@14 bb3 ~", // Eb5 F5
  I: "~@2 eb3 bb3 ~@4 [eb3,bb3] ~@7 [eb3,bb3]@5 ~ [eb3,bb3] ~@9", // Eb5
  J: "~@4 [eb3,bb3] ~@5 [eb3,bb3] ~@5 [eb3,bb3]@5 ~ [eb3,bb3] ~@3 [eb3,bb3] ~ [eb3,bb3]@2 f3 c4", // Eb5
  K: "~@3 [eb3,bb3] ~@4 [eb3,bb3] ~@7 [eb3,bb3]@5 ~ [eb3,bb3] ~@9", // Eb5
  L: "~@2 [eb3,bb3] ~@5 [eb3,bb3] ~@7 [eb3,bb3]@4 ~@2 [eb3,bb3]@2 ~@3 [eb3,bb3]@3 [f3,c4] ~", // Eb5 F5
  M: "~@2 [eb3,bb3] ~@5 [eb3,bb3] ~@7 [eb3,bb3]@5 ~ [eb3,bb3] ~@9", // Eb5
  N: "~@3 [eb3,bb3] ~@4 [eb3,bb3]@5 ~ [gb3,a3]@11 ~@7", O: "[g3,eb4]@7 ~ [ab3,eb4]@7 ~ [a3,eb4]@7 ~ [bb3,eb4]@6 ~@2",
  P: "[g3,eb4]@7 ~ [ab3,eb4]@6 ~ [a3,eb4]@7 ~ ab3@6 ~@3", // Cm Ab5 Adim
  Q: "~@3 [eb3,bb3] ~@4 [eb3,bb3]@2 ~@6 [eb3,bb3]@4 ~@2 [eb3,bb3] ~@5 bb3@2 [f3,c4] ~, ~@27 eb3@3 ~@2", // Eb5 F5
  R: "~@2 [eb3,bb3] ~@4 eb3 bb3 ~@7 [eb3,bb3]@5 ~ [eb3,bb3] ~@9", // Eb5
  S: "~@2 [eb3,bb3] ~@4 [eb3,bb3] ~@8 [eb3,bb3]@4 ~@2 [eb3,bb3] ~@5 bb3@2 [f3,c4] ~, ~@27 eb3@2 ~@3", // Eb5 F5
  T: "~@2 eb3 ~@5 [eb3,bb3] ~@7 bb3@5 ~ [eb3,bb3] ~@9, ~@15 eb3@5 ~@12", // Eb5
  U: "~@2 [eb3,bb3] ~@5 [eb3,bb3] ~@7 [eb3,bb3]@4 ~@2 [eb3,bb3] ~@5 bb3@2 [f3,c4] ~, ~@27 eb3@2 ~@3", // Eb5 F5
  V: "~@2 [eb3,bb3] ~@5 [eb3,bb3] ~@7 [eb3,bb3]@4 ~@2 [eb3,bb3] ~@9", // Eb5
  W: "~@2 [eb3,bb3] ~@5 eb3@5 ~@3 [eb3,bb3]@4 ~@2 [eb3,bb3] ~@5 [eb3,bb3] ~ [eb3,bb3] ~, ~@8 bb3@3 ~@21", // Eb5
  X: "[~@2 [eb3,bb3] ~@5 [eb3,bb3]@3 ~@3 [gb3,a3]@10 ~@7 [g3,eb4]@7 ~@2 [ab3,eb4]@6 ~@2 [a3,eb4]@7 ~ [bb3,eb4]@6 ~@2]/2", // Eb5 Gbm Cm Ab5 Adim Eb5
  Y: "[g3,eb4]@7 ~ [ab3,eb4]@6 ~@2 [a3,eb4]@7 ~ [bb3,eb4]@6 ~@2", // Cm Ab5 Adim Eb5
  Z: "[b3,eb4,ab4]@3 ~@4 ab4@3 ~@2 [bb3,eb4,bb4]@17 ~@3, ~@6 [b3,eb4]@3 ~@23", // Abm Eb5 B
  AA: "[eb4,eb5]@5 ~@3 [eb4,eb5]@5 ~@3 [eb4,eb5]@5 ~@3 [eb4,eb5]@5 ~@3", // Eb
  AB: "[eb4,eb5]@6 ~@2 [eb4,eb5]@5 ~@3 [eb4,eb5]@5 ~@3 [eb4,eb5]@5 ~@3", // Eb
  AC: "[[eb4,eb5]@5 ~@3 [eb4,eb5]@6 ~@2 [eb4,eb5]@6 ~@2 [eb4,eb5]@5 ~@3 eb4@6 ~@2 [eb4,eb5]@6 ~@2 [eb4,eb5]@5 ~@3 [eb4,eb5]@5 ~@3, ~@31 eb5@6 ~@27]/2", // Eb
  AD: "[eb4,eb5]@5 ~@3 [eb4,eb5]@6 ~@2 [eb4,eb5]@5 ~@3 [eb4,eb5]@6 ~@2", // Eb
  AE: "[eb4,eb5]@6 ~@2 [eb4,eb5]@6 ~@2 [eb4,eb5]@6 ~@2 [eb4,eb5]@5 ~@3", // Eb
  AF: "[eb4,eb5]@5 ~@3 [eb4,eb5]@6 ~@2 [eb4,eb5]@6 ~@2 [eb4,eb5]@6 ~@2", // Eb
  AG: "~@8 [eb3,bb3] ~@7 [eb3,bb3]@5 ~ [eb3,bb3]@3 ~@3 [eb3,bb3]@2 ~ [eb3,bb3]", // Eb5
  AH: "~@7 [eb3,bb3] ~@8 eb3@4 ~@2 [eb3,bb3] ~@5 [eb3,bb3]@2 ~ [eb3,bb3], ~@15 bb3@5 ~@12", // Eb5
  AI: "~@3 [eb3,bb3] ~@4 [eb3,bb3] ~@7 [eb3,bb3]@4 ~@2 [eb3,bb3] ~@5 [eb3,bb3]@2 [eb3,bb3] ~", // Eb5
  AJ: "~@8 [eb3,bb3] ~@7 [eb3,bb3]@4 ~@2 [eb3,bb3] ~@5 [eb3,bb3]@2 [eb3,bb3] ~", // Eb5
  AK: "~@8 [eb3,bb3] ~@7 [eb3,bb3]@5 ~ [eb3,bb3] ~@5 [eb3,bb3]@2 [eb3,bb3] ~", // Eb5
  AL: "~@8 [eb3,bb3] ~@7 [eb3,bb3]@5 ~ [eb3,bb3] ~@4 [eb3,bb3]@2 ~ [eb3,bb3] ~", // Eb5
  AM: "~@2 [eb3,bb3] ~@5 [eb3,bb3] ~@7 [eb3,bb3]@4 ~@2 [eb3,bb3] ~@4 [eb3,bb3]@2 ~ [eb3,bb3] ~", // Eb5
  AN: "~@8 [eb3,bb3] ~@7 [eb3,bb3]@4 ~@2 [eb3,bb3] ~@5 [eb3,bb3] ~ [eb3,bb3] ~", // Eb5
  AO: "~@3 [eb3,bb3] ~@4 [eb3,bb3] ~@7 [eb3,bb3]@4 ~@2 eb3 bb3 ~@4 [eb3,bb3]@2 ~ [eb3,bb3]", // Eb5
  AP: "~@8 [eb3,bb3] ~@7 [eb3,bb3]@5 ~ bb3 eb3 ~@4 [eb3,f3,bb3]@2 ~ c4", // Eb5 Ebsus2
  AQ: "~@3 [eb3,bb3] ~@4 [eb3,bb3] ~@7 [eb3,bb3]@4 ~@2 [eb3,bb3] ~@5 [eb3,bb3]@2 ~ [eb3,bb3]", // Eb5
  AR: "~@2 [eb3,bb3] ~@5 [eb3,bb3] ~@6 bb3 eb3 ~@7 [eb3,bb3]@3 ~@2 bb3 eb3 ~", // Eb5
  AS: "c4 ~@2 [eb3,bb3] ~@4 [eb3,bb3] ~@6 [eb3,bb3]@2 ~@5 [eb3,bb3]@3 ~@3 [eb3,bb3]@2 ~ [eb3,bb3]", // Eb5
  AT: "~@3 [eb3,bb3] ~@4 [eb3,bb3]@3 ~@3 [gb3,a3]@10 ~@8", // Eb5 Gbm
  AU: "~ [g3,eb4]@6 ~ [ab3,eb4]@6 ~@2 [a3,eb4]@7 ~ [bb3,eb4]@6 ~@2", // Cm Ab5 Adim Eb5
  AV: "[g3,eb4]@7 ~ [ab3,eb4]@6 ~@2 eb4@6 ~@2 [bb3,eb4]@6 ~@2, ~@15 a3@7 ~@10", // Cm Ab5 Eb5
  AW: "[g3,eb4]@7 ~ [ab3,eb4]@6 ~@2 [a3,eb4]@6 ~@2 [bb3,eb4]@6 ~@2", // Cm Ab5 Adim Eb5
  AX: "[g3,eb4]@3 ~ [ab3,eb4]@3 ~ [a3,eb4]@3 ~ [bb3,eb4]@3 ~", // Cm Ab5 Adim Eb5
  AY: "[g3,eb4]@7 ~ [ab3,eb4]@6 ~@2 [a3,eb4]@6 ~ [bb3,eb4]@6 ~@3", // Cm Ab5 Adim Eb5
  AZ: "[g3,eb4]@7 ~ [ab3,eb4]@7 ~ [a3,eb4]@6 ~@2 [bb3,eb4]@6 ~@2", // Cm Ab5 Adim Eb5
  BA: "[g3,eb4]@6 ~@2 [ab3,eb4]@6 ~@2 [a3,eb4]@6 ~@2 [bb3,eb4]@7 ~, ~@24 a3@3 ~@5", BB: "eb4@6 ~@2 eb4@7 ~@17",
})).s("gm_electric_guitar_muted").gain(0.35)

// chords · piano
const piano = note(`<
  ~@8 A@4 ~ B ~ C ~ D E D F@2 ~@18 G H I J I K L@2 M@2 N@2 O P Q ~@13 R S T U V W X Y Z AA@4 ~
>`.pickRestart({
  A: "[d4@22 ~@2 c4@2 d4@2 ~@2 eb4@32 d4@25 ~ c4@2 d4@2 ~@2 [c4,eb4]@24 ~@4 [d4,bb4]@2 ~@2 [g3,bb3,d4,f4]@2, ~@122 f4 ~@5]/4", // Cm Gm Gm7
  B: "~@24 [ab3,c4,eb4,g4]@5 ~ [g3,bb3,d4,f4] ~", C: "~ [eb3,g3,c4,eb4]@3 ~@20 [c4,eb4,g4]@5 ~ [bb3,d4,f4] ~",
  D: "~@24 [c4,eb4,g4]@5 ~ [bb3,d4,f4] ~", E: "~@3 [bb3,d4,f4] ~@26 [ab3,c4,eb4] g4",
  F: "[~@3 [bb3,d4,f4] ~@26 [c4,eb4]@2 [ab3,c4,eb4]@12 ~@3 [gb3,a3,c4,eb4]@17, ~@30 g4@13 ~@21]/2", // Bb Cm Ab Gbdim
  G: "~@3 [gb3,bb3,c4,f4]", H: "~ [ab3,b3,eb4,f4] ~ [g3,bb3,eb4]", I: "~ [gb3,bb3,db4] ~ [gb3,bb3,c4,f4]",
  J: "~ [ab3,eb4,f4] ~ [g3,bb3,eb4]", K: "~ [ab3,b3,eb4,f4] ~@2",
  L: "[~@16 bb4@2 ~@2 c5@2 bb4 ~@7 bb4@4 ~ c5 ~@16 c4@2 ~@2 eb4@2 f4@2 ~@2 d4@2]/2",
  M: "[~@2 bb3 ~ g3@2 ~@2 g3@2 bb3@2 c4@3 bb3@3 ~ c4 ~@12 bb3@2 ~@2 bb3@2 ~@2 bb3@2 ~@2 bb3@2 g3@2 bb3 ~@3 g3@2 bb3 ~@4 c4@2 ~ d4@2, ~@31 g3@2 ~@2 c4@2 ~@2 g3@2 ~@2 c4@2 ~@19]/2",
  N: "[~@4 g3@2 ~@13 g3 [g3,d4]@2 ~@2 d4@2 bb3@2 g3@2 ~ c4@4 ab3@2 f3@2 ~@2 g3@2 ~ g3@2 ~@18, ~@3 bb3@2 ~@17 f4@4 ~@38]/2", // G5
  O: "g3@2 ~ bb3 ~@3 bb3@3 c4@2 d4@2 ~@2 d4@3 eb4 ~ f4@2 ~ bb4@2 ~@6, ~ ab3 ~@14",
  P: "~@14 g5@2 d6@2 c6@2 bb5@2 ~@2 g5@2 bb5 ~@3 f5@2", Q: "~@9 [eb4,eb5]@4 ~@2 [eb4,eb5] ~@16",
  R: "[g3,eb4] [ab3,f4] [a3,gb4] [bb3,g4]", S: "[b3,ab4] [c4,a4] [db4,bb4] [d4,b4]",
  T: "[eb4,c5] [e4,db5] [f4,d5] [gb4,eb5]", U: "[g4,e5] [ab4,f5] [a4,gb5] [bb4,g5]",
  V: "[b4,ab5] [c5,a5] [db5,bb5] [d5,b5]", W: "[eb5,c6] [e5,db6] [f5,d6] [gb5,eb6]",
  X: "[g5,e6] [ab5,f6] [a5,gb6] [bb5,g6]", Y: "[b5,ab6] [c6,a6] [db6,bb6] [d6,b6]",
  Z: "[eb6,c7] [e6,db7] [f6,d7] [gb6,eb7]", AA: "[g6,eb7] [ab6,f7] [a6,gb7] [bb6,g7]",
})).s("gm_piano").gain(0.35)

// chords · string ensemble 2 · "synth"
const string_ensemble_2 = note(`<
  ~@4 A@8 ~ B ~ C ~ B ~ B ~ D E F ~@10 E@3 G H I@2 J K L@2 M N@3 O ~@3 P ~@5 Q E@9 R S T U V W X Y Z AA AB AC ~
>`.pickRestart({
  A: "[~@16 f4@28 c4@20 d4@15 eb4@16 d4@16 eb4 f4@15 [bb3,d4,f4,bb4], [g3,bb3,c4]@44 [bb3,bb4]@83 ~, ~@11 f4@17 ~@4]/8", // Bb C7 Bb
  B: "~@24 [ab3,c4,eb4,g4]@5 ~ [bb3,d4,f4]@2", C: "~@24 [c4,eb4,g4]@5 ~ [bb3,d4,f4]@2",
  D: "[ab3,c4,eb4]@13 ~ [gb3,a3,c4,eb4]@16 ~@2", E: "[g3,eb4] [ab3,f4] [a3,gb4] [bb3,g4]",
  F: "[g3,eb4] [ab3,f4] [a3,gb4] [ab3,d4,gb4]", G: "[b3,eb4,f4,ab4]@2 ~ [b3,eb4,f4,ab4]@2 ~ [bb3,d4,eb4,g4]@7 ~@3",
  H: "[gb3,bb3,db4]@4 ~@4 [bb3,db4]@3 ~@3 [gb3,c4,f4]@13 ~@5, ~@8 gb3@5 ~@19", // Gb Bbm F
  I: "[~ ab3@4 ~@3 [ab3,c4,f4]@4 ~@3 b3 ~@16 [bb3,db4]@4 ~@4 [gb3,db4]@5 ~ [gb3,c4,f4]@12 ~@2 gb4 ~@3, [c4,f4]@4 ~@10 [g3,bb3,eb4]@12 ~@5 gb3@4 ~@5 bb3@3 ~@21]/2", // Fm Bbm Gb5 F F5 Eb
  J: "[ab3,c4,f4]@4 ~@4 [ab3,c4,f4]@5 ~ [g3,bb3,eb4]@14 ~@4, ~@4 b3 ~@11", // Fm Eb
  K: "[gb3,bb3,db4]@3 ~@4 [gb3,bb3,db4]@6 ~ [gb3,c4,f4]@13 ~@5, ~@14 eb4 ~@17", // Gb F
  L: "[[ab3,c4,f4]@4 ~@4 [ab3,c4,f4]@5 ~ [g3,bb3,eb4]@12 ~@6 [bb3,db4]@4 ~@3 [gb3,db4]@6 ~ [gb3,c4,f4]@11 ~@7, ~@31 gb3@4 ~@4 bb3@3 ~@4 eb4 ~@17]/2", // Fm Eb Bbm Gb5 F
  M: "[ab3,c4,f4]@5 ~@3 [ab3,c4]@5 ~ [ab3,d4,gb4]@16 ~@2, ~@8 f4@3 ~@21", // Fm Ab Abm7b5
  N: "[g3@31 ab3@32 ~ g3@29 ~@3, [bb3,c4,f4]@47 ~, g4 ~@95]/3", // Bbsus2
  O: "[ab3,bb3,c4,f4]@7 ~ [ab3,bb3,c4,f4]@5 ~@11 [ab4,c5,eb5,g5]@6 [bb4,d5,f5]@2", // Fm Abmaj7 Bb
  P: "~@12 [eb4,ab4,c5,eb5]@3 [f4,bb4,d5,f5]", Q: "~@7 [gb3,a3,c4,eb4]@8 ~", R: "[b3,ab4] [c4,a4] [db4,bb4] [d4,b4]",
  S: "[eb4,c5] [e4,db5] [f4,d5] [gb4,eb5]", T: "[g4,e5] [ab4,e5,f5] [a4,gb5] [bb4,g5]",
  U: "[b4,ab5] [c5,a5] [db5,bb5] [d5,b5]", V: "[eb5,c6] [e5,db6] [f5,d6] [gb5,eb6]",
  W: "eb5 eb6 eb5 eb6 ~ eb5 eb6 eb5 eb6 eb5@2 eb6 eb5 eb6 eb5 ~ eb6 eb5 eb6 eb5 eb6 ~ eb5 eb6 eb5 ~ [eb5,eb6] ~ eb6 eb5 eb6 eb5", // Eb
  X: "eb6 ~ eb5 eb6 eb5 ~ eb6 eb5 eb6 eb5 eb6 ~ eb5 eb6 eb5 eb6 eb5 ~ eb6 eb5 eb6 ~ eb5 eb6 eb5 eb6 eb5 ~ eb6 eb5 eb6 eb5",
  Y: "eb6 eb5 eb6 ~ eb5 eb6 eb5 eb6 eb5 eb6 ~ eb5 eb6 eb5 eb6 ~ eb5 eb6 eb5 eb6 eb5 eb6 ~ eb5 eb6 eb5 eb6 ~ eb5 eb6 eb5 eb6",
  Z: "~ eb5 eb6 eb5 eb6 ~ eb5 eb6 eb5 eb6 eb5 ~ eb6 eb5 eb6 ~ eb5 eb6 eb5 eb6 eb5 ~ eb6 eb5 eb6 eb5 ~ eb6 eb5 eb6 eb5 ~",
  AA: "eb6 eb5 eb6 eb5 eb6 eb5 ~ eb6 eb5 eb6 eb5 ~ eb6 eb5 eb6 eb5 ~ eb6 eb5 eb6 eb5 eb6 eb5 eb6 ~ eb5 eb6 eb5 eb6 eb5 eb6 eb5",
  AB: "~ eb6 eb5 eb6 eb5 eb6 eb5 ~ eb6 eb5 eb6 eb5 ~ eb6 eb5 eb6 eb5 ~ eb6 eb5 eb6 eb5 ~ eb6 eb5 eb6 eb5 ~ eb6 eb5 eb6 eb5",
  AC: "~ eb6 eb5 eb6 eb5 ~ eb6 eb5 eb6 ~ eb5 eb6 eb5 eb6 ~ eb5 eb6 eb5 ~ eb6 eb5 eb6 eb5 eb6 ~ eb5 eb6 eb5 ~ [eb5,eb6] ~@2", // Eb
})).s("gm_string_ensemble_2").gain(0.4)

// bass · fretless bass · "bass"
const bass = note(`<
  ~@3 A B C D E F C G@2 H@2 I J K@2 L M N@2 O P Q@2 R@2 S@2 T@2 U@2 O V W X Y Z AA AB AC AD AE AF AG AH AI@2 AJ@2 AK AL
  AM@2 AN@2 AO AP W AQ AR O AS AT AU O AV AW AX AV AY AZ BA BB BC BD@2 BE BF ~
>`.pickRestart({
  A: "~@15 bb1", B: "eb2@4 g2@4 bb2@3 eb2@2 bb2 a2@2", C: "ab2@4 c2@4 f2@3 eb2@2 c2 bb1@2",
  D: "eb2@2 eb2@2 g2@4 bb2@3 eb2@2 bb2 a2@2", E: "ab2@4 c2@4 f2@3 eb2 g2 eb2 g2@2", F: "eb2@4 g2@4 bb2@3 eb2@3 a2@2",
  G: "[eb2@4 g2@4 c3@3 bb2@3 a2 ab2@5 c2@4 f2@3 eb2@2 c2 bb1@2]/2",
  H: "[~ eb2@6 ~ g2@7 ~ bb2@6 eb2@2 ~@2 a2@2 ~@2 ab2@9 ~ c2@7 ~ f2@6 ~ eb2@3 ~ d2 bb1@3 ~, ~@29 c2 ~@2]/2",
  I: "eb2 ~@7 g2@5 ~@3 bb2@6 ~ eb2@2 ~@2 a2@3 ~@2", J: "ab2@6 ~@2 c2@7 ~ f2@6 eb2 ~ f2@2 ~ eb2 f2@4",
  K: "[eb2@7 ~ g2@6 ~@2 bb2@6 eb2@2 ~@2 a2@2 ~@3 ab2@9 c2@7 ~ f2@5 ~ eb2@2 ~@2 c2 ~ g1@2 ~@2]/2",
  L: "eb2@7 ~ g2@7 bb2@5 ~@2 eb2@3 ~@2 bb2@2 ~ a2@2", M: "ab2@7 ~ c2@6 ~@2 f2@5 ~ eb2 ~ f2@3 eb2 f2@3 ~",
  N: "[eb2@7 ~ g2@6 ~@2 c3@5 ~ bb2@2 ~@2 a2@2 ~@2 ab2@8 ~@2 ab2@4 ~@2 a2@15 ~@3]/2", O: "bb1@7 ~ b1@7 ~ c2@7 ~ g1@7 ~",
  P: "bb1@6 ~@2 b1@7 ~ c2@7 ~ g1@7 ~",
  Q: "[eb2@7 ~ g2@6 ~@2 bb2@5 ~@2 eb2@2 ~@2 a2@2 ~@2 ab2@8 ~ c2@7 ~ f2@5 ~ eb2@2 ~@2 c2@2 bb1 ~@3]/2",
  R: "[eb2@7 ~ g2@7 ~ bb2@5 ~ eb2@2 ~@2 a2@2 ~@2 ab2@9 c2@7 ~@2 f2@6 ~ eb2 f2@2 ~ eb2 f2@3 ~]/2",
  S: "[eb2@6 ~@2 f2@7 ~ bb2@5 ~ eb2@2 ~@3 a2@2 ~ ab2@8 ~ c2@7 ~ f2@6 ~ eb2 ~@3 c2@2 bb1 ~@3]/2",
  T: "[eb2@7 ~ g2@7 ~ bb2@5 ~ eb2@2 ~@2 a2@2 ~@2 ab2@8 ~@2 c2@7 ~ g2@3 ~@2 f2@2 ~ eb2@2 ~@2 eb2@2 ~@2, ~@59 f2@2 ~@3]/2",
  U: "[eb2@6 ~@2 g2@4 ~@4 c3@5 ~ bb2@2 ~@2 a2@3 ~ ab2@8 ~@2 ab2@4 ~@2 a2@12 ~@6]/2",
  V: "bb1@7 ~ b1@7 ~ c2@6 ~@2 g1@7 ~", W: "bb1@7 ~ b1@7 ~ c2@7 ~ g1@8", X: "f2@5 ~ f2@5 ~ eb2@15 ~@5",
  Y: "gb1@7 ~ gb1@6 ab1@17 ~", Z: "db2@7 ~ db2@5 ~ eb2@13 ~@3 eb2 ~", AA: "gb1@7 ~ gb1@6 ab1@15 ~@3",
  AB: "db2@6 ~@2 db2@5 ~ eb2@14 ~@4", AC: "gb1@7 ~ gb1@5 ~ ab1@17 ~", AD: "db2@6 ~@2 db2@5 ~ eb2@15 ~@3",
  AE: "gb1@6 ~@2 gb1@5 ~ ab1@4 ~@2 ab1@12", AF: "db2@7 ~ db2@5 ~ bb1@17 ~",
  AG: "eb2@6 ~@2 g2@3 ~ g2@3 ~ bb2@2 ~@2 bb2@2 eb2@2 ~@3 bb2@2 ~ a2@2",
  AH: "ab2@2 ~@2 ab2@2 ~@2 c2@2 ~@2 c2@3 ~ f2@3 ~ f2@2 ~ g2@3 ~ f2 g2@4, ~@23 f2 ~@8",
  AI: "[eb2@2 ~@2 eb2@3 ~ g2@3 ~ g2@3 ~ bb2@2 ~@2 bb2@2 ~@2 eb2@2 bb2@2 ~@4 ab2@2 ~@2 ab2@3 ~ c2@3 ~ c2@3 ~ f2@2 ~@2 f2@3 ~ eb2@3 ~ a1@2 ~@2, ~@16 ab2 ~@6 bb2@2 ~@6 a2@2 ~@26 c2@2 ~@3]/2",
  AJ: "[eb2@3 ~ eb2@3 ~ g2@2 ~@2 g2@3 ~ c3@3 ~ c3@2 ~ bb2@2 ~@2 eb2 bb2@3 ~ ab2@2 ~@2 ab2@3 ~@2 c2@2 ~ c2@4 f2@2 ~@2 f2@2 ~@2 g2@2 ~ bb2 g2@3 ~, ~@31 a2@2 ~@22 f2@2 ~@7]/2",
// … 118 more lines

More by Sting