Strudelify

Relight My Fire

Dan Hartman

KeyD minorTempo121 bpm
0:00/0:00
// Relight My Fire — Dan Hartman
// 121 bpm, 4/4, key D minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 111 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(121/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.

// chords · piano · "A.PIANO 3"
const piano = note(`<
  ~ A B A B C D E F G H I H J K L A B A M A N O P Q R S T U V W V X Y Z F G H AA F G H I H J K L A B A B A N O P Q R AB
  AC AD AE AD AF AG AH AI AJ AK AL AM AN AO@2 AP@2 AQ@2 AR@2 AS AT AU AV AW AX AY AV AZ BA AB AC AD AC AB BB BC BD ~@4
  BE BF AB AC AD AC AB AC AD BG
>`.pickRestart({
  A: "[f3,bb3,d4]@2 ~@2 [g3,c4,e4]@2 ~@2 [a3,d4,f4]@2 ~@2 [c4,e4,g4]@2 ~ [d4,f4,a4]", // Bb C Dm C Dm
  B: "~@2 [e4,g4,c5] ~ [e4,g4,c5] ~ [e4,g4,c5] ~ [e4,g4,c5]@2 ~ [f4,a4,d5] ~@4", // C Dm
  C: "[f3,bb3,d4]@2 ~@2 [g3,c4,e4]@2 ~@2 [a3,d4,f4]@2 ~@2 [c4,e4,g4] ~ [c4,e4,g4]@2", // Bb C Dm C
  D: "~@2 [d4,f4,a4] ~ [d4,f4,a4]@2 ~@2 [d4,f4,a4]@2 ~@2 [d4,f4,a4]@2 ~@2", // Dm
  E: "[d4,f4,a4]@2 ~@2 [d4,f4,a4]@2 ~@2 [d7,e7] [a6,b6,c7] [e6,f6,g6] [a5,b5,c6,d6] [d5,e5,f5,g5] [g4,a4,b4,c5] [b3,c4,d4,e4,f4] [g3,a3]", // Dm Dsus2 Am Em D7 Em7 Cmaj7 Bdim …
  F: "[a3,f4] ~@2 [g3,c4,e4] ~@2 [a3,d4,f4] ~ [g3,e4] ~@2 [a3,d4,f4] ~@2 [g3,c4,e4] ~, d4 ~@3 c4 ~@3", // Dm C Dm C Dm C
  G: "[g3,b3,d4] ~@2 [g3,b3,d4] ~@4 [g3,bb3,c4,f4] ~@2 [g3,bb3,c4,f4] ~@4", // G Gm7
  H: "[a3,f4] ~@2 [g3,c4,e4] ~@2 [a3,d4,f4] ~ [g3,c4,e4] ~@2 [a3,d4,f4] ~@2 [g3,c4,e4] ~, d4 ~@7", // Dm C Dm C Dm C
  I: "[g3,d4,f4] ~@2 [g3,bb3,d4,f4] ~@4 [g3,a3,c4,e4] ~@2 [g3,a3,c4,e4] ~@4, bb3 ~@7", // G7 Gm7 Am7
  J: "[g3,b3,d4]@2 ~ [g3,b3,d4] ~@4 [g3,c4,f4] ~@2 [g3,bb3,c4,f4] ~@4, ~@4 bb3 ~@3", // G Csus4 Gm7
  K: "[a3,d4]@2 ~ [g3,c4,e4] ~@2 [a3,d4,f4] ~ [g3,c4]@2 ~ [a3,d4,f4] ~@2 [g3,c4,e4] ~, f4 ~@7 e4 ~@7", // D5 C Dm C5 Dm C
  L: "[g3,bb3,d4]@2 ~ [g3,bb3,d4,f4] ~@4 [a3,c4,e4,g4]@2 ~ [a3,c4,e4,g4] ~@4, f4 ~@15", // Gm Gm7 Am7
  M: "~@2 [e4,g4,c5] ~ [e4,g4,c5] ~ [e4,g4,c5] ~ [e4,g4,c5]@2 ~ [f4,a4,d5] e5 [a4,d5] f4 ~", // C Dm D5
  N: "~@2 [e4,g4,c5] ~ [e4,g4,c5] ~ [e4,g4,c5] ~ [e4,g4,c5]@2 ~ [f4,a4,d5] ~ [a4,d5] f4 ~", // C Dm D5
  O: "[bb3,c4,f4,a4]@2 ~@2 [bb3,c4,f4,a4]@2 ~@2 [bb3,c4,f4,a4] ~@3 [bb3,f4,a4]@2 ~@2, ~@12 c4 ~@3", // F Bbmaj7
  P: "[c4,d4,f4,a4]@2 ~@2 [c4,d4,f4,a4]@2 ~@2 [a3,c4,e4,g4] ~ [a3,c4,e4,g4] ~@3 [c4,g4]@2, ~@14 [a3,d4] ~", // Dm7 Am7 C5 D5
  Q: "~@2 [a3,c4,d4,g4] ~ [a3,c4,d4,g4] ~@3 [a3,c4,d4,g4] ~ [a3,c4,g4] ~@3 [a3,d4,gb4,a4]@2, ~@5 d4 ~@2", // Am7 D
  R: "~@2 [d4,gb4,a4] ~ [d4,gb4,a4] ~ [d4,gb4,a4] ~ [d4,gb4,a4] ~ [d4,gb4,a4] ~ [d4,gb4,a4] ~ [d4,gb4,a4] ~", // D
  S: "[f3,bb3,d4]@3 [f3,bb3,d4] ~@4 [g3,c4,e4]@2 ~ [g3,c4,e4] ~@2 [g3,c4,e4]@2", // Bb C
  T: "~@2 [a3,c4,d4,f4] ~ [a3,c4,d4,f4]@2 ~@2 [a3,c4,d4,f4]@2 ~@2 [a3,c4,d4]@2 ~@2, ~@12 f4 ~@3", // Dm7 D7
  U: "[f3,bb3,d4]@2 ~ [f3,bb3,d4] ~@4 [g3,c4,e4]@3 [g3,c4,e4] ~@2 [g3,c4,e4]@2", // Bb C
  V: "~@2 [a3,c4,d4,f4] ~ [a3,c4,d4,f4]@2 ~@2 [a3,c4,d4,f4]@2 ~@2 [a3,c4,d4,f4]@2 ~@2", // Dm7
  W: "[f3,bb3,d4]@3 [f3,bb3,d4] ~@4 [g3,c4,e4]@3 [g3,c4,e4] ~@2 [g3,c4,e4]@2", X: "[g3,b3,d4,f4]",
  Y: "~@2 [g3,b3,d4,f4]@3 ~ [g3,b3,d4,f4] ~ [g3,b3]@2 ~@2 [a3,c4,f4] ~ [a3,d4,f4] ~, ~@8 [d4,f4] ~@7", // G7 G F Dm
  Z: "~@4 [e3,g3,c4] ~ [f3,a3,d4] ~@7 [f3,a3,d4]@2", // C Dm
  AA: "[g3,d4] ~@2 [g3,b3,d4] ~@4 [g3,bb3,c4,f4] ~ [g3,bb3,c4,f4] ~ [g3,bb3,c4,f4] ~ [g3,bb3,c4,f4] ~, b3 ~@7", // G5 G Gm7
  AB: "g1@2 g2 ~ g1@2 a2 ~ a1@2 a2 ~ c2@2 [c2,g3,a3,c4,e4]@2, [f3,bb3,d4]@5 ~@3 [g3,c4,e4]@4 ~@4", // Am7 Bb C
  AC: "~@2 [d3,a3,c4,d4,f4] ~ [a3,c4,d4,f4]!2 c3 ~ [a3,c4,d4,f4] ~ a2 [a3,c4,d4,f4] g1@2 [g2,a3,c4,d4,f4] ~, ~@2 d2 ~ a1 ~@3", // Dm7
  AD: "[g1,f3,g3,bb3,d4]@2 g2 [f3,g3,bb3,d4] g1@2 a2 ~ [a1,g3,a3,c4,e4]@2 a2 [g3,a3,c4,e4] c2@2 [c2,g3,a3,c4,e4]@2", // Gm7 Am7
  AE: "~ f4 [d3,a3,c4,d4,f4] ~ [a3,c4,d4,f4]!2 c3 ~ [a3,c4,d4,f4] ~ a2 [a3,c4,d4,f4] g1@2 [g2,a3,c4,d4,f4] ~, ~@2 d2 ~ a1 ~@3", // Dm7
  AF: "~@2 [d3,a3,c4,d4,f4] ~ [a3,c4,d4,f4]!2 c3 ~ [a1,a3,c4,d4,f4]@2 a2 ~ [a1,a3,c4,d4,f4]@2 a2 ~, ~@2 d2 ~@5", // Dm7
  AG: "[g3,b3,d4,f4]@3 ~ [g3,b3,d4,f4]@3 ~ [g3,b3,d4,f4]@4 [g3,b3,d4,f4]@4, g1@15 ~", // G7
  AH: "~ [g2,g3,b3,d4,f4] g1 [g2,g3,b3,d4,f4] g1 [g2,g3,b3,d4,f4] g1 [g2,g3,b3,d4,f4], g1 ~@3", // G7
  AI: "~ g2 [g1,g3,b3,d4,f4] g2 [g1,g3,b3,d4,f4] g2 g1 g2, g1 ~@2 [g3,b3,d4,f4]", // G7
  AJ: "g1@2 [g2,g3,b3,d4,f4]@3 ~ [g3,b3,d4,f4]@2 [b3,d4,f4]@2 [b3,d4,f4]@2 [f2,a3,c4,f4] ~ [d2,d3,a3,d4,f4] ~, ~@6 ab1 ~ g3@4 f3@2 ~@2, ~@8 [g1,g2] ~@7", // G7 Bdim F Dm G
  AK: "~@2 [d2,d3,a3,c4,d4,f4] ~ [d2,d3,a3,c4,d4,f4]@2 ~@2 [d2,d3,a3,c4,d4,f4]@2 ~@2 [d2,d3,a3,c4,d4,f4]@2 ~@2", // Dm7
  AL: "[d2,d3,a3,c4,d4,f4]@2 ~@2 [d2,d3,a3,c4,d4,f4]@2 ~@2 [a3,c4,d4,f4] ~ [a3,c4,d4,f4] ~ [a3,c4,d4,f4] ~ [a3,c4,d4,f4] ~, ~@4 d2 d3 d2 d3", // Dm7
  AM: "[d2,a3,c4,d4,f4] ~@7", // Dm7
  AN: "~@4 [d2,d3,c4]@2 ~@2 [b3,e4,g4]@2 ~ [b3,eb4,e4,g4] ~@2 [b3,e4,g4] ~, ~@4 [a3,d4,f4] ~@3 eb4 ~@7", // D7 Em Dm
  AO: "[[b3,e4,g4] [c4,f4,a4] ~@2 [a3,d4]@2 ~@2 [f3,a3,d4]@11 ~ [d2,d3,a3,c4,d4,f4]@2 ~@2 eb4 e4@2 [b3,e4,g4] ~@2 [b3,e4,g4] ~, ~@4 f4@15 ~@5 [b3,g4]@3 ~@5]/2", // Em F D5 Dm Dm7 Em
  AP: "[[a3,d4,f4]!2 ~@2 [a3,c4,d4,f4]@16 [d2,d3,a3,c4,d4,f4]@2 ~@2 [b3,eb4,e4,g4] ~@2 [b3,e4,g4] ~@2 [b3,e4,g4] ~]/2", // Dm Dm7 Em
  AQ: "[[a3,d4,f4] [a3,c4,d4,f4] ~@2 [a3,c4,d4,f4]@16 ~@4 [b3,e4,g4]@2 ~ [b3,e4,g4] ~@2 [b3,e4,g4] ~, ~@24 eb4 ~@7]/2", // Dm Dm7 Em
  AR: "[[a3,c4,d4,f4]!2 ~@2 [a3,c4,d4,f4]@16 ~@4 [b3,e4,g4]@3 [b3,e4,g4] ~@2 [b3,e4,g4] ~, ~@24 eb4 ~@7]/2", // Dm7 Em
  AS: "[b3,d4,e4,g4] [a3,c4,d4,f4] ~@2 [a3,c4,d4,f4]@8 ~@2 d4@2", // Em7 Dm7
  AT: "[d3,d4] d4@2 d3 d4 d4@2 d3 d4 d4@2 ~ [d7,e7] [a6,b6,c7] [e6,f6,g6] [a5,b5,c6,d6]", // D Dsus2 Am Em D7
  AU: "[d2,a3,d4,f4]@2 d3 [a3,d4,f4] ~ [a3,d4,f4] c3 ~ [a3,d4,f4]!2 d3 [a3,d4,f4] c2@2 [f1,a3] ~, g5 ~@3 c2@2 ~@2 d2@2 ~@6", // Dm F
  AV: "[g1,g3,bb3,d4]@2 g2 [g3,bb3,d4,f4] g1@2 ab2 ~ [a3,d4,e4,g4] ~ a2 [a3,d4,e4,g4] c2@2 c3 ~, f4 ~@7 a1@2 ~@6", // Gm Gm7 Asus4
  AW: "[d2,d4,f4]@2 d3 [a3,d4,f4] c2@2 [c3,a3] ~ [a3,d4,f4]!2 d3 [a3,d4,f4] a1@2 [f1,a3] ~, a3 ~@7 d2@2 ~@6", // Dm F Dm F
  AX: "[g1,g3,bb3,d4]@2 g2 [g3,bb3,d4,f4] g1@2 ab2 ~ [a1,a3,e4]@2 a2 [a3,d4,e4,g4] c2@2 c3 ~, f4 ~@7 [d4,g4] ~@7", // Gm Gm7 A5 Asus4 G5
  AY: "[d2,a3,d4,f4]@2 d3 [a3,d4,f4] c2@2 [c3,a3] ~ [d2,d4]@2 d3 [a3,d4,f4] a1@2 [f1,a3] ~, ~@8 [a3,f4] ~@7", // Dm F D Dm F Dm
  AZ: "d2@2 [d3,a3,d4,f4] ~@2 [a3,d4,f4] e2 ~ [a3,d4,f4] ~ [f2,a3,d4,f4] ~@2 [a3,d4,f4] a2 ~, ~@2 e1 ~ f1 ~ a1 ~", // Dm
  BA: "[g1,g3,b3,d4]@2 g2 [g3,b3,d4] g1@2 ab2 ~ [a1,g3,bb3,c4]@2 a2 [g3,bb3,c4,f4] a1@2 a2 ~, ~@8 f4 ~@7", // G Am7 Gm7
  BB: "~@2 [d3,a3,c4,d4,f4] ~ [a3,c4,d4,f4]!2 c3 ~ [a3,c4,d4,f4] ~ a2 ~ [a3,c4,d4,f4] ~ a2 ~, ~@2 d2 ~ a1 ~ g1 ~", // Dm7
  BC: "[g1,g3,bb3,c4,d4,f4]@2 g2 ~ [a1,g3,bb3,c4,d4,f4]@2 a2 ~ [bb1,g3,bb3,c4,d4,f4]@2 bb2 ~ [c2,g3,bb3,c4,d4,f4]@2 c3 ~", // Gm7 Dm7 Gm7
  BD: "[d2,d3,a3,c4,d4,f4]", BE: "[a3,c4,d4,f4]@15 ~",
  BF: "[d3,d4]@3 ~ [d3,d4]@3 ~ [d3,d4]@2 [d3,d4] ~ d4@2 [d3,d4]@2, ~@12 d3 ~@3", // D
  BG: "~@2 [d3,a3,c4,d4,f4] ~ [a3,c4,d4,f4]!2 c3 ~ [a3,c4,d4,f4] ~ a2 ~@5, ~@2 d2 ~ a1 ~@3", // Dm7
})).s("gm_piano").gain(0.25).pan(0.4)

// bass · electric bass finger · "FINGERDBAS"
const bass = note(`<
  A B C B C D E F G H I J G H I K B C B C B L M N O P Q R Q R Q S T@2 U V W X Y G H I J G H I K B C B C B L M N O P Z R
  Z R Z S AA@5 AB AC AD ~ AD ~ AD ~@5 AE AF AG AH AI AF AG I K Z R Z R Z AJ AK AL ~@5 AM Z AN Z AO Z AN Z AP
>`.pickRestart({
  A: "~@10 d2 ~ d2 ~ d2 ~", B: "g1@2 g2 ~ a1@2 a2 ~ bb1@2 bb2 ~ c2@2 c3 d2", C: "~@13 d2 f1 ~",
  D: "g1@2 g2 ~ a1@2 a2 ~ bb1@2 bb2 ~ c2@2 c2@2", E: "~@2 d2 ~ d3@2 ~@2 d2@2 ~@2 d3@2 ~@2",
  F: "d3@2 ~@2 a2@2 ~@2 d3 c3 a2 ab2 g2 f2 d2 c2", G: "d2@2 d3 ~ c2 ~ c2 ~ d2@2 d3 ~ c2@2 c3 ~",
  H: "b1@2 b2 ~ b1@2 b2 ~ c2 ~ c3 ~ c2 ~ c3 ~", I: "d2@2 d3 ~ e1@2 e2 ~ f1@2 f2 ~ a1@2 a2 ~",
  J: "g1 ~ g2 ~ g1 ~ ab2 ~ a1@2 a2 ~ c2@2 c3 ~", K: "g1 ~ g2 ~ g1 ~ ab2 ~ a1@2 a2 ~ a1@2 a2 ~", L: "~@13 a1 c2@2",
  M: "bb1@3 ~ g1@2 ~@2 f1 ~ f1 ~ g1 ~ g1 ~", N: "bb1@2 ~@2 bb1@2 ~@2 c2 ~ c2@2 ~@2 d2@2",
  O: "~@2 d2 ~ d2@2 ~@2 d2 ~ d2@2 ~@2 d2@2", P: "~@2 d2@2 d2 ~ d2 ~ d2 ~ c2 ~ bb1 ~ a1@2",
  Q: "g1@2 g2 ~ g1@2 a1 ~ a1@2 ~@2 c2@2 c2@2", R: "~@2 d2 ~ d2 ~ c2@2 a1@2 a2 ~ g1 ~ g1@2",
  S: "~@2 d2 ~ d2 ~ c2@2 a1 ~ a1 ~ a1 ~ a1 ~", T: "[g1@26 ~@2 f2 ~ d2@2]/2",
  U: "~@4 c2 ~ d2 ~@5 [db2,d2] [bb1,b1,c2] [ab1,a1] [gb1,g1]", V: "d2@2 d3 ~ c2@2 c3 ~ d2@2 d3 ~ c2@2 c3 ~",
  W: "b1@2 b2 ~ b1@2 b2 ~ c2@2 c3 ~ c2@2 c3 ~", X: "d2 ~ d3 ~ e1@2 e2 ~ f1@2 f2 ~ a1 ~ a2 ~",
  Y: "g1@2 g2 ~ g1@2 ab2 ~ c2 ~ c2 ~ c2 ~ c2 ~", Z: "g1@2 g2 ~ g1 ~ a1@2 a1@2 a1 ~ c2 ~ c2@2",
  AA: "[g1@56 ~@4 f2@2 d2@4 d2 ~ d2@3 ~ d2@3 ~ d2@3 ~]/5", AB: "d2@4 d2@4 d2 ~ d2@2 d2 ~ d2@2",
  AC: "d2 [b1,c2,db2] [ab1,a1,bb1] [gb1,g1] ~@12", AD: "~@2 d2 ~@5", AE: "d3!2 ~@2 c3!2 ~@2 a2 g2@2 ~ g2@2 f2@2",
  AF: "d2@2 d3 ~ c2@2 c3 ~ d2 ~ d2 ~ f1@2 gb1@2", AG: "g1 ~ g2 ~ g1@2 ab1 ~ a1@2 a2 ~ c2 ~ c2 ~",
  AH: "d2@2 d3 ~ c2@2 c3 ~ d2@2 d3 ~ f1@2 gb1@2", AI: "g1 ~ g2 ~ g1 ~ ab1 ~ a1@2 a2 ~ c2@2 c3 ~",
  AJ: "~@2 d2 ~ d2!2 c2@2 a1@2 a1@2 a1 ~ ab1@2", AK: "g1@2 g1 ~ a1@2 a1 ~ bb1@2 bb1@2 c2@2 c2@2", AL: "d2@15 ~",
  AM: "~@10 d2 ~ d2 ~ d2@2", AN: "~@2 d2 ~ d2!2 c2@2 a1@2 a1 ~ ab1@2 ab1 ~",
  AO: "~@2 d2 ~ d2!2 c2@2 a1@2 d2 ~ a1@2 ab1@2", AP: "~@2 d2 ~ d2!2 c2@2 a1@2 d2 ~@5",
})).s("gm_electric_bass_finger").gain(0.35)

// chords · epiano1 · "E.PIANO 1"
const epiano1 = note("<~@6 A@2 ~@60 B C@2 D@2 E@2 F G H I@3 ~@30>".pickRestart({
  A: "[~@9 f3 ~@5 c6 ~@9 g6@7, ~@8 [c4,d4]@4 [d4,f4]@5 f5 e5@5 [d6,f6]@9, ~@9 a3@2 [a3,c4]@4 d6@2 a5@2 f5@10 ~@3, ~@10 d3@7 d5@7 a6@8, ~@5 f3@2 [f5,a5] c6@3 a5@5]/2", // Csus2 Dm Am F
  B: "~@7 [a5,c6], ~@3 [f6,g6], ~@13 d6@3", // Am Fsus2
  C: "[~@9 [f6,a6]@9 ~@14, ~@3 d5@7 ~@6, ~@7 [f5,a5]@13 ~@12, ~@8 [c6,d6]@11 ~@13]/2", // F Csus2
  D: "[~@3 g4@2 ~@3, ~@3 [f6,g6]@2 [c5,d5]@5 ~@6, ~@7 [c6,d6]@4 a4@9 ~@12, ~@4 a5@5 ~@7, ~@9 g5@10 ~@13]/2", // Fsus2 Csus2
  E: "[~@14 f4 ~@5 g6@2 ~@10, ~@4 a3@6 [d5,f5,a5] c6@5 [f4,a4]@3 [c6,d6]@3 ~@10, ~@8 d4@6 a4 d4@5 ~@12, ~@4 f4@2 [a5,d6]@3 [f5,a5]@2 ~@5, ~@9 a4@4 [d5,f5]@4 d5@3 ~@12]/2", // Dm F Csus2 D5 F Dm
  F: "~@7 d5, ~@8 [f6,a6]@5 ~@3, ~@9 [c6,d6]@2 f5@2 [f5,a5]@3, ~@5 a5 [c6,d6]@2", // F Csus2 F Csus2
  G: "~@3 d4 ~ a4@2 a3, [d6,f6]@3 c5@5 ~ c5@6 ~, ~ f5@4 f4@4 ~@7, ~ [a5,c6]@3 [g4,a4]@4 ~@8, ~@2 d5@6 [d5,f5,g5]@7 ~", // Dm Am Gsus2 G7
  H: "~@2 g5 ~ [a4,c5]@4, ~ a4@2 [f5,g5]@5, ~@3 [c5,d5,f5]@4 d5@9", // Am Fsus2 Dm7
  I: "[~@11 [c6,d6]@3 ~@18 g4@5 ~@11, [f4,g4,a4,d5]@4 a5@6 [g5,a5]@5 c6@4 [g4,a4]@9 ~ a5@2 a4@5 ~@12, ~@3 [c6,e6]@7 ~ f6@2 ~ f6@3 [d5,f5]@9 ~ f6@10 ~@11, ~@5 f5@7 ~@3 d6@3 c5@9 ~ d6@9 ~@11, ~@16 a5@9 ~ g6@4 [d5,f5]@7 ~@11]/3", // Csus2 Dm Gsus2 C Dm
})).s("gm_epiano1").gain(0.12)

// chords · electric guitar clean · "CLEAN GTR"
const electric_guitar_clean = note(`<
  ~ A ~ A ~ B C D E F E G E F E G A ~ A ~ A ~ H I@2 J K L K L K L M N ~ E F E O E F E G E F E G A ~ A ~ A ~ H I@2 J K L
  K L K L M@3 N ~@14 P Q P Q P Q R S K L K L K L T ~@7 K L K L K L K U
>`.pickRestart({
  A: "~@2 [f4,c5,f5]!4 ~@2 [f4,c5,f5]!4 [f4,c5,f5]@2 [f4,c5,f5]!2", // F5
  B: "~@2 [f4,c5,f5]!4 ~ e4 [f4,c5,f5]!4 [f4,c5,f5]@2 [f4,c5,f5]@2", // F5
  C: "~@2 [f4,d5,f5] ~ [f4,d5,f5]@2 ~@2 [f4,d5,f5]@3 ~@3 [f4,d5,f5]@2", // Dm
  D: "~@2 [f4,d5,f5] ~ [f4,d5,f5]@2 ~@2 [d4,a4,d5]!4 [d4,a4,d5]@2 ~@2", // Dm D5
  E: "[a3,d4,f4]@2 d4 [g3,c4] ~@2 a3@2 [a3,c4,f4]@2 ~ [a3,c4,f4]@2 ~ [a3,c4,e4] ~", // Dm C5 F Am
  F: "[f4,d5] ~@2 [f4,d5] ~@4 [f4,d5] ~@2 [f4,d5] ~@4", G: "[f4,d5] ~@2 [f4,d5] ~@4 [c5,e5] ~@2 [c5,e5] ~@4",
  H: "~@2 [f4,a4,d5]!2 ~@6 [f4,a4,d5]!2 ~ [f4,a4,d5] ~@2", // Dm
  I: "[[f4,a4,d5]@2 ~@2 [f4,a4,d5]@2 ~@2 [e4,g4,c5] ~ [e4,g4,c5]@2 ~@2 [a3,d4,g4]@16 [d4,a4,d5]@2]/2", // Dm C Dsus4 D5
  J: "~@2 [d4,a4,d5] ~ [d4,a4,d5] ~ [d4,a4,d5] ~ [d4,a4,d5] ~ [d4,a4,d5] ~ [d4,a4,d5] ~ [d4,a4,d5] ~", // D5
  K: "[d4,bb4,d5]@2 ~ [d4,bb4,d5] ~@4 [g4,c5,e5]@2 ~ [g4,c5,e5] ~@4", // Gm C
  L: "~@5 [d4,a4,d5] ~@3 [d4,a4,d5] ~@3 [d4,a4,d5] ~@2", // D5
  M: "~@3 [f4,b4,d5]!2 ~ [f4,b4,d5]@2 ~@2 [f4,b4,d5] ~ [f4,b4,d5]!2 ~@2", // Bdim
  N: "~@3 [f4,b4,d5] ~@2 [f4,b4,d5]@2 [f4,b4,d5] ~@3 [d4,g4,d5] ~ [d4,a4,d5] ~", // Bdim G5 D5
  O: "[f4,d5] ~@2 [f4,d5] ~@4 [f4,c5] ~ [f4,c5] ~ [f4,c5] ~ [f4,c5] ~", // Dm F5
  P: "[f4,a4,d5]@2 ~ [f4,a4,d5] ~@4 [f4,a4,d5]@2 ~ [f4,a4,d5] ~@4", // Dm
  Q: "[f4,bb4,d5]@2 ~ [f4,bb4,d5] ~@4 [f4,a4,d5]@2 ~ [f4,a4,d5] ~@4", // Bb Dm
  R: "~@2 [d4,a4,d5] ~@2 [d4,a4,d5] ~@2 [d4,a4,d5] ~@2 [d4,a4,d5] ~@4", // D5
  S: "[d4,g4,d5] ~@2 [d4,g4,d5] ~@2 [d4,ab4,d5] ~ [f4,a4,d5]@2 ~ [f4,a4,d5] ~@2 [f4,a4,f5] ~", // G5 Ddim Dm F
  T: "~@3 [f4,bb4,d5]!2 ~ [f4,bb4,d5]@2 ~@2 [f4,bb4,d5] ~ [f4,bb4,d5]!2 ~@2", U: "~@5 [d4,a4,d5] ~@3 [d4,d5] ~@6",
})).s("gm_electric_guitar_clean").gain(0.15).pan(0.7)

// chords · brass section · "BRASS 1"
const brass_section = note(`<
  A B C D C E F G ~@8 D C D C D C ~ H I J K L K L K L M N O ~@12 D C D C D C ~ H I J K L K L K L M P Q R S T U V ~ V W X
  Y Z ~@4 AA AB AC AB AC AD AE AF AG AH AG AI AG AJ AK AL ~@6 K L K L K L K AM
>`.pickRestart({
  A: "~@12 c5 ~ c5 ~", B: "[f4,bb4,d5] ~@11 [e4,a4,c5,e5]@2 ~ [f4,a4,d5,f5]", C: "~@13 d5 d4 ~",
  D: "[g2,f3,bb4,d5] ~@11 [e4,a4,c5,e5]@2 ~ [f4,a4,d5,f5]", E: "~@7 [e4,g4,c5]",
  F: "~@2 [f4,a4,d5] ~ [f4,a4,d5]@2 ~@2 [f4,a4,d5] ~@5 [e4,g4,c5]@2", // Dm C
  G: "~@2 [f4,a4,d5] ~ [f4,a4,d5]@2 ~@2 [f4,a4,d5] ~@7", // Dm
  H: "[f3,f4,a4,d5] ~@3 [f3,f4,a4,d5] ~@3 [e3,e4,g4,c5] ~ [e3,e4,g4,c5] ~@3 [g4,c5,e5]@2, ~@14 [e3,e4] ~", // Dm C E
  I: "~@2 [e3,e4,g4,c5,e5] ~ [e3,e4,e5] ~@3 [e3,e4,g4,c5,e5] ~ [e3,e4,g4,c5,e5] ~@3 [d3,d4,a4,d5,gb5]@2, ~@2 [g4,c5] ~@5", // C E C D C5
  J: "~@2 [d3,d4,a4,d5,gb5] ~ [d3,d4,a4,d5,gb5] ~ [d3,d4,a4,d5,gb5] ~ [d3,d4,a4,d5,gb5] ~ [d3,d4,a4,d5,gb5] ~ [d3,d4,a4,d5,gb5] ~ [d3,d4,a4,d5,gb5] ~", // D
  K: "[g3,f4,a4,d5]@2 ~@6 [a3,g4,c5,e5]@2 ~@4 [g4,c5,e5] ~, ~@7 a3", // Dm Am7 C
  L: "~@2 [a4,d5,f5] ~ [c4,a4,d5,f5]@2 ~@2 [d4,a4,d5,f5]@2 ~@6", M: "~@2 b3 ~@13",
  N: "~@2 [d4,f4,a4,b4]@2 ~@2 [f4,a4,b4]@2 [d4,f4,a4,b4,d5] ~@3 f3 ~ d3 ~", // Bm7b5
  O: "~@4 [c3,e5]@2 [d3,d4,f5] ~@9, ~@4 c4 ~@11", P: "~@2 [d4,f4,a4,b4]@2 ~@10 [d4,f4,a4,b4,d5] ~",
  Q: "~@2 [d4,f4,a4,b4]@2 ~@6 [d4,f4,a4,b4] ~@5", // Bm7b5
  R: "~@2 [d4,f4,a4,b4]@2 ~@2 [f4,a4,b4]@2 [d4,f4,a4,b4,d5] ~@3 [f3,g4,c5,e5] ~ [d3,a4,d5,f5] ~", // Bm7b5 C Dm
  S: "~@2 [d3,d4,a4,d5,f5] ~ [d3,d4,f5] ~@3 [d3,d4,f5] ~@3 [d3,d4,a4,d5,f5] ~@3, ~@2 [a4,d5] ~ [a4,d5] ~@3", // Dm D5
  T: "[d3,d4,f5] ~@3 [d3,d4,f5] ~@7 [d3,d4,a4,d5,f5]!2 [a4,d5,f5] ~, [a4,d5] ~ [a4,d5] ~@5", // Dm D5
  U: "[d4,f4,a4] ~@15, [d5,d6] ~@7", V: "~@4 [d4,f4,a4] ~@11, ~@2 [d5,d6] ~@5",
  W: "[a3,f4,d5,f5] [a3,d5,f5] ~@2 [a3,f4,d5,f5] ~@5 d5 [a3,f4,d5,f5] [a3,f4,d5] ~@3", // Dm
  X: "~@4 [d4,f4,a4] ~@3 [d3,d4]@4 ~@4, ~@2 [d5,d6] ~@5", // Dm D
  Y: "[a3,f4,d5,f5] [a3,d5,f5]@3 ~@6 d5 [a3,f4,d5,f5] [a3,f4,d5] ~@3", Z: "~@4 [d4,d5] [a3,a4] [c4,c5] ~ [d4,d5]@4 ~@4",
  AA: "[d4,f4,d5,f5] ~@7", AB: "~ [d4,d5] ~@6", AC: "[d4,f4,d5,f5]@3 [d4,f4,d5,f5] ~@6 [d4,f4,d5,f5]!2 ~@4",
  AD: "~@2 [d4,d5]@2 ~@6 [d4,f4,d5,f5]!2 ~@4", // D Dm
  AE: "[d4,f4,d5,f5,a5]@3 [d4,f4,d5,f5,a5] ~@6 [d4,f4,d5,f5]!2 ~ [d4,f4,d5,f5]!2 ~", // Dm
  AF: "~@2 [d4,d5] [c4,c5] [d4,d5]@2 ~@2 d4 ~ d4@2 ~@4", AG: "[g3,f4,a4,d5] ~@7",
  AH: "~@9 db4 c4 ~ [f4,f5] [d4,d5]@2 ~, ~@4 d4 ~@3", AI: "~@2 [a4,d5,f5] ~@6 db4 c4 ~ [f4,f5] [d4,d5]@2 ~, ~@4 d4 ~@3",
  AJ: "~@8 [d4,d5]!2 [c4,c5] ~ [f4,f5] [d4,d5]@2 ~", AK: "[f4,bb4,c5,d5,f5]@15 ~", AL: "a4@3 ~",
  AM: "~@2 [a4,d5,f5] ~ [c4,a4,d5,f5]@2 ~@2 [d4,d5,f5]@2 ~@6", // Dm Dm7 Dm
})).s("gm_brass_section").gain(0.38)

// chords · brass section · "BRASS 1" · soft notes
const brass_section_soft = note(`<
  A ~@26 B ~ B ~ B C D ~@24 B ~ B ~ B E F G@2 ~@2 H I ~ I J I K L ~@15 B ~@3 M ~@7 B ~ B ~ B ~ B
>`.pickRestart({
  A: "~@10 [f4,a4,c5] ~ [f4,a4] ~ [f4,a4] ~", B: "~@2 a3 ~@13", C: "[d4,f4,a4,b4,d5]@12 [d4,f4,a4,b4,d5] ~@3",
  D: "[d4,f4,a4,b4,d5] d5 ~ [d4,d5] ~@4", E: "~@2 [d4,f4,a4,b4,d5]@10 [d4,f4,a4,b4,d5] ~@3",
  F: "[d4,f4,a4,b4,d5] d5 ~ [d4,f4,a4,b4,d5]@4 ~", // Bm7b5
  G: "[[d4,f4,a4,b4,d5]@2 d5@2 ~@2 [d4,f4,a4,b4,d5]@4 d5 ~@3 [d4,f4,a4,b4,d5]@4 d5@2 ~@2 [d4,d5]@2 ~@8]/2", // Bm7b5 D
  H: "~ [c4,db4,e4,ab4,db5,db6] [bb3,b3,d4,eb4,f4,gb4,g4,a4,bb4,b4,c5,a5,b5,c6] [a3,db4] ~@12", // Dbm A
  I: "~@5 [c4,db4,e4,ab4,db5,db6] [bb3,b3,d4,eb4,f4,gb4,g4,a4,bb4,b4,c5,a5,b5,c6] [a3,db4] ~@8", // Dbm A
  J: "~ f4 ~@8 [a3,f4,f5] ~ f5 ~@3", K: "~ f4@3 ~@6 [a3,f4,f5] ~ f5 ~@3", L: "~@3 [a3,a4] ~@12", M: "[f4,c5,d5,f5]@3 ~",
})).s("gm_brass_section").gain(0.19)

// other · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
  A B ~ B ~ C D E ~@8 B ~ B ~ B ~@2 F@3 G H I J K L M N O P@2 Q R ~@8 B ~ B ~ B ~@2 F@3 G H I J K L S T U V W@2 X Y ~ Y
  Z@5 ~@11 AA H I L AA AB AC AD ~@6 AA H I AE AA H I AF
>`.pickRestart({
  A: "~@10 [d4,d6] ~ [a3,a5] [g3,g5] [e3,f3,f5] e5", // D A G Fmaj7
  B: "[f3,g3,bb4]@3 ~ [f3,a3,c5]@3 ~ [f3,bb3,d5,f5]@3 ~ [g3,c4,e5,g5]@3 [a3,d4,f5,a5]", // Gm7 F Bb C Dm
  C: "[d3,d4,d5]@3 ~ [e3,e4,e5]@3 ~ [f3,f4,f5]@2 ~@2 [g3,g4,g5] ~ [g3,g4,g5]@2", // D E F G
  D: "~ a5 [a3,a4] ~ [a3,a4,a5]@2 ~@2 [a3,a4,a5]@2 ~@2 [d5,db6,d6] [b5,c6] [g3,g4,g5]@2", // A Dmaj7 Cmaj7 G
  E: "~ a5 [a3,a4] ~ [a3,a4,a5]@2 ~@2 [a3,a4,a5]@2 ~@2 [d3,d4,d5] [e3,e4,e5] [f3,f4,f5] [a3,a4,a5]", // A D E F A
  F: "[~@8 [c4,c5,c6] [g3,a3,a4,a5] [g2,g4] ~ [c4,c5,c6] ~ [d4,d5,d6]@16 [d4,d5,d6]@14 [f5,e6,f6] [d6,eb6] ~@2]/3", // C Gsus2 G C D Fmaj7 Ebmaj7
  G: "[f4,f5]@7 ~ [g4,g5]@5 ~ [g4,g5]@2", H: "~@2 [c5,c6] ~ [a4,a5]@7 ~ [d4,d5] [e4,e5] [f4,f5] [g4,g5]",
  I: "[a4,a5]@6 [g4,g5] [f4,f5] [e4,e5]@4 ~@2 [e4,e5]@2", J: "~@2 [f4,f5] ~ [d4,d5]@7 ~@5",
  K: "[a4,a5]@5 ~ [g4,g5] [f4,f5] [e4,e5]@5 ~ [e4,e5]@2", L: "~@2 [f4,f5] ~ [d4,d5]@8 ~@4",
// … 134 more lines

More by Dan Hartman