Strudelify

Saint Agnes and the Burning Train

Sting

KeyE minorTempo110 bpm
0:00/0:00
// Saint Agnes and the Burning Train — Sting
// 110 bpm, 3/4, key E minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 113 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(110/3)

// 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 · acoustic guitar steel · "Guitar"
const acoustic_guitar_steel = note(`<
  ~ A B C@2 D E F G H@2 I@2 J K L M N@2 O P Q L M@2 R N S T U V W X Y Z@2 AA AB@2 AC AD L AE AF AG AH AI AJ AK L AL N@2
  AM@2 AN AO@2 AP R AQ O AR U AS@3 AT AU AV AW AX AY AZ BA BB BC BD BE BF BG BA BH BI BJ@2 BK BL O BM BA BN BO BP Q BQ@2
  BR BS BT BU BV BW@2 BX BY@6 ~@2
>`.pickRestart({
  A: "~ e2@4 [e3,g3,b3]@2 ~@6 [e3,g3]@3 e2@3 ~ [e3,g3,b3]@2 ~@2, ~@3 b3 ~@2", // Em
  B: "e2@2 [e3,g3,b3] ~@3 [e3,g3,b3]@2 e2@2 e3 ~", // Em
  C: "[f#2@4 [f#3,a3,c4]@2 ~@6 [f#3,a3,c4]@4 f#2@4 [f#3,a3,c4]@2 ~ f#2@4 ~ [f#3,a3,c4]@2 ~@6 [f#3,a3,c4]@4 f#2@4 [f#3,a3,c4]@2 ~@2]/2", // F#dim
  D: "d2@2 [d3,f#3,a3] ~@3 [d3,f#3,a3]@2 d2@2 [d3,a3] ~", E: "d2@4 [d3,a3]@2 ~@6 [d3,a3]@4 d2@3 [d3,a3]@3 ~@2",
  F: "c2@3 ~ [c3,e3,g3]@2 ~@6 [c3,e3,g3]@3 c2@4 ~ [c3,e3]@2 ~@2, ~@19 g3@2 ~@3", // C
  G: "b1@4 [b2,d#3,f#3]@2 ~@6 [b2,d#3,f#3]@4 b1@3 ~ b2@2 ~@2, ~@19 [d#3,f#3]@2 ~@3", // B D#m
  H: "[e2@3 ~ [e3,g3]@3 ~@5 [e3,g3,b3]@4 e2@3 ~ b3@2 ~ e2@4 [e3,g3,b3]@2 ~@7 [e3,g3,b3]@4 e2@3 [e3,b3]@2 ~@3, ~@3 b3@2 ~@14 [e3,g3]@2 ~@27]/2", // Em E5 Em
  I: "[f#2@3 ~ c4@2 ~@6 [a3,c4]@3 ~ f#2@3 [f#3,a3,c4]@2 ~@2 f#2@4 [f#3,a3,c4]@2 ~@7 [f#3,a3,c4]@3 f#2@4 ~ [a3,c4]@2 ~@2, ~@3 a3@3 ~@37 f#3@2 ~@3]/2", // Am F#dim Am
  J: "d2@3 ~ f#3@2 ~@6 [d3,a3]@4 d2@3 ~ [d3,a3]@2 ~@2, ~@3 [d3,a3]@2 ~@19", // D5
  K: "d2@2 [d3,a3] ~@3 [d3,f#3,a3]@2 d2@2 [d3,a3] ~", L: "c2@2 [c3,e3,g3] ~@3 [c3,e3,g3]@2 c2@2 [c3,e3,g3] ~",
  M: "b1@2 [b2,d#3,f#3] ~@3 [b2,d#3,f#3]@2 b1@2 [b2,d#3,f#3] ~", // B
  N: "a1@2 [a2,c3,e3] ~@3 [a2,c3,e3]@2 a1@2 [a2,c3,e3] ~", // Am
  O: "b1@4 [b2,d#3,f#3]@2 ~@6 [b2,d#3,f#3]@4 b1@3 ~ [b2,d#3,f#3]@2 ~@2", // B
  P: "e2@4 [e3,g3,b3]@3 ~@5 [e3,g3,b3]@4 e2@4 [e3,g3,b3]@2 ~@2", // Em
  Q: "d2@3 [d3,a3]@2 ~@7 [d3,a3]@4 d2@4 [d3,f#3,a3]@2 ~@2", // D5 D
  R: "a1@4 [a2,c3,e3]@2 ~@6 [a2,c3,e3]@4 a1@3 ~ [a2,c3,e3]@2 ~@2", // Am
  S: "b1@4 [b2,d#3,f#3]@2 ~@6 [b2,d#3,f#3]@4 b1@3 ~ [b2,d#3]@2 ~@2, ~@19 f#3@2 ~@3", // B
  T: "e2@4 [e3,g3,b3]@2 ~@6 [e3,g3]@4 e2@3 ~ g3@2 ~@2, ~@11 b3@3 ~@5 [e3,b3]@3 ~@2", // Em E5
  U: "d2@3 [d3,f#3,a3]@2 ~@7 [d3,f#3,a3]@4 d2@4 [d3,f#3,a3]@2 ~@2", // D
  V: "c2@3 ~ [c3,e3,g3]@2 ~@6 [c3,e3,g3]@4 c2@4 [c3,e3,g3]@2 ~@2", // C
  W: "b1@4 [b2,d#3,f#3]@2 ~@6 [b2,d#3,f#3]@3 ~ c2@4 [c3,e3,g3]@2 ~@2", // B C
  X: "b1@4 [b2,d#3,f#3]@2 ~@6 [b2,d#3,f#3]@3 ~ c2@3 ~ [c3,e3,g3]@2 ~@2", // B C
  Y: "b1@4 [b2,d#3,f#3]@2 ~@6 [b2,d#3,f#3]@3 c2@4 ~ [c3,e3,g3]@2 ~@2", // B C
  Z: "[b1@3 ~ f#3@2 ~@6 [b2,d#3,f#3]@3 ~ b1@3 [b2,d#3,f#3]@2 ~@2 e2@4 [e3,g3,b3]@2 ~@6 [e3,g3,b3]@4 ~ e2@3 [e3,g3,b3]@2 ~@3, ~@3 [b2,d#3]@2 ~@43]/2", // B Em B
  AA: "e2@3 [e3,g3,b3]@2 ~@7 [e3,g3]@4 e2@3 [e3,g3,b3]@2 ~@3, ~@11 b3@4 ~@9", // Em
  AB: "[f#2@3 [a3,c4]@2 ~@7 [f#3,a3,c4]@4 f#2@3 [f#3,a3,c4]@2 ~@2 f#2@4 [f#3,a3]@2 ~@7 [f#3,a3,c4]@4 f#2@4 [a3,c4]@2 ~@2]/2", // Am F#dim F#m F#dim Am
  AC: "d2@2 [d3,f#3,a3] ~@3 [d3,f#3,a3]@2 d2@2 [d3,f#3,a3] ~", AD: "d2@2 [d3,a3] ~@3 [d3,a3]@2 d2@2 [d3,a3] ~",
  AE: "b1@4 [b2,d#3]@2 ~@6 [b2,d#3,f#3]@4 b1@3 ~ [b2,d#3,f#3]@2 ~@2", // B
  AF: "e2@4 [e3,g3,b3]@2 ~@6 [e3,g3]@4 e2@4 [e3,g3,b3]@3 ~, ~@4 b3 ~@3", // Em
  AG: "e2@4 [e3,g3,b3]@2 ~@6 [e3,g3,b3]@4 e2@3 ~ [e3,g3]@2 ~@2, ~@19 b3@2 ~@3", // Em
  AH: "f#2@4 [a3,c4]@2 ~@6 [f#3,a3,c4]@4 f#2@3 ~ [a3,c4]@3 ~", // Am F#dim Am
  AI: "f#2@2 [f#3,a3,c4] ~@3 [f#3,a3,c4]@2 f#2@2 [f#3,a3,c4] ~", // F#dim
  AJ: "d2@4 [d3,f#3,a3]@2 ~@6 [d3,a3]@4 d2@3 ~ d3@3 ~, ~@19 a3@2 ~@3", // D D5
  AK: "d2@2 [d3,a3] ~@3 [d3,a3]@2 d2@2 [d3,f#3,a3] ~", AL: "b1@4 [b2,d#3,f#3]@2 ~@6 [b2,d#3,f#3]@3 b1@4 ~ b2@2 ~@2",
  AM: "[b1@3 ~ [b2,d#3]@2 ~@6 [b2,d#3,f#3]@4 b1@3 [b2,d#3,f#3]@2 ~@2 e2@4 [e3,g3,b3]@2 ~@7 [e3,g3,b3]@4 e2@3 [e3,g3,b3]@2 ~@3, ~@3 f#3@2 ~@43]/2", // B Em
  AN: "d2@3 [d3,a3]@2 ~@7 [d3,a3]@4 d2@4 [d3,a3]@2 ~@2", // D5
  AO: "[c2@4 [c3,e3,g3]@2 ~@5 [c3,e3,g3]@4 ~ c2@3 [c3,e3,g3]@2 ~@2 b1@4 [b2,d#3,f#3]@2 ~@7 [b2,d#3,f#3]@3 b1@4 ~ [b2,d#3,f#3]@2 ~@2]/2", // C B
  AP: "b1@2 [b2,d#3,f#3] ~@3 [b2,d#3,f#3]@2 b1@2 [b2,d#3] ~", // B
  AQ: "a1@4 [a2,c3,e3]@2 ~@7 [a2,c3,e3]@3 a1@3 ~ [a2,c3,e3]@2 ~@2", // Am
  AR: "e2@3 ~ g3@2 ~@6 [e3,g3,b3]@3 ~ e2@4 [e3,g3,b3]@2 ~@2, ~@3 [e3,b3]@2 ~@19", // Em E5
  AS: "[c2@3 [c3,e3,g3]@2 ~@7 [c3,e3,g3]@3 c2@4 [c3,e3,g3]@2 ~@2 b1@4 [b2,d#3,f#3]@2 ~@7 [b2,d#3,f#3]@4 b1@4 [b2,d#3,f#3]@2 ~ c2@4 ~ e3 ~@7 [c3,e3,g3]@4 c2@4 [c3,e3,g3]@2 ~@2, ~@51 [c3,g3]@2 ~@19]/3", // C B C C5
  AT: "b1@3 ~ [b2,d#3,f#3]@2 ~@6 [b2,d#3,f#3]@4 b1@4 b2@2 ~@2", // B
  AU: "c2@4 [c3,e3,g3]@2 ~@6 [c3,e3,g3]@4 c2@4 [c3,e3,g3] ~@3", AV: "[b1,b2,d#3,f#3]@5 ~@3 [c2,c3,e3,g3] ~@3",
  AW: "[b1,b2,d#3,f#3]@11 ~@5 [c2,c3,e3,g3]@2 ~@6", AX: "[b1,b2,d#3,f#3]@6 ~@2 [c2,c3,e3,g3] ~@3",
  AY: "[b1,b2,d#3,f#3]@17 ~@7", AZ: "e2@4 [e3,g3,b3]@2 ~@6 [e3,g3,b3]@4 e2@3 ~ [e3,g3,b3]@2 ~@2",
  BA: "e2@2 [e3,g3,b3] ~@3 [e3,g3,b3]@2 e2@2 [e3,g3,b3] ~", BB: "g#2@2 [e3,g#3,b3] ~@3 [e3,g#3,b3]@2 g#2@2 [e3,b3] ~",
  BC: "a2@2 [e3,a3,c4] ~@3 [e3,a3,c4]@2 a2@2 [e3,a3,c4] ~", // Am
  BD: "f#2@4 [f#3,a3,b3]@2 ~@6 f#3@3 f#2@4 ~ c3@2 ~@2, ~@19 [f#3,a3]@3 ~@2", BE: "b2 ~@7",
  BF: "e2@3 ~ g3@2 ~@6 [e3,g3,b3]@3 ~ b1@3 ~ [e3,g3,b3]@2 ~@2, ~@3 [e3,b3]@2 ~@19", BG: "e2 ~@7",
  BH: "e2@3 ~ [e3,g3,b3]@2 ~@6 [e3,g3,b3]@4 e2@4 [e3,g3,b3]@2 ~@2", // Em
  BI: "f#2@4 [f#3,a3,c4]@2 ~@6 [f#3,a3,c4]@4 f#2@4 [f#3,a3,c4]@3 ~", // F#dim
  BJ: "[f#2@3 ~ [a3,c4]@2 ~@6 [f#3,a3,c4]@4 f#2@4 [f#3,a3,c4]@2 ~ d2@4 ~ [d3,f#3,a3]@2 ~@6 [d3,f#3,a3]@4 d2@4 [d3,f#3,a3]@2 ~@2, ~@3 f#3@2 ~@43]/2", // Am F#dim D
  BK: "d2@2 [d3,f#3,a3] ~@3 [d3,a3]@2 d2@2 [d3,a3] ~", // D D5
  BL: "c2@3 ~ g3@2 ~@6 [c3,e3,g3]@4 c2@4 [c3,e3,g3]@2 ~@2, ~@3 [c3,e3]@2 ~@19", // C
  BM: "e2@3 ~ [g3,b3]@2 ~@6 [e3,g3,b3]@4 e2@3 ~ [e3,g3,b3]@2 ~@2, ~ e3 ~@6", // G Em
  BN: "f#2@4 [f#3,a3,c4]@2 ~@6 [f#3,a3,c4]@4 f#2@3 [f#3,a3,c4]@2 ~@3", // F#dim
  BO: "f#2@3 [f#3,a3,c4]@2 ~@7 c4@4 f#2@3 [f#3,a3,c4]@2 ~@3, ~@11 [f#3,a3]@4 ~@9", // F#dim F#m
  BP: "d2@3 [d3,f#3,a3]@2 ~@7 [d3,f#3,a3]@4 d2@3 ~ [d3,a3]@2 ~@2", // D D5
  BQ: "[c2@4 [c3,e3,g3]@2 ~@6 [c3,e3,g3]@4 c2@4 [c3,e3,g3]@2 ~ b1@4 ~ [b2,f#3]@2 ~@6 b2@4 b1@3 ~ [b2,f#3]@2 ~@2, ~@27 d#3@2 ~@6 [d#3,f#3]@5 ~@3 d#3@2 ~@3]/2", // C B5 D#m
  BR: "e2@4 [e3,g3,b3]@2 ~@6 [e3,g3,b3]@4 e2@3 ~ [g3,b3]@2 ~@2, ~@19 e3@2 ~@3", // Em G
  BS: "e2@4 [e3,g3,b3]@2 ~@6 [g3,b3]@4 e2@3 ~ [e3,g3,b3]@2 ~@2", BT: "e2@4 [e3,g3,b3]@3 ~@5 b3@4 e2@4 [e3,g3,b3]@2 ~@2",
  BU: "e2@4 [e3,g3,b3]@2 ~@7 g3@3 e2@4 ~@4, ~@3 [e3,b3] ~@2", BV: "e2@3 b3@2 ~@11 e2@4 e3@2 ~@2",
  BW: "[e2@3 ~ g3@2 ~@10 e2@4 b3@2 ~ e2@4 ~ g3@2 ~@6 [e3,g3,b3]@4 e2@3 ~ [e3,b3]@2 ~@2, ~@3 [e3,b3]@2 ~@22 b3@3 ~@18]/2", // Em E5
  BX: "e2@2 b3 ~@3 [g3,b3]@2 e2@2 e3 ~", BY: "[~ g3@142 ~, [e2,e3,b3]@143 ~]/6",
})).s("gm_acoustic_guitar_steel").gain(0.18)

// chords · acoustic guitar steel · "Guitar" · soft notes
const acoustic_guitar_steel_2 = note(`<
  ~@2 A ~@2 B C ~@3 D E ~ F G ~@6 H ~@15 I J ~ K ~ L ~@2 M ~ N O ~ P ~@4 Q ~@2 B ~@8 P ~@7 R ~ S ~@8 F ~@6 B H ~@3 T U V
  W X Y Z ~@8
>`.pickRestart({
  A: "~@21 g3 ~@2, ~@10 b3 ~", B: "~@10 f#3 ~", C: "~@4 f#3@2 ~@6 f#3@4 ~@3 f#3@3 ~@2", D: "~@20 g3 ~@3",
  E: "~ f#3 ~@2 f#3 ~@3", F: "~@6 f#3@2 ~@2 f#3 ~", G: "~@2 f#3 ~@7 f#3 ~", H: "~@3 f#3@2 ~@7 f#3@4 ~@8",
  I: "~@3 f#3@2 ~@19", J: "~@3 c4@2 ~@15 f#3@2 ~@2", K: "~@2 f#3 ~@3 f#3@2 ~@2 f#3 ~", L: "~@2 f#3 ~@9",
  M: "~@4 f#3@2 ~@13 f#3@2 ~@3", N: "~@12 f#3@4 ~@4 f#3@3 ~", O: "~@2 f#3 ~@3 f#3@2 ~@4", P: "~@10 [d#3,f#3] ~",
  Q: "~@3 f#3@2 ~@7 f#3@4 ~@4 f#3@2 ~@2", R: "~@10 g#3 ~", S: "~@4 [a3,c4] ~@3", T: "~@3 e3 ~@2", U: "~@3 [e3,g3] ~@2",
  V: "~@10 [e3,g3,b3] ~", W: "~@2 g3 ~@3 [e3,g3,b3]@2 ~@2 [g3,b3] ~, ~@3 e3@2 ~@19",
  X: "~@6 [e3,g3,b3]@2 ~@2 [e3,g3] ~", Y: "~@3 e3@3 ~@14 g3@2 ~@2", Z: "~@2 [e3,g3] ~@3 e3@2 ~@2 [g3,b3] ~",
})).s("gm_acoustic_guitar_steel").gain(0.11)

// bass · electric bass finger · "Bass"
const bass = note(`<
  ~ A B C@2 D@2 E F G H I@2 J K L M N O F A D P F M O Q R@2 J S@2 T@2 U@2 G V W J D E M B A X C D@2 E M N Q Y@2 J S@2 M
  N Q Z A D AA@4 P AB AC AD@2 AE AF AG AH AI AJ AK AL AM B AN@2 AO D E AP G B V AN J AQ AR F AS@2 AT@2 AU@2 AV@2 AW@8
>`.pickRestart({
  A: "e2@7 ~", B: "e2@19 ~@5", C: "f#2@7 ~", D: "d2@5 ~", E: "c2@5 ~", F: "b1@7 ~", G: "e2@5 ~", H: "e2@2 ~",
  I: "[f#2@21 ~@2 f#2@20 ~@5]/2", J: "d2@7 ~", K: "d2@11 ~", L: "c2@7 ~", M: "b1@5 ~", N: "a1@7 ~", O: "a1@5 ~",
  P: "c2@11 ~", Q: "a1@3 ~", R: "[b1@19 ~@4 e2@21 ~@4]/2", S: "[c2@20 ~@3 b1@21 ~@4]/2", T: "[b1@17 ~@6 b1@19 ~@6]/2",
  U: "[b1@21 ~@2 e2@21 ~@4]/2", V: "f#2@5 ~", W: "f#2@3 ~", X: "~ f#2@18 ~@5", Y: "[b1@17 ~@6 e2@20 ~@5]/2",
  Z: "b1@19 ~@5", AA: "[c2@20 ~@3 b1@46 ~@2 b1@23 ~@2]/4", AB: "b1@5 ~@3 c2@2 ~@2", AC: "b1@3 ~ c2 ~",
  AD: "[b1@12 ~@4 c2@4 ~@3 b1@13 ~@12]/2", AE: "e2@14 ~@2 e2 e2@5 ~@2", AF: "e2@14 ~@2 e2@5 ~@3",
  AG: "g#2@12 ~@3 g#2 g#2@5 ~@3", AH: "a2@12 ~@4 a2@5 ~@3", AI: "f#2@13 ~@3 f#2@5 ~@3", AJ: "b2 ~@5", AK: "e2@3 ~ b1 ~",
  AL: "e2@5 ~@19", AM: "e2@3 ~ e2 ~", AN: "f#2@19 ~@5", AO: "d2@19 ~@5", AP: "b1@17 ~@7", AQ: "d2@3 ~",
  AR: "b1@7 ~ b1@4 ~ c2@11", AS: "[~ e2@39 b1@8, ~ f2 ~@46]/2", AT: "[e2@41 b1@7]/2", AU: "[e2@37 ~@3 b1@5 ~@3]/2",
  AV: "[e2@7 ~]/2", AW: "[e2@41 e2@138 ~@13]/8",
})).s("gm_electric_bass_finger").gain(0.18)

// chords · piano
const piano = note("<~@35 A B@7 C@8 D@2 ~@14 E@3 F G H ~@24 I@2 J@2 K@4 L@3 ~@5>".pickRestart({
  A: "~@3 e5@2 ~ e5@3 e5@2 e4@3 e5@3 [e4,e5]@2 e5@2 ~ e5@2, e4@2 e4@2 ~ e4@2 ~@14 e4@2 ~, ~ e5@2 ~@8 e5@2 ~@11", // E
  B: "[~@2 e4@2 ~ e4@2 [e4,e5]@2 ~@2 e4@2 e4@2 e4@2 e4 ~@6 f#5@2 ~ f#5@2 ~@2 f#4@2 ~ f#4@2 [f#4,f#5]@2 ~ f#5@2 ~@3 f#5@2 ~@2 f#4@2 f#5@2 ~@3 f#5@2 ~@20 d4@2 ~ d4@2 ~ d4@2 ~@2 f#5@2 ~ f#5@2 ~@3 f#5@2 ~@2 [d4,d5]@2 ~ d4@2 ~ d4@2 [d4,f#5]@2 ~ [d4,d5]@2 ~ d4@2 ~@5 [c4,e5]@2 ~@2 [c4,c5]@2 ~ c5@2 [c5,e5]@2 ~@2 c4@2 ~ c4@2 e5@2 ~@5 b3@2 ~ b3@2 ~ b3@2 ~ b3@2 ~@8 b3@4, ~ e5@3 e5@3 ~@2 e4@2 ~@7 [e4,e5]@48 ~@6 d4@2 d5@2 [d5,f#5]@3 [d5,f#5]@3 [d5,f#5]@3 [d5,f#5]@3 ~@5 f#5@2 ~@3 f#5@3 [d5,f#5]@3 f#5@3 ~@2 f#5@3 [d5,f#5]@3 ~@8 e5@3 e5@3 ~@3 e5@3 e5@3 ~@2 e5@28, ~@10 e5@3 e5@5 ~@8 f#4@2 ~ f#4@2 ~@7 f#4@2 ~ f#4@2 f#4@3 f#4@2 ~@4 f#4@2 f#4@3 f#4@3 f#4@4 f#4@48 ~@10 c4@2 ~@3 c4@4 c4@2 ~@5 c4@30, ~@30 f#5@3 f#5@3 ~@6 f#5@2 ~@3 f#5@3 ~@3 f#5@2 ~@3 f#5@4 f#5@11 f#5@2 d4@2 ~@9 d4@3 d4@3 d4@2 d4@3 d4@2 ~@16 [d4,f#5]@44 [b4,d#5]@9, ~@143 b3 d#5@3 [b4,d#5]@3 d#5@3 [b4,d#5]@3 d#5 b3@7 ~@4]/7", // E F# D C E D B
  C: "[e4 e5@2 [e4,e5]@3 ~@2 e4@2 e5@2 ~ e5@2 ~@2 e4@2 ~@2 [e5,g5]@2 ~ [e5,g5]@2 ~ [e5,g5]@2 ~@2 e4@2 ~@5 e5@2 ~@8 [f#4,f#5]@2 ~@2 f#4@2 ~ f#4@2 ~@2 f#5@2 ~ f#5@2 ~@2 f#4@2 ~@12 f#5@5 ~@10 d4@2 ~ d4@2 ~@8 [d5,f#5]@4 ~@2 [d5,f#5]@4 ~@29 e5@2 ~@2 c4@2 ~ c4@2 ~@16 b3@2 ~@13 d#5@3 ~ a3, ~@6 e4@2 ~@4 e4@3 e4@2 ~@3 e4@3 e4@3 e4@3 e4@2 ~@3 e4@2 g5@3 ~@2 [e5,g5]@2 [e5,g5]@48 ~@6 [d5,f#5]@3 ~@2 [d5,f#5]@6 ~@10 [d5,f#5]@4 ~@5 d5@4 d5@3 d5@4 d5@26 [c5,e5]@26 ~@2, ~@7 e5@3 ~@6 [e5,g5]@3 [e5,g5]@2 ~@9 [e5,g5]@3 [e5,g5]@2 e5@2 e4@3 e4@2 e4@48 ~@11 d4@3 d4@8 d4@8 d4@4 d4@4 d4@4 d4@3 ~ d4@4 d4@28 [b3,d#5] b4 b3 [b4,d#5]@3 [b4,d#5]@2 b3@4 [b4,d#5]@4 b3@6 ~@2, ~@50 f#4@2 ~@6 f#4@2 ~ f#4@3 f#4@2 ~@3 f#4@3 f#4@13 f#4@3 f#4@48 ~@8 c4 e5 c4@3 c4 e5@3 [c5,e5]@3 [c5,e5] c4 e5 c5 c4@30 ~@2, ~@51 f#5@3 f#5@3 f#5@2 ~@6 f#5@3 f#5@2 f#5@9 ~@7 f#5@11 ~@3 f#5@2 ~@20 f#5@4 f#5@4 f#5@3 f#5@4 f#5@4 f#5@48 ~@3]/8", // E Em F# D Em D C Em …
  D: "[~@3 e5@2 ~@3 a3@3 a3@5 a3@4 ~@8 a3@4 ~@12 a3@2 ~@2, ~ e5@2 ~@3 e5@3 ~@13 e5@4 e5@4 ~@4 [a4,e5]@4 [a4,e5]@4 [a4,e5]@4 ~@2, ~@2 a3@3 a3@2 a4@3 ~@10 a3@4 a3@4 ~@4 a3@4 a3@4 a3@4 ~@4]/2", // A5
  E: "[~@2 b4@2 ~ b4@2 ~@2 c5@2 ~ c5@2 ~@3 c5@2 ~ c5@2 ~@2 b4@2 ~@2 c5@2 ~@2 b4@2 ~ b4@2 ~@2 c5@2 ~@2 b4@2 ~@4 b4@20 ~@3, b4@2 ~@6 b4@3 b4@3 b4@2 b4@3 b4@2 ~ b4@2 ~@3 b4@3 b4@2 ~@6 b4@3 b4@2 ~@3 b4@3 ~@23, ~ c5@3 c5@3 c5@2 ~@6 c5@2 ~@6 c5@3 c5@2 ~@3 c5@3 c5@3 c5@2 ~@3 c5@3 c5@2 c5@21 ~@4]/3",
  F: "~ b4 ~ c5 b4 ~ b4@2 ~@4, b4@2 ~@3 b4@3 ~@2 b4@2 ~@12, ~ c5@3 c5@2 ~@5 c5@5 ~@8",
  G: "~ c5@2 ~@3 c5@2 ~@3 c5@2 ~@2 b4@3 ~ c5@2 ~ c5@2, b4@2 ~ b4@2 b4@3 b4@2 b4@3 b4@2 ~@3 b4@3 b4@3, ~@4 c5@2 ~@3 c5@2 ~@3 c5@3 ~@7",
  H: "~@2 b4@2 ~@2 c5@2 ~ c5@3 ~ b4@2 ~@2 c5@2 b4@2 b4@3, b4@2 ~@3 b4@3 b4@3 ~@5 b4@3 ~@5, ~ c5@3 c5@2 ~@9 c5@2 ~@7",
  I: "[g4 g5@2 ~ g4@2 ~@2 g4@2 ~ g4@2 ~@3 g4@2 ~@2 g5@2 ~@4 g4@2 ~ g4@2 ~ g4@2 ~@2 [g4,g5]@3 ~@3 a4@2 ~@2 a5 ~, ~@6 g5@4 g5@3 g5@2 g5@2 ~ g5@2 ~@3 g5@2 g5@3 g5@3 g5@2 ~@8 a5@3 a5@2 ~@2, ~@14 g4@2 ~@3 g4@3 g4@2 g4@2 ~@14 a4@2 ~@3 a4@2 ~]/2", // G
  J: "[~@3 g5@2 ~@4 g4@2 ~ g4@2 ~@3 g4@2 ~ g4@2 ~@3 g4@2 ~ g4@2 [g4,g5]@2 ~ g4@2 [g4,g5]@3 g5@2 ~@4 a5@2 ~ a5, g4@2 g4@2 ~ g4@2 g4@2 ~@6 g4@2 ~@6 g4@2 ~@16 a4@2 a4@2 ~ a4@2, ~ g5@2 ~@3 g5@2 g5@3 g5@3 g5@2 g5@3 g5@3 g5@2 g5@3 g5@3 ~@2 g5@3 ~@7 a5@2 ~@4]/2", // G
  K: "[~@5 g4@2 ~ g4@2 ~@3 g4@2 ~ g4@2 ~@3 g4@2 ~ g4@2 [g4,g5]@2 ~ g4@2 ~@3 g4@2 g5@3 ~@3 a4@2 [a4,a5]@2 a5 g4@2 ~@3 g4@2 ~ g4@2 ~ g4@2 ~@3 g4@2 ~ g4@2 ~@3 g4@2 ~ g4@2 ~ g4@2 ~ g4@2 g5@2 g5@3 ~@2 a5@2 ~@3 a5 ~, ~ g4@2 g4@2 ~@6 g4@2 ~@6 g4@2 ~@11 g4@2 ~@6 a4@2 ~@8 g4@2 ~@9 g4@2 ~@6 g4@2 ~@11 g4@5 ~ a4@2 ~ a4@2 a4@2 ~, ~@2 g5@2 g5@3 g5@3 g5@2 g5@3 g5@3 g5@2 g5@3 g5@3 ~@2 g5@3 g5@2 g5@2 ~@6 a5@3 ~@5 g5@2 g5@3 g5@3 g5@3 g5@2 g5@3 g5@3 g5@2 g5@3 g5@3 g5@3 g5@3 ~@10 a5@2 ~@2]/4", // G A
  L: "[~@2 g4@2 g5@2 ~@3 g5@2 g5@3 g5@4 ~@54, ~ g5@3 ~@2 g5@3 ~@63, ~@7 g4@48 ~@17]/3",
})).s("gm_piano").gain(0.07).pan(0)

// chords · piano · soft notes
const piano_soft = note("<~@35 A@2 ~@2 B C@3 ~ D ~@2 E F G H I@2 ~@17 J K L ~@25 M ~ N ~ O ~@2 P@3 ~@5>".pickRestart({
  A: "[~@7 e4@2 e4@2 ~@5 e4 ~@2 e4@2 ~@2 e4@3 ~@22]/2", B: "~@16 d5@2 d5@3 d5@3",
  C: "[d5@3 ~@5 d5@3 d5@3 ~@11 c5@3 ~@9 c5@2 c5@3 c5@3 ~@3 b4@3 ~@3 b4@3 ~@3 b4@3 ~@9, ~@19 d5@48 ~@5, ~@5 c5@3]/3",
  D: "~@15 g5@2 ~@7", E: "~@2 d5 ~@9", F: "~ d5@2 ~@9", G: "~ c5@2 c5@3 c5@3 ~@15", H: "~@10 b4 ~",
  I: "[~ a4@3 a4@3 ~@3 [a4,e5]@4 [a4,e5]@4 ~ a4@3 a4@4 a4@4 [a4,e5]@4 ~@14, ~@9 e5@2 ~@13]/2", J: "~@9 c5@2 ~@13",
  K: "~@17 c5@2 ~@5", L: "~@12 c5@3 ~@5 c5@4, ~@11 b4@2 ~@11", M: "~@5 g4 ~@6, ~@9 g5@2 ~@13", N: "~@7 g4 ~@4",
  O: "~@4 g4 ~@3", P: "[~@5 g4@2 ~@11 g5@48 ~@6]/3",
})).s("gm_piano").gain(0.05).pan(0)

// other · acoustic guitar nylon · "Guitar Melody #2"
const acoustic_guitar_nylon = note("<~@65 A@2 B C D E F G@2 H I J K@2 L@2 ~@24 M@8>".pickRestart({
  A: "[~@36 a4@4 b4@2 a4@2 ~ f#4@2 ~, ~@23 c4@17 ~@8, ~@27 e4@10 ~@11, ~@31 f#4@8 ~@9]/2", B: "b4@11 ~",
  C: "~@13 a4@3 b4@2 a4@3 f#4@2 ~, c4 f#4 ~, ~@4 e4@7 ~@13", D: "b4@7 ~@7 b4@2 ~ c5@3 b4 ~ a4@2, ~@13 a4@2 ~@9",
  E: "b4@11 ~ a4@2 b4@2 c5@3 ~ b4@2 a4 ~", F: "b4@12 a4@2 b4@2 ~ c5@3 b4@2 a4 ~",
  G: "[b4@12 a4@4 g4@4 f#4@2 ~ b4@21 g4@4]/2", H: "e4@7 ~", I: "e5@3 ~@2 e5@3 ~ e5@2 ~@3 e5@2 ~ e5@3 d5@3 ~",
  J: "e5@3 c5@4 ~ a4@10 ~@6", K: "[f#4@4 g4@4 a4@3 b4@4 d5@4 c5@4 b4@2 ~@7 g5@3 ~@5 f#5@2 ~@6]/2", L: "[e5@3 ~]/2",
  M: "[~@19 e4@11 d#4@5 c4@5 b3@136 ~@16, [e2,e3]@59 ~@5]/8", // E
})).s("gm_acoustic_guitar_nylon").gain(0.35)

// chords · piano · "Piano #2"
const piano_2 = note("<~@31 A@7 B@2 C@8 D@2 E ~@55 F@5 ~@2>".pickRestart({
  A: "[~@7 f#5@2 ~@5 f#5@2 ~ f#5@2 ~@2 g5@2 ~@2 a5@2 ~ a5@2 ~@3 g5@2 a5@2 ~ a5@2 ~ a5@2 ~ a5@2 a5@2 ~ a5@2 ~ a5@2 ~ a5@2 b5@2 ~ b5@2 ~ b5@2 a5@2 ~@2 b5 b5@2 c6@2 ~ c6@2 ~ c6@2 b5@2 ~ b5@2 ~@2 c6@2 ~@76 f#5@3, ~ f#5@2 f#5@4 ~@3 f#5@4 ~@6 f#5@48 ~@6 b5@3 b5@3 ~@2 c6@3 c6@2 ~@4 c6@48 ~@7 a5@5 a5@6 a5@6 a5@5, ~@2 g5@3 g5@4 g5@3 g5@4 g5@3 g5@2 ~@3 g5@3 g5@3 g5@3 ~@4 g5@3 g5@3 g5@48 ~@5 e5@3 g5@5 e5@3 g5@4 e5@9 e5@8 e5@8 e5@32, ~@31 a5@4 ~@13 b5@3 b5@3 b5@3 ~@2 a5@3 a5@3 ~@2 a5@48 g5@8 ~ g5@7 g5@8 g5@29, ~@86 b5@3 b5@48 ~@7 f#5@4 f#5@6 f#5@6 f#5@5 ~@3]/7",
  B: "[~@45 d5@2 f#5, a5@5 a5@6 a5@5 a5@5 a5@27, ~@2 f#5@6 f#5@5 f#5@6 f#5@8 f#5@5 f#5@5 f#5@5 f#5@5 ~, ~@24 d5@5 ~ d5@4 d5@5 ~ d5@5 ~@3]/2",
  C: "[~@63 d5, ~@3 d5@5 d5@5 d5@5 d5@30 b4@3 d#5@2 b4@3 d#5@2 b4@3 d#5@3 b4@5 b4@48 ~@5 a5@6 a5@5 a5@5 a5@6 a5@5 a5@5 ~ a5@5 a5@5 a5@27, ~@5 f#5@6 f#5@5 f#5@4 f#5@47 d#5@48 ~@5 f#5@5 f#5@5 f#5@6 f#5@5 f#5@5 f#5@6 f#5@5 f#5@5 ~ f#5@7 f#5@5 ~ f#5@5 f#5@5 f#5@5 ~, ~@24 c5@5 c5@6 c5@5 c5@5 c5@45 g5@5 ~ g5@5 g5@5 g5@5 g5@5 g5@48 ~@28, ~@26 e5@6 e5@5 e5@5 ~ e5@29 e5@2 g5@3 e5@3 g5@2 e5@3 g5@3 e5@5 e5@5 e5@6 e5@5 e5@5 e5@48 ~@11 d5@5 ~ d5@5 d5@5 ~@3]/8",
  D: "[~@20 f#5@2 ~@23 c5@2 ~, f#5@5 f#5@5 f#5@5 f#5@5 ~@6 e5@6 e5@5 e5@5 ~ e5@4 ~, ~@2 d5@6 d5@5 d5@5 d5@5 c5@6 c5@5 c5@5 ~ c5@5 ~@3]/2",
  E: "~@18 d#5@3 b4@2 ~, b4@5 b4@5 ~ b4@5 b4@5 ~@3, ~@3 d#5@5 d#5@5 d#5@5 ~@6",
  F: "[~@20 e4@2 ~ e4@2 e5@2 e5@3 ~@4 e4@2 e5@3 ~ e4@2 ~@2 e5@2 ~@2 e4@2 ~ e4@3 e4@2 ~ e4@2 ~@2 e5@2 ~ e5@3 ~ e4@3 e4@3 e4@3 ~@12 e4@3 ~@3 e4@3 ~@6 e4@3 ~@13, ~@19 [b4,e5]@3 e5@3 ~@8 e5@3 ~@6 e5@2 ~@3 e5@3 e5@3 ~@3 e5@3 e5@2 ~@59, ~@43 e4@3 e4@2 ~@12 e4@3 e4@3 ~@54]/5", // E5
})).s("gm_piano").gain(0.09).pan(1)

// chords · piano · "Piano #2" · soft notes
const piano_soft_2 = note("<~@33 A ~@13 B ~@58 C D@2 E@4>".pickRestart({
  A: "~@9 b5 ~@2", B: "d5@5 ~@19", C: "~@9 e4 ~ b4",
  D: "[~@4 e4@2 ~ e4@2 b4@3 ~ e4@2 [b4,e5]@3 b4@2 b4@3 b4@3 b4@3 [b4,e5]@3 b4@3 b4@3 b4@2 b4@2 ~ [b4,e5]@3 [b4,e5]@2, ~ b4@2 b4@6 ~@3 b4@3 ~@27 e4@2 ~@4, ~@2 e4@2 ~@2 e5@3 ~@39]/2", // E5
  E: "[~ [b4,e5]@2 ~@3 [b4,e5]@2 ~ [b4,e5]@2 ~@3 e4@2 e5@2 ~@2 e4@2 e5@3 ~ e4@2 ~ e4@2 ~ b4@2 ~@2 e4@2 ~ e4@2 ~@2 e4@2 ~ e4@3 ~@9 e4@4 e4@2 ~ e4@28 ~@3, ~@3 e5@2 e4@3 e4@3 e4@2 b4@6 b4@13 ~@3 b4@3 [b4,e5]@3 ~ b4@3 b4@11 b4@37 ~@3, ~@4 b4@2 ~@6 e5@4 ~@2 e5@4 ~@3 e5@3 e5@3 e5@3 e5@4 ~@3 e5@4 e5@4 e5@3 e5@4 e5@8 e5@30 ~@2, ~@25 e4@2 e4@2 ~@19]/4", // E5
})).s("gm_piano").gain(0.05).pan(1)

// chords · string ensemble 1 · "Strings"
const string_ensemble_1 = note("<~@106 A@7>".pickRestart({
  A: "[~@9 [e2,e3,b3]@65 ~@10]/7", // E5
})).s("gm_string_ensemble_1").gain(0.1).pan(0.6)

stack(
  acoustic_guitar_steel, acoustic_guitar_steel_2, bass, piano, piano_soft, acoustic_guitar_nylon, piano_2, piano_soft_2,
  string_ensemble_1
)

More by Sting