Strudelify

Domino

Van Morrison

KeyB♭ majorTempo139 bpm
0:00/0:00
// Domino — Van Morrison
// 139 bpm, 4/4, key A# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 3 "Muted Gt." electric guitar muted (copy of ch 2 "Clean Gt." electric guitar clean)
// note: Full arrangement: all 99 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(139/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 · electric bass finger · "Fingered Bs."
const bass = note(`<
  ~@4 A B@16 C D E@2 C D E@2 C D E@2 F G H I F G J K L ~@3 M@2 N@2 O@5 P Q P R S T B U B V@7 W@5 X Y Z AA AB AC@8 AD AE
  AF AG AH AI AJ@2 AK AL@2
>`.pickRestart({
  A: "~@7 f2", B: "bb2@3 bb2@2 ~@4 eb2@6 eb2@3 g2@3 a2@3", C: "bb2@2 ~ bb1@3 d2@3 eb2@5 ~ eb2@3 g2@3 a2@3",
  D: "bb2 bb1 d2 eb2@2 eb2 g2 a2", E: "bb2@3 bb1@3 d2@3 eb2@5 ~ eb2@3 g2@3 a2@3", F: "c2!2 d2!2 eb2!2 e2!2",
  G: "f2!2 g2!2 ab2!2 a2!2", H: "bb2@3 bb2@2 ~@4 bb2@3 eb2@3 eb2@3 g2@3 a2@3", I: "bb2 bb1 ~ d2 eb2!2 d2 db2",
  J: "bb2@3 bb2@2 ~@4 bb2@3 eb2@2 ~ eb2@3 g2@3 bb2@3", K: "bb1!2 ~ d2 eb2!2 g2 a2", L: "bb1 ~@7",
  M: "[~@2 bb1@5 ~@4 db2@3 d2@3 f2@3 g2@3 bb2@3 ~@3 bb2@3 ~@3 g2@3 bb2@6 d3@4]/2",
  N: "[~@2 bb1@5 ~@4 db2@3 d2@3 f2@3 g2@3 bb2@3 ~@3 bb2@3 ~@3 g2@3 bb2@4 ~@6]/2",
  O: "[~@2 bb2@2 ~ bb2@2 ~@4 eb2@5 ~ eb2@3 g2@3 a2@3 bb2@3 bb2@2 ~@4 eb2@6 eb2@3 g2@3 a2@3 bb2@3 bb2@2 ~@4 eb2@5 ~ eb2@3 g2@3 a2@2 bb2@3 bb2@2 ~@4 eb2@6 ~ eb2@3 g2@3 a2@2 bb2@2 ~ bb2@2 ~@4 eb2@5 ~ eb2@3 g2@3 a2@2]/5",
  P: "~ bb2@3 bb2@2 ~@4 eb2@6 eb2@3 g2@3 a2@2", Q: "~ bb2@3 bb2@2 ~@4 eb2@5 ~ eb2@3 g2@3 a2@2",
  R: "~ bb2@2 ~ bb2@2 ~@4 eb2@5 ~ eb2@3 g2@3 a2@2", S: "~ bb2@3 bb2@2 ~@3 eb2@6 eb2@3 ~ g2@2 a2@3",
  T: "bb2@3 bb2@2 ~@4 eb2@5 ~ eb2@3 g2@3 a2@3", U: "bb2@2 ~ bb2@2 ~@4 eb2@5 ~ eb2@3 g2@3 a2@3",
  V: "[bb2@3 bb2@2 ~@4 eb2@5 ~ eb2@3 g2@3 a2@2 bb2@3 bb2@2 ~@4 eb2@6 ~ eb2@3 g2@3 a2@2 bb2@2 ~ bb1@3 d2@3 eb2@5 ~ eb2@3 g2@3 a2@3 bb2@3 bb1@3 d2@3 eb2@5 ~ eb2@3 g2@3 a2@3 bb2@3 bb1@3 d2@3 eb2@5 ~ eb2@3 g2@3 a2@3 bb2@3 bb1@3 d2@3 eb2@5 ~ eb2@3 g2@3 a2@3 bb2@2 bb1@3 d2@3 eb2@5 ~ eb2@3 g2@3 ~ a2@2 bb2@2]/7",
  W: "~ bb1@3 d2@3 eb2@5 ~ eb2@3 g2@3 a2@3 bb2@2", X: "~ bb1@3 d2@3 eb2@5 eb2@3 g2@4 a2@2 bb2@3",
  Y: "bb1@3 d2@3 eb2@5 ~ eb2@3 g2@3 a2@3 c2@3", Z: "c2 d2!2 eb2!2 e2!2 f2",
  AA: "f2@3 g2@3 g2@3 ab2@3 ab2@2 ~ a2@3 a2@3 bb2@3", AB: "bb2@2 ~@4 bb2@3 eb2@3 eb2@3 g2@3 a2@3 bb2@3",
  AC: "[bb1@3 ~@3 d2@3 eb2@3 eb2@3 d2@3 db2@3 c2@2 c2@3 d2@3 d2@3 eb2@3 eb2@3 e2@3 e2@3 f2@3 f2@3 g2@3 g2@3 ab2@3 ab2@2 ~ a2@3 a2@3 bb2@3 bb2@2 ~@4 bb2@3 eb2@2 ~ eb2@3 g2@3 bb2@3 bb1@3 bb1@3 ~@3 d2@3 eb2@3 eb2@3 g2@3 a2@3 bb2@3 bb2@2 ~@4 bb2@3 eb2@2 ~ eb2@3 g2@3 bb2@3 bb1@3 bb1@3 ~@3 c2@3 eb2@3 eb2@3 g2@2 a2@3 ~ bb2@3 bb2@2 ~@4 bb2@2 eb2@2 ~ eb2@3 g2@3 ~ bb2@2 bb1@3 bb1@2]/8",
  AD: "~@4 d2@3 eb2@3 eb2@3 g2@3 a2@3 bb2@3 bb2@2", AE: "~@4 bb2@3 eb2@2 ~ eb2@3 g2@3 bb2@3 bb1@3 bb1@2",
  AF: "~@4 d2@3 eb2@3 eb2@3 g2@3 a2@3 bb1@5", AG: "~@4 c2@3 d2@3 f2@3 g2@3 bb2@3 ~@3 bb2@2",
  AH: "~@5 g2@3 bb2@6 d3@4 ~@2 bb1@4", AI: "~@5 c2@3 d2@3 f2@3 g2@3 bb2@4 ~@3",
  AJ: "[bb2@3 ~@3 g2@3 bb2@4 ~@8 bb1@5 ~@4 c2@3 d2@3 f2@3 g2@3 bb2@3 ~@3]/2",
  AK: "bb2@3 ~@5 bb2@6 d3@4 ~@2 bb1@4, ~@3 g2@2 ~@7",
  AL: "[~@5 c2@3 d2@3 f2@3 g2@3 bb2@3 ~@3 bb2@3 ~@2 g2@3 bb2@3 ~@14]/2",
})).s("gm_electric_bass_finger").gain(0.36)

// chords · electric guitar clean · "Clean Gt."
const electric_guitar_clean = note(`<
  ~ A B A B A B@2 C B C B@3 C B A B C B@2 D E D E D E F G F G H I J K L M J K L M N O P@7 Q@2 R S T S@3 U B A B C B V W
  X W X Y Z AA AB AA AB AC AD AE AF AG AH AI AJ AK AL AK AM AN AO AN AP AQ@2 AR AS AG AT AU@2
>`.pickRestart({
  A: "g4@2 ~@4 bb4 ~@2 eb5@9 ~@6, ~@3 g4@2 ~@3", B: "g4 ~@8 c5@10 ~@5, ~@3 eb4@2 ~@3",
  C: "g4 ~@8 eb4@6 g4@2 ~@7, ~@9 bb3@10 ~@5", D: "~@6 [bb3,d4]@2 ~@4 [c4,eb4]@3 [c4,eb4]@2 ~@4 [bb3,d4]@2 ~",
  E: "~@3 bb3@3 d4 ~@2 g3@3 g3@2 ~@4 g3@3 f3 ~@2", F: "~@6 [bb3,d4]@2 ~@4 [c4,eb4]@3 bb3@3 g3@3 f3@2 ~",
  G: "~@3 bb3@3 d4 ~@2 f3@3 g3@3 bb3 ~@2 g3@3 bb3 ~@2", H: "~@5 bb3 ~ g3@2 bb3@6 bb3@5 ~ f3 ~@2, ~@3 f3 ~@8",
  I: "~@3 g3@3 bb3 ~@2 g3@3 c4 ~@2 f3@3 g3@3 bb3 ~@2", J: "[eb3,c4] ~ [f3,d4] ~ [g3,eb4] ~ [g3,e4] ~",
  K: "[a3,f4] ~ [bb3,g4] ~ [b3,ab4] ~ [c4,a4] ~", L: "[f4,bb4] ~@2 [g4,c5]!4 [f4,bb4]", M: "~@3 [g4,c5]!4 ~",
  N: "[f4,bb4,d5]@2 ~@7 [g4,c5,eb5]@6 [g4,c5,eb5]@2 ~ [g4,c5,eb5]@3 [f4,bb4,c5,d5]@2 ~", // Bb Cm Bb
  O: "~@4 [f4,bb4,d5]@2 ~@4 [eb4,g4,c5]@5 ~ [eb4,g4,c5]@5 ~ [d4,f4,bb4]@2", // Bb Cm Bb
  P: "[~ [d4,f4,bb4] ~@8 [g4,c5,eb5]@6 [g4,c5,eb5]@2 ~ [g4,c5,eb5]@3 ~ [f4,bb4,c5,d5]@2 ~@4 [f4,bb4,d5]@2 ~@4 [eb4,g4,c5]@6 [eb4,g4,c5]@5 ~ [d4,f4,bb4]@3 [f4,bb4,d5]@2 ~@7 [g4,c5,eb5]@5 ~ [g4,c5,eb5]@2 ~ [g4,c5,eb5]@2 ~ [f4,bb4,c5,d5]@2 ~@4 [f4,bb4,d5]@2 ~@4 [eb4,g4,c5]@5 ~ [eb4,g4,c5]@5 ~ [d4,f4,bb4]@3 [d4,f4,bb4] ~@8 [g4,c5,eb5]@5 ~ [g4,c5,eb5]@2 ~ [g4,c5,eb5]@2 ~ [f4,bb4,c5,d5]@2 ~@4 [f4,bb4,d5]@2 ~@4 [eb4,g4,c5]@5 ~ [eb4,g4,c5]@5 ~ [d4,f4,bb4]@3 g4@2 ~@4 bb4 ~@2 eb5@9 ~@4, ~@155 g4@6 ~@7]/7", // Bb Cm Bb Cm Bb Cm Bb Cm …
  Q: "~@2 g4 ~@8 c5@10 ~@3, ~@11 eb4@6 ~@7", R: "~@2 g4 ~@7 eb4@6 ~ g4@2 ~@5, ~@5 bb3@5 ~@2",
  S: "~ g4 ~@8 c5@10 ~@4, ~@5 eb4@3 ~@4", T: "~ g4 ~@8 eb4@6 g4@2 ~@6, ~@5 bb3@5 ~@2",
  U: "~ g4 ~@7 eb4@6 g4@2 ~@7, ~@9 bb3@10 ~@5", V: "g4 ~@7 c5@10 ~@6, ~@4 eb4@3 ~@5",
  W: "~@5 [bb3,d4]@2 ~@4 [c4,eb4]@3 [c4,eb4] ~@5 [bb3,d4]@2 ~@2", X: "~@2 bb3@3 d4 ~@2 g3@3 g3@2 ~@4 g3@3 f3 ~@3",
  Y: "~@5 d4@2 ~@4 [c4,eb4]@3 [c4,eb4] ~@4 [bb3,d4]@2 ~@3, ~@2 bb3 ~@9", // Cm Bb
  Z: "~@2 bb3@2 d4 ~@2 g3@3 g3@2 ~@4 g3@3 f3 ~@4", AA: "~@4 [bb3,d4]@2 ~@4 [c4,eb4]@3 bb3@3 g3@3 f3@2 ~@3",
  AB: "~ bb3@3 d4 ~@2 f3@3 g3@3 bb3 ~@2 g3@3 bb3 ~@4", AC: "~@2 bb3 ~@2 g3 bb3@6 bb3@5 ~ f3 ~@5, ~@2 f3 ~@9",
  AD: "g3@3 bb3 ~@3 g3@2 c4 ~@2 f3@3 g3@3 bb3 ~@2 [eb3,c4]@3", AE: "~ [f3,d4] ~ [g3,eb4] ~ [g3,e4] ~ [a3,f4]",
  AF: "~ [bb3,g4] ~ [b3,ab4] ~ [c4,a4] ~ [f4,bb4]", AG: "~@2 [g4,c5]!4 [f4,bb4] ~", AH: "~@2 [g4,c5]!4 ~ [eb3,c4]",
  AI: "~@3 [f3,d4]@3 ~@2 [g3,eb4]@3 ~@3 [g3,e4]@3 ~@3 [a3,f4]@3 ~", // Dm Cm C Dm
  AJ: "~@2 [bb3,g4]@3 ~@3 [b3,ab4]@3 ~@3 [c4,a4]@3 ~@3 [f4,bb4]@3 ~", // Eb E F Bb5
  AK: "~@5 [g4,c5]@3 [g4,c5]@3 [g4,c5]@3 [g4,c5]@3 [f4,bb4]@3 ~@4", // C5 Bb5
  AL: "~@5 [g4,c5]@3 [g4,c5]@3 [g4,c5]@3 [g4,c5]@3 ~@3 [f4,bb4]@3 ~", // C5 Bb5
  AM: "~@5 [g4,c5]@3 [g4,c5]@3 [g4,c5]@2 ~ c5@3 ~@3 [f4,bb4]@3 ~, ~@13 g4@3 ~@8", // C5 Bb5
  AN: "~@4 [g4,c5]@3 [g4,c5]@3 [g4,c5]@3 [g4,c5]@3 [f4,bb4]@3 ~@5", // C5 Bb5
  AO: "~@4 [g4,c5]@3 [g4,c5]@3 [g4,c5]@3 [g4,c5]@3 ~@3 [f4,bb4]@3 ~@2", // C5 Bb5
  AP: "~@4 [g4,c5]@3 [g4,c5]@3 [g4,c5]@3 [g4,c5]@3 ~@3 [f4,bb4,d5]@2 ~@3", // C5 Bb
  AQ: "[~@4 [g4,c5,eb5]@6 [g4,c5,eb5]@2 ~ [g4,c5,eb5]@3 ~ [f4,bb4,c5,d5]@2 ~@4 [f4,bb4,d5]@2 ~@4 [eb4,g4,c5]@5 ~ [eb4,g4,c5]@5 ~ [d4,f4,bb4]@3 [d4,f4,bb4] ~@3]/2", // Cm Bb Cm Bb
  AR: "~@5 [g4,c5,eb5]@6 [g4,c5,eb5]@2 ~ [g4,c5,eb5]@3 ~ [f4,bb4,c5,d5]@2 ~@4", // Cm Bb
  AS: "[f4,bb4,d5]@2 ~@4 [eb4,g4,c5]@6 [eb4,g4,c5]@5 ~ [d4,f4,bb4]@3 [f4,bb4]@3", // Bb Cm Bb Bb5
  AT: "~@6 [g4,c5]@3 [g4,c5]@2 [g4,c5]@3 [g4,c5]@3 ~@3 [f4,bb4]@3 ~", // C5 Bb5
  AU: "[~@5 [g4,c5]@3 [g4,c5]@3 [g4,c5]@3 [g4,c5]@3 [f4,bb4]@3 ~@3 [f4,bb4,d5]@3 ~@2 [f4,bb4,d5]@2 ~ [f4,bb4,d5]@3 ~@14]/2", // C5 Bb5 Bb
})).s("gm_electric_guitar_clean").gain(0.3).pan(0.6)

// chords · electric guitar clean · "Clean Gt." · soft notes
const electric_guitar_clean_2 = note(`<
  ~ A B A B A B@2 C B C B@3 C B A B C B@2 ~@28 D E@2 F G H I@3 J K L B C M N ~@34
>`.pickRestart({
  A: "~ f4 ~ d4@3 d4 ~@8 g4@3 bb4 ~@2 d4 ~@2, bb4 ~@3",
  B: "~ f4 ~ d4@3 [d4,bb4] ~@2 g4@6 [eb4,g4]@2 ~ bb4 ~@2 d4 ~@2, bb4 ~@3", // Gm Eb
  C: "~ f4 ~ d4@3 [d4,bb4] ~@2 g4@6 eb4@2 ~ bb4 ~@2 d4 ~@2, bb4 ~@3", // Gm
  D: "~@3 f4 ~ d4@3 d4 ~@8 g4@3 bb4 ~@2 d4, ~ bb4@3 ~@8",
  E: "~@3 f4 ~ d4@3 [d4,bb4] ~@2 g4@6 [eb4,g4]@2 ~ bb4 ~@2 d4, ~ bb4@3 ~@8", // Gm Eb
  F: "~@3 f4 d4@3 bb4 d4 ~ g4@6 ~ eb4@2 bb4 ~@2 d4 ~, ~@2 bb4@5 ~@17",
  G: "~@3 f4 d4@3 [d4,bb4] ~@2 g4@6 [eb4,g4]@2 ~ bb4 ~@2 d4 ~, ~ bb4@6 ~@17", // Gm Eb
  H: "~@3 f4 d4@3 [d4,bb4] ~@2 g4@6 eb4@2 ~ bb4 ~@2 d4 ~, ~ bb4@6 ~@17", // Gm
  I: "~@2 f4 ~ d4@3 [d4,bb4] ~@2 g4@6 [eb4,g4]@2 ~ bb4 ~@2 d4 ~, ~ bb4@6 ~@17", // Gm Eb
  J: "~@2 f4 d4@3 bb4 d4 ~ g4@6 eb4@2 ~ bb4 ~@2 d4 ~@2, ~ bb4@5 ~@18",
  K: "~@2 f4 d4@3 [d4,bb4] ~@2 g4@6 [eb4,g4]@2 ~ bb4 ~@2 d4 ~@2, bb4 ~@3", // Gm Eb
  L: "~@2 f4 d4@3 d4 ~@8 g4@3 bb4 ~@2 d4 ~@2, bb4 ~@3",
  M: "~ f4 d4@3 ~ [d4,bb4] ~@2 g4@6 [eb4,g4]@2 ~ bb4 ~ d4 ~@3, bb4 ~@3", // Gm Eb
  N: "~ f4 d4@3 bb4 d4 ~ g4@6 [eb4,g4]@2 ~ bb4 ~@2 d4 ~@3, bb4@5 ~@19", // Eb
})).s("gm_electric_guitar_clean").gain(0.18).pan(0.6)

// chords · electric guitar clean · "Clean Gt."
const electric_guitar_clean_3 = note(`<
  ~@21 A@12 B C D@2 E F G H I J K L M L M L ~@16 N@4 O@6 P Q R S T U V W X@4 Y Z@3 AA AB AC AD T AE AF@2
>`.pickRestart({
  A: "~@6 [d4,f4,bb4] ~@11 [eb4,g4,bb4] ~@5", B: "c3@2 ~ c3@3 d3@2 ~ d3@3 eb3@3 eb3@3 e3@3 e3@3",
  C: "f3@3 f3@3 g3@2 ~@4 ab3@2 ~@4 a3@3 a3@2 ~", D: "~@6 [d4,f4,bb4] ~@11 [eb4,g4,c5] ~@5",
  E: "[c4,c5] ~ [d4,c5] ~ [eb4,c5] ~ [e4,c5] ~", F: "[f4,c5]@3 ~@3 [g4,c5]@3 ~@3 [ab4,c5]@3 ~@3 [a4,c5]@2 ~@4",
  G: "~@6 [d4,f4,bb4]@2 ~@10 [eb4,g4,c5] ~@5", H: "~@3 [d4,f4,bb4] ~@5 [eb4,g4,c5] ~@2",
  I: "~@6 f4 ~@2 [f4,bb4] ~@5 [f4,bb4] ~@2 f4 ~@2 [bb3,bb4] ~@2", // Bb5 Bb
  J: "~@4 f4 ~@2 f4 ~@2 f4 ~@5 [bb3,f4,bb4] ~@2 [bb3,f4,bb4] ~@2 [bb3,f4,bb4] ~", // Bb5
  K: "~@7 f4 ~@2 [f4,bb4] ~@5 [f4,bb4] ~@2 f4 ~@3 [bb3,bb4]", // Bb5 Bb
  L: "~@5 f4 ~@2 f4 ~@2 f4 ~@5 [bb3,f4,bb4] ~@2 [bb3,f4,bb4] ~@2 [bb3,f4,bb4]", // Bb5
  M: "~@8 f4 ~@2 [f4,bb4] ~@5 [f4,bb4] ~@2 f4 ~@2 [bb3,bb4]", N: "~@5 [d4,f4,bb4] ~@11 [eb4,g4,bb4] ~@6",
  O: "~@4 [d4,f4,bb4] ~@11 [eb4,g4,bb4] ~@7", P: "~@3 [d4,f4,bb4] ~@11 [eb4,g4,bb4] ~@8",
  Q: "~@3 [d4,f4,bb4] ~@11 [eb4,g4,bb4] ~@5 c3@2 ~", R: "c3@3 d3@2 ~ d3@3 eb3@2 ~ eb3@3 e3@3 e3@3 f3@3",
  S: "f3@3 g3@2 ~@4 ab3@2 ~@4 a3@3 a3@2 ~@4", T: "~@3 [d4,f4,bb4] ~@11 [eb4,g4,c5] ~@8",
  U: "~@3 [d4,f4,bb4] ~@11 [eb4,g4,c5] ~@5 [c4,c5]@3", // Bb Cm C
  V: "~@3 [d4,c5]@3 ~@2 [eb4,c5]@3 ~@3 [e4,c5]@3 ~@3 [f4,c5]@2 ~@2", // D7 Cm C F5
  W: "~@2 [g4,c5]@3 ~@3 [ab4,c5]@3 ~@3 [a4,c5]@2 ~@8", X: "~@2 [d4,f4,bb4] ~@11 [eb4,g4,c5] ~@9",
  Y: "~@2 [d4,f4,bb4] ~@10 [eb4,g4,c5] ~@10", Z: "~ [d4,f4,bb4] ~@11 [eb4,g4,c5] ~@10",
  AA: "~ f4 ~@2 [f4,bb4] ~@5 [f4,bb4] ~@2 f4 ~@3 [bb3,bb4] ~@5 f4", // Bb5 Bb
  AB: "~@2 f4 ~@2 f4 ~@5 [bb3,f4,bb4] ~@2 [bb3,f4,bb4] ~@2 [bb3,f4,bb4] ~@6", // Bb5
  AC: "~@2 f4 ~@2 [f4,bb4] ~@5 [f4,bb4] ~@3 f4 ~@2 [bb3,bb4] ~@5", // Bb5 Bb
  AD: "f4 ~@2 f4 ~@2 f4 ~@5 [bb3,f4,bb4] ~@2 [bb3,f4,bb4] ~@2 [bb3,f4,bb4] ~@5", // Bb5
  AE: "~@3 [d4,f4,bb4] ~@10 [eb4,g4,c5] ~@9", // Bb Cm
  AF: "[~@2 [d4,f4,bb4] ~@11 [eb4,g4,c5] ~@8 [bb3,f4,bb4]@2 ~@3 [bb3,f4,bb4]@2 ~ [bb3,f4,bb4]@3 ~@14]/2", // Bb Cm Bb5
})).s("gm_electric_guitar_clean").gain(0.4).pan(0.7)

// chords · electric guitar clean · "Clean Gt." · soft notes
const electric_guitar_clean_4 = note("<~@34 A ~@6 B C D E F E F E ~@29 G ~@11 H I J K L ~@4>".pickRestart({
  A: "~@3 g3 ~ ab3 ~@2", B: "~@3 [bb3,f4,bb4] ~@2 [bb3,bb4] ~@2 bb3 ~@5 bb3 ~@2 [bb3,bb4] ~@2 f4 ~@2",
  C: "~@4 [bb3,bb4] ~@2 [bb3,bb4] ~@2 [bb3,bb4] ~@13", // Bb
  D: "~@4 [bb3,f4,bb4] ~@2 [bb3,bb4] ~@2 bb3 ~@5 bb3 ~@2 [bb3,bb4] ~@3 f4", // Bb5 Bb
  E: "~@5 [bb3,bb4] ~@2 [bb3,bb4] ~@2 [bb3,bb4] ~@12", // Bb
  F: "~@5 [bb3,f4,bb4] ~@2 [bb3,bb4] ~@2 bb3 ~@5 bb3 ~@2 [bb3,bb4] ~@2 f4", G: "~@2 g3 ~ ab3 ~@3",
  H: "~@22 [bb3,f4,bb4] ~", I: "~ [bb3,bb4] ~@2 bb3 ~@5 bb3 ~@2 [bb3,bb4] ~@3 f4 ~@5 [bb3,bb4]",
  J: "~@2 [bb3,bb4] ~@2 [bb3,bb4] ~@17 [bb3,f4,bb4]", K: "~@2 [bb3,bb4] ~@2 bb3 ~@5 bb3 ~@3 [bb3,bb4] ~@2 f4 ~@5",
  L: "[bb3,bb4] ~@2 [bb3,bb4] ~@2 [bb3,bb4] ~@17", // Bb
})).s("gm_electric_guitar_clean").gain(0.25).pan(0.7)

// chords · brass section · "Brass 1"
const brass_section = note(`<
  ~@19 A@2 ~ B C D E@2 ~ B C D E@2 F G H@2 F G H@2 I J K L M@2 N@2 ~@14 O@2 ~ P@2 Q@3 ~ R@2 S@5 T U@3 V@3 W X@3 Y Z AA
  AB AC@5
>`.pickRestart({
  A: "[~@9 [bb3,f4]@35 ~@4]/2", B: "~@12 [bb4,eb5]@3 [bb4,d5] ~@2 [g4,c5]@3 [f4,bb4] ~@2", C: "[f4,bb4]",
  D: "~@18 [eb4,eb5]@3 [d4,d5] ~@2", E: "[[bb3,bb4]@43 ~@5]/2", F: "[c5,eb5]", G: "[c5,f5] [c5,a5]",
  H: "~@6 [f5,bb5]@2 ~@10 [eb5,g5]@3 [d5,f5] ~@2", I: "bb3@3 ~@6 c4@3 d4@3 f4@3 g4@3 bb4@2 ~",
  J: "~@3 bb4@2 ~@5 g4@3 bb4@6 d5@3 ~@2", K: "~ bb3@3 ~@6 c4@3 d4@3 f4@3 g4@3 bb4@2", L: "~@5 bb4@2 ~@4 g4@3 bb4@3 ~@7",
  M: "[~@2 bb5@33 ~@3 g5@3 f5 ~@2 d5@3 c5]/2", N: "[~@2 bb4@43 ~@3]/2", O: "[~@8 [f5,bb5]@35 ~@5]/2",
  P: "[~@11 [bb4,eb5]@3 [bb4,d5] ~@2 [g4,c5]@3 [f4,bb4] ~@2 [f4,bb4]@24 ~]/2", // Eb5 Bb C5 Bb5
  Q: "[~@16 [eb4,eb5]@3 [d4,d5] ~@2 [bb3,bb4]@42 ~@8]/3", // Eb D Bb
  R: "[~@10 [bb4,eb5]@3 [bb4,d5] ~@2 [g4,c5]@3 [f4,bb4] ~@2 [f4,bb4]@24 ~@2]/2", // Eb5 Bb C5 Bb5
  S: "[~@15 [eb4,eb5]@3 [d4,d5] ~@2 [bb3,bb4]@42 ~@6 [c5,eb5]@24 [c5,f5]@12 [c5,a5]@11 ~@4]/5", // Eb D Bb Cm F5 F
  T: "~@3 [f5,bb5]@2 ~@10 [eb5,g5]@3 [d5,f5] ~@5", // Bb5 Eb Dm
  U: "[~@3 [f5,bb5]@2 ~@10 eb5@2 [d5,f5] ~@3 [c5,eb5]@23 [c5,f5]@12 [c5,a5]@11 ~@5, ~@14 g5@3 ~@55]/3", // Bb5 Dm Cm F5 F
  V: "~@2 [f5,bb5]@2 ~@10 [eb5,g5]@3 [d5,f5] ~@6", W: "~@2 [f5,bb5]@2 ~@9 [eb5,g5]@3 [d5,f5] ~@7",
  X: "~ [f5,bb5]@2 ~@10 [eb5,g5]@3 [d5,f5] ~@7", Y: "~ [f5,bb5]@2 ~@10 [eb5,g5]@3 [d5,f5] ~@2 bb3@3 ~@2",
  Z: "~@4 c4@3 d4@3 f4@3 g4@3 bb4@2 ~@4 bb4@2", AA: "~@5 g4@3 bb4@6 d5@3 ~@3 bb3@3 ~",
  AB: "~@5 c4@3 d4@3 f4@3 g4@3 bb4@2 ~@5", AC: "[bb4@2 ~@4 g4@2 bb4@3 ~@10 bb4@35 f5@2 ~ g5@3 ~@3 bb5@41 ~@14]/5",
})).s("gm_brass_section").gain(0.59).pan(0.6)

// other · brass section · "Brass 1"
const brass_section_2 = note("<~@45 A@2 B@2 ~@45 C@5>".pickRestart({
  A: "[~@2 bb4@33 ~@3 g4@3 f4 ~@2 d4@3 c4]/2", B: "[~@2 bb3@43 ~@3]/2",
  C: "[~@21 bb3@35 f4@2 ~@2 g4@2 ~@3 bb4@40 ~@15]/5",
})).s("gm_brass_section").gain(0.59).pan(0.3)

// other · baritone sax
const baritone_sax = note(`<
  ~@35 A@2 ~@2 A@2 B C D@2 E@2 F@2 ~@16 G@4 H@6 I@2 ~ J K L ~ M N@2 O P Q@4 R S T U@5
>`.pickRestart({
  A: "bb2@3 ~@6 d2@3 eb2@3 eb2@2 ~@7", B: "bb2@3 ~@6 c3@3 d3@3 f3@3 g3@3 bb3@2 ~",
  C: "~@3 bb3@2 ~@5 g3@3 bb3@6 d4@3 ~@2",
  D: "[~ bb2@2 ~@7 c3@3 d3@3 f3@3 g3@4 bb3@2 ~@4 bb3@2 ~@4 g3@3 ~@2 f3 d3 bb2 ~@5, ~@19 bb3 ~@4, ~@39 g3@2 ~@7]/2",
  E: "[~@2 bb4@34 ~@2 g4@3 f4 ~@2 d4@3 c4]/2", F: "[~ bb3@21 ~@2]/2", G: "~@5 bb2 ~@11 bb2 ~@6",
  H: "~@4 bb2 ~@11 bb2 ~@7", I: "~@3 bb2 ~@11 bb2 ~@8", J: "~@7 bb2", K: "~@6 d2@3 eb2@2 ~ eb2@2 ~@7 bb2@3",
  L: "~@6 d2@2 eb2@2 ~ eb2@2 ~@11", M: "~@20 bb2@3 ~", N: "~@5 d2@3 eb2@2 ~ eb2@2 ~@7 bb2@3 ~",
  O: "~@5 d2@2 eb2@2 ~@2 eb2@2 ~@7 bb2@3 ~", P: "~@5 d2@2 eb2@2 ~ eb2@2 ~@8 bb2@3 ~",
  Q: "~@4 d2@3 eb2@2 ~ eb2@2 ~@7 bb2@3 ~@2", R: "~@4 c3@3 d3@3 f3@3 g3@3 bb3@2 ~@4 bb3@2",
  S: "~@5 g3@3 bb3@6 d4@3 ~@3 bb2@2 ~@2", T: "~@5 c3@3 d3@3 f3@3 g3@4 bb3@2 ~@4",
  U: "[bb3@2 ~@4 g3@2 bb3@2 ~ f3 d3 bb2 ~@7 bb2@35 ~@3 g3@2 ~@4 bb3@40 ~@15, ~@10 g3@2 ~@45 f3@4 ~@59]/5",
})).s("gm_baritone_sax").gain(0.48).pan(0.4)

// chords · piano · "Piano 2"
const piano = note(`<
  ~@21 A B A C D E F G F C F H ~@2 I J ~@2 K L ~@8 M@5 N O@2 P N Q R S T S U@4 V@2 W X Y Z AA AB AC ~ AD AE AF ~ AG AH@4
  AI AJ AK AL ~@6 AM@2
>`.pickRestart({
  A: "[bb3,d4]@3 bb2@2 ~@4 [bb3,eb4]@6 eb3@3 [bb3,eb4]@3 eb3@2 ~", B: "[bb3,d4]@3 bb2@2 ~@10 eb3@3 [bb3,eb4]@2 ~ eb3@3",
  C: "~@3 [bb3,d4]@2 ~@4 bb2@2 ~@4 eb3@3 [bb3,eb4]@2 ~ eb3@2 ~", // Bb Eb5
  D: "[bb3,d4]@3 bb2@2 ~@4 [bb3,eb4]@6 eb3@3 [bb3,eb4]@3 eb3@3", E: "[bb3,d4]@3 bb2@4 ~@8 eb3@3 [bb3,eb4]@2 ~ eb3@3",
  F: "[bb3,d4]@3 bb2@3 ~@3 [bb3,eb4]@6 eb3@3 [bb3,eb4]@3 eb3@2 ~", // Bb Eb5
  G: "~@3 [bb3,d4]@2 ~@4 bb2@2 ~@4 eb3@3 [bb3,eb4]@2 ~ eb3@3", H: "~@3 [bb3,d4]@2 ~@4 bb2@2 ~@4 eb3@3 [bb3,eb4]@2 ~@4",
  I: "[bb3,d4] ~ bb2 ~ [bb3,eb4] eb3 ~@2", J: "~@3 [bb3,d4]@2 ~@4 bb2@3 [bb3,eb4]@4 ~@2 eb3@3 ~@3",
  K: "[bb3,d4]@3 ~@3 bb2@3 ~@3 [bb3,eb4]@3 eb3@4 ~@5", L: "~@3 [bb3,d4]@3 ~@3 bb2@3 [bb3,eb4]@4 ~@8",
  M: "[~@2 [bb2,d4]@2 ~@4 [f3,bb3,d4]@3 eb2@5 ~@7 eb2@3 [bb2,d4]@2 ~@4 [f3,bb3,d4]@3 eb2@5 ~@7 eb2@3 [bb2,d4]@2 ~@4 [f3,bb3,d4]@3 eb2@5 ~@7 eb2@3 [bb2,d4]@2 ~@4 [f3,bb3,d4]@3 eb2@5 ~ eb2@3 ~@3 eb2@3 [bb2,d4]@2 ~@3 [f3,bb3,d4]@3 eb2@5 ~@7 eb2@2, ~@2 [f3,bb3] ~@2 bb2@5 ~ [g3,c4,eb4]@8 ~ [g3,c4,eb4]@6 [f3,bb3] ~@2 bb2@5 ~ [g3,c4,eb4]@8 ~ [g3,c4,eb4]@6 [f3,bb3] ~@2 bb2@5 ~ [g3,c4,eb4]@8 ~ c4@7 ~@45, ~@17 eb2@5 ~@13 bb3 ~@5 eb2@5 ~@19 eb2@5 ~@7 bb2@5 ~@18 bb2@5 ~@7 eb2@5 ~@3, ~@68 [g3,eb4]@5 ~ [f3,bb3] ~@8 [g3,c4,eb4]@8 ~ [g3,c4,eb4]@6 [f3,bb3] ~@7 [g3,c4,eb4]@8 ~ [g3,c4,eb4]@5]/5", // Bb Bb5 Cm Bb5 Cm Bb5 Cm Bb5 …
  N: "~ [bb2,d4]@2 ~@4 [f3,bb3,d4]@3 eb2@5 ~@7 eb2@2, ~ [f3,bb3] ~@2 bb2@5 ~ [g3,c4,eb4]@8 ~ [g3,c4,eb4]@5, ~@10 bb3 ~@5 eb2@5 ~@3", // Bb Bb5 Cm
  O: "[~ [bb2,d4]@2 ~@4 [f3,bb3,d4]@3 eb2@5 ~@7 eb2@3 [bb2,d4]@2 ~@4 [f3,bb3,d4]@3 eb2@5 ~ eb2@3 ~@3 eb2@2, ~ [f3,bb3] ~@2 bb2@5 ~ [g3,c4,eb4]@8 ~ c4@7 ~@22, ~@16 eb2@5 ~@7 bb2@5 ~@15, ~@19 [g3,eb4]@5 ~ [f3,bb3] ~@8 [g3,c4,eb4]@8 ~ [g3,c4,eb4]@5]/2", // Bb Bb5 Cm Bb5 Cm
  P: "~ [bb2,d4]@2 ~@4 [f3,bb3,d4]@3 eb2@5 ~@7 eb2@2, ~ [f3,bb3] ~@2 bb2@5 ~ [g3,c4,eb4]@8 ~ [g3,c4,eb4]@5, ~@16 eb2@5 ~@3", // Bb Bb5 Cm
  Q: "[bb2,d4]@2 ~@4 [f3,bb3,d4]@3 eb2@5 ~@7 eb2@3, [f3,bb3] ~@3 bb2@5 [g3,c4,eb4]@8 ~ [g3,c4,eb4]@6, ~@15 eb2@5 ~@4", // Bb Bb5 Cm
  R: "[bb2,d4]@2 ~@4 [f3,bb3,d4]@3 eb2@5 ~ eb2@3 ~@3 eb2@3, [f3,bb3] ~@2 bb2@5 ~ [g3,c4,eb4]@8 ~ [g3,c4,eb4]@6", // Bb Bb5 Cm
// … 129 more lines

More by Van Morrison