Strudelify

Baby Can I Hold You Tonight

Boyzone

KeyC majorTempo74 bpm
0:00/0:00
// Baby Can I Hold You Tonight — Boyzone
// 74 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 61 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(74/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 · viola
const viola = note("<~@15 A@3 B C@2 D E F ~@7 G H ~@2 G H ~@7 I J@2 ~@3 I K@3 L@4 M@3>".pickRestart({
  A: "[~@2 f4@3 e4 d4@4 d4@2]/3", B: "c4@7 ~ c4@8", C: "[b3 e4@2 [c4,c5]]/2", D: "[b3,b4]@3 g3", E: "g4@3 f4", F: "e4",
  G: "~@2 [c4,f4] [a3,e4]", H: "[g3,d4]@15 ~", I: "~ a4", J: "[b4@4 c5@4 d5@15 ~@9]/2",
  K: "[b4@4 c5@4 d5@15 ~ e3@15 ~ g3@4 f3@4, ~@40 f3 ~@7]/3", L: "[c3@4 d3@3 ~ e3@15 ~ g3@4 f3@4, ~@8 d3 ~@15 f3 ~@7]/2",
  M: "[c3@4 d3@5 e3@25 ~@14]/3",
})).s("gm_viola").gain(0.32).pan(0.7)

// other · piano
const piano = note("<~@7 A ~@8 B C ~@6 D@2 E F ~@13 G@2 H@2 ~@2 G@2 H@2 ~@10>".pickRestart({
  A: "a3 b3 g3 ~", B: "~@2 a3 b3", C: "g3 ~@3", D: "[e4@2 d4@2 c4 a3@2 g3@5 f3@3 e3@3 g3@2 ~@12]/2",
  E: "e4@2 d4@2 c4 a3@2 g3@5 f3@3 e3", F: "f3 e3@3 ~@12", G: "[~@8 e4@2 d4@2 c4 a3@2 g3@5 f3@3 e3@3 g3@2 ~@4]/2",
  H: "[~@8 e4@2 d4@2 c4 a3@2 g3@5 f3@3 e3 f3 e3@3 ~@4]/2",
})).s("gm_piano").gain(0.05)

// bass · electric bass finger
const bass = note(`<
  ~@4 A B C D A B C E@3 F G H I F G J K L M N M O P Q M R S T U V S T W X Y@2 Z AA Z AB AC AD Z AA Z AB AE AF AG AH AI
  AH AJ AK@3
>`.pickRestart({
  A: "c2", B: "g2 g1", C: "d2@15 ~", D: "g1@8 g2@7 ~",
  E: "[f1@8 g1@12 ~ d2 g2@6 ~ e2 ~ d2@3 ~ g1 c2@2 d2@2 c2@5 ~ c2 ~]/3", F: "c2@7 ~ g1@5 ~ g1 ~",
  G: "g1@5 ~ c2@2 d2@5 ~ d2 ~", H: "d2@3 d1 g1@4", I: "~@2 d2@2 g2@3 ~ c2@5 ~ c2 ~", J: "d2@7 ~ f1@7 ~",
  K: "g1@6 d2@2 g2@7 ~", L: "a2@2 c3 g2@7 e2@2 d2@4", M: "c2@6 ~ g1 c2 ~ c2@5 ~", N: "d2@6 ~ e2 f2 ~ f1@5 g1",
  O: "d2@6 ~ e2 f2 ~ f1@2 ~ f1 g1@2", P: "a1@6 ~ g1 a1 ~ a1@5 ~", Q: "g1@2 ~ g1 d2 g1 g2@2 ~ g2 ~@2 g2 e2 d2 ~",
  R: "d2@5 ~ e2@2 f2@4 g1@4", S: "c2@2 ~ c2 ~ g1 c2@2 c2@7 ~", T: "g2@2 ~ g2 ~ d2 g2 ~ g2@2 ~ d2 g2 ~ g1@2",
  U: "d2@3 d2 ~ c2 e2@2 d2@7 ~", V: "g1@2 ~ g1 ~ d2 g1@2 ~ g1 ~ d2 g2 d2 g1 ~", W: "d2@3 d2 ~ c2 e2@2 d2@5 ~ d2 e2",
  X: "f2@7 ~ g1@2 ~ g1 ~@2 g1@2", Y: "[~@2 g1 d2 g2@3 ~ g2@3 g2 ~@2 g2@9 ~ c2@6 ~ g1]/2", Z: "c2 ~ c2@5 ~ d2@6 ~ e2",
  AA: "f2 ~ f1@5 g1 c2@6 ~ g1", AB: "f2 ~ f1@2 ~ f1 g1@2 a1@6 ~ g1", AC: "a1 ~ a1@5 ~ g1@2 ~ g1 d2 g1 g2@2",
  AD: "~ g2 ~@2 g2 e2 d2 ~ c2@6 ~ g1", AE: "a1 ~ a1@5 ~ g1@2 ~ g1 d2 ~ g2@2",
  AF: "~ g2 ~@2 g2 e2 d2 ~ c2@2 ~ c2 ~ g1 c2 d2", AG: "c2@5 ~ c2 ~ d2@3 d2 ~@2 e2@2",
  AH: "f2@2 ~ f2!2 g1@2 g1 c2@2 ~ c2 ~ g1 c2 d2", AI: "c2@5 ~ c2 c#2 d2@3 d2 ~@2 e2@2",
  AJ: "c2@5 ~ c2 c#2 d2@3 d2 ~@2 d2 e2", AK: "[f2@3 ~ g1@4 ~ c2@26 ~@13]/3",
})).s("gm_electric_bass_finger").gain(0.52)

// bass · electric bass finger · soft notes
const bass_soft = note("<~@28 A B C ~ D ~@3 D ~ E D ~@6 F ~@4 E F G ~@7>".pickRestart({
  A: "~@10 d2 g1 ~@4", B: "~@9 g1 ~@6", C: "~@5 d2 ~@10", D: "~@13 d2 ~@2", E: "~@13 g1 ~@2", F: "~@2 d2 g1 ~@12",
  G: "~@7 c#2 ~@8",
})).s("gm_electric_bass_finger").gain(0.32)

// chords · string ensemble 2
const string_ensemble_2 = note("<~@11 A ~ B@8 C D E ~@7 F@2 G@2 F@2 H I@7 J@6 K@3 L@4 M@3>".pickRestart({
  A: "[f4,g4,c5] ~", // Fsus2
  B: "[~@8 e4@15 ~ d4@15 ~ f4@12 e4@4 ~@12 f4@4 e4@16 d4@16 [c4,e4]@12 e4@3 ~ [a3,e4,a4,c5]@8, ~@8 g4@31 ~ g4@28 ~@60, ~@7 d4@2 ~@7]/8", // C Am
  C: "[d4,g4,b4]@3 g3", D: "g4@3 f4", E: "e4", F: "g4/2", G: "[[d4,f4]@3 e4 ~@2 b3@2, ~@3 c4@3 ~@2, ~@16 d4@15 ~]/2",
  H: "[d4,f4]@3 [c4,e4]", I: "[[a3,c4]@8 [b3,d4]@30 ~@2 g4@31 ~ g4@31 ~ a4@8, g4@19 ~@37]/7",
  J: "[b4@4 c5@4 d5@16 g4@31 ~ g4@31 ~ a4@8]/6", K: "[b4 c5 d5@4 e4@4 g4 f4, ~@40 f4 ~@7]/3",
  L: "[c4 d4 e4@4 g4 f4, ~@24 f4 ~@7]/2", M: "[c4@4 d4@5 c4@26 ~@13]/3",
})).s("gm_string_ensemble_2").gain(0.33).pan(0.4)

// chords · french horn
const french_horn = note(`<
  ~ A B C D E F G D E F ~ H@2 ~@5 I@2 ~@2 D J D J K L M N O ~ P Q R@2 S T@6 U V W@2 X@2 U V W@2 X@4 Y@3
>`.pickRestart({
  A: "f3@2 g3 ~", B: "~ [c4,e4,c5]", C: "[c4,d4,c5] [b3,d4,b4]", D: "[c4,e4]@15 ~", E: "[c4,d4]@7 ~ [b3,d4]@7 ~",
  F: "[f3,g3,c4]@5 ~ [f3,g3,c4]@9 ~", G: "[g3,c4]@8 [g3,b3]@7 ~", H: "[b3@8 c4@15 ~@9]/2", I: "[~ [c4,e4]@2 ~]/2",
  J: "[d4,f4]@8 [c4,f4]@7 ~", K: "a3@7 ~ b3@3 ~ c4@3 ~", L: "d4@7 ~ e4@3 ~ f4@3 ~", M: "[c4,e4]",
  N: "[a3,d4]@6 [g3,e4]@2 [f3,a3,f4]@4 [g3,b3,g4]@3 ~, f3@4 ~@2 e3 ~@9", O: "[g3,c4]", P: "[a3,d4]",
  Q: "c4@8 b3@7 ~, g3@15 ~", R: "[c4@3 b3, g4]/2", S: "[c4,f4]@12 [c4,e4]@3 ~",
  T: "[[a3,e4]@8 g3@12 g3@4 g4@15 ~ [c4,e4]@16 d4@8 c4@7 ~ [c4,e4]@15 ~ [d4,f4]@8, ~@8 d4@32 ~@16 f4@15 ~@25]/6", // A5 C Dm
  U: "[c4,f4]@7 ~ a3@7 ~", V: "b3@3 ~ c4@3 ~ d4@7 ~", W: "[e4@3 ~ f4@3 ~ [c4,e4]@15 ~ [d4,f4]@8]/2",
  X: "[[c4,f4]@7 ~ [c4,e4]@15 ~ [d4,f4]@8]/2", Y: "[[c4,f4]@9 [g3,c4]@25 ~@14]/3",
})).s("gm_french_horn").gain(0.21)

// other · french horn
const french_horn_2 = note("<~ A B@2 C ~@3 C ~@3 D@4 E@5 F@2 G@4 H I J@2 C ~@6 K L M@5 N O@5 N P@6 Q@3>".pickRestart({
  A: "~@12 g3@3 ~", B: "[g4@31 ~]/2", C: "g4", D: "[d4@7 ~ f4@15 ~ g4@31 ~ f4@8]/4",
  E: "[~@4 e4@4 d4@15 ~ g4@31 ~ f3@16 c4@8]/5", F: "[g3@31 ~]/2", G: "g4/2", H: "a3@7 ~ b3@3 ~ c4@3 ~",
  I: "d4@7 ~ e4@3 ~ f4@3 ~", J: "[~ g3 g4@6]/2", K: "f3@4 g3@4 a3@4 b3@3 ~", L: "c4@4 d4@3 ~ e4@4 f4@4",
  M: "[g4@7 ~ g4@32 g4@32 a3@7 ~]/5", N: "b3@3 ~ c4@3 ~ d4@7 ~", O: "[e4@3 ~ f4@3 ~ g4@32 g4@32 a3@7 ~]/5",
  P: "[e4@3 ~ f4@3 ~ g4@32 g4@32 g4@16 g4@8]/6", Q: "[f4@9 e4@26 ~@13]/3",
})).s("gm_french_horn").gain(0.33).pan(0.3)

// chords · acoustic guitar nylon
const acoustic_guitar_nylon = note(`<
  A@4 B C D E F C G@2 H@2 I@2 J@2 K@3 L M N ~ N ~ O ~@3 P Q R@2 P Q S ~@2 T@4 U@2 T@4 U@2 V@2 W@2 X@2 Y ~@2
>`.pickRestart({
  A: "[~@10 c4 d4 [g3,b3]@4, c3!2 ~@2, ~ g3@4 g3@3 ~ f3@3 ~@4, ~ c4@2 c4 c4 ~@3, ~@3 e4@2 ~@2 e4@2 ~@7]/2", // G
  B: "d4 e4 ~@4 e4@4 ~@4 c4@2, ~ g4@3 ~ c3@3, ~@3 g3", C: "g3 ~ c4 d4 g3!2 b3 d4, c4 ~ b3 ~, ~ f3@3 ~@4",
  D: "~@2 f3@2 ~@2 [c4,e4]@9 ~, c4@3 ~@5, ~ g3@3", E: "c4 ~@3 c4@2 d4@2 b3@7 ~, ~ d4@3 ~@12, ~ g3@2 ~@5",
  F: "d4 e4 ~@2 d4@2 e4@4 ~@4 c4@2, ~ g4@3 ~@2 g3@2",
  G: "[~@2 f3@2 ~@2 [c4,e4]@9 ~ e4@7 ~@5 a3@4, c4@3 ~@9 b3@2 ~@2, ~@4 g3@10 ~ [g3,a3]@8 ~@3 g3@6]/2", // C Gsus2
  H: "[~@4 a3@4 ~@4 d4@2 f4@2 d4@7 ~ d4 e4 g4 d4@2 c4 a3@2, b3 ~ f4 ~@5, ~@2 g3@6 ~@2 g3@13 ~@9]/2",
  I: "[g3@8 ~@2 c4 d4@2 ~ g3@2 f3@7 ~@2 a3 d4 e4 f4 e4 d4 c4, ~@9 f3@4 c4@10 ~@9]/2",
  J: "[~@2 a3@5 ~ d4@14 ~@2 d4 e4 g4 d4@2 c4 a3@2, ~@7 g3@15 ~@10]/2",
  K: "[g3@8 ~@2 c4 d4@2 ~ g3@2 ~@8 e4!2 ~ e4!2 ~ [c4,e4]@9 ~ e4@7 ~, ~@9 f3@4 c4@10 ~ [c4,f4]@7 ~@17, ~@26 f3@2 g3@10 ~ [g3,a3]@8 ~]/3", // C F5 Gsus2
  L: "~ a3 ~ a3, b3 ~ b3 ~, ~ g3@3 ~ g3@3", M: "~@4 d4@2 f4@2 d4@7 ~, f4 ~@3, ~@2 g3@13 ~",
  N: "~@3 g4@12 ~, g3, ~ c4@14 ~, ~@2 d4@13 ~", O: "~@4 d4 g4 ~ g4 d4@7 ~, ~@3 c4@12 ~",
  P: "d4 e4 g4 d4@2 c4 a3 g3@8 ~", Q: "~@2 c4 d4@2 ~ g3@2 g3@7 ~, ~ f3@4 c4@10 ~",
  R: "[~ a3 d4 e4 f4 e4 d4 c4 ~@2 a3@5 ~ d4@14 ~@2, ~@15 g3@15 ~@2]/2", S: "~ a3 d4 e4 f4 e4 d4 c4 ~ c4 a3@5 ~",
  T: "[~@11 g4@12 ~@9, ~ g3@2 ~, ~@9 c4@14 ~@9, ~@10 d4@13 ~@9]/2", U: "[~@12 d4 g4 ~ g4 d4@7 ~@9, ~@11 c4@12 ~@9]/2",
  V: "[~@10 c5 e5@2 c5 e5@2 ~ e5@2 ~ e5@2 ~ e5 g5@2 ~ g5@2 ~ g5@2, ~ g3@2 ~, ~@8 e5@2 d4@13 ~@9, ~@9 c4@14 ~@9, ~@11 g4@12 ~@9]/2",
  W: "[d5 g5@2 ~ g5@2 ~@4 c5 e5@2 c5 e5@2 c5 e5@2 ~ e5@2 ~ e5 g5@2 ~ g5@2 ~ g5@2, ~ g3@2 ~, ~@8 e5@2 d4@13 ~@9, ~@9 c4@14 ~@9, ~@11 g4@12 ~@9]/2",
  X: "[d5 g5@2 ~ g5@2 ~@5 e5@2 c5 e5@2 c5 e5@2 ~ e5@2 ~ e5 g5@2 ~ g5@2 ~ g5@2, ~ g3@2 ~, ~@8 e5@2 d4@13 ~@9, ~@9 c4@14 ~@9, ~@11 g4@12 ~@9]/2",
  Y: "d5 g5@2 ~ g5@2 ~@10",
})).s("gm_acoustic_guitar_nylon").gain(0.36).pan(0.4)

// chords · acoustic guitar nylon · soft notes
const acoustic_guitar_nylon_2 = note("<~@4 A ~@2 B C ~@7 D@2 ~ E ~@13 F@2 ~@18 G H I J I H ~@2>".pickRestart({
  A: "~@2 d4 ~@5", B: "~@7 g3@8 ~", C: "~@5 c3@3", D: "[~ c4 ~@5 f3@15 ~@10]/2", E: "f3@7 ~@9",
  F: "[~@9 c4 ~@5 f3@15 ~@2]/2", G: "c5 ~@2 c5 ~@2 c5 ~@6 d5 ~@2", H: "~@6 d5 ~@9", I: "~@3 c5 ~@2 c5 ~@6 d5 ~@2",
  J: "~@6 d5 ~@3 c5 ~@5",
})).s("gm_acoustic_guitar_nylon").gain(0.18).pan(0.4)

// other · electric guitar muted
const electric_guitar_muted = note(`<
  ~@13 A B A B A B A B ~@2 C ~ C ~ D E C ~ F ~ F ~ F ~ F ~@2 A G A G A H I G A G A H I G A G A G ~@3
>`.pickRestart({
  A: "~@11 c4 ~ c4 a3 g3", B: "c4!2 a3 ~ g3@4 ~@8", C: "~@3 c4 ~ c4 a3 g3 c4!2 a3 ~ c4@2 a3 g3",
  D: "~@3 c4 ~ c4 a3 g3 c4!2 a3 ~ g3@3 ~", E: "[g4,d5]@2 d5 [g4,d5] ~ g4 [g4,d5] g4 ~ g4 [g4,d5] g4 [g4,d5]@2 d5 g4",
  F: "~@3 c4 ~ c4 a3 g3 c4!2 a3 ~ g3@4", G: "c4!2 a3 ~ c4@2 a3 g3 ~@8",
  H: "c4!2 a3 ~ g3@3 ~ [g4,d5]@2 d5 [g4,d5] ~ g4 [g4,d5] g4", I: "~ g4 [g4,d5] g4 [g4,d5]@2 d5 g4 ~@3 c4 ~ c4 a3 g3",
})).s("gm_electric_guitar_muted").gain(0.29).pan(0.7)

// chords · synth strings 1
const synth_strings_1 = note("<~@10 A B@3 ~@9 C D C D E F C D ~@9 G@8 H@8 I@5>".pickRestart({
  A: "[f3,g3,c4]", B: "[[g3,a3,d4] [b3,d4,g4]@4 ~]/3", C: "[c4,e4]", D: "d4 c4, f4", E: "c4 e4, a3", F: "[g3,d4]",
  G: "[~ [c4,e4]@2 d4 c4 [c4,e4]@2 d4 c4!2 e4 [g3,d4]@2 [c4,e4]@2 [d4,f4], ~@3 f4@2 ~@2 f4@2 a3@2 ~@5]/8", // C G5 C Dm
  H: "[c4 [c4,e4]@2 d4 c4!2 e4 [g3,d4]@2 [c4,e4]@2 d4 c4 [c4,e4]@2 [d4,f4], ~@3 f4@2 a3@2 ~@4 f4@2 ~@3]/8", // C G5 C Dm
  I: "[c4@8 [c4,e4]@16 d4@8 c4@9 [c4,e4]@26 ~@13, ~@24 f4@17 ~@39]/5", // C
})).s("gm_synth_strings_1").gain(0.12)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  A@4 B C D E B C F ~@2 G H@2 I@2 ~ J ~@2 K L ~ L ~ M ~@3 N O P Q R S T U V W@2 X@2 Y@2 X@4 Y@2 X@6 ~@3
>`.pickRestart({
  A: "[~@10 c4 d4 [g3,b3]@4, c3!2 ~@2, ~ g3@4 g3@3 ~ f3@3 ~@4, ~ c4@2 c4 c4 ~@3, ~@3 e4@2 ~@2 e4@2 ~@7]/2", // G
  B: "d4 e4 ~@2 d4@2 e4@4 ~@4 c4@2, ~ g4@3 ~ c3@3, ~@3 g3", C: "g3 ~ c4 d4 g3!2 b3 d4, c4 ~ b3 ~, ~ f3@3 ~@4",
  D: "~@2 f3@2 ~@2 [c4,e4]@9 ~, c4@3 ~@5, ~ g3@3", E: "c4 ~@3 c4@2 ~@2 b3@7 ~, ~ d4@3 ~@2 d4@3 ~@7, ~@2 g3@4 ~ g3@8 ~",
  F: "[e4,f4] e4 f4 [e4,f4] e4 f4 [e4,f4] ~@9", G: "~@8 d4 e4 g4 d4@2 c4 a3@2",
  H: "[g3@8 ~@2 c4 d4@2 ~ g3@2 f3@7 ~@2 a3 d4 e4 f4 e4 d4 c4, ~@9 f3@4 c4@10 ~@9]/2",
  I: "[~ c4 a3@5 ~ d4@14 ~@10, ~@7 [f3,g3]@15 ~@10]/2", J: "~@8 e4!2 ~ e4!2 ~ e4 ~, ~@8 f4@7 ~",
  K: "f4@3 ~ f4@2 d4@2 c4@7 ~", L: "~@3 g4@12 ~, g3, ~ c4@14 ~, ~@2 d4@13 ~",
  M: "~@4 d4 g4@2 ~ d4@7 ~, ~@3 c4@12 ~, ~@7 g4@2 ~@7", N: "e5 ~ e5!2 ~ e5 e5@2 e5!2 ~ e5 g5 f5 e5@2",
  O: "d5@2 d5!2 ~ d5 d5@2 ~ d5 ~ d5 d5@2 e5@2", P: "f5@2 f5!2 ~ f5!2 ~ f5 f5@2 ~ f5@2 e5@2",
  Q: "d5 ~ d5!2 ~ d5!2 ~ d5!2 ~ d5 d5@2 d5 c5", R: "e5@2 ~ e5 ~ e5 e5@2 e5 e5@2 e5 g5 f5 e5@2",
  S: "d5 ~ d5 d5@2 d5 d5@2 ~ d5 ~ d5 d5@2 e5 ~", T: "[e5,f5] ~@2 f5@2 f5!2 ~ f5 f5@2 f5 f5@2 f5 ~",
  U: "e5 ~ e5 e5@2 ~ e5!2 d5@2 d5 d5@2 d5 d5@2", V: "~ d5 ~ d5 d5@2 d5!2 d5@2 d5 d5@2 d5 d5@2",
  W: "[d5 d5@2 ~ d5@2 d5!2 ~@3 g4@12 ~@9, ~ g3@2 ~, ~@9 c4@14 ~@9, ~@10 d4@13 ~@9]/2",
  X: "[~@11 g4@12 ~@9, ~ g3@2 ~, ~@9 c4@14 ~@9, ~@10 d4@13 ~@9]/2",
  Y: "[~@12 d4 g4@2 ~ d4@7 ~@9, ~@11 c4@12 ~@9, ~@15 g4@2 ~@15]/2",
})).s("gm_acoustic_guitar_steel").gain(0.16).pan(0.4)

// chords · lead 3 calliope
const lead_3_calliope = note(`<
  ~@7 A ~@8 B C ~@2 D@2 ~@2 E F G H I ~@2 J K H L J M N O ~@2 P@2 Q@2 R S@5 R T U@4 V ~@3
>`.pickRestart({
  A: "a4 ~@3", B: "~@2 a4 b4", C: "g4 ~@3", D: "[~@10 e5 f5 e5@2 ~ [d5,g5] [d5,g5] ~ [b4,d5]@6 ~@8, ~@7 c5@2 ~@7]/2",
  E: "e5@2 d5@2 c5 a4@2 g4@5 f4@3 e4", F: "e4@2 g4 ~@13", G: "e5@2 d5@2 c5 a4@2 g4@5 f4@2 ~@2", H: "a3@2 b3 c4",
  I: "d4 ~", J: "~@2 [d4,f4] [c4,e4]", K: "d4@3 ~, g3 ~", L: "[g3,d4]@15 ~", M: "g3 b3, d4@3 ~, c4 ~@15",
  N: "[a3,f4,a4] [b3,e4,g4] [c4,a4] [d4,g4], ~ f4", O: "f3 g3 ~@2",
  P: "[~@8 e5@2 d5@2 c5 a4@2 g4@5 f4@3 e4 e4@2 g4 ~@5]/2",
  Q: "[~@8 e5@2 d5@2 c5 a4@2 g4@5 f4@2 ~ [e4,c5] [f4,d5] [e4,c5] [e4,c5]@2 ~@4, ~@3 a3]/2", R: "b3 c4 d4@2",
  S: "[~@4 [f4,g4,g5]!2 [f4,f5] ~@8 c5@2 a4@2 g4@2 [f4,a4] [e4,g4]@2 e5@2 d5@2 c5 a4@2 g4@5 f4@3 e4 e4@2 g4 ~@4 c5@2 a4@2 g4@2 [f4,a4] [e4,g4]@2 e5@2 d5@2 c5 a4@2 g4@5 f4@2 ~ [e4,c5] [f4,d5] [e4,c5] [e4,c5]@2 ~@4, ~@15 e5 ~ d5 ~ c5 ~@27 e5 ~ d5 ~ c5 ~@20 a3@8]/5", // Fsus2 F Em F Em C Dm C
  T: "~@4 [f4,g4,g5]!2 f4@2 ~@7 [e4,g4], ~@6 f5 ~@9", // Fsus2 Em
  U: "~ [e4,g4] [d4,f4] [c4,e4] [e4,g4]@2 [d4,f4] [c4,e4] ~@7 [e4,g4]", // Em Dm C Em Dm C Em
  V: "~ [e4,g4] [d4,f4] [c4,e4] [e4,g4]@2 [d4,f4] [c4,e4] ~@8", // Em Dm C Em Dm C
})).s("gm_lead_3_calliope").gain(0.33)

// chords · piano
const piano_2 = note("<~@23 A B C D E F G H I J K L I M K ~@2 N@2 O@2 P@4 O@2 P@4 Q@4 R@3>".pickRestart({
  A: "[g3,c4,e4]@11 ~ [c4,e4] d4 c4 ~, ~@12 g3@3 ~", B: "[f3,a3,d4] [f3,g3,c4]",
  C: "[g3,c4,e4]@11 ~ [c4,e4] d4 c4 ~, ~@3 g3", D: "[f3,a3,d4]@7 ~ [f3,g3,c4]@8", E: "[a3,c4,e4]@15 ~",
  F: "[g3,b3,d4]@15 ~", G: "[g3,c4,e4]@15 ~",
  H: "[a3,d4,f4]@5 ~ e4@2 [a3,f4]@3 ~ [b3,d4,g4]@3 ~, ~@3 c4@3 ~@2, ~@6 g3 ~@9", I: "~@7 g4, [g3,c4,e4]@7 ~, ~@3 g5",
  J: "~@2 d5@4 d5@5 ~@3 [c5,e5]@2, [g3,f4]@15 ~", K: "[d5,f5]@2 ~ [d5,f5] ~@2 [d5,f5]@6 ~@4, [a3,d4,f4]@15 ~",
  L: "~@6 c5 d5, [g3,c4]@15 ~", M: "~@2 d5@4 d5@5 ~@3 [c5,e5]@2, [g3,c4,f4]@15 ~",
  N: "[~@8 [g3,c4,e4]@11 ~ [c4,e4] d4 c4 ~ [f3,a3,d4]@8, ~@20 g3@3 ~@9]/2", // C Dm
  O: "[[f3,g3,c4]@8 [g3,c4,e4]@11 ~ [c4,e4] d4 c4 ~ [f3,a3,d4]@7 ~, ~@5 g3 ~@2]/2", // Fsus2 C Dm
  P: "[[f3,g3,c4]@8 [a3,c4,e4]@15 ~ [g3,b3,d4]@15 ~ [g3,c4,e4]@11 ~ [c4,e4] d4 c4 ~ [f3,a3,d4]@8, ~@52 g3@3 ~@9]/4", // Fsus2 Am G C Dm
  Q: "[[f3,g3,c4]@8 [g3,c4,e4]@11 ~ [c4,e4] d4 c4 ~ [f3,a3,d4]@8, ~@20 g3@3 ~@9]/2", // Fsus2 C Dm
  R: "[[f3,g3,c4]@9 [g3,c4,e4]@25 ~@14]/3", // Fsus2 C
})).s("gm_piano").gain(0.31).pan(0.3)

// chords · piano · soft notes
const piano_soft = note("<~@30 A ~ B C D ~ E C ~@23>".pickRestart({
  A: "~@5 a3 ~@10", B: "~ c5 ~@10 [b4,d5]@2 ~@2, [c4,d4]@15 ~", C: "~@2 [c5,e5] ~@2 [c5,e5] ~@10",
  D: "~@5 g4 ~@2, d4@15 ~", E: "~ c5 ~@10 [b4,d5]@2 ~@2, d4@15 ~",
})).s("gm_piano").gain(0.17).pan(0.3)

// chords · acoustic guitar steel
const acoustic_guitar_steel_2 = note(`<
  ~@10 A@2 B@2 ~@5 C@2 D E F G F G H I J K L M N O L M N P Q R@2 S@2 T@4 S@2 T@4 S@4 U@3
>`.pickRestart({
  A: "[~@2 f3@2 ~@2 [c4,e4]@9 ~ e4@7 ~@5 a3@4, c4@3 ~@9 b3@2 ~@2, ~@4 g3@10 ~ [g3,a3]@8 ~@3 g3@6]/2", // C Gsus2
  B: "[~@4 a3@4 ~@4 d4@2 f4@2 d4@7 ~@9, b3 ~ f4 ~@5, ~@2 g3@6 ~@2 g3@13 ~@9]/2",
  C: "[~@10 f3@2 ~@2 [c4,e4]@9 ~ e4@7 ~, ~@4 c4@3 ~@9, ~@12 g3@10 ~ [g3,a3]@8 ~]/2", // C Gsus2
  D: "~ a3 ~ a3, b3 ~ b3 ~, ~ g3@3 ~ g3@3", E: "~@4 d4@2 f4@2 d4@7 ~, f4 ~@3, ~@2 g3@13 ~",
  F: "[e3,g3,c4,e4]@2 [e3,g3,c4,e4]!2 [e3,g3,c4,e4]@2 [e3,g3,c4,e4] ~ [c4,e4] [e3,g3,c4,e4] [g3,c4,e4] [e3,g3,c4,e4]!5, ~@7 [e3,g3,c4,e4]@2 ~@7", // C
// … 118 more lines

More by Boyzone