Strudelify

Vive chi vive

Zero

KeyE♭ majorTempo113 bpm
0:00/0:00
// Vive chi vive — Zero
// 113 bpm, 4/4, key D# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 144 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(113/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
const piano = note(`<
  ~ A@4 B@2 C D ~@25 E ~@7 F G H I J K L M N O P@2 Q R S T Q R S T ~ U@4 ~@17 E ~@6 F G H I J K L M N O P@2 Q R S T Q R
  S T V W X Y@2 Z AA AB@2 AC AD AE AF AC AD AE AF AC AD AE AF ~ U@8 AG@2 ~
>`.pickRestart({
  A: "[~@5 [eb4,eb5] [bb3,bb4] [b3,b4]@2 [eb4,eb5] ~ [bb4,bb5]@2 [ab4,ab5]@2 [g4,g5]@7 [eb4,eb5] [f4,f5]@2 [g4,g5] [eb4,eb5] [f4,f5]@2 [g4,g5] [eb4,eb5] ~, [g4,g5]@2 [g4,g5] ~@13, ~@6 [ab4,ab5]@6 ~@2 bb4 ~@49]/4", // Eb Bb B Eb Bb Ab G Eb …
  B: "[~@5 [eb4,eb5] [bb3,bb4] [b3,b4]@2 [eb4,eb5] ~ [bb4,bb5]@2 [ab4,ab5]@2 [g4,g5], [g4,g5]@2 [g4,g5] ~@5, ~@6 [ab4,ab5]@6 ~@2 bb4 ~@17]/2", // Eb Bb B Eb Bb Ab G Ab
  C: "~@15 bb4, [g4,g5], ~@7 ab4", D: "[eb4,b4]@6 [db4,bb4]@4 [b3,ab4]@5 ~", E: "g4@8 f4@7 ~, [d4,ab4,c5]@15 ~",
  F: "[bb3,d4]@5 f5@3, [f4,d5], bb4 ~@15", // Bb Dm
  G: "~@3 f4@3 [d4,f4]@3 ~@4 bb3@3, f5, [bb3,d4,bb4]@6 [bb3,bb4]@7 ~@3, ~@3 d5@7 d4@6, ~@9 f4@3 [f4,bb4,d5]@4", // Dm Bb
  H: "g4 ~@13 bb3@2, [eb3,bb3,f4,d5]@3 eb3@5, ~@2 d4@3 d4@3, ~@3 bb3@4 ~, ~@3 [f4,d5]@3 [f4,g4]@2", // Bb Dm Fsus2
  I: "[eb3,c4,f4,c5]@3 [c4,f4,bb4,c5]@3 ~@6 [f4,bb4]@2 c4 ~, ~@6 [eb3,c4,c5]@9 ~, ~@3 f4@3 ~@2, ~@10 bb3@5 ~", // F7 Fsus4 Bb5 Cm
  J: "bb4@3 ~@4 eb4, [f3,g4], eb5@5 eb4@2 ~, eb4@3 bb4@3 [bb4,eb5]@2, ~@3 g5@5", // Fsus2 Eb5
  K: "a4@3 [a4,c5]@3 ~ bb3, f5@3 [a4,c5,f5]", L: "d4 ~@13 c5@2, [f3,f5], [f4,bb4]@3 [f4,bb4]@5, ~ d4@3, ~@3 bb3",
  M: "~@12 [d4,bb4]@2 [f3,bb3] ~, bb4@3 ~, f4@4 bb3@3 ~, ~@3 f3@11 ~@2, ~@6 d4@4 f4@5 ~", // Gm Bb5
  N: "ab3 ~@3 ab3@2 ~@6 [ab3,c5]@4, ab2, c5@3 ~, ab4!2, eb4@3 ~@5", // Ab
  O: "g4@5 ~@7 g4@2 [d4,g4,b4]@2, g2, [d4,b4]@7 ~, g3!2, ~@5 g4@7 g5@4", // G
  P: "[g4@8 [g3,eb4,g4,eb5]@4 ~@4 [f4,d5]@2 eb4@4 ~@6 [g4,eb5]@2 [g3,eb4] ~, c5@18 d5 ~@3 eb4@2 [g4,eb5]@4 ~@4, c4@14 c4@4 ~@4 c4@9 ~, ~@12 [eb4,g4,eb5]@6 [g4,eb5]@6 g5@7 ~, ~@8 g3@5 eb4@2 ~]/2", // Cm Dm Cm Eb Cm
  Q: "~@4 [f4,bb4]@5 [f4,bb4]@3 ~@2 f3@2, f3@7 ~@9, [f4,bb4,d5] d5@3, ~ d4@2 ~@3 [d4,f4,bb4]@2", // Bb5 Bb
  R: "~@4 g3@2 ~@4 g3@2 ~ g3@3, [g2,c4,f4,a4]@3 [g2,d4]@5, ~@3 [f4,bb4]@3 [f4,b4,d5]@2", // F G5 Bb5 Bdim
  S: "~@4 bb3@2 d5!2 ~@6 bb3@2, [c3,g4,eb5]@7 [g4,eb5]@5 [g4,bb4,eb5]@4, ~ c3, ~@5 bb3@2 ~", // Cm Eb
  T: "[g4,bb4,eb5]@2 ~@2 g4 ~ eb4 ~, f3@5 eb3@2 ~, ~@4 bb4@9 ~@3, ~@4 eb5@7 ~@5, ~@4 g4@2 eb4@5 ~ g4 ~@3", // Eb
  U: "[~@10 [eb4,eb5]@2 [bb3,bb4]@2 [b3,b4]@4 [eb4,eb5]@2 ~@2 [bb4,bb5]@4 [ab4,ab5]@4 [g4,g5]@12 ~@2 [eb4,eb5] ~ [f4,f5]@4 g4@2 [eb4,eb5] ~ [f4,f5]@3 ~ [g4,g5]@2 [eb4,eb5]@2 c5 ~, [g4,g5]@2 [g4,g5] ~@13, ~@6 [ab4,ab5]@6 ~@2 bb4 ~@35 g5 ~@13]/4", // Eb Bb B Eb Bb Ab G Eb …
  V: "f4@5 ~ f4@8 bb4 c5, [f3,c4,c5]@15 ~", // F5
  W: "[f3,bb3,d4]@3 [f3,bb3,d4,f4,bb4]@3 [f3,bb3,d4,f4]@4 [f3,bb3,d4,f4]@2 d4@2 ~ bb5, d5@3 ~@2 d5@3, c5 ~@11 [f3,bb3,bb4]@4, ~@7 d4", // Bb Bb5
  X: "[g3,bb3,d4,f4,c5,a5]@2 ~ [g3,d4,f4,c5,a5]@3 [d4,f4]@4 d4@2 [d4,d5]@4, e4 ~@5 [g3,bb3,bb5]@10, ~@3 d5@3 ~@2, ~@5 f4@3", // Gm7 Dm7 Dm D Gm
  Y: "[[c3,bb3]@3 [bb3,f4,d5]@3 [bb3,g4]@4 g4@2 ~@2 bb3@2 [f3,bb3,eb4]@4 eb4@3 ~@7 eb5 f5, [g4,eb5]@6 c3@20 bb4 eb5 c5 d5@2 ~, ~@6 eb5@6 eb5@13 g4@6 ~, ~@10 bb3@4 ~@6 [f3,bb3]@11 ~, ~@12 g4@11 eb4@8 ~]/2", // C7 Bb Eb Ebsus2 Cm Bb5
  Z: "[f3,bb3,d4,d5,f5]@3 [f3,bb3,d4,c5,d5,f5]@3 [d4,f5]@4 ~@2 [c5,f5]@4, c5 ~@5 [f3,bb3,d5,e5]@10, ~@3 c5@3 ~@2, ~@5 bb4@3, ~@5 d4@2 ~", // Bb Dm F5 Bb
  AA: "gb5 ~@2 [c5,a5]@3 f4@4 f4@2 ~@2 [c5,a5]@2, [d5,bb5]@5 [d5,bb5]@3, g3@3 [g3,bb3]@5, ~@6 [d4,c5,a5]@7 [d4,f4]@3", // F Gm D7 Dm
  AB: "[c5@6 bb3@2 ~ bb3 [d5,f5]@2 ~ f5 [bb4,f5]@2 [bb4,f5]@2 ~ bb4@3 [bb4,eb5]@2 ~@5 c5 [f3,bb3,d4,c5,d5,c6] ~, c3@12 f3@3 ~, g5@9 ~ c5 ~ bb3@2 bb3@4 bb3@6 eb4@2 ~ bb4@4 ~, ~@13 c5@12 g4@6 ~, ~@19 f5@5 ~@5 eb4@2 ~]/2", // Dm Bb5 Eb5 Bb
  AC: "[f3,bb3,d4]@3 [f3,bb3,d4,bb4,bb5]@3 [f3,bb3,d4]@7 ~ c6@2, [c5,c6]@3 [f4,f5]@5, ~@13 d4@3, ~@14 c5 ~", // Bb C F
  AD: "[d4,f4]@3 [d4,f4,bb4,bb5]@3 f4@6 f4@3 ~, [g3,c5,c6]@3 [g3,bb3,d4,f5,f6]@5", // Dm Bb C5 Gm7
  AE: "~@4 eb4 ~ eb5@2 [eb4,f4,d5] ~ eb4 ~@3 [g4,eb5]@2, ~@6 g4 ~@4 [g4,eb5]@3 ~@2, ~@3 [g3,eb4]", // Dm Cm
  AF: "~@4 eb5@4 eb4 f5 ~ eb4 f5 ~ eb4 ~, f3@7 ~, ~@2 bb4 ~@5", AG: "[eb2,eb3,bb3,eb4,g4]/2",
})).s("gm_piano").gain(0.5)

// chords · piano · soft notes
const piano_soft = note(`<
  ~@2 A ~@3 A ~@35 B ~ C D ~@2 E F G ~ H I J K L M J K L M ~@2 A ~ N ~@24 B ~ C D ~@2 E F G ~ H I J K L M J K L M ~ O P
  Q ~ R S T U V W X Y V W X Y V W X Y ~@2 A ~ N ~ A ~ N ~@3
>`.pickRestart({
  A: "~@10 bb5 ~@5", B: "~@5 d4@2 d4, ~@5 [bb3,bb4]@3", C: "~@3 d5", D: "~@3 eb3@3 ~@6 g4@2 ~@2",
  E: "~@9 c5@5 ~ d5, bb3@3 ~", F: "~@2 bb3@2 ~ d4 ~@2", G: "~@3 [ab3,eb4]@3 eb4@2", H: "~ g3@7 ~@4 g3@4",
  I: "~@5 g3@2 ~, ~@8 f5@7 ~", J: "~@2 bb3@4 ~ f3@4 f3@3 ~@2, ~@3 d4@3 ~@2, ~@7 bb3@9", K: "~@3 bb4", L: "~@7 g3 ~@8",
  M: "~@3 eb4@3 ~@10", N: "~@14 c4 ~", O: "~@3 db5@3 ~@6 f4@4", P: "~@3 bb3@3 ~@10", Q: "~@3 c3@3 ~@10",
  R: "~@5 f5 ~ d4", S: "~@3 bb3@2 [bb3,d4] ~@10", T: "~ bb3 ~@4 c5@3 ~@7", U: "~@12 eb4 ~@3, ~@4 bb3@3 ~",
  V: "~@13 [f3,bb3]@3", W: "bb3@3 bb3@3 ~@10", X: "~@8 g3 ~ g3 ~@5", Y: "~@2 eb4 ~@13",
})).s("gm_piano").gain(0.29)

// bass · electric bass finger
const bass = note(`<
  ~ A@8 B C D E F G H I B C D E F G H I J K L M N O P Q J K L M R S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM
  AJ AK AL AN A@4 B C D E F G H I J K L M N O P Q J K L M R S T V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AO AJ AK
  AL AP AQ AR AS AT AU AV AS AT AW AV AS AT AX AV AS AT AX AV AS AT AN A@8 AY@3
>`.pickRestart({
  A: "eb2 ~ eb2 ~ eb2 ~ eb2 ~ eb2 ~ eb2 ~ eb2 ~ eb2 ~", B: "eb2@3 ~@4 d2 eb2 ~ eb2 ~@5",
  C: "eb2 ~ eb2 ~@3 db2 d2 eb2@2 eb2 ~@5", D: "eb2@2 eb2 ~@3 eb2 ~ eb2@2 eb2 ~@5",
  E: "eb2 ~ eb2 ~@3 db2@2 eb2@2 eb2 ~@3 eb2 ~", F: "eb2@4 ~@2 eb2@2 d2@4 ~@2 d2 ~", G: "c2@4 ~@2 c2@2 bb1@5 ~ bb1 ~",
  H: "a1@3 d2 ~@2 a1@2 f1@6 f2@2", I: "bb1@5 ~ bb1 ~ bb1@4 f2@2 bb1 ~", J: "ab2 ~ ab2 ~@3 gb2 g2 ab2@2 ab2 ~@3 ab2@2",
  K: "d2 ~ d2 ~@3 d2@2 d3 ~ d3 ~@3 f2 gb2", L: "g2@2 g2 ~@3 g1 ~ g1@2 g1 ~@3 d2 db2",
  M: "c2@2 c2 ~@3 c3 ~ c3 ~ c3@2 ~@2 c2 ~", N: "f2 ~ f2 ~@3 eb2 e2 f2 ~ f2 ~@3 c2 b1",
  O: "bb1 ~ bb1 ~@3 bb2 ~ bb2 ~ bb2 ~@3 bb1 d2", P: "eb2@2 eb2 ~@4 eb2 eb2@2 eb2 ~@3 eb2 d2",
  Q: "eb2@3 eb2@2 ~ eb2!2 ~ eb2 ~ db2 eb2 ~ eb2 ~", R: "b1@2 b1 ~@3 bb1@2 b1 ~@2 ab1 ~@2 bb1 a1, ~@10 b1@3 ~@3",
  S: "ab1@2 ab1@2 ~@2 ab2 ~ ab1@2 ab1@2 ~@2 ab1@2", T: "f1 ~ f1@4 f2 ~ f2@6 c2@2",
  U: "f1 ~ f1 ~@3 eb2 e2 f2@2 f2@2 f1@2 f2 ~", V: "g2@4 g3@2 g2@2 [g2,a2] ~ a2@2 a3@2 a2 ~",
  W: "bb1@4 bb1 ~@2 a1 bb1 ~ bb1 ~@3 bb1@2", X: "d2@3 ~ d2 ~@2 db2 d2 ~ d2@3 ~ d2@2",
  Y: "eb2@4 eb2@2 ~ bb1 eb2@2 eb2@2 ~@2 eb2 ~", Z: "eb2@3 ~ eb2 ~@2 bb2 eb2 ~ eb2 ~ eb2@2 bb2 ~",
  AA: "f2@2 ~ f2 ~@2 f2 eb2 f2@3 f2 ~@2 f1 f2", AB: "eb2@2 ~ eb2 ~@2 eb2 ~ eb2@3 eb2 ~@2 eb2 ~",
  AC: "d2@2 ~ d2 ~@2 d2 ~ d2@3 bb1 ~@2 d2@2", AD: "bb1@2 ~ bb1 ~@2 f2@2 bb2@3 bb1@2 ~ bb1 ~",
  AE: "ab2 ~ ab2 ~@3 g2 ab2 [g2,ab2] ~ ab2 ~@4 ab2", AF: "g2 ~ g2 ~@3 g2 ~ g1@2 g1@2 b1@2 b1@2",
  AG: "c2 ~ c2 ~@2 bb1 ~ b1 c2@2 c2 ~@3 bb2 b2", AH: "c3@2 c3@2 ~@2 g2@2 c2 ~ c2@2 ~@2 c3 ~",
  AI: "f2 ~ f2 ~@3 f2 eb2 f2@2 f2 ~@3 f2@2", AJ: "g2 ~ g2 ~@3 g1@2 g1@2 g2@2 ~@2 g1@2",
  AK: "c2 ~ c2 ~@3 c2 bb1 c2@2 c2 ~@3 c2@2", AL: "f1@2 f1 ~@3 f1@2 f2 f2@2 ~ eb2@3 ~",
  AM: "d2@2 d2 ~@3 d2 ~ d2 ~ d2 ~@3 d2 ~", AN: "f1@4 f2@3 c2 f1 ~@7", AO: "d2 ~ d2 ~@3 d2 ~ d2 ~ d2 ~@3 d2 ~",
  AP: "f1@2 ~ f1@4 f2 eb2 f2 f2@2 ~@4", AQ: "d2@2 ~ d2 ~ d2 ~ bb1 d2@2 ~ d2 ~@3 bb1, ~@7 d2",
  AR: "g1@2 ~ g1 ~@2 g1 d2 g2@2 ~ g2@2 ~ bb1 b1", AS: "c2@2 ~ c2 ~@2 c2 bb1 c2@2 ~ c2 ~@2 eb2 e2",
  AT: "f2@2 ~ f2 ~@2 f2 c2 f1@2 ~ f1@3 f2 ~", AU: "bb1@2 ~ bb1 ~@3 d2 bb1 ~ bb1@4 d2@2",
  AV: "g1@2 ~ g1@2 ~ g1 d2 g2@2 ~ g2@2 ~ bb1 b1", AW: "d2@2 ~ d2 ~@4 d2 ~ d2@4 d2 ~",
  AX: "d2@2 ~ d2 ~@4 d2 ~ d2@4 d2@2", AY: "[eb2@7 ~]/3",
})).s("gm_electric_bass_finger").gain(0.62)

// chords · electric guitar clean
const electric_guitar_clean = note(`<
  ~ A B C@2 A B C@2 D E F G H I J K D E F G H I J L M N O P Q R S T M N O P U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK
  AL AM AN AO AL AM AN AO AP A B C@2 D E F G H I J K M N O P Q R S T M N O P U V W Y Z AA AB AC AD AE AF AG AH AI AJ AK
  AL AM AN AO AL AM AN AO AQ AR AS AT AU AR AS AT AU AR AS AT AU AR AS AT AU AR AS AT AU AP A B C@2 A B C@2 AV@2 ~
>`.pickRestart({
  A: "[eb3,bb3,eb4,g4]", B: "[eb3,b3,eb4,g4]", C: "[[bb3,c4,g4]@8 b3@4 b3@3 ~, eb4@15 ~, ~@8 g4@7 ~]/2",
  D: "[g3,bb3,eb4,g4]@2 ~ [bb3,eb4,g4] ~@2 eb4 ~ g3 ~ eb4 ~@2 [bb3,eb4]@2 g3, ~@4 g3@3 eb4@2 g3@2 eb4@2 ~@3, ~@3 g4@5, ~@6 bb3@4 bb3@2 g3@3 ~", // Eb Eb5
  E: "[g3,b3,eb4]@3 [b3,eb4] g3 ~ [b3,eb4]!2 g3 b3 ~@4 g3@2, ~@11 g3@3 ~@2, ~@3 b3", // Gaug B
  F: "[bb3,eb4]@3 g3 ~@2 bb3 ~ g3@2 [bb3,eb4] ~@2 [bb3,eb4]@2 g3, eb3@7 bb3@2 ~@2 [bb3,eb4]@2 ~@3, ~@3 [bb3,eb4]@3 eb4@3 ~@3 g3@3 ~, ~ g3 eb3@2", // Eb5
  G: "b3@3 [b3,eb4] g3@2 [b3,eb4]@2 g3 [b3,eb4] ~@2 [b3,eb4]@2 g3 ~, eb3@15 ~, ~@11 g3@3 ~@2", // B
  H: "~@3 eb4 ~@3 d4, [eb3,bb3] [d3,bb3], ~ eb4@2 ~@2 d4@2 ~, ~ g4 ~ g4", // Eb5 Gm
  I: "~@3 eb4 ~@3 eb4, [c3,bb3]@9 ~@3 g4@4, ~ eb4@2 ~ [bb2,bb3]@4, ~@4 g4@5 ~ eb4@4 ~@2", // C7 Bb
  J: "a3@2 ~@3 c4 f4@4 ~@4 [a2,f4]@2, a2@7 ~, f4@3 c4@3 c4@2, ~@3 a3@7 a3@6, ~@5 f4@2 ~", // Dm
  K: "bb3@2 ~@2 bb3@2 ~@6 d4@2 [f3,f4] ~, f2@15 ~, d4@3 d4@3 ~@2, ~@6 bb3@4 bb3@5 ~, ~@4 f4@3 ~", // F
  L: "~@6 f4@2 ~@4 bb3@2 f4 ~, f4@3 ~@5, ~@2 bb3@7 ~@7, ~@4 eb4@4 d4@7 ~",
  M: "[ab3,c4,eb4,g4]@3 [c4,eb4,g4] ab3@2 [c4,eb4,g4]!2 ~ [c4,eb4,g4] ~@4 ab3@2, ~@8 ab3@2 ~ ab3@3 ~@2, ~@3 [c4,eb4,g4]", // Abmaj7 Cm
  N: "[c4,d4]@3 [c4,d4,f4] ab3@2 [c4,d4,f4] c4 ~ [c4,d4,f4] ~ ab3 ~@2 ab3@2, d3@3 ~ d3@4, ~@4 ab3 ~ [c4,f4]@2", // Csus2 Dm7 F5
  O: "[g3,bb3,d4,f4]@3 ~ g3@2 [bb3,d4]!2 ~ [bb3,d4] ~@4 g3@2, ~@3 [bb3,d4,f4]@3 ~@2 g3@2 ~ g3@3 ~@2, ~@3 [bb3,d4]", // Gm7 Bb
  P: "[bb3,d4]@3 ~ g3@2 [bb3,eb4] [g3,bb3,eb4] ~ [g3,bb3,eb4]@2 ~ [bb3,eb4] ~ g3 ~, c3@7 ~ c3@6 ~@2, ~@3 [bb3,d4]@3 ~@5 g3@2 ~@3", // Bb Eb5 Eb Eb5 Bb
  Q: "[ab3,c4,eb4,g4]@3 [c4,eb4,g4] ~@2 [c4,eb4,g4] ~@2 [c4,eb4,g4]@2 ~@3 ab3@2, ~@4 ab3@3 [c4,eb4,g4]@2 ~@3 [c4,eb4,g4]@4, ~@8 ab3@3 ab3@3 ~@2", // Abmaj7 Cm
  R: "[ab3,c4,eb4,g4]@3 ~@3 [c4,g4] ~@2 [c4,d4,g4] ~ ab3 [c4,d4,g4] ~ ab3 ~, ~@3 [c4,eb4,g4]@3 eb4@2 ab3@2 ~@6, ~@4 ab3@3 [c4,d4,g4]@2 ~@7", // Abmaj7 C5 Csus2 Cm Csus2
  S: "[eb3,eb4]@3 ~@3 [g3,bb3,eb4] ~@2 [g3,bb3,eb4]@2 ~@3 eb3@2, ~@3 [g3,bb3,eb4]@3 ~ [g3,bb3,eb4]@2 ~@3 [g3,bb3,eb4]@4, ~@4 eb3@4 eb3@3 eb3@3 ~@2", // Eb
  T: "[eb3,ab3,db4,f4]@3 ~@3 [ab3,db4,eb4] ~@2 [ab3,db4]@2 ~ [ab3,db4]@2 eb3 ~, ~@3 f4@11 ~@2, ~@3 [ab3,db4]@3 ~ [ab3,db4,eb4]@2 eb4@5 ~@2, ~@4 eb3@4 eb3@3 eb3@3 ~@2", // Db Absus4 Db5 Absus4
  U: "[bb3,eb4,gb4]@3 ~ gb3@2 [bb3,eb4,gb4]!2 gb3 [bb3,eb4,gb4]@3 gb3@2 gb3@2, b2, ~@3 [bb3,eb4,gb4]@3 ~@6 [bb3,eb4,gb4]@4", // Ebm
  V: "[b3,eb4,gb4]@3 ~@3 [b3,eb4,gb4]!2 ~ [b3,eb4,gb4]@2 ~@3 ab2@2, ab2@7 ~ ab2@6 ~@2, ~@3 [b3,eb4,gb4]@3 ~@6 [b3,eb4,gb4]@4, ~@4 ab3@4 ~@3 ab3@5", // B
  W: "[bb3,eb4,g4]@3 ~ f3@2 [bb3,eb4,g4] [eb4,g4] ~ [bb3,eb4,g4]@2 ~@3 f3@2, f2, ~@3 [bb3,eb4,g4]@3 ~@2 f3@3 f3@3 ~@2, ~@3 [bb3,eb4,g4]", // Eb
  X: "[a3,c4,f4]@3 ~@3 [a3,c4] ~@2 [a3,c4,f4]@2 ~ [a3,c4,f4]@2 f3 ~, f2@7 [a3,c4]@2 ~@7, ~@3 [a3,c4,f4]@3 f4@2 f2@6 ~@2, ~@4 f3@7 f3@3 ~@2", // F Am F Am F
  Y: "~@3 bb3 ~@2 [eb4,g4]@2 ~@4 c4@2 f4 ~, eb3@8 [f3,f4]@7 ~, ~@2 g3@7 ~@7, ~@4 bb3@5 ~ a3@5 ~", // Eb F
  Z: "[bb3,d4,f4]@3 [bb3,d4,f4]@9 [bb3,f4]@2 f3 ~", // Bb Bb5
  AA: "[f3,bb3,f4]@3 [f3,bb3,f4]@3 f3@4 f3@2 [f3,bb3,d4]@4, ~@3 f4@5, ~@3 bb3@3 ~@2", // Bb5 Bb
  AB: "[eb3,bb3,d4]@3 [eb3,bb3,d4]@2 ~ eb3@4 ~@4 eb3@2, g3@5 ~ [bb3,d4]@6 [bb3,d4]@4, ~@3 g3 ~ g3@3, ~@5 eb3@2 ~", // Ebmaj7 Bb
  AC: "[g3,c4]@3 g3@3 [eb3,g3]@3 ~ g3@2 [g3,c4]@2 eb3 ~, eb3@3 bb3@4 ~, ~@3 c4@9 ~@4, ~@9 eb3@5 ~@2", // C5 Eb C5
  AD: "[eb4,g4,bb4]@5 ~@9 c4@2, f3, ~@5 c4@5 c4@4 ~@2, ~@3 [g4,bb4]@5, ~@3 eb4@3 eb4@2", // Eb Gm
  AE: "~@3 c4@3 ~@8 f3@2, a4, f4@3 [c4,f4]@3 [c4,f4]@2, ~@5 f3@2 ~", // F5
  AF: "f4@4 a3@2 [d4,f4]@6 [d4,f4,bb4]@3 bb3, d3@15 ~, c4@3 ~@13", // Dm Bb
  AG: "[d4,f4,bb4]@3 [d4,f4,bb4] ~@2 [d4,f4]@2 ~ [d4,f4]@2 ~ [d4,f4]@2 bb3 ~, bb2@7 ~ bb2@6 ~@2, ~@4 bb3@7 bb3@3 ~@2", // Bb Dm
  AH: "[ab3,c4,eb4,ab4]@3 [c4,eb4] ab3@2 [c4,eb4]!2 ab3 [c4,eb4]@2 ~@3 ab3@2, ~@11 ab3@3 ~@2, ~@3 [c4,eb4]", // Ab Cm
  AI: "[g3,c4]@3 ~@5 g3 [b3,g4]@2 ~@3 g3@2, g4@6 ~ b3@2 ~@3 [b3,g4]@4, f4 ~@2 c4@3 [c4,g4]@3 ~@7, ~@4 g3@4 ~@3 g3@3 ~@2", // C5 Em C5
  AJ: "[g3,c4]@3 ~@3 [c4,eb4,g4] [c4,eb4] g3 [c4,eb4,g4] ~@4 g3@2, g4@3 ~@5, ~@3 [c4,eb4]@3 ~@6 [c4,eb4,g4]@4, ~@4 g3@4 ~@3 g3@3 ~@2", // C5 Cm
  AK: "[g3,c4,eb4,g4]@2 ~ [c4,eb4,g4] g3@2 [c4,eb4,g4] [c4,eb4] g3 [c4,eb4,g4] ~@2 [c4,eb4,g4]@2 ~@2, ~@11 g3@3 ~@2", // Cm
  AL: "g4@3 ~@9 [d4,f4,bb4]@2 bb3 ~, f4 ~@2 f3@12 ~, ~ [f4,bb4] d4 ~, ~@6 bb3@3 [f4,bb4]@3 ~@4, ~@5 bb3@2 ~", // Bb Bb5
  AM: "[c4,f4,a4]@4 c4@2 [d3,c4]@2 ~ [d4,g4] ~ f3 ~@2 f3@2, f3 g2, ~ [f4,a4] ~ [d4,g4]", // F D7 G5 F G5
  AN: "[c4,eb4,g4]@3 ~ bb3@2 [c4,eb4,g4]@2 ~ [c4,eb4,g4] ~@2 [c4,eb4,g4]@2 g3 ~, c3@7 ~ c3@7 ~, ~@3 [c4,eb4,g4]@3 ~@5 g3@2 ~@3", // Cm
  AO: "[c4,eb4]@3 [c4,eb4] ~@3 c4 ~ [eb4,g4] ~@2 g4 ~@3, g4@5 ~ [eb4,g4]@2 ~@8", // Cm Eb
  AP: "[c4,f4]@2 ~@2 [c4,f4]@2 f3 [a3,c4,f4] f3 ~@7, f3@3 ~@5", // F5 F
  AQ: "[f3,c4,f4,a4]@3 [c4,f4,a4] [c4,f4]@2 f4 ~@2 c4@2 ~ [a3,c4]@2 f3 ~, ~@2 a4@5 ~, ~@4 f3@3 f4@2 f4@5 ~@2, ~@6 c4@2 f3@3 f3@3 ~@2", // F F5 Am
  AR: "[bb3,d4,f4]@3 ~@3 [d4,f4]@2 ~ [d4,f4]@3 [bb3,d4,f4]@3 ~, bb4@15 ~, ~@3 [d4,f4]@3 ~@10, ~ bb3!2 ~", // Bb Dm Bb Dm
  AS: "[g3,bb3,d4]@3 ~ g3 ~ [bb3,d4,f4]!2 g3 [bb3,d4] ~@4 g3@2, ~@3 [bb3,d4]@2 ~@6 g3@3 ~@2, ~@3 [bb3,d4]", // Gm Bb
  AT: "[bb3,eb4]@3 ~ g3@2 [bb3,eb4,g4] [bb3,eb4] ~ [bb3,eb4] ~@2 [bb3,eb4,g4]@4, c3@7 ~ c3@8, ~@3 [bb3,eb4]@2 ~@7 g3 ~@3", // Eb5 Eb Eb5 Eb Eb5
  AU: "[a3,eb4]@2 ~@2 f3@2 [bb3,eb4]@2 ~ [a3,bb3,eb4] ~@2 [a3,eb4] ~ f3 ~, f3@3 [bb3,eb4]@3 ~@2 f3@4 ~@4", // Adim Eb5 Eb Adim Eb5
  AV: "[eb3,bb3,eb4,g4,bb4]/2", // Eb
})).s("gm_electric_guitar_clean").gain(0.22).pan(0.3)

// chords · brass section
const brass_section = note(`<
  ~@32 A B@4 C@3 D E F@2 ~@7 G@2 H@2 ~ I J@2 ~ I K L ~@12 M@2 N@2 O@2 P Q B@4 C@3 E F@2 ~@7 G@2 H@2 ~ I J@2 ~ I K ~@9 R
  S@3 R S@3 R S@3 L ~@8 T@3
>`.pickRestart({
  A: "[db4,f4]@3 ~ [eb4,g4]@3 ~ [f4,ab4]@3 ~ [g4,bb4]@2 ~@2", // Db Eb Fm Gm
  B: "[[c4,c5]@18 [f3,f4] ~@3 [ab3,ab4] ~@3 c5@2 ~@2 [bb3,bb4]@28 ~@6, ~@26 c4 ~@37]/4", // C F Ab Bb
  C: "[~ [gb3,gb4] [g4,bb4], eb3@47 ~, eb4@2 ~]/3", D: "[eb3,a4,c5]",
  E: "~ [eb4,g4]@2 bb4 ~ a4@2 [c5,f5], g3@8 a3@7 ~, ~@10 f4@3 ~@3", F: "[[d4,f4,bb4]@29 ~@3, d5@25 ~@7, f5@21 ~@11]/2",
  G: "[~@2 [g3,g4] ~@3 [b3,b4] ~@3 [d4,d5] ~@3 [g4,g5]@18]/2", // G B D G
  H: "[~@2 [g3,g4] ~@3 [bb3,bb4] ~@3 [c4,c5]@2 [bb3,bb4]@2 [d4,d5]@18]/2", I: "[c4,g4,c5]",
  J: "[~@2 [g3,g4] ~@3 [bb3,bb4] ~@3 [c4,c5]@2 [bb3,bb4]@2 f5@2 f5@3 ~@13, ~@14 f4@5 ~@13]/2", K: "[f3,g4,bb4,eb5]@7 ~",
  L: "[f4,c5,f5]@7 b5 [f5,f6]@2 ~@6, a4@5 ~@2 c6@3 ~@6, ~@8 [d6,e6] ~@7", M: "[[c4,c5]@7 [d4,d5]]/2",
  N: "[[bb3,bb4]@28 [c4,c5]@3 ~]/2", O: "[[ab3,ab4]@27 ~ [bb3,bb4]@4]/2", P: "[g3,g4]",
  Q: "[db4,f4]@4 [eb4,g4]@4 [f4,ab4]@4 [g4,bb4]@3 ~", R: "~ c4@2 [bb3,bb4]@3 [f3,f4]@8 [c4,c5] ~, c5@3 ~@13",
  S: "[[c4,c5]@3 [bb3,bb4]@3 f4@4 d4 ~ f4@2 eb4@28 ~@6, ~ f5@6 ~]/3", T: "[eb4@47 ~]/3",
})).s("gm_brass_section").gain(0.36).pan(0.7)

// chords · brass section · soft notes
const brass_section_soft = note("<~@32 A ~@6 B C ~@20 D E ~@26 B ~@20 D ~@21 E ~@8 F@3>".pickRestart({
  A: "~@8 bb4 ~@7", B: "~@8 eb4@5 ~@3", C: "~@3 a3@5 ~ c4@7, ~@3 f4@12 ~", D: "eb4@7 ~",
  E: "~@5 [g4,d5,e5] [a4,g5] a5 a5@2 ~@6, ~@8 e5 ~@7", F: "[[g4,eb5]@47 ~]/3",
})).s("gm_brass_section").gain(0.18).pan(0.7)

// chords · pad warm
const pad_warm = note(`<
  ~ A@4 B@3 C D@4 E F@3 D@4 E F@3 G@4 H@2 I@2 G@4 J@4 ~ K@2 L@2 M N K@2 O@4 P Q@3 P Q@3 R S@2 ~@2 D@4 E F@3 G@4 H@2 I@2
  G@4 T@4 K@2 L@2 M N K@2 O@4 P Q@3 P Q@3 U V@2 W@2 V@2 W@2 V@2 W@2 V@2 W@2 V@2 W@2 R S@2 ~@2 S@2 ~@5
>`.pickRestart({
  A: "[~@5 [eb4,eb5] [bb3,bb4] [b3,b4]@2 [eb4,eb5] ~ [bb4,bb5]@2 [ab4,ab5]@2 [g4,g5]@7 [eb4,eb5] [f4,f5]@2 [g4,g5] [eb4,eb5] [f4,f5]@2 [g4,g5] [eb4,eb5] ~, [g4,g5]@2 [g4,g5] ~@13, ~@6 [ab4,ab5]@6 ~@2 bb4 ~@11 bb5 ~@37]/4", // Eb Bb B Eb Bb Ab G Eb …
  B: "[~@10 [eb4,eb5]@2 [bb3,bb4]@2 [b3,b4]@4 [eb4,eb5]@2 ~@2 [bb4,bb5]@4 [ab4,ab5]@4 g5@2 g5@11 ~@5, [g4,g5]@4 [g4,g5]@2 ~@9 g4@6 ~@3, ~@6 [ab4,ab5]@6 ~@2 bb4 ~@11 bb5 ~@21]/3", // Eb Bb B Eb Bb Ab G Ab
  C: "~@3 bb5@3 bb4@2 bb5@2 bb4@2 bb5@2 bb4 ~", D: "[bb4@16 b4@16 bb4@15 ~ b4@16, g4, eb3@9 ~@7 eb4@16]/4",
  E: "eb4 d4, bb3", F: "[~@13 a3@10 ~@8 d4@17, c4@2 ~, ~@23 f4@25]/3",
  G: "[[ab3,eb4,g4]@16 ~@7 ab4@8 ~ g4@16 f4@8 eb4@8, c4@15 ~ bb3@16, ~@2 d4@5 ~, ~@2 [d3,f4]@2 g3@3 ~, ~@3 c3]/4", // Abmaj7 Dm
  H: "[g4@8 ab4 ~@3 d4@4, ab3, [c4,eb4]@25 ~@7, ~@19 ab4@13]/2", // Cm
  I: "[~@3 g4@12 ~@6 ab4@10 ~, eb4@15 [db4,f4]@16 ~, ~@2 eb3@29 ~]/2", // Db
  J: "[eb4@16 ~@9 ab4@7 ~ bb4@14 ~@9 f4@7 ~, b3@31 ~ bb3@3 ~@12 [c4,a4]@16 ~, [gb4,bb4]@13 ~@3 g4@8 ~@8, ~@17 eb4@40 ~@7]/4", // F Gb
  K: "[bb3,d4,f4]/2", L: "[d4@16 c4@15 ~, [eb3,bb3,g4]@31 ~]/2", M: "[eb4,g4]", N: "[c4,f4,a4]",
  O: "[[ab3,eb4]@15 ~@12 b3@4 ~ c4@32, c4@27 ~@5 eb4@12 ~@20, ~ [g3,g4]@3]/4", // Ab5 G
  P: "~ bb3@4 d4@11, ~ [f3,f4]@15, ~@5 bb3@9 ~@2", Q: "[[f3,a3,f4]@2 [bb3,d4]@3 [c4,eb4]@10 ~, c4@5 ~ g3@39 ~@3]/3",
  R: "[a3,c4,f4,a4]@7 ~@9", // F
  S: "[~@10 [eb4,eb5]@2 [bb3,bb4]@2 [b3,b4]@4 [eb4,eb5]@2 ~@2 [bb4,bb5]@4 [ab4,ab5]@5 ~, [g4,g5]@2 [g4,g5] ~@5, ~@6 [ab4,ab5]@6 ~@2 bb4 ~@11 bb5 ~@5]/2", // Eb Bb B Eb Bb Ab G Ab
  T: "[eb4@16 ~@9 ab4@7 ~ bb4@14 [c4,a4]@16 ~, b3@31 ~ bb3@3 ~@29, [gb4,bb4]@13 ~@3 g4@8 ~@8, ~@17 eb4@40 ~@7]/4", // F Gb
  U: "[a4,c5]", V: "[f3@4 ~@11 g3@17, bb3, f4@15 ~@17, ~@5 d4@27]/2",
  W: "[~@12 a3@3 ~, f4@15 ~, ~ bb3@5 ~@2, ~@5 eb4@26 ~]/2",
})).s("gm_pad_warm").gain(0.29).pan(0.3)

// chords · lead 2 sawtooth
const lead_2_sawtooth = note(`<
  ~ A B C D A E C D F G H I J K L M F G H I J K L M N O P Q R S T U N O P Q V W X Y ~@22 A E C D F G H I J K L M N O P Q
  R S T U N O P Q V W X ~@43 A E C D A B C D ~@3
>`.pickRestart({
  A: "~@2 [bb3,eb4,g4]!2 ~@2 [bb3,eb4,g4]!2 ~@2 [bb3,eb4,g4]!2 ~@2 [bb3,eb4,g4]!2", // Eb
  B: "~@2 [eb4,g4] eb4 ~@2 [b3,eb4,g4]!2 ~@2 [b3,eb4,g4]!2 ~@2 [b3,eb4,g4]!2, ~ b3 ~@6", // Eb Baug
  C: "~@2 [c4,eb4,g4]!2 ~@2 [c4,eb4,g4]!2 ~@2 [c4,eb4,g4]!2 ~@2 [bb3,c4,eb4,g4]!2", // Cm Cm7
// … 126 more lines

More by Zero