Strudelify

When The Going Gets Tough

Boyzone

KeyA majorTempo127 bpm
0:00/0:00
// When The Going Gets Tough — Boyzone
// 127 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 115 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(127/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.

// bass · synth bass 1
const bass = note(`<
  ~@3 A@7 B@2 C@2 D@2 E F G H I J K@3 L M N O P Q@2 R@3 S T@6 U V W X Y Z AA AB@2 AC@8 AD@4 AE@6 AF AG AH AI AJ AK AL AM
  AN AO AP AQ AR AS AT AU@4 AV@2 AW@2 ~@10 AX@2 AY AZ BA BB BC BD BE BF@4
>`.pickRestart({
  A: "[a1@5 c#2@3 e2@4 ~ a2@7 ~ a1@3 c#2@5 f#2@7 ~ a1@3 c#2@4 ~ e2@7 ~ c#2@2 e2@5 ~ f#2@2 a1@5 ~ c#2@2 e2@4 ~@2 a2@7 a1@3 c#2@5 f#2@7 ~ a1@3 c#2@4 ~ e2@7 ~ c#2@3 e2@5 f#2@3 a1@5 c#2@3 e2@4 ~ a2@7 ~ a1@3 c#2@5 f#2@7 ~ a1@3 c#2@4 ~ e2@7 ~ c#2@2 e2@5 ~ f#2@2 a1@5 ~ c#2@2 e2@4 ~@2 a2@7 ~@3 c#2@3 d2@3 e2@2 f#2@2, ~@53 a1 ~@2]/7",
  B: "[~@4 f#2@3 ~@2 f#2@3 ~@2 e2@5 ~@11 a1@5 c#2@3 e2@4 ~ a2@7 ~ a1@3 c#2@5 f#2@5]/2",
  C: "[~@3 a1@3 c#2@4 ~ e2@7 ~ c#2@3 e2@5 f#2@3 a1@5 c#2@3 e2@4 ~ a2@6 ~@2 a1@2 c#2@5 ~ d2@5]/2",
  D: "[~@3 a1@2 b1@4 ~ d2@6 ~@2 b1@3 d2@5 e2@3 a1@5 c#2@3 e2@4 ~ a2@7 ~ a1@3 c#2@5 f#2@6]/2",
  E: "~@2 a1@3 c#2@4 ~ e2@7 ~ c#2@2 e2@5 f#2@3 a1@4", F: "~ c#2@3 e2@4 ~ a2@6 ~@2 a1@3 c#2@5 d2@6 ~",
  G: "~ a1@3 b1@4 ~ d2@6 ~@2 b1@2 d2@5 e2@3 a1@5", H: "c#2@3 e2@4 ~ a2@7 ~ a1@3 c#2@5 f#2@7 ~",
  I: "a1@3 c#2@4 ~ e2@7 ~ c#2@3 e2@5 f#2@3 a1@5", J: "c#2@2 e2@4 ~@2 a2@7 ~ a1@2 c#2@6 f#2@7 ~",
  K: "[a1@2 c#2@4 ~ e2@7 ~ c#2@3 e2@5 f#2@3 a1@5 c#2@3 e2@4 ~ a2@7 ~ a1@2 c#2@6 f#2@7 ~ a1@2 c#2@4 ~@2 e2@7 c#2@3 e2@5 f#2@3 a1@5 c#2@2]/3",
  L: "~ e2@4 ~ a2@6 ~@2 a1@3 c#2@5 d2@6 ~@2 a1@2", M: "~ b1@4 ~ d2@6 ~@2 b1@3 d2@5 e2@3 a1@5 c#2@2",
  N: "~ e2@4 ~ a2@7 ~@3 c#2@6 f#2@7 ~ a1@2, ~@7 a1@2 ~@7", O: "~ c#2@4 ~ e2@7 ~ c#2@2 e2@5 ~ f#2@2 a1@5 ~ c#2@2",
  P: "e2@4 ~@2 a2@6 ~@2 a1@2 c#2@5 d2@6 ~@2 a1@3",
  Q: "[b1@4 ~ d2@6 ~@2 b1@3 d2@5 e2@3 e2@11 ~@2 f#2@13 ~@3 d2@9 ~@2]/2",
  R: "[f#1@5 a1@7 ~ f#1@2 ~ a1@2 c#2@2 ~ d2@2 ~ e2@12 ~ f#2@14 ~@2 d2@14 ~@2 e2@5 ~@14 a1@5 c#2@3]/3",
  S: "e2@4 ~ a2@7 ~ a1@3 c#2@5 f#2@7 ~ a1@3",
  T: "[c#2@4 ~ e2@7 ~ c#2@3 e2@5 f#2@3 a1@5 c#2@2 e2@4 ~@2 a2@7 ~ a1@2 c#2@5 f#2@7 ~ a1@3 c#2@4 ~ e2@7 ~ c#2@3 e2@5 f#2@3 a1@5 c#2@3 e2@4 ~ a2@7 ~ a1@2 c#2@6 f#2@7 ~ a1@2 c#2@4 ~ e2@7 ~ c#2@3 e2@5 f#2@3 a1@5 c#2@3 e2@4 ~ a2@7 ~ a1@2 c#2@6 f#2@7 ~ a1@2 c#2@3]/6",
  U: "~@2 e2@7 ~ c#2@3 e2@5 f#2@3 a1@5 c#2@3 e2@3", V: "~@2 a2@7 ~ a1@3 c#2@5 f#2@7 ~ c#2@2 e2@4",
  W: "~@2 f#2@6 ~@2 c#2@2 e2@5 f#2@2 ~ e2@5 a1@3 b1@4", X: "~ e2@7 ~ a1@3 b1@5 d2@7 ~ a1@3 b1@4",
  Y: "~ d2@6 ~@2 a1@2 b1@5 ~ d2@2 d2@4 ~ a1@3 d2@2 ~ a1@2", Z: "d2@3 d2@4 ~@4 d2@4 ~@4 a1@5 c#2@3 e2@4 ~",
  AA: "a2@7 ~ a1@3 c#2@5 f#2@7 ~ a1@3 c#2@4 ~",
  AB: "[e2@7 ~ c#2@2 e2@5 ~ f#2@2 a1@5 c#2@3 e2@4 ~ a2@7 ~ a1@3 c#2@3 d2@2 e2@3 f#2@2 ~@3 f#2@3 ~@2 f#2@3 ~]/2",
  AC: "[~@2 e2@5 ~@11 a1@5 c#2@3 e2@4 ~ a2@7 ~ a1@3 c#2@5 f#2@7 ~ a1@3 c#2@4 ~ e2@7 ~ c#2@2 e2@5 ~ f#2@2 a1@5 ~ c#2@2 e2@4 ~ a2@6 ~@3 a1@2 c#2@5 d2@6 ~@2 a1@3 b1@4 ~ d2@6 ~@2 b1@3 d2@5 e2@3 a1@5 c#2@3 e2@4 ~ a2@7 ~ a1@2 c#2@6 f#2@7 ~ a1@2 c#2@4 ~@2 e2@7 ~ c#2@2 e2@5 f#2@3 a1@5 c#2@3 e2@4 ~ a2@6 ~@3 a1@2 c#2@5 ~ d2@6 ~@2 a1@2 b1@4 ~ d2@3]/8",
  AD: "[~@5 b1@3 d2@5 e2@3 e2@11 ~@2 f#2@13 ~@3 d2@9 ~@2 f#1@5 a1@7 ~ f#1@2 ~ a1@2 c#2@2 ~ d2@2 ~ e2@12 ~ f#2@14 ~@2 d2@14 ~@2 e2@3]/4",
  AE: "[~@15 a1@5 c#2@3 e2@4 ~ a2@7 ~ a1@3 c#2@5 f#2@7 ~ a1@3 c#2@4 ~ e2@7 ~ c#2@3 e2@5 f#2@3 a1@5 c#2@3 e2@4 ~ a2@7 ~ a1@3 c#2@5 f#2@7 ~ a1@3 c#2@4 ~ e2@7 ~ c#2@3 e2@5 f#2@3 a1@5 c#2@2 e2@4 ~@2 a2@7 ~ a1@2 c#2@6 f#2@7 ~ a1@2 c#2@4 ~ e2@5]/6",
  AF: "~@3 c#2@3 e2@5 f#2@3 a1@5 c#2@3 e2@4 ~ a2@5", AG: "~@3 a1@3 c#2@5 f#2@7 ~ a1@3 c#2@4 ~ e2@5",
  AH: "~@3 c#2@2 e2@5 ~ f#2@2 a1@6 c#2@2 e2@4 ~@2 a2@5", AI: "~@2 a1@3 c#2@5 f#2@7 ~ c#2@3 e2@5 f#2@6",
  AJ: "~@2 c#2@2 ~ e2@5 f#2@2 ~ e2@5 a1@3 b1@5 e2@6", AK: "~@2 a1@2 b1@5 ~ d2@7 ~ a1@3 b1@5 d2@6",
  AL: "~@2 a1@3 b1@5 d2@2 d2@4 ~@2 a1@2 d2@2 ~ a1@2 ~ d2@2 d2@3 ~",
  AM: "~@2 d2@3 ~@2 d2@4 ~ a1@5 ~ c#2@2 e2@4 ~@2 a2@6", AN: "~@4 c#2@5 f#2@7 ~@2 a1@2 c#2@4 ~ e2@7, ~ a1@2 ~@13",
  AO: "~ c#2@3 e2@5 f#2@3 a1@5 c#2@3 e2@4 ~ a2@6 ~", AP: "~ a1@3 c#2@5 d2@6 ~@2 a1@3 b1@4 ~ d2@6 ~",
  AQ: "~ b1@3 d2@5 e2@2 a1@5 ~ c#2@2 e2@4 ~@2 a2@7", AR: "a1@3 c#2@5 f#2@7 ~ a1@3 c#2@4 ~ e2@7 ~",
  AS: "c#2@3 e2@5 f#2@3 a1@5 c#2@3 e2@4 ~ a2@6 ~@2", AT: "a1@3 c#2@5 d2@6 ~@2 a1@2 b1@4 ~@2 d2@6 ~@2",
  AU: "[b1@2 d2@5 e2@3 e2@11 ~@2 f#2@13 ~@3 d2@9 ~@2 f#1@5 a1@7 ~ f#1@2 a1@2 ~ c#2@2 ~ d2@2 e2@11 ~@2 f#2@13 ~@3 d2@9 ~@2 f#1@5 a1@7 ~ f#1@2]/4",
  AV: "[~ a1@2 c#2@2 ~ d2@2 ~ e2@11 ~@2 f#2@13 ~@3 d2@9 ~ f#1@5 a1@7 ~ f#1@2 ~]/2",
  AW: "[a1@2 ~ c#2@2 d2@2 ~ e2@12 ~ f#2@14 ~@2 d2@14 ~ e2@5 ~@7]/2",
  AX: "[~@5 a1@5 c#2@3 e2@4 ~ a2@7 ~ a1@3 c#2@5 f#2@7 ~ c#2@2 e2@5 ~ f#2@6 ~@2 c#2@2 e2@4]/2",
  AY: "~ f#2@2 ~ e2@5 a1@3 b1@5 e2@7 ~ a1@3 b1@4", AZ: "~ d2@7 ~ a1@3 b1@5 d2@6 ~@2 a1@3 b1@4",
  BA: "~ d2@3 a1@5 c#2@3 e2@4 ~ a2@7 ~ a1@2 c#2@5", BB: "~ f#2@7 ~ c#2@2 e2@5 ~ f#2@6 ~@2 c#2@2 e2@5",
  BC: "f#2@2 ~ e2@5 a1@3 b1@5 e2@7 ~ a1@3 b1@5", BD: "d2@7 ~ a1@3 b1@5 d2@6 ~@2 a1@3 b1@5",
  BE: "d2@3 d2@5 ~@3 d2@5 ~@3 d2@3 ~@2 d2@3 ~@2 b1@3", BF: "[~@2 a1@95 ~@2 a1@5 ~@24]/4",
})).s("gm_synth_bass_1").gain(0.45)

// chords · piano
const piano = note("<A ~@83 B@4 C@2 D@2 ~@18 E@2 ~@3>".pickRestart({
  A: "f#3@31 ~",
  B: "[~@10 [b3,e4,g#4]@12 ~ [c#4,f#4,a4]@14 ~@2 [a3,d4,f#4]@19 [b3,d4]@4 ~ [c#4,e4]@3 ~@2 [d4,f#4]@3 ~@2 [b3,e4,g#4]@12 ~@2 [c#4,f#4,a4]@14 ~ [a3,d4,f#4]@19 [g#4,b4]@4 ~ [a4,c#5]@2]/4", // E F#m D Bm C#m D E F#m …
  C: "[~@3 [b4,d5]@3 ~@3 [e4,g#4,b4]@12 ~ [f#4,a4,c#5]@14 ~@12 [a5,d6]@4 ~@4 [b5,d6]@4 ~ [c#6,e6]@3, ~@38 [f#4,a4,d5]@19 ~@7]/2", // Bm E F#m D5 Bm C#m D
  D: "[~@3 [d6,f#6]@3 ~@2 [e4,g#4,b4]@12 ~ [f#4,a4,c#5]@14 ~@2 [d4,f#4,a4]@15 ~ b4@3 ~@2 e2 ~ e2 ~@2 e2, ~@52 g#4@3 ~@9]/2", // D E F#m D
  E: "[~@19 [a3,c#4,e4]@3 ~@3 f#3@3 ~@2 [f#3,a3]@4 ~@30, ~@24 [b3,d4]@4 ~ c#4@4 ~@31]/2", // A F#m Bm
})).s("gm_piano").gain(0.65)

// chords · electric guitar clean
const electric_guitar_clean = note(`<
  ~@23 A B C D C E F G H I H J ~@7 K ~@8 L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF ~@43
>`.pickRestart({
  A: "~ [e4,a4,c#5] ~@7 [e4,a4,c#5] ~@6", B: "~ [e4,a4,c#5]@2 ~@14 [e4,g#4,b4] ~@14",
  C: "~ [e4,a4,c#5]@2 ~@14 [e4,a4,c#5]@2 ~@13", // A
  D: "~ [f#4,a4,d5] ~@9 [f#4,a4,d5] ~@2 [f#4,a4] ~@2 [f#4,a4,d5]@5 [f#4,a4,d5] ~@9", // D F#m D
  E: "~ [e4,a4,c#5]@2 ~@13 [e4,g#4,b4] ~@15", F: "[e4,a4,c#5] ~@7 [e4,a4,c#5] ~@7",
  G: "[f#4,a4,d5] ~@10 [f#4,a4,d5] ~ [f#4,a4] ~@2 [f#4,a4,d5]@5 [f#4,a4,d5] ~@10", // D F#m D
  H: "[e4,g#4,b4] ~@7 [f#4,a4,c#5] ~@7", I: "[d4,f#4,a4] ~@7 [d4,f#4,a4] ~@7",
  J: "[d4,f#4,a4]@2 ~@3 [g#4,b4,e5]@2 ~@25", K: "~@5 e4 ~@2 [b4,e5] ~ [b4,e5]@2 ~ [b4,e5]@2 ~ [b4,e5]@2 [b4,e5]@2 ~@12",
  L: "~@13 [e4,a4,c#5] ~@2", M: "~@5 [e4,a4,c#5] ~@7 [e4,a4,c#5] ~@2",
  N: "~ e4 ~@2 [e4,a4,c#5] ~@2 e4 ~ [e4,a4,c#5]@2 ~ [e4,a4,c#5]@2 ~ [e4,a4,c#5]@2 ~@8 [e4,a4,c#5]@2 ~@5", // A
  O: "~@9 [e4,a4,c#5]@2 ~@14 [f#4,a4,d5] ~@6", // A D
  P: "~@4 [f#4,a4,d5] ~ [f#4,a4] ~@2 [f#4,a4,d5]@2 ~ [f#4,a4]@2 [f#4,a4,d5] ~@10 [e4,a4,c#5]@2 ~@5, ~@11 d5@2 ~@19", // D F#m D F#m D A
  Q: "~@9 [e4,a4,c#5]@2 ~@13 [e4,a4,c#5]@2 ~@6", // A
  R: "e4 ~@2 [e4,a4,c#5] ~@4 [e4,a4,c#5]@2 ~ [e4,a4,c#5]@2 ~ [e4,a4,c#5]@2 ~@8 [e4,a4,c#5]@2 ~@6", // A
  S: "~@8 [e4,a4,c#5]@2 ~@9 [a4,d5]@2 ~ [a4,d5]@2 [a4,d5]@2 ~ [a4,d5]@2 [a4,d5]@2 ~", // A D5
  T: "[a4,d5]@2 ~ [a4,d5]@2 [a4,d5]@2 ~ [a4,d5]@2 ~ [a4,d5]@2 [a4,d5] ~@10 [e4,g#4,b4]@2 ~@6", // D5 E
  U: "~@4 [f#4,a4,c#5] ~@7 [d4,f#4,a4] ~@3", V: "~@4 [d4,f#4,a4] ~@7 [e4,g#4,b4] ~@3",
  W: "~@8 [f#4,a4,c#5]@2 ~@13 [d4,f#4,a4]@2 ~@4 [g#4,b4,e5]@2 ~", X: "~@23 [e4,a4,c#5]@2 ~@7",
  Y: "~@7 [e4,a4,c#5]@2 ~@14 [e4,a4,c#5]@2 ~@6 e4", // A
  Z: "~@2 [e4,a4,c#5] ~ e4 ~@2 [e4,a4,c#5]@2 ~ [e4,a4,c#5]@2 [e4,a4,c#5]@2 ~@9 [e4,a4,c#5]@2 ~@7", // A
  AA: "~@7 [e4,a4,c#5]@2 ~@14 [f#4,a4,c#5] ~@8", // A F#m
  AB: "~ [e4,a4,c#5] ~@5 [e4,a4]@2 [e4,a4]@2 ~ [e4,a4] ~@10 e4@2 ~@7, ~@11 [a4,c#5] ~@4", // A A5 A
  AC: "~@7 [a4,c#5]@2 ~@13 [e4,a4,c#5]@2 ~@6 e4 ~, ~@3 e4 ~@12", // A
  AD: "~ [e4,a4,c#5] ~ e4 ~@2 [e4,a4,c#5]@2 ~ [e4,a4,c#5]@2 [e4,a4,c#5]@2 ~@9 [e4,a4,c#5]@2 ~@8", // A
  AE: "~@6 [e4,a4,c#5]@2 ~@14 [f#4,a4,c#5] ~@9", AF: "[e4,a4,c#5] ~@5 e4@2 [e4,a4]@2 ~ [e4,a4] ~@20, ~@5 a4@3 ~@24",
})).s("gm_electric_guitar_clean").gain(0.24)

// chords · overdriven guitar
const overdriven_guitar = note(`<
  ~@6 A@4 B ~@7 C D@2 E@2 ~@7 F@5 ~@7 G@5 H@2 I@2 J ~@7 K@4 ~@8 L@5 M@6 N@2 O@8 ~@10 P Q@2 R S T U V W X@4
>`.pickRestart({
  A: "[~@31 a3@5 f#3@2 ~ a3@16 f#3@21 e3@14 ~@4 a3@5 ~ f#3@2 a3@16 f#3@8 [f#2,c#3,f#3]@2]/4", // F#5
  B: "~@4 [f#2,c#3,f#3]@4 ~ [f#2,c#3,f#3]@3 ~@2 [e2,b2,e3]@7 ~@11", C: "~@27 a3@5",
  D: "[~ f#3@2 a3@16 f#3@21 e3@14 ~@5 a3@5]/2", E: "[f#3@2 ~ a3@15 f#3@21 e3@14 ~@11]/2",
  F: "[~@24 [b2,e3,b3]@12 ~ [c#3,f#3,c#4]@14 ~@2 [d3,a3,d4]@33 ~@2 [b2,e3,b3]@12 ~ [c#3,f#3,c#4]@14 ~@2 [d3,a3]@14 ~@2 e3@4 ~@23, ~@52 a2@33 ~@31 [a2,d4]@14 ~@2 [b2,g#3,b3,e4]@4 ~@24]/5", // E5 F#5 D5 E5 F#5 D5 E
  G: "[~@21 [a2,e3,a3,c#4]@27 ~@2 [c#3,c#4]@33 ~ [b2,e3,b3,e4]@26 ~@3 [a2,a3,d4]@33 ~ [d3,a3,d4]@13, ~@49 f#3@34 ~@29 d3@34 ~@14, ~@5 f#2@3 ~@8]/5", // A C# E5 D5
  H: "[~@3 [d3,a3,d4]@4 ~@4 [d3,a3,d4]@4 ~@4 a3@5 f#3@2 ~ a3@16 f#3@21]/2", // D5
  I: "[e3@14 ~@4 a3@5 ~ f#3@2 a3@16 f#3@8 [f#2,c#3,f#3]@3 ~@2 [f#2,c#3,f#3]@3 ~@3 c#3@3, ~@60 [f#2,f#3]@3 ~]/2", // F#5 F#
  J: "~@2 [e2,b2,e3]@7 ~@23", // E5
  K: "[~@16 [b2,e3,b3]@12 ~ [c#3,f#3,c#4]@14 ~@2 [d3,a3,d4]@34 ~ [b2,e3,b3]@12 ~ [c#3,f#3]@14 ~ [a2,d3,a3,d4]@14 ~@2 [b2,e3,g#3,b3,e4]@4, ~@44 a2@33 ~@15 c#4@14 ~@22]/4", // E5 F#5 D5 E5 F#5 D5 E
  L: "[~@13 [a2,e3,a3,c#4]@27 ~@2 [f#3,c#4]@34 ~ [b2,e3,b3,e4]@27 ~ [a2,d3,a3,d4]@34 ~ [d3,a3,d4]@16 [d3,a3,d4]@4, ~@42 [f#2,c#3]@31 ~@87]/5", // A F#5 E5 D5 F#5
  M: "[~@2 [d3,a3,d4]@4 ~ [d3,a3,d4]@4 ~ a3@27 ~@2 f#3@30 ~@5 a3@27 ~@2 f#3@30 ~@4 a3@27 ~@2 f#3@21 ~@3]/6", // D5
  N: "[f#3@3 a3@5 a3@56]/2",
  O: "[~@10 [b2,e3,b3]@11 ~@2 [c#3,f#3,c#4]@14 ~@2 [d3,a3]@34 [b2,e3,b3]@12 ~ [c#3,f#3,c#4]@14 ~@2 [a2,d3,a3,d4]@34 ~ [b2,e3,b3]@11 ~@2 [c#3,f#3]@14 ~ [a2,d3,a3,d4]@34 ~ [b2,e3,b3]@11 ~@2 [c#3,f#3,c#4]@14 ~ [a2,d3,a3,d4]@14 ~@2 [b2,e3,g#3,b3,e4]@4 ~@8, ~@38 [a2,d4]@33 ~@78 c#4@14 ~@93]/8", // E5 F#5 D5 E5 F#5 D5 E5 F#5 …
  P: "~@5 [a2,e3,a3,c#4]@27", Q: "[~@2 [c#3,c#4]@33 ~ [b2,e3,b3,e4]@27 ~, ~ f#3@34 ~@29, ~ f#2@15 ~@16]/2",
  R: "~ [a2,a3,d4]@31, d3", S: "~@4 [a2,e3,a3,c#4]@27 ~", T: "~ [c#3,c#4]@31, [f#2,f#3]", U: "~@3 [b2,e3,b3,e4]@27 ~@2",
  V: "[a2,d3,a3,d4]", W: "~@3 [d3,a3,d4]@6 ~@2 [d3,a3,d4]@6 ~@2 [e3,a3,e4]@4 ~ [d3,b3,d4]@4 ~ [f#3,a3,c#4]@3",
  X: "[~@2 [a2,e3,a3,c#4]@95 ~@2 [a2,e3,a3,c#4,e4]@6 ~@23]/4", // A
})).s("gm_overdriven_guitar").gain(0.22)

// chords · synth strings 1
const synth_strings_1 = note(`<
  ~@22 A@6 B@6 C@8 D@5 E ~@6 F G@8 H@8 I@5 J ~@7 K@7 L ~@9 M N O@2 P Q R S T U V@2 ~@2
>`.pickRestart({
  A: "[~@26 [c#4,a4]@45 [b3,g#4]@18 [e4,c#5]@32 d5@18 d5 ~@2 c#5 ~@2 b4 ~ c#5 ~@2 d5 ~@2 [c#4,e4,a4]@39, ~@26 e4@63 a4@63 ~@40, ~@121 f#4@31 ~@40]/6", // F#m E C#m A
  B: "[~@6 [b3,g#4]@18 [e4,c#5]@29 ~ f#4@33 ~ [b3,e4,g#4]@11 ~@2 [c#4,f#4,a4]@13 ~@3 [d4,f#4,a4]@33 ~@2 [b3,e4,g#4]@11 ~@2 [c#4,f#4,a4]@13 ~@3 [d4,f#4,a4]@11, ~@8 a4@21 ~@35, ~@53 d5@34 ~@105]/6", // E C#m E F#m D E F#m D
  C: "[~@5 [b3,e4,g#4]@2 ~@17 [c#4,a4]@45 [b3,g#4]@18 ~ [c#4,a4]@44 [b3,g#4]@18 ~ [c#4,a4]@44 [b3,g#4]@18 ~ [c#4,e4,a4]@42, ~@24 e4@63 ~ e4@63 e4@62 ~@43]/8", // E F#m E F#m E F#m E A
  D: "[~@2 [b3,g#4]@18 ~ [a3,c#4,e4]@27 ~@2 [a3,c#4,f#4]@32 ~@2 [b3,e4,g#4]@27 ~@2 [a3,d4,f#4]@33 ~ [d3,a3,d4,f#4]@2 ~@6 [d3,a3,d4,f#4]@2 ~@3]/5", // E A F#m E D
  E: "~@3 [d3,a3,d4,f#4]@2 ~@6 [d3,a3,d4,f#4]@2 ~@19", F: "~@17 a4@8 g#4@7",
  G: "[~ [f#4,a4]@8 [e4,g#4]@8 e4@32 f#4@15 g#4@8 a4@7 ~ [c#4,e4,a4]@27 ~@3 a4@33 ~ [b3,e4,g#4]@11 ~@2 [c#4,f#4,a4]@13 ~@3 [d4,f#4,a4]@33 ~@2 [b3,e4,g#4]@11 ~@2 [c#4,f#4,a4]@13 ~@3 [d4,f#4,a4]@14 ~@2 [b3,e4,g#4]@2 ~, ~@17 c#5@63 ~@176, ~@17 a4@47 e4@15 ~@30 [d4,f#4]@33 ~@114]/8", // F#m E A E F#m D E F#m …
  H: "[~@15 [c#4,a4]@45 [b3,g#4]@18 ~ [c#4,a4]@45 [b3,g#4]@18 ~ [c#4,a4]@44 [b3,g#4]@18 ~ [c#4,a4]@45 [b3,g#4]@5, ~@15 e4@63 ~ e4@63 ~ e4@63 e4@50]/8", // F#m E F#m E F#m E F#m E
  I: "[~@13 [a3,c#4,e4]@27 ~@2 [a3,c#4,f#4]@32 ~@3 [b3,e4,g#4]@27 ~@2 [a3,d4,f#4]@33 ~ [d3,a3,d4,f#4]@2 ~@6 [d3,a3,d4,f#4]@2 ~@6 [d3,a3,d4,f#4]@2 ~@2]/5", // A F#m E D
  J: "~@2 [d3,a3,d4,f#4]@2 ~@3 [d3,a3,d4,f#4]@2 ~@23", // D
  K: "[~@10 [b3,e4,g#4]@11 ~@2 [c#4,f#4,a4]@13 ~@3 [d4,f#4,a4]@33 ~ [b3,e4,g#4]@11 ~@2 [c#4,f#4,a4]@13 ~@3 [d4,f#4,a4]@33 ~@2 [b3,e4,g#4]@11 ~@2 [c#4,f#4,a4]@13 ~@3 [d4,f#4,a4]@33 ~ [b3,e4,g#4]@11 ~@2 [c#4,f#4,a4]@11]/7", // E F#m D E F#m D E F#m …
  L: "~@5 [d4,f#4,a4]@13 ~@2 [b3,e4,g#4]@2 ~@10", // D E
  M: "~@5 [d3,a3,d4]@2 ~@3 [d3,a3,d4]@2 ~@4 [a3,d4]@2 ~@3 [e3,b3,e4]@7 ~ e3 ~ f#3, ~@15 d3@2 ~@15", // D5 E5
  N: "~@2 a3 ~@2 [a3,c#4,e4]@26 ~", O: "[~@2 [a3,c#4,f#4]@33 ~ [b3,e4,g#4]@26 ~@2]/2", P: "~ [d4,f#4,a4]@31",
  Q: "~@2 [a3,c#4,e4]@13 ~", R: "~ [a3,c#4,f#4]@31", S: "~@3 [b3,e4,g#4]@26 ~@3", T: "[d4,f#4,a4]",
  U: "~@3 [d3,d4,f#4,a4]@4 ~@4 [d3,d4,f#4,a4]@4 ~@4 [d3,d4,f#4,a4]@3 ~@2 [d3,e4,g#4,b4]@3 ~@3 a2@2, ~@29 [d4,f#4,a4]@3", // D E7 D
  V: "[~@2 [a2,a3,c#4,e4]@61 ~]/2", // A
})).s("gm_synth_strings_1").gain(0.23)

// other · string ensemble 1
const string_ensemble_1 = note("<~@22 A@6 B@8 C@6 D@5 E ~@7 F@2 G@7 ~@12 H ~@7 I@8 ~@9 J K@8 L M@3 ~>".pickRestart({
  A: "[~@26 c#5@45 b4@18 c#5@31 ~ d5@18 d5 ~@2 c#5 ~@2 b4 ~ c#5 ~@2 d5 ~@2 c#5@30 ~@2 c#5@7]/6",
  B: "[~@6 b4@18 c#5@29 d5@32 ~@3 e6@63 ~ e6@50 ~@14 c#6@40]/8",
  C: "[~@5 g#5@18 ~ e5@30 ~ a5@12 ~ g#5@17 ~@2 c#6@44 g#5@18 ~ e5@30 ~ a5@11]/6",
  D: "[~@2 g#5@17 ~@2 e5@28 ~ e5@33 ~ e5@26 ~@3 a5@32 ~@2 a5@4 ~@2 f#5@2 a5@2 ~ a5@2]/5",
  E: "f#5@2 ~ a5@4 ~@4 b5@3 ~@18", F: "[~ a4@7 ~ b4@7 ~ c#5@30 ~@2 c#5@15]/2",
  G: "[c#5@6 ~@2 d5@7 ~ a4@28 ~@2 d5@30 ~@4 e6@63 ~ e6@50 ~@30]/7", H: "~@12 f#5 ~@19",
  I: "[~@10 e6@62 ~ e6@63 ~ e6@62 ~ e6@50 ~@6]/8", J: "~@5 a5@3 ~@2 g#5@3 ~@2 f#5@3 ~@3 e5@4 ~ e5@2 ~ e5 ~ f#5",
  K: "[~@2 a5 ~@2 e6@63 ~@40 [a5,c#6]@6 ~@2 [e5,a5]@7 ~ [a5,c#6]@6 ~@2 e6@63 e6@61, ~@17 e6@16 ~@31]/8", // A A5 A
  L: "~@3 a5@5 ~@3 a5@4 ~@4 c#6@3 ~@2 b5@3 ~@2 a5@3", M: "[~ c#4@45 ~@2]/3",
})).s("gm_string_ensemble_1").gain(0.33)

// chords · brass section
const brass_section = note(`<
  ~@6 A@3 B C ~@7 D E@2 F@2 ~@7 G@2 H@3 ~@12 I J@3 K ~@7 L@2 M@3 ~@11 N ~@8 O@2 P@4 Q@2 ~@23
>`.pickRestart({
  A: "[~@31 [c#5,e5,a5]@2 ~@11 [c#5,e5,a5]@3 ~@8 [c#5,a5]@24 [b4,g#5]@15 [c#5,e5,a5]@2, ~@55 e5@39 ~@2]/3", // A F#m E A
  B: "~@12 [c#5,e5,a5]@3 ~@5 c5@2 c#5@2 ~ e5@2 ~ f#5@2 [c#5,e5,a5]@2", // A
  C: "~@4 [c#5,e5,a5]@3 ~@2 [c#5,e5,a5]@3 ~@2 [e5,g#5]@3 ~@15", D: "~@27 [c#5,e5,a5]@2 ~@3",
  E: "[~@8 [c#5,e5,a5]@3 ~@8 [c#5,a5]@24 [b4,g#5]@15 ~ [c#5,e5,a5]@2 ~@3, ~@19 e5@39 ~@6]/2", // A F#m E A
  F: "[~@8 [c#5,e5,a5]@3 ~@7 [e5,f#5,b5]@6 [c#5,e5,a5]@15 [b4,e5,g#5]@18 ~@7, ~@18 a5 ~@45]/2", // A Esus2 A E
  G: "[~@3 e5 ~ f#5 ~@2 a5 ~@2 f#5 ~ e5 ~@2 a5 ~@2 f#5 ~ e5 ~@2 [b4,e5]@12 ~ [c#5,f#5]@14 ~@13]/2", // E5 F#5
  H: "[~@24 [b4,e5]@12 ~ [c#5,f#5]@14 ~@2 e6@23 ~@20]/3", I: "~@19 [c#5,e5,a5]@2 ~@11",
  J: "[[c#5,e5,a5]@3 ~@8 [c#5,a5]@23 [b4,g#5]@15 ~ [c#5,e5,a5]@2 ~@11 [c#5,e5,a5]@3 ~@5 c5@3 c#5@2 ~ e5@2 f#5@2 ~ [c#5,e5,a5]@3 ~@2 [c#5,e5,a5]@3 ~@2 [c#5,e5,a5]@3 ~, ~@11 e5@39 ~@46]/3", // A F#m E A
  K: "~@2 [e5,g#5]@3 ~@27", L: "[~@3 a4@2 b4@3 c#5 ~@2 e5 ~ f#5 ~@2 [b4,e5]@12 ~ [c#5,f#5]@14 ~@21]/2",
  M: "[~@16 [b4,e5]@12 ~ [c#5,f#5]@14 ~@2 e6@23 ~@28]/3", N: "~ [a4,a5] ~@3 [a4,a5] ~@2",
  O: "[~@10 [b4,e5]@12 ~ [c#5,f#5]@14 ~@27]/2", P: "[~@9 [b4,e5]@12 ~ [c#5,f#5]@14 ~@28]/2",
  Q: "[~@8 [b4,e5]@12 ~ [c#5,f#5]@14 ~@29]/2", // E5 F#5
})).s("gm_brass_section").gain(0.32)

// other · alto sax
const alto_sax = note(`<
  ~@6 A@3 B C ~@7 D E@2 F@2 ~@7 G@4 ~@13 H I@3 J ~@7 K@4 ~@13 L@3 M N O P Q@2 ~@3 R@2 S ~@24
>`.pickRestart({
  A: "[~@31 a4@2 ~@11 a4@2 ~@9 f#4@23 e4@15 ~ a4@2]/3", B: "~@12 a4@2 ~@6 c4@2 c#4@2 ~ e4@2 ~ f#4@2 f#4@2",
  C: "~@4 f#4@3 ~@2 f#4@3 ~@2 e4@4 ~@14", D: "~@27 a4@2 ~@3", E: "[~@8 a4@2 ~@9 f#4@24 e4@15 ~ a4@2 ~@3]/2",
  F: "[~@8 a4@2 ~@9 b4@5 f#4@15 e4@17 ~@8]/2", G: "[~@24 g#4@12 ~ a4@13 ~@14]/2", H: "~@19 a4@2 ~@11",
  I: "[a4@2 ~@9 f#4@23 e4@15 ~ a4@2 ~@11 a4@2 ~@6 c4@3 c#4@2 ~ e4@2 f#4@2 ~ f#4@3 ~@2 f#4@3 ~@2 f#4@3 ~]/3",
  J: "~ e4@2 ~@13", K: "[~@16 g#4@12 ~ a4@13 ~@22]/2",
  L: "[~@8 c#5@2 d5 e5 f#5@37 e5@2 ~ e5@5 c#5 ~@2 e5@9 ~@4 a4 ~@2 c#5@5 c#5@3 d5@5 d#5@2 ~ e5@3 ~, ~@3 a4 ~@44, ~@7 b4@2 ~@87]/3",
  M: "~ c5@3 b4@5 a4@10 ~ f#4@4 ~ e4 ~@2 a4@4", N: "~ f#4@6 ~@10 a4 ~ f#5@4 ~@2 f#5@2 e5@5",
  O: "~ c#5@2 e5@7 ~ c5@6 ~@2 c5@2 ~ b4@2 a4 ~@2 b4@5",
  P: "a4@2 g4 f#4 d4@2 ~@10 c5@3 c#5@2 e5@2 ~ f#5 ~@2 a5@5, ~@4 e4 ~@27", Q: "[~@3 c#6@5 e6@52 ~@4]/2",
  R: "[~@9 g#4@12 ~ a4@13 ~@29]/2", S: "~@8 g#4@12 ~ a4@11",
})).s("gm_alto_sax").gain(0.46)

// chords · percussive organ
const percussive_organ = note(`<
  ~@3 A@7 B ~@7 C@4 D@6 E@6 F@8 G@5 H@4 I ~@7 J@4 K@8 L@5 M@7 N@8 O ~@10 P Q@2 R@2 S T U V W@3 X
>`.pickRestart({
  A: "[[c#5,a5]@47 ~ b4@14 ~ [c#5,e5,a5]@31 ~ [a4,c#5,a5]@12 ~ [b4,e5,g#5]@17 ~@2 [c#5,a5]@47 ~ b4@14 ~ [c#5,e5,a5]@31 ~ [a4,c#5,a5]@2, e5@63 ~@64 e5@63 ~@34, ~@47 g#5@14 ~@113 g#5@14 ~@36]/7", // F#m A E F#m A
  B: "~@4 [a4,c#5,a5]@2 ~@3 [a4,c#5,a5]@2 ~@3 [b4,e5,g#5]@3 ~@15", // A E
  C: "[~@27 [c#5,a5]@48 [b4,g#5]@14 ~@2 [c#5,e5,a5]@30 ~ [a4,c#5,a5]@6, ~@27 e5@63 ~@38]/4", // F#m E A
  D: "[~@7 [b4,e5,g#5]@17 ~@2 [c#5,a5]@47 [b4,g#5]@14 ~@2 [c#5,e5,a5]@31 ~ [d5,f#5,a5]@30 ~@2 [c#5,e5,a5]@39, ~@26 e5@63 ~@103]/6", // E F#m E A D A
  E: "[~@9 b4@14 ~ [c#5,e5,a5]@28 ~@2 f#5@33 ~ [b4,e5,g#5]@12 ~ [c#5,f#5,a5]@14 ~@2 [a4,d5,f#5]@34 ~ [b4,e5,g#5]@12 ~ [c#5,f#5,a5]@14 ~@2 [a4,d5,f#5]@11, ~@8 g#5@14 ~@31 [d5,a5]@34 ~@105]/6", // A E F#m D E F#m D D5
  F: "[~@5 [b4,e5,g#5]@4 ~@15 [c#5,a5]@48 [b4,g#5]@14 ~@2 [c#5,e5,a5]@30 ~ [a4,c#5,a5]@12 ~ [b4,e5,g#5]@17 ~@2 [c#5,a5]@47 [b4,g#5]@14 ~@2 [c#5,e5,a5]@30 ~ [a4,c#5,a5]@11, ~@24 e5@63 ~@64 e5@62 ~@43]/8", // E F#m E A E F#m E A
  G: "[~@2 [b4,e5,g#5]@17 ~@2 [a4,c#5,e5]@27 ~@2 [a4,c#5,f#5]@33 ~ [b4,e5,g#5]@26 ~@3 [a4,d5,f#5]@34 [a4,d5,f#5]@5 ~@3 [a4,d5,f#5]@5]/5", // E A F#m E D
  H: "[~@3 [d5,f#5,a5]@5 ~@3 [d5,f#5,b5]@4 ~@4 [c#5,a5]@47 [b4,g#5]@14 ~@2 [c#5,e5,a5]@31 ~ [a4,c#5,a5]@2 ~@3 [a4,c#5,a5]@2 ~@4 [a4,c#5,a5]@2 ~, ~@19 e5@63 ~@46]/4", // D Bm F#m E A
  I: "~@2 [b4,e5,g#5]@3 ~@27", // E
// … 425 more lines

More by Boyzone